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 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 boolean canDeleteElement(DataContext dataContext) { final VirtualFile[] files = PlatformDataKeys.VIRTUAL_FILE_ARRAY.getData(dataContext); return files != null && files.length > 0; }