Search in sources :

Example 6 with LongTask

use of org.gephi.utils.longtask.spi.LongTask in project gephi by gephi.

the class DesktopImportControllerUI method importDatabase.

@Override
public void importDatabase(Database database, final DatabaseImporter importer) {
    try {
        if (importer == null) {
            NotifyDescriptor.Message msg = new NotifyDescriptor.Message(NbBundle.getMessage(DesktopImportControllerUI.class, "DesktopImportControllerUI.error_no_matching_db_importer"), NotifyDescriptor.WARNING_MESSAGE);
            DialogDisplayer.getDefault().notify(msg);
            return;
        }
        ImporterUI ui = controller.getUI(importer);
        if (ui != null) {
            String title = NbBundle.getMessage(DesktopImportControllerUI.class, "DesktopImportControllerUI.database.ui.dialog.title");
            JPanel panel = ui.getPanel();
            ui.setup(new DatabaseImporter[] { importer });
            final DialogDescriptor dd = new DialogDescriptor(panel, title);
            if (panel instanceof ValidationPanel) {
                ValidationPanel vp = (ValidationPanel) panel;
                vp.addChangeListener(new ChangeListener() {

                    @Override
                    public void stateChanged(ChangeEvent e) {
                        dd.setValid(!((ValidationPanel) e.getSource()).isProblem());
                    }
                });
            }
            Object result = DialogDisplayer.getDefault().notify(dd);
            if (result.equals(NotifyDescriptor.CANCEL_OPTION) || result.equals(NotifyDescriptor.CLOSED_OPTION)) {
                ui.unsetup(false);
                return;
            }
            ui.unsetup(true);
            if (database == null) {
                database = importer.getDatabase();
            }
        }
        LongTask task = null;
        if (importer instanceof LongTask) {
            task = (LongTask) importer;
        }
        //Execute task
        final String containerSource = database != null ? database.getName() : (ui != null ? ui.getDisplayName() : importer.getClass().getSimpleName());
        final Database db = database;
        String taskName = NbBundle.getMessage(DesktopImportControllerUI.class, "DesktopImportControllerUI.taskName", containerSource);
        executor.execute(task, new Runnable() {

            @Override
            public void run() {
                try {
                    Container container = controller.importDatabase(db, importer);
                    if (container != null) {
                        container.setSource(containerSource);
                        finishImport(container);
                    }
                } catch (Exception ex) {
                    throw new RuntimeException(ex);
                }
            }
        }, taskName, errorHandler);
    } catch (Exception ex) {
        Logger.getLogger("").log(Level.WARNING, "", ex);
    }
}
Also used : ImporterUI(org.gephi.io.importer.spi.ImporterUI) JPanel(javax.swing.JPanel) ValidationPanel(org.netbeans.validation.api.ui.ValidationPanel) InvocationTargetException(java.lang.reflect.InvocationTargetException) IOException(java.io.IOException) NotifyDescriptor(org.openide.NotifyDescriptor) Container(org.gephi.io.importer.api.Container) ChangeEvent(javax.swing.event.ChangeEvent) LongTask(org.gephi.utils.longtask.spi.LongTask) Database(org.gephi.io.importer.api.Database) DialogDescriptor(org.openide.DialogDescriptor) ChangeListener(javax.swing.event.ChangeListener) FileObject(org.openide.filesystems.FileObject)

Example 7 with LongTask

use of org.gephi.utils.longtask.spi.LongTask in project gephi by gephi.

the class StatisticsControllerUIImpl method execute.

@Override
public void execute(final Statistics statistics) {
    StatisticsController controller = Lookup.getDefault().lookup(StatisticsController.class);
    final StatisticsUI[] uis = getUI(statistics);
    for (StatisticsUI s : uis) {
        s.setup(statistics);
    }
    model.setRunning(statistics, true);
    controller.execute(statistics, new LongTaskListener() {

        @Override
        public void taskFinished(LongTask task) {
            model.setRunning(statistics, false);
            for (StatisticsUI s : uis) {
                model.addResult(s);
                s.unsetup();
            }
        }
    });
}
Also used : StatisticsController(org.gephi.statistics.api.StatisticsController) LongTaskListener(org.gephi.utils.longtask.api.LongTaskListener) LongTask(org.gephi.utils.longtask.spi.LongTask) StatisticsUI(org.gephi.statistics.spi.StatisticsUI)

