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;
}
}
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;
}
Aggregations