public Object getData(String dataId) { if (myTreeBrowser != null && myTreeBrowser.isVisible()) { return null; } if (PlatformDataKeys.NAVIGATABLE.is(dataId)) { if (mySelectedFile == null || !mySelectedFile.isValid()) return null; return new OpenFileDescriptor(myProject, mySelectedFile); } else if (PlatformDataKeys.VIRTUAL_FILE_ARRAY.is(dataId)) { return getVirtualFileArray(); } else if (VcsDataKeys.IO_FILE_ARRAY.is(dataId)) { return getFileArray(); } else if (PlatformDataKeys.TREE_EXPANDER.is(dataId)) { if (myGroupByChangeList) { return myTreeBrowser != null ? myTreeBrowser.getTreeExpander() : null; } else { return myTreeExpander; } } else if (VcsDataKeys.UPDATE_VIEW_SELECTED_PATH.is(dataId)) { return mySelectedUrl; } else if (VcsDataKeys.UPDATE_VIEW_FILES_ITERABLE.is(dataId)) { return myTreeIterable; } else if (VcsDataKeys.LABEL_BEFORE.is(dataId)) { return myBefore; } else if (VcsDataKeys.LABEL_AFTER.is(dataId)) { return myAfter; } return super.getData(dataId); }
public void update(AnActionEvent e) { Presentation presentation = e.getPresentation(); final DataContext dataContext = e.getDataContext(); Project project = PlatformDataKeys.PROJECT.getData(dataContext); if ((project == null) || (ProjectLevelVcsManager.getInstance(project).isBackgroundVcsOperationRunning())) { presentation.setEnabled(false); presentation.setVisible(false); return; } VirtualFile[] files = PlatformDataKeys.VIRTUAL_FILE_ARRAY.getData(dataContext); if (files == null || files.length == 0) { presentation.setEnabled(false); presentation.setVisible(false); return; } boolean enabled = false; boolean visible = false; if (files.length == 1 && files[0].isDirectory()) { visible = true; if (!SvnStatusUtil.isUnderControl(project, files[0])) { enabled = true; } } presentation.setEnabled(enabled); presentation.setVisible(visible); }
public void deleteElement(DataContext dataContext) { final VirtualFile[] files = PlatformDataKeys.VIRTUAL_FILE_ARRAY.getData(dataContext); if (files == null || files.length == 0) return; String message = createConfirmationMessage(files); int returnValue = Messages.showYesNoDialog(message, "Delete", Messages.getQuestionIcon()); if (returnValue != 0) return; Arrays.sort(files, FileComparator.getInstance()); ModelAccess.instance() .runWriteAction( new Runnable() { public void run() { for (final VirtualFile file : files) { try { file.delete(this); } catch (IOException e) { ApplicationManager.getApplication() .invokeLater( new Runnable() { public void run() { Messages.showMessageDialog( "Could not erase file or folder: " + file.getName(), "Error", Messages.getErrorIcon()); } }); } } } }); }
public Object getData(String dataId) { if (PlatformDataKeys.VIRTUAL_FILE_ARRAY.getName().equals(dataId)) { List<VirtualFile> files = new LinkedList<VirtualFile>(); TreePath[] treePaths = getSelectionPaths(); if (treePaths != null) { for (TreePath tp : treePaths) { Object lastPathComponent = tp.getLastPathComponent(); if (lastPathComponent instanceof AbstractFileTreeNode) { AbstractFileTreeNode node = (AbstractFileTreeNode) lastPathComponent; VirtualFile file = node.getFile(); if (file.isValid()) { files.add(file); } } } } return files.toArray(new VirtualFile[files.size()]); } else if (PlatformDataKeys.VIRTUAL_FILE.getName().equals(dataId)) { TreePath tp = getSelectedPath(); if (tp == null) { return super.getData(dataId); } Object lastPathComponent = tp.getLastPathComponent(); if (lastPathComponent instanceof AbstractFileTreeNode) { AbstractFileTreeNode node = (AbstractFileTreeNode) lastPathComponent; VirtualFile file = node.getFile(); if (file.isValid()) { return file; } } } else if (PlatformDataKeys.COPY_PROVIDER.getName().equals(dataId)) { return new FilePaneCopyProvider(); } else if (PlatformDataKeys.PASTE_PROVIDER.getName().equals(dataId)) { return new FilePanePasteProvider(); } else if (PlatformDataKeys.CUT_PROVIDER.getName().equals(dataId)) { return new FilePaneCopyProvider(); } else if (dataId.equals(MPSDataKeys.PLACE.getName())) { TreeNode treeNode = getSelectedTreeNode(TreeNode.class); if (treeNode instanceof ModuleTreeNode) { return ActionPlace.PROJECT_PANE_MODULE; } else if (treeNode instanceof FileTreeNode) { return ActionPlace.PROJECT_PANE_FILE; } else if (treeNode instanceof FolderTreeNode) { return ActionPlace.PROJECT_PANE_FOLDER; } } return super.getData(dataId); }
public Object getData(String dataId) { // MPSDK if (dataId.equals(MPSDataKeys.NODE.getName())) return getSelectedSNode(); if (dataId.equals(MPSDataKeys.NODES.getName())) return getSelectedSNodes(); if (dataId.equals(MPSDataKeys.MODEL.getName())) return getSelectedModel(); if (dataId.equals(MPSDataKeys.CONTEXT_MODEL.getName())) return getContextModel(); if (dataId.equals(MPSDataKeys.MODELS.getName())) return getSelectedModels(); if (dataId.equals(MPSDataKeys.MODULE.getName())) return getSelectedModule(); if (dataId.equals(MPSDataKeys.CONTEXT_MODULE.getName())) return getContextModule(); if (dataId.equals(MPSDataKeys.MODULES.getName())) return getSelectedModules(); if (dataId.equals(MPSDataKeys.VIRTUAL_PACKAGE.getName())) { List<String> selectedPackages = getSelectedPackages(); if (selectedPackages.size() != 1) return null; return selectedPackages.get(0); } if (dataId.equals(MPSDataKeys.VIRTUAL_PACKAGES.getName())) return getSelectedPackages(); if (dataId.equals(MPSDataKeys.NAMESPACE.getName())) { NamespaceTextNode selectedNamespaceNode = getSelectedTreeNode(NamespaceTextNode.class); if (selectedNamespaceNode != null) { return selectedNamespaceNode.getNamespace(); } return null; } if (dataId.equals(MPSDataKeys.OPERATION_CONTEXT.getName())) return getContextForSelection(); if (dataId.equals(MPSDataKeys.LOGICAL_VIEW_NODE.getName())) return getSelectedTreeNode(TreeNode.class); if (dataId.equals(MPSDataKeys.LOGICAL_VIEW_NODES.getName())) return getSelectedTreeNodes(TreeNode.class); if (dataId.equals(MPSDataKeys.LOGICAL_VIEW_SELECTION_SIZE.getName())) return getSelectionSize(); if (dataId.equals(MPSDataKeys.PLACE.getName())) return getPlace(); // PDK if (dataId.equals(PlatformDataKeys.COPY_PROVIDER.getName())) return new MyCopyProvider(); if (dataId.equals(PlatformDataKeys.PASTE_PROVIDER.getName())) return new MyPasteProvider(); if (dataId.equals(PlatformDataKeys.CUT_PROVIDER.getName())) return new MyCutProvider(); if (dataId.equals(PlatformDataKeys.VIRTUAL_FILE_ARRAY.getName())) return getSelectedFiles(); // not found return null; }
@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; }
public boolean canDeleteElement(DataContext dataContext) { final VirtualFile[] files = PlatformDataKeys.VIRTUAL_FILE_ARRAY.getData(dataContext); return files != null && files.length > 0; }