Example 8 with LongTask

use of org.gephi.utils.longtask.spi.LongTask in project gephi by gephi.

the class StatisticsControllerUIImpl method execute.

@Override
public void execute(final Statistics statistics, final LongTaskListener listener) {
    StatisticsController controller = Lookup.getDefault().lookup(StatisticsController.class);
    final StatisticsUI[] uis = getUI(statistics);
    for (StatisticsUI s : uis) {
        s.setup(statistics);
    }
    model.setRunning(statistics, true);
    controller.execute(statistics, new LongTaskListener() {

        @Override
        public void taskFinished(LongTask task) {
            model.setRunning(statistics, false);
            for (StatisticsUI s : uis) {
                model.addResult(s);
                s.unsetup();
            }
            if (listener != null) {
                listener.taskFinished(statistics instanceof LongTask ? (LongTask) statistics : null);
            }
        }
    });
}
Also used : StatisticsController(org.gephi.statistics.api.StatisticsController) LongTaskListener(org.gephi.utils.longtask.api.LongTaskListener) LongTask(org.gephi.utils.longtask.spi.LongTask) StatisticsUI(org.gephi.statistics.spi.StatisticsUI)

Example 9 with LongTask

use of org.gephi.utils.longtask.spi.LongTask in project gephi by gephi.

the class StatisticsFrontEnd method run.

private void run() {
    GraphController graphController = Lookup.getDefault().lookup(GraphController.class);
    GraphModel graphModel = graphController.getGraphModel();
    //Create Statistics
    StatisticsController controller = Lookup.getDefault().lookup(StatisticsController.class);
    StatisticsControllerUI controllerUI = Lookup.getDefault().lookup(StatisticsControllerUI.class);
    StatisticsBuilder builder = controller.getBuilder(statisticsUI.getStatisticsClass());
    currentStatistics = builder.getStatistics();
    if (currentStatistics != null) {
        if (currentStatistics instanceof DynamicStatistics && !graphModel.isDynamic()) {
            DialogDisplayer.getDefault().notifyLater(new NotifyDescriptor.Message(NbBundle.getMessage(StatisticsFrontEnd.class, "StatisticsFrontEnd.notDynamicGraph"), NotifyDescriptor.WARNING_MESSAGE));
            return;
        }
        LongTaskListener listener = new LongTaskListener() {

            @Override
            public void taskFinished(LongTask task) {
                showReport();
            }
        };
        JPanel settingsPanel = statisticsUI.getSettingsPanel();
        if (currentStatistics instanceof DynamicStatistics) {
            DynamicSettingsPanel dynamicPanel = new DynamicSettingsPanel();
            statisticsUI.setup(currentStatistics);
            dynamicPanel.setup((DynamicStatistics) currentStatistics);
            JPanel dynamicSettingsPanel = DynamicSettingsPanel.createCounpoundPanel(dynamicPanel, settingsPanel);
            final DialogDescriptor dd = new DialogDescriptor(dynamicSettingsPanel, NbBundle.getMessage(StatisticsTopComponent.class, "StatisticsFrontEnd.settingsPanel.title", builder.getName()));
            if (dynamicSettingsPanel instanceof ValidationPanel) {
                ValidationPanel vp = (ValidationPanel) dynamicSettingsPanel;
                vp.addChangeListener(new ChangeListener() {

                    @Override
                    public void stateChanged(ChangeEvent e) {
                        dd.setValid(!((ValidationPanel) e.getSource()).isProblem());
                    }
                });
            }
            if (DialogDisplayer.getDefault().notify(dd).equals(NotifyDescriptor.OK_OPTION)) {
                dynamicPanel.unsetup((DynamicStatistics) currentStatistics);
                statisticsUI.unsetup();
                controllerUI.execute(currentStatistics, listener);
            }
        } else if (settingsPanel != null) {
            statisticsUI.setup(currentStatistics);
            final DialogDescriptor dd = new DialogDescriptor(settingsPanel, NbBundle.getMessage(StatisticsTopComponent.class, "StatisticsFrontEnd.settingsPanel.title", builder.getName()));
            if (settingsPanel instanceof ValidationPanel) {
                ValidationPanel vp = (ValidationPanel) settingsPanel;
                vp.addChangeListener(new ChangeListener() {

                    @Override
                    public void stateChanged(ChangeEvent e) {
                        dd.setValid(!((ValidationPanel) e.getSource()).isProblem());
                    }
                });
            }
            if (DialogDisplayer.getDefault().notify(dd).equals(NotifyDescriptor.OK_OPTION)) {
                statisticsUI.unsetup();
                controllerUI.execute(currentStatistics, listener);
            }
        } else {
            statisticsUI.setup(currentStatistics);
            controllerUI.execute(currentStatistics, listener);
        }
    }
}
Also used : JPanel(javax.swing.JPanel) LongTaskListener(org.gephi.utils.longtask.api.LongTaskListener) DynamicStatistics(org.gephi.statistics.spi.DynamicStatistics) StatisticsBuilder(org.gephi.statistics.spi.StatisticsBuilder) ValidationPanel(org.netbeans.validation.api.ui.ValidationPanel) NotifyDescriptor(org.openide.NotifyDescriptor) StatisticsController(org.gephi.statistics.api.StatisticsController) LongTask(org.gephi.utils.longtask.spi.LongTask) ChangeEvent(javax.swing.event.ChangeEvent) GraphModel(org.gephi.graph.api.GraphModel) DialogDescriptor(org.openide.DialogDescriptor) ChangeListener(javax.swing.event.ChangeListener) GraphController(org.gephi.graph.api.GraphController) StatisticsControllerUI(org.gephi.desktop.statistics.api.StatisticsControllerUI)

Example 10 with LongTask

use of org.gephi.utils.longtask.spi.LongTask in project gephi by gephi.

the class ProjectControllerUIImpl method loadProject.

private void loadProject(File file) {
    lockProjectActions();
    final Runnable loadTask = controller.openProject(file);
    final String fileName = file.getName();
    Runnable loadRunnable = new Runnable() {

        @Override
        public void run() {
            loadTask.run();
            SwingUtilities.invokeLater(new Runnable() {

                @Override
                public void run() {
                    JFrame frame = (JFrame) WindowManager.getDefault().getMainWindow();
                    String title = frame.getTitle() + " - " + fileName;
                    frame.setTitle(title);
                }
            });
            //Status line
            StatusDisplayer.getDefault().setStatusText(NbBundle.getMessage(ProjectControllerUIImpl.class, "ProjectControllerUI.status.opened", fileName));
        }
    };
    if (loadTask instanceof LongTask) {
        longTaskExecutor.execute((LongTask) loadTask, loadRunnable);
    } else {
        longTaskExecutor.execute(null, loadRunnable);
    }
    //Save MRU
    MostRecentFiles mostRecentFiles = Lookup.getDefault().lookup(MostRecentFiles.class);
    mostRecentFiles.addFile(file.getAbsolutePath());
}
Also used : MostRecentFiles(org.gephi.desktop.mrufiles.api.MostRecentFiles) LongTask(org.gephi.utils.longtask.spi.LongTask) JFrame(javax.swing.JFrame)

Aggregations

LongTask (org.gephi.utils.longtask.spi.LongTask)18 JPanel (javax.swing.JPanel)7 ChangeEvent (javax.swing.event.ChangeEvent)7 ChangeListener (javax.swing.event.ChangeListener)7 ValidationPanel (org.netbeans.validation.api.ui.ValidationPanel)7 DialogDescriptor (org.openide.DialogDescriptor)7 NotifyDescriptor (org.openide.NotifyDescriptor)7 IOException (java.io.IOException)6 InvocationTargetException (java.lang.reflect.InvocationTargetException)6 Container (org.gephi.io.importer.api.Container)6 ImporterUI (org.gephi.io.importer.spi.ImporterUI)6 FileObject (org.openide.filesystems.FileObject)6 MostRecentFiles (org.gephi.desktop.mrufiles.api.MostRecentFiles)4 FileImporter (org.gephi.io.importer.spi.FileImporter)4 PreviewController (org.gephi.preview.api.PreviewController)3 StatisticsController (org.gephi.statistics.api.StatisticsController)3 LongTaskListener (org.gephi.utils.longtask.api.LongTaskListener)3 FileInputStream (java.io.FileInputStream)2 InputStream (java.io.InputStream)2 GZIPInputStream (java.util.zip.GZIPInputStream)2