@Override public Object getData(@NonNls String dataId) { if (MPSCommonDataKeys.NODE.getName().equals(dataId)) { return mySelectedNode; } if (MPSEditorDataKeys.EDITOR_CELL.getName().equals(dataId)) { return myNodeCell; } return myEditorDataContext.getData(dataId); }
@Nullable @Override public Object getData(Collection<AbstractTreeNode> selected, String dataName) { if (selected == null) { return null; } if (PlatformDataKeys.COPY_PROVIDER.is(dataName) || PlatformDataKeys.CUT_PROVIDER.is(dataName)) { return getProvider(selected, CUT_COPY_PROVIDER_FACTORY); } if (PlatformDataKeys.DELETE_ELEMENT_PROVIDER.is(dataName)) { return getProvider(selected, DELETE_PROVIDER_FACTORY); } if (MPSDataKeys.MODEL_FILES.is(dataName)) { return getModelFiles(selected); } if (selected.size() != 1) { return null; } // Applicable only to single element selection AbstractTreeNode selectedNode = selected.iterator().next(); if (PlatformDataKeys.VIRTUAL_FILE_ARRAY.is(dataName)) { return getModelFilesArray(selectedNode); } if (PlatformDataKeys.PASTE_PROVIDER.is(dataName)) { return getModelProvider(selectedNode, PASTE_PROVIDER_FACTORY); } if (MPSCommonDataKeys.NODE.is(dataName)) { return getNode(selectedNode); } if (MPSCommonDataKeys.CONTEXT_MODEL.is(dataName) || MPSCommonDataKeys.MODEL.is(dataName)) { return getModel(selectedNode); } if (MPSCommonDataKeys.CONTEXT_MODULE.is(dataName) || MPSCommonDataKeys.MODULE.is(dataName)) { return getModule(selectedNode); } if (LangDataKeys.MODULE.is(dataName)) { return getIdeaModule(selectedNode); } return null; }