Search in sources :

Example 1 with DynamicStatistics

use of org.gephi.statistics.spi.DynamicStatistics in project gephi by gephi.

the class StatisticsControllerImpl method execute.

@Override
public void execute(Statistics statistics) {
    if (statistics instanceof DynamicStatistics) {
        executeDynamic((DynamicStatistics) statistics, null);
    } else {
        GraphController graphController = Lookup.getDefault().lookup(GraphController.class);
        GraphModel graphModel = graphController.getGraphModel();
        statistics.execute(graphModel);
        model.addReport(statistics);
    }
}
Also used : GraphModel(org.gephi.graph.api.GraphModel) DynamicStatistics(org.gephi.statistics.spi.DynamicStatistics) GraphController(org.gephi.graph.api.GraphController)

Example 2 with DynamicStatistics

use of org.gephi.statistics.spi.DynamicStatistics 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 3 with DynamicStatistics

use of org.gephi.statistics.spi.DynamicStatistics in project gephi by gephi.

the class StatisticsControllerImpl method execute.

@Override
public void execute(final Statistics statistics, LongTaskListener listener) {
    StatisticsBuilder builder = getBuilder(statistics.getClass());
    LongTaskExecutor executor = new LongTaskExecutor(true, "Statistics " + builder.getName(), 10);
    if (listener != null) {
        executor.setLongTaskListener(listener);
    }
    if (statistics instanceof DynamicStatistics) {
        final DynamicLongTask dynamicLongTask = new DynamicLongTask((DynamicStatistics) statistics);
        executor.execute(dynamicLongTask, new Runnable() {

            @Override
            public void run() {
                executeDynamic((DynamicStatistics) statistics, dynamicLongTask);
            }
        }, builder.getName(), null);
    } else {
        LongTask task = statistics instanceof LongTask ? (LongTask) statistics : null;
        executor.execute(task, new Runnable() {

            @Override
            public void run() {
                execute(statistics);
            }
        }, builder.getName(), null);
    }
}
Also used : LongTask(org.gephi.utils.longtask.spi.LongTask) DynamicStatistics(org.gephi.statistics.spi.DynamicStatistics) LongTaskExecutor(org.gephi.utils.longtask.api.LongTaskExecutor) StatisticsBuilder(org.gephi.statistics.spi.StatisticsBuilder)

Aggregations

DynamicStatistics (org.gephi.statistics.spi.DynamicStatistics)3 GraphController (org.gephi.graph.api.GraphController)2 GraphModel (org.gephi.graph.api.GraphModel)2 StatisticsBuilder (org.gephi.statistics.spi.StatisticsBuilder)2 LongTask (org.gephi.utils.longtask.spi.LongTask)2 JPanel (javax.swing.JPanel)1 ChangeEvent (javax.swing.event.ChangeEvent)1 ChangeListener (javax.swing.event.ChangeListener)1 StatisticsControllerUI (org.gephi.desktop.statistics.api.StatisticsControllerUI)1 StatisticsController (org.gephi.statistics.api.StatisticsController)1 LongTaskExecutor (org.gephi.utils.longtask.api.LongTaskExecutor)1 LongTaskListener (org.gephi.utils.longtask.api.LongTaskListener)1 ValidationPanel (org.netbeans.validation.api.ui.ValidationPanel)1 DialogDescriptor (org.openide.DialogDescriptor)1 NotifyDescriptor (org.openide.NotifyDescriptor)1