Search in sources :

Example 1 with SimpleTransferable

use of com.intellij.designer.clipboard.SimpleTransferable in project intellij-community by JetBrains.

the class CommonEditActionsProvider method doCopy.

private boolean doCopy(DataContext dataContext) {
    try {
        Element root = new Element("designer");
        root.setAttribute("target", myDesigner.getPlatformTarget());
        List<RadComponent> components = RadComponent.getPureSelection(getArea(dataContext).getSelection());
        RadComponent rootComponent = myDesigner.getRootComponent();
        if (rootComponent instanceof IComponentCopyProvider) {
            IComponentCopyProvider copyProvider = (IComponentCopyProvider) rootComponent;
            copyProvider.copyTo(root, components);
        } else {
            for (RadComponent component : components) {
                component.copyTo(root);
            }
        }
        SerializedComponentData data = new SerializedComponentData(new XMLOutputter().outputString(root));
        CopyPasteManager.getInstance().setContents(new SimpleTransferable(data, DATA_FLAVOR));
        return true;
    } catch (Throwable e) {
        myDesigner.showError("Copy error", e);
        return false;
    }
}
Also used : XMLOutputter(org.jdom.output.XMLOutputter) SerializedComponentData(com.intellij.uiDesigner.SerializedComponentData) SimpleTransferable(com.intellij.designer.clipboard.SimpleTransferable) Element(org.jdom.Element) RadComponent(com.intellij.designer.model.RadComponent) IComponentCopyProvider(com.intellij.designer.model.IComponentCopyProvider)

Aggregations

SimpleTransferable (com.intellij.designer.clipboard.SimpleTransferable)1 IComponentCopyProvider (com.intellij.designer.model.IComponentCopyProvider)1 RadComponent (com.intellij.designer.model.RadComponent)1 SerializedComponentData (com.intellij.uiDesigner.SerializedComponentData)1 Element (org.jdom.Element)1 XMLOutputter (org.jdom.output.XMLOutputter)1