List of usage examples for com.intellij.openapi.ui DialogBuilder showModal
public void showModal(boolean modal)
From source file:com.machak.idea.plugins.actions.CopyHippoSharedFiles.java
License:Apache License
private void showProjectRootPopup(final String basePath, final File tomcatDirectory) { final DialogBuilder dialogBuilder = new DialogBuilder(project); dialogBuilder.setTitle("Create project file:"); final JPanel simplePanel = new JPanel(); simplePanel.add(new JLabel("Following path will be used as project base:\n" + basePath)); dialogBuilder.setCenterPanel(simplePanel); final Action acceptAction = new AbstractAction() { private static final long serialVersionUID = 1L; @Override/*from www . ja v a 2 s . co m*/ public void actionPerformed(final ActionEvent e) { // check if file exists and overwrite: final String filePath = tomcatDirectory.getAbsolutePath() + File.separator + "bin" + File.separator + PROJECT_FILE; createAndWriteFile(filePath, basePath); dialogBuilder.getDialogWrapper().close(DialogWrapper.OK_EXIT_CODE); } }; acceptAction.putValue(Action.NAME, "OK"); dialogBuilder.addAction(acceptAction); dialogBuilder.addCancelAction(); dialogBuilder.showModal(true); }
From source file:com.machak.idea.plugins.actions.CopyHippoSharedFiles.java
License:Apache License
private void processJars(final ApplicationComponent component, final String tomcatSharedDirectory, final File sharedDirectory, final Map<String, String> depMap) { final FilenameFilter fileFilter = createJarsFilter(component, depMap); final File[] jars = sharedDirectory.listFiles(fileFilter); if (!component.isShowDialog()) { for (File jar : jars) { deleteFile(jar);//from w w w. j av a2 s . com } copyJars(tomcatSharedDirectory, depMap); return; } final int length = jars.length; myFiles = new String[length]; myCheckedMarks = new boolean[length]; for (int i = 0; i < length; i++) { final File file = jars[i]; myFiles[i] = file.getAbsolutePath(); myCheckedMarks[i] = true; } final TableModel model = new MyTableModel(); final JBTable myTable = new JBTable(); myTable.setPreferredSize(new Dimension(700, 400)); myTable.setModel(model); final TableColumnModel columnModel = myTable.getColumnModel(); columnModel.getColumn(CHECKED_COLUMN).setCellRenderer(new BooleanTableCellRenderer()); columnModel.getColumn(CHECKED_COLUMN).setPreferredWidth(40); columnModel.getColumn(FILE_COLUMN).setPreferredWidth(660); final DialogBuilder dialogBuilder = new DialogBuilder(project); dialogBuilder.setTitle("Files to delete"); dialogBuilder.setCenterPanel(myTable); final Action deleteAction = new AbstractAction() { private static final long serialVersionUID = 1L; @Override public void actionPerformed(final ActionEvent e) { final int length = model.getRowCount(); for (int i = 0; i < length; i++) { final Boolean checked = (Boolean) model.getValueAt(i, CHECKED_COLUMN); if (checked) { final File jar = jars[i]; deleteFile(jar); } } // do copy: copyJars(tomcatSharedDirectory, depMap); dialogBuilder.getDialogWrapper().close(DialogWrapper.OK_EXIT_CODE); } }; deleteAction.putValue(Action.NAME, "OK"); dialogBuilder.addAction(deleteAction); dialogBuilder.addCancelAction(); dialogBuilder.showModal(true); }
From source file:com.machak.idea.plugins.tomcat.actions.DeleteTomcatWebapps.java
License:Apache License
private void showDeletePopup(final String webappsDirectory, final File webappDir) { final String absolutePath = webappDir.getAbsolutePath(); final DialogBuilder dialogBuilder = new DialogBuilder(project); dialogBuilder.setTitle("Create project file:"); final JPanel simplePanel = new JPanel(); simplePanel.add(new JLabel("All directories within: " + absolutePath + " will be deleted")); dialogBuilder.setCenterPanel(simplePanel); final Action acceptAction = new AbstractAction() { private static final long serialVersionUID = 1L; @Override//from ww w . ja va2 s . c o m public void actionPerformed(final ActionEvent e) { deleteFiles(webappsDirectory, webappDir); dialogBuilder.getDialogWrapper().close(DialogWrapper.OK_EXIT_CODE); } }; acceptAction.putValue(Action.NAME, "OK"); dialogBuilder.addAction(acceptAction); dialogBuilder.addCancelAction(); dialogBuilder.showModal(true); }
From source file:com.urswolfer.intellij.plugin.gerrit.ui.diff.CustomizableFrameDiffTool.java
License:Apache License
static void showDiffDialog(DialogBuilder builder, Collection hints) { builder.showModal(!hints.contains(DiffTool.HINT_SHOW_NOT_MODAL_DIALOG)); }
From source file:org.mvnsearch.snippet.plugin.actions.CreateSnippetFileAction.java
License:Apache License
public void actionPerformed(AnActionEvent event) { final Project project = event.getData(PlatformDataKeys.PROJECT); final PsiElement psiElement = event.getData(LangDataKeys.PSI_ELEMENT); if (psiElement instanceof PsiDirectory) { final SnippetFileCreationForm form = new SnippetFileCreationForm(); final DialogBuilder builder = new DialogBuilder(project); builder.setTitle("Create file from snippet"); builder.setCenterPanel(form.getRootPanel()); builder.setOkOperation(new Runnable() { public void run() { String result = generateFile((PsiDirectory) psiElement, form.getMnemonic(), form.getFileName(), project);/*from w w w . jav a 2 s . c om*/ if (StringUtil.isEmpty(result)) { //create successfully builder.getDialogWrapper().close(1); } else { //failed builder.setTitle(result); } } }); builder.showModal(true); } }
From source file:org.mvnsearch.snippet.plugin.actions.EditSnippetAction.java
License:Apache License
/** * create or save snippet//from w w w . j av a 2s . c o m * * @param event event */ public void actionPerformed(final AnActionEvent event) { Project project = event.getData(PlatformDataKeys.PROJECT); final SearchPanelForm searchPanelForm = getSearchPanelForm(event); final Snippet currentSnippet = searchPanelForm.getCurrentSnippet(); editForm.fillInfo(searchPanelForm.getSelectedAgent(), currentSnippet); //new snippet for edit final Snippet newSnippet = currentSnippet == null ? searchPanelForm.getSelectedAgent().constructNewSnippet() : currentSnippet; final DialogBuilder builder = new DialogBuilder(project); builder.setTitle("Snippet Edit(All Field Required)"); builder.setCenterPanel(editForm.getRootPanel()); builder.setOkActionEnabled(true); builder.setOkOperation(new Runnable() { public void run() { if (editForm.isInvalid()) { builder.setTitle("Please fill requried fields!"); return; } builder.getDialogWrapper().close(1); editForm.fillSnippet(newSnippet); searchPanelForm.getSelectedAgent().updateSnippet(newSnippet); getSearchPanelForm(event).refreshSnippetInfo(); } }); builder.showModal(true); }
From source file:org.onehippo.intellij.freemarker.FreemarkerEditor.java
License:Apache License
private void showCreatePopup(final String fileName, final String templateRoot, final String content, final Session session) { final DialogBuilder dialogBuilder = new DialogBuilder(project); dialogBuilder.setTitle("Create new template node:"); final JPanel simplePanel = new JPanel(); simplePanel.add(new JLabel("Node doesn't exist, should we create one? (" + templateRoot + fileName + ')')); dialogBuilder.setCenterPanel(simplePanel); final Action acceptAction = new AbstractAction() { private static final long serialVersionUID = 1L; @Override/*from www .j a va 2s . c om*/ public void actionPerformed(final ActionEvent e) { try { final String root = templateRoot.endsWith("/") ? templateRoot.substring(0, templateRoot.length() - 1) : templateRoot; // check if site node exists: if (!session.nodeExists(root)) { final String configRoot = "/hst:hst/hst:configurations/"; final String newSiteName = (root.substring(configRoot.length())) .replaceAll("/hst:templates/|/hst:templates", ""); final Node configRootNode = session.getNode(configRoot); final Node siteNode = configRootNode.addNode(newSiteName, "hst:configuration"); siteNode.addMixin("mix:referenceable"); siteNode.addMixin("mix:simpleVersionable"); siteNode.addMixin("mix:versionable"); final Node templateNode = siteNode.addNode("hst:templates", "hst:templates"); templateNode.addMixin("mix:referenceable"); } final Node node = session.getNode(root); final String nodeName = fileName.startsWith(File.separator) ? fileName.substring(1, fileName.length()) : fileName; final Node templateNode = node.addNode(nodeName, "hst:template"); templateNode.setProperty("hst:script", content); session.save(); } catch (RepositoryException e1) { FreemarkerEditor.error("Error writing template, " + e1.getMessage(), project); try { if (session != null) { session.refresh(false); } } catch (RepositoryException e2) { // } } dialogBuilder.getDialogWrapper().close(DialogWrapper.OK_EXIT_CODE); } }; acceptAction.putValue(Action.NAME, "OK"); dialogBuilder.addAction(acceptAction); dialogBuilder.addCancelAction(); dialogBuilder.showModal(true); }
From source file:org.onehippo.intellij.groovy.GroovyEditor.java
License:Apache License
private void showCreatePopup(final String fileName, final String templateRoot, final String content, final Session session) { final DialogBuilder dialogBuilder = new DialogBuilder(project); dialogBuilder.setTitle("Create new template node:"); final JPanel simplePanel = new JPanel(); simplePanel.add(new JLabel("Node doesn't exist, should we create one? (" + templateRoot + fileName + ')')); dialogBuilder.setCenterPanel(simplePanel); final Action acceptAction = new AbstractAction() { private static final long serialVersionUID = 1L; @Override/* w ww . j a v a 2s . c om*/ public void actionPerformed(final ActionEvent e) { try { final String root = templateRoot.endsWith("/") ? templateRoot.substring(0, templateRoot.length() - 1) : templateRoot; // check if site node exists: if (!session.nodeExists(root)) { final String configRoot = "/hst:hst/hst:configurations/"; final String newSiteName = (root.substring(configRoot.length())) .replaceAll("/hst:templates/|/hst:templates", ""); final Node configRootNode = session.getNode(configRoot); final Node siteNode = configRootNode.addNode(newSiteName, "hst:configuration"); siteNode.addMixin("mix:referenceable"); siteNode.addMixin("mix:simpleVersionable"); siteNode.addMixin("mix:versionable"); final Node templateNode = siteNode.addNode("hst:templates", "hst:templates"); templateNode.addMixin("mix:referenceable"); } final Node node = session.getNode(root); final String nodeName = fileName.startsWith(File.separator) ? fileName.substring(1, fileName.length()) : fileName; final Node templateNode = node.addNode(nodeName, "hst:template"); templateNode.setProperty("hst:script", content); session.save(); } catch (RepositoryException e1) { GroovyEditor.error("Error writing template, " + e1.getMessage(), project); try { session.refresh(false); } catch (RepositoryException e2) { // } } dialogBuilder.getDialogWrapper().close(DialogWrapper.OK_EXIT_CODE); } }; acceptAction.putValue(Action.NAME, "OK"); dialogBuilder.addAction(acceptAction); dialogBuilder.addCancelAction(); dialogBuilder.showModal(true); }
From source file:org.twodividedbyzero.idea.findbugs.actions.ExportBugCollection.java
License:Open Source License
@Override void actionPerformedImpl(@NotNull final AnActionEvent e, @NotNull final Project project, @Nullable final Module module, @NotNull final FindBugsPlugin plugin, @NotNull final ToolWindow toolWindow, @NotNull final FindBugsState state, @NotNull final FindBugsPreferences preferences) { final BugCollection bugCollection = IdeaUtilImpl.getPluginComponent(project).getBugCollection(); if (bugCollection == null) { FindBugsPluginImpl.showToolWindowNotifier(project, "No bug collection", MessageType.WARNING); return;/*from w w w .j av a 2 s . c o m*/ } String exportDir = preferences.getProperty(FindBugsPreferences.EXPORT_BASE_DIR, FindBugsPluginConstants.DEFAULT_EXPORT_DIR); boolean exportXml = preferences.getBooleanProperty(FindBugsPreferences.EXPORT_AS_XML, true); boolean exportHtml = preferences.getBooleanProperty(FindBugsPreferences.EXPORT_AS_HTML, true); boolean exportBoth = exportXml && preferences.getBooleanProperty(FindBugsPreferences.EXPORT_AS_HTML, true); if (exportDir.isEmpty() || !exportXml && !exportBoth && !exportHtml) { //Ask the user for a export directory final DialogBuilder dialogBuilder = new DialogBuilder(project); dialogBuilder.addOkAction(); dialogBuilder.addCancelAction(); dialogBuilder.setTitle("Select directory to save the exported file"); final ExportFileDialog exportDialog = new ExportFileDialog(exportDir, dialogBuilder); dialogBuilder.showModal(true); if (dialogBuilder.getDialogWrapper().getExitCode() == DialogWrapper.CANCEL_EXIT_CODE) { return; } final String path = exportDialog.getText(); if (path == null || path.trim().isEmpty()) { return; } exportXml = exportDialog.isXml() != exportXml ? exportDialog.isXml() : exportXml; exportHtml = exportDialog.isXml() == exportHtml ? !exportDialog.isXml() : exportHtml; exportBoth = exportDialog.isBoth() != exportBoth ? exportDialog.isBoth() : exportBoth; exportDir = path.trim(); } //Create a unique file name by using time stamp final Date currentDate = new Date(); final String timestamp = PATTERN.matcher(new SimpleDateFormat().format(currentDate)).replaceAll("_"); final String fileName = File.separatorChar + FINDBUGS_RESULT_PREFIX + timestamp; final boolean finalExportXml = exportXml; final boolean finalExportHtml = exportHtml; final boolean finalExportBoth = exportBoth; final String finalExportDir = exportDir + File.separatorChar + project.getName(); //Create a task to export the bug collection to html final Task exportTask = new BackgroundableTask(project, "Exporting Findbugs Result", false) { private ProgressIndicator _indicator; @edu.umd.cs.findbugs.annotations.SuppressFBWarnings({ "REC_CATCH_EXCEPTION" }) @SuppressWarnings({ "IOResourceOpenedButNotSafelyClosed" }) @Override public void run(@NotNull final ProgressIndicator indicator) { indicator.setText2(finalExportDir + File.separatorChar + fileName); setProgressIndicator(indicator); Writer writer = null; try { createDirIfAbsent(project, finalExportDir); String exportDir = finalExportDir; final boolean createSubDir = preferences .getBooleanProperty(FindBugsPreferences.EXPORT_CREATE_ARCHIVE_DIR, true); if (createSubDir) { exportDir = finalExportDir + File.separatorChar + new SimpleDateFormat("yyyy_MM_dd", Locale.ENGLISH).format(currentDate); createDirIfAbsent(project, exportDir); } bugCollection.setWithMessages(true); final String exportDirAndFilenameWithoutSuffix = exportDir + fileName; if (finalExportXml && !finalExportBoth) { exportXml(bugCollection, exportDirAndFilenameWithoutSuffix + FINDBUGS_RESULT_RAW_SUFFIX); } else if (finalExportBoth) { exportXml(bugCollection, exportDirAndFilenameWithoutSuffix + FINDBUGS_RESULT_RAW_SUFFIX); writer = exportHtml(bugCollection, exportDirAndFilenameWithoutSuffix + FINDBUGS_RESULT_HTML_SUFFIX); } else if (finalExportHtml) { writer = exportHtml(bugCollection, exportDirAndFilenameWithoutSuffix + FINDBUGS_RESULT_HTML_SUFFIX); } bugCollection.setWithMessages(false); showToolWindowNotifier(project, "Exported bug collection to " + exportDir + '.', MessageType.INFO); if ((!finalExportXml || finalExportBoth) && preferences.getBooleanProperty(FindBugsPreferences.EXPORT_OPEN_BROWSER, true)) { BrowserUtil.browse(new File(exportDirAndFilenameWithoutSuffix + FINDBUGS_RESULT_HTML_SUFFIX) .getAbsolutePath()); } } catch (final IOException e1) { final String message = "Export failed"; showToolWindowNotifier(project, message, MessageType.ERROR); LOGGER.error(message, e1); } catch (final TransformerConfigurationException e1) { final String message = "Transform to html failed due to configuration problems."; showToolWindowNotifier(project, message, MessageType.ERROR); LOGGER.error(message, e1); } catch (final TransformerException e1) { final String message = "Transformation to exportXml failed."; showToolWindowNotifier(project, message, MessageType.ERROR); LOGGER.error(message, e1); } catch (final Exception e) { showToolWindowNotifier(project, e.getMessage(), MessageType.ERROR); LOGGER.error(e.getMessage(), e); } finally { IoUtil.safeClose(writer); Thread.currentThread().interrupt(); } } @Override public void setProgressIndicator(@NotNull final ProgressIndicator indicator) { _indicator = indicator; } @Override public ProgressIndicator getProgressIndicator() { return _indicator; } }; final File file = new File(exportDir + fileName); if (file.getParentFile() == null) { showToolWindowNotifier(project, "Exporting bug collection failed. not a directory. " + exportDir + fileName + '.', MessageType.ERROR); } else { exportTask.queue(); } }
From source file:org.twodividedbyzero.idea.findbugs.actions.ImportBugCollection.java
License:Open Source License
@SuppressFBWarnings("SIC_INNER_SHOULD_BE_STATIC_ANON") @Override/* www . ja va 2s .com*/ void actionPerformedImpl(@NotNull final AnActionEvent e, @NotNull final Project project, @Nullable final Module module, @NotNull final FindBugsPlugin plugin, @NotNull final ToolWindow toolWindow, @NotNull final FindBugsState state, @NotNull final FindBugsPreferences preferences) { final DialogBuilder dialogBuilder = new DialogBuilder(project); dialogBuilder.addOkAction(); dialogBuilder.addCancelAction(); dialogBuilder.setTitle("Import previous saved bug collection xml"); final String exportDir = preferences.getProperty(FindBugsPreferences.EXPORT_BASE_DIR, FindBugsPluginConstants.DEFAULT_EXPORT_DIR) + File.separatorChar + project.getName(); final ImportFileDialog importFileDialog = new ImportFileDialog(exportDir, dialogBuilder); dialogBuilder.showModal(true); if (dialogBuilder.getDialogWrapper().getExitCode() == DialogWrapper.CANCEL_EXIT_CODE) { return; } final String fileToImport = importFileDialog.getText(); if (fileToImport == null || fileToImport.trim().isEmpty()) { return; } final BugCollection bugCollection = plugin.getToolWindowPanel().getBugCollection(); if (bugCollection != null && !bugCollection.getCollection().isEmpty()) { //noinspection DialogTitleCapitalization final int result = Messages.showYesNoDialog(project, "Current result in the 'Found bugs view' will be deleted. Continue ?", "Delete found bugs?", Messages.getQuestionIcon()); if (result == 1) { return; } } final AtomicBoolean taskCanceled = new AtomicBoolean(); final TransferToEDTQueue<Runnable> transferToEDTQueue = new TransferToEDTQueue<Runnable>( "Add New Bug Instance", new Processor<Runnable>() { @Override public boolean process(Runnable runnable) { runnable.run(); return true; } }, new Condition<Object>() { @Override public boolean value(Object o) { return project.isDisposed() || taskCanceled.get(); } }, 500); //Create a task to import the bug collection from XML final BackgroundableTask task = new BackgroundableTask(project, "Importing Findbugs Result", true) { private ProgressIndicator _indicator; @SuppressWarnings({ "IOResourceOpenedButNotSafelyClosed" }) @Override public void run(@NotNull final ProgressIndicator indicator) { MessageBusManager.publishAnalysisStartedToEDT(project); setProgressIndicator(indicator); indicator.setFraction(0.0); indicator.setIndeterminate(false); indicator.setText(fileToImport); SortedBugCollection importBugCollection = null; try { final SortedBugCollection bugCollection = new SortedBugCollection(); final FindBugsPlugin pluginComponent = IdeaUtilImpl.getPluginComponent(project); importBugCollection = bugCollection.createEmptyCollectionWithMetadata(); final edu.umd.cs.findbugs.Project importProject = importBugCollection.getProject(); importProject.setGuiCallback(new PluginGuiCallback(pluginComponent)); importBugCollection.setDoNotUseCloud(true); for (final Plugin plugin : Plugin.getAllPlugins()) { importProject.setPluginStatusTrinary(plugin.getPluginId(), !preferences.isPluginDisabled(plugin.getPluginId())); } importBugCollection.readXML(fileToImport); final ProjectStats projectStats = importBugCollection.getProjectStats(); int bugCount = 0; for (final BugInstance bugInstance : importBugCollection) { if (indicator.isCanceled()) { taskCanceled.set(true); MessageBusManager.publishAnalysisAbortedToEDT(project); Thread.currentThread().interrupt(); return; } final Integer bugCounter = bugCount++; final double fraction = bugCounter.doubleValue() / projectStats.getTotalBugs(); indicator.setFraction(fraction); indicator.setText2("Importing bug '" + bugCount + "' of '" + projectStats.getTotalBugs() + "' - " + bugInstance.getMessageWithoutPrefix()); /** * Guarantee thread visibility *one* time. */ final AtomicReference<BugInstance> bugInstanceRef = New.atomicRef(bugInstance); final AtomicReference<ProjectStats> projectStatsRef = New.atomicRef(projectStats); transferToEDTQueue.offer(new Runnable() { /** * Invoked by EDT. */ @Override public void run() { MessageBusManager.publishNewBugInstance(project, bugInstanceRef.get(), projectStatsRef.get()); } }); } EventDispatchThreadHelper.invokeLater(new Runnable() { public void run() { transferToEDTQueue.drain(); FindBugsPluginImpl.showToolWindowNotifier(project, "Imported bug collection from '" + fileToImport + "'.", MessageType.INFO); } }); importBugCollection.setDoNotUseCloud(false); importBugCollection.setTimestamp(System.currentTimeMillis()); importBugCollection.reinitializeCloud(); } catch (final IOException e1) { MessageBusManager.publishAnalysisAbortedToEDT(project); final String message = "Import failed"; showToolWindowNotifier(project, message, MessageType.ERROR); LOGGER.error(message, e1); } catch (final DocumentException e1) { MessageBusManager.publishAnalysisAbortedToEDT(project); final String message = "Import failed"; showToolWindowNotifier(project, message, MessageType.ERROR); LOGGER.error(message, e1); } finally { MessageBusManager.publishAnalysisFinishedToEDT(project, importBugCollection, null, null); Thread.currentThread().interrupt(); } } @Override public void setProgressIndicator(@NotNull final ProgressIndicator indicator) { _indicator = indicator; } @Override public ProgressIndicator getProgressIndicator() { return _indicator; } }; task.setCancelText("Cancel"); task.asBackgroundable(); task.queue(); }