Search in sources :

Example 11 with Container

use of org.gephi.io.importer.api.Container in project gephi by gephi.

the class DesktopImportControllerUI method importWizard.

@Override
public void importWizard(final WizardImporter 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;
        }
        String containerSource = NbBundle.getMessage(DesktopImportControllerUI.class, "DesktopImportControllerUI.wizardSource", "");
        ImporterUI ui = controller.getUI(importer);
        if (ui != null) {
            String title = NbBundle.getMessage(DesktopImportControllerUI.class, "DesktopImportControllerUI.wizard.ui.dialog.title", ui.getDisplayName());
            JPanel panel = ui.getPanel();
            ui.setup(new WizardImporter[] { 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);
            containerSource = ui.getDisplayName();
        }
        ImporterWizardUI wizardUI = controller.getWizardUI(importer);
        if (wizardUI != null) {
            containerSource = wizardUI.getCategory() + ":" + wizardUI.getDisplayName();
        }
        LongTask task = null;
        if (importer instanceof LongTask) {
            task = (LongTask) importer;
        }
        //Execute task
        final String source = containerSource;
        String taskName = NbBundle.getMessage(DesktopImportControllerUI.class, "DesktopImportControllerUI.taskName", containerSource);
        executor.execute(task, new Runnable() {

            @Override
            public void run() {
                try {
                    Container container = controller.importWizard(importer);
                    if (container != null) {
                        container.setSource(source);
                        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) ImporterWizardUI(org.gephi.io.importer.spi.ImporterWizardUI) 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) DialogDescriptor(org.openide.DialogDescriptor) ChangeListener(javax.swing.event.ChangeListener) FileObject(org.openide.filesystems.FileObject)

Example 12 with Container

use of org.gephi.io.importer.api.Container in project gephi by gephi.

the class ImportControllerImpl method importFile.

@Override
public Container importFile(File file) throws FileNotFoundException {
    FileObject fileObject = FileUtil.toFileObject(file);
    if (fileObject != null) {
        //Unzip and return content file
        fileObject = getArchivedFile(fileObject);
        FileImporterBuilder builder = getMatchingImporter(fileObject);
        if (fileObject != null && builder != null) {
            Container c = importFile(fileObject.getInputStream(), builder.buildImporter());
            return c;
        }
    }
    return null;
}
Also used : FileImporterBuilder(org.gephi.io.importer.spi.FileImporterBuilder) Container(org.gephi.io.importer.api.Container) FileObject(org.openide.filesystems.FileObject)

Example 13 with Container

use of org.gephi.io.importer.api.Container in project gephi by gephi.

the class ImportControllerImpl method process.

@Override
public void process(Container[] containers, Processor processor, Workspace workspace) {
    ContainerUnloader[] unloaders = new ContainerUnloader[containers.length];
    int i = 0;
    for (Container container : containers) {
        container.closeLoader();
        if (container.getUnloader().isAutoScale()) {
            Scaler scaler = Lookup.getDefault().lookup(Scaler.class);
            if (scaler != null) {
                scaler.doScale(container);
            }
        }
        unloaders[i++] = container.getUnloader();
    }
    processor.setContainers(unloaders);
    processor.setWorkspace(workspace);
    processor.process();
}
Also used : ContainerUnloader(org.gephi.io.importer.api.ContainerUnloader) Container(org.gephi.io.importer.api.Container) Scaler(org.gephi.io.processor.spi.Scaler)

Example 14 with Container

use of org.gephi.io.importer.api.Container in project gephi by gephi.

the class ImportControllerImpl method importDatabase.

@Override
public Container importDatabase(Database database, DatabaseImporter importer) {
    //Create Container
    final Container container = Lookup.getDefault().lookup(Container.Factory.class).newContainer();
    //Report
    Report report = new Report();
    container.setReport(report);
    importer.setDatabase(database);
    try {
        if (importer.execute(container.getLoader())) {
            if (importer.getReport() != null && importer.getReport() != report) {
                report.append(importer.getReport());
            }
            report.close();
            return container;
        }
    } catch (RuntimeException ex) {
        throw ex;
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
    return null;
}
Also used : Container(org.gephi.io.importer.api.Container) Report(org.gephi.io.importer.api.Report) IOException(java.io.IOException) FileNotFoundException(java.io.FileNotFoundException)

Aggregations

Container (org.gephi.io.importer.api.Container)14 IOException (java.io.IOException)9 JPanel (javax.swing.JPanel)8 ChangeEvent (javax.swing.event.ChangeEvent)8 ChangeListener (javax.swing.event.ChangeListener)8 ValidationPanel (org.netbeans.validation.api.ui.ValidationPanel)8 DialogDescriptor (org.openide.DialogDescriptor)8 FileObject (org.openide.filesystems.FileObject)8 InvocationTargetException (java.lang.reflect.InvocationTargetException)7 ImporterUI (org.gephi.io.importer.spi.ImporterUI)6 LongTask (org.gephi.utils.longtask.spi.LongTask)6 NotifyDescriptor (org.openide.NotifyDescriptor)6 Report (org.gephi.io.importer.api.Report)5 FileImporter (org.gephi.io.importer.spi.FileImporter)4 FileNotFoundException (java.io.FileNotFoundException)3 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