Example usage for com.intellij.openapi.ui DialogBuilder showModal

List of usage examples for com.intellij.openapi.ui DialogBuilder showModal

Introduction

In this page you can find the example usage for com.intellij.openapi.ui DialogBuilder showModal.

Prototype

public void showModal(boolean modal) 

Source Link

Usage

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();
}