Search in sources :

Example 1 with IComponentCopyProvider

use of com.intellij.designer.model.IComponentCopyProvider 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)

Example 2 with IComponentCopyProvider

use of com.intellij.designer.model.IComponentCopyProvider in project intellij-community by JetBrains.

the class CommonEditActionsProvider method isCopyEnabled.

@Override
public boolean isCopyEnabled(@NotNull DataContext dataContext) {
    if (myDesigner.getInplaceEditingLayer().isEditing()) {
        return false;
    }
    List<RadComponent> selection = getArea(dataContext).getSelection();
    if (selection.isEmpty()) {
        return false;
    }
    RadComponent rootComponent = myDesigner.getRootComponent();
    if (rootComponent instanceof IComponentCopyProvider) {
        IComponentCopyProvider copyProvider = (IComponentCopyProvider) rootComponent;
        return copyProvider.isCopyEnabled(selection);
    }
    return true;
}
Also used : RadComponent(com.intellij.designer.model.RadComponent) IComponentCopyProvider(com.intellij.designer.model.IComponentCopyProvider)

Aggregations

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