Search in sources :

Example 6 with ValidationPanel

use of org.netbeans.validation.api.ui.ValidationPanel in project gephi by gephi.

the class DesktopGeneratorController method generate.

@Override
public void generate(final Generator generator) {
    String title = generator.getName();
    GeneratorUI ui = generator.getUI();
    if (ui != null) {
        ui.setup(generator);
        JPanel panel = ui.getPanel();
        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 != NotifyDescriptor.OK_OPTION) {
            return;
        }
        ui.unsetup();
    }
    final Container container = Lookup.getDefault().lookup(Container.Factory.class).newContainer();
    container.setSource("" + generator.getName());
    container.setReport(new Report());
    String taskname = NbBundle.getMessage(DesktopGeneratorController.class, "DesktopGeneratorController.taskname", generator.getName());
    //Error handler
    LongTaskErrorHandler errorHandler = new LongTaskErrorHandler() {

        @Override
        public void fatalError(Throwable t) {
            Logger.getLogger("").log(Level.SEVERE, "", t.getCause() != null ? t.getCause() : t);
        }
    };
    //Execute
    executor.execute(generator, new Runnable() {

        @Override
        public void run() {
            generator.generate(container.getLoader());
            finishGenerate(container);
        }
    }, taskname, errorHandler);
}
Also used : JPanel(javax.swing.JPanel) Report(org.gephi.io.importer.api.Report) ValidationPanel(org.netbeans.validation.api.ui.ValidationPanel) GeneratorUI(org.gephi.io.generator.spi.GeneratorUI) Container(org.gephi.io.importer.api.Container) ChangeEvent(javax.swing.event.ChangeEvent) DialogDescriptor(org.openide.DialogDescriptor) ChangeListener(javax.swing.event.ChangeListener) LongTaskErrorHandler(org.gephi.utils.longtask.api.LongTaskErrorHandler)

Example 7 with ValidationPanel

use of org.netbeans.validation.api.ui.ValidationPanel 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 8 with ValidationPanel

use of org.netbeans.validation.api.ui.ValidationPanel in project gephi by gephi.

the class RandomGraphPanel method createValidationPanel.

public static ValidationPanel createValidationPanel(RandomGraphPanel innerPanel) {
    ValidationPanel validationPanel = new ValidationPanel();
    if (innerPanel == null) {
        innerPanel = new RandomGraphPanel();
    }
    validationPanel.setInnerComponent(innerPanel);
    ValidationGroup group = validationPanel.getValidationGroup();
    //Node field
    group.add(innerPanel.nodeField, Validators.REQUIRE_NON_EMPTY_STRING, new PositiveNumberValidator());
    //Edge field
    group.add(innerPanel.edgeField, Validators.REQUIRE_NON_EMPTY_STRING, new BetweenZeroAndOneValidator());
    return validationPanel;
}
Also used : PositiveNumberValidator(org.gephi.lib.validation.PositiveNumberValidator) ValidationGroup(org.netbeans.validation.api.ui.ValidationGroup) BetweenZeroAndOneValidator(org.gephi.lib.validation.BetweenZeroAndOneValidator) ValidationPanel(org.netbeans.validation.api.ui.ValidationPanel)

Example 9 with ValidationPanel

use of org.netbeans.validation.api.ui.ValidationPanel in project gephi by gephi.

the class UIExporterGMLPanel method createValidationPanel.

public static ValidationPanel createValidationPanel(UIExporterGMLPanel innerPanel) {
    ValidationPanel validationPanel = new ValidationPanel();
    validationPanel.setInnerComponent(innerPanel);
    ValidationGroup group = validationPanel.getValidationGroup();
    innerPanel.validate(group);
    return validationPanel;
}
Also used : ValidationGroup(org.netbeans.validation.api.ui.ValidationGroup) ValidationPanel(org.netbeans.validation.api.ui.ValidationPanel)

Example 10 with ValidationPanel

use of org.netbeans.validation.api.ui.ValidationPanel in project gephi-plugins-bootcamp by gephi.

the class EqualValuesMergeStrategyUI method getSettingsPanel.

@Override
public JPanel getSettingsPanel() {
    //Create a validation panel:
    ValidationPanel validationPanel = new ValidationPanel();
    validationPanel.setInnerComponent(this);
    ValidationGroup group = validationPanel.getValidationGroup();
    //ColumnTitleValidator is in UI utils module
    group.add(titleTextField, new ColumnTitleValidator(table));
    return validationPanel;
}
Also used : ColumnTitleValidator(org.gephi.ui.utils.ColumnTitleValidator) ValidationGroup(org.netbeans.validation.api.ui.ValidationGroup) ValidationPanel(org.netbeans.validation.api.ui.ValidationPanel)

Aggregations

ValidationPanel (org.netbeans.validation.api.ui.ValidationPanel)32 ValidationGroup (org.netbeans.validation.api.ui.ValidationGroup)21 ChangeEvent (javax.swing.event.ChangeEvent)13 ChangeListener (javax.swing.event.ChangeListener)13 JPanel (javax.swing.JPanel)10 ColumnTitleValidator (org.gephi.ui.utils.ColumnTitleValidator)9 DialogDescriptor (org.openide.DialogDescriptor)9 Container (org.gephi.io.importer.api.Container)8 InvocationTargetException (java.lang.reflect.InvocationTargetException)7 LongTask (org.gephi.utils.longtask.spi.LongTask)7 NotifyDescriptor (org.openide.NotifyDescriptor)7 FileObject (org.openide.filesystems.FileObject)7 IOException (java.io.IOException)6 ImporterUI (org.gephi.io.importer.spi.ImporterUI)6 FileImporter (org.gephi.io.importer.spi.FileImporter)4 FileInputStream (java.io.FileInputStream)2 InputStream (java.io.InputStream)2 GZIPInputStream (java.util.zip.GZIPInputStream)2 BZip2CompressorInputStream (org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream)2 MostRecentFiles (org.gephi.desktop.mrufiles.api.MostRecentFiles)2