Search in sources :

Example 6 with Report

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

the class ImporterVNA method execute.

@Override
public boolean execute(ContainerLoader container) {
    this.container = container;
    this.report = new Report();
    LineNumberReader lineReader = ImportUtils.getTextReader(reader);
    try {
        importData(lineReader);
    } catch (Exception e) {
        report.logIssue(new Issue(e, Issue.Level.SEVERE));
    } finally {
        try {
            lineReader.close();
        } catch (IOException ex) {
        }
    }
    return !cancel;
}
Also used : Issue(org.gephi.io.importer.api.Issue) Report(org.gephi.io.importer.api.Report) IOException(java.io.IOException) IOException(java.io.IOException) LineNumberReader(java.io.LineNumberReader)

Example 7 with Report

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

the class DesktopImportControllerUI method finishImport.

private void finishImport(Container[] containers) {
    Report finalReport = new Report();
    for (Container container : containers) {
        if (container.verify()) {
            Report report = container.getReport();
            report.close();
            finalReport.append(report);
        } else {
        //TODO
        }
    }
    finalReport.close();
    //Report panel
    ReportPanel reportPanel = new ReportPanel();
    reportPanel.setData(finalReport, containers);
    DialogDescriptor dd = new DialogDescriptor(reportPanel, NbBundle.getMessage(DesktopImportControllerUI.class, "ReportPanel.title"));
    Object response = DialogDisplayer.getDefault().notify(dd);
    reportPanel.destroy();
    finalReport.clean();
    for (Container c : containers) {
        c.getReport().clean();
    }
    if (!response.equals(NotifyDescriptor.OK_OPTION)) {
        return;
    }
    final Processor processor = reportPanel.getProcessor();
    //Project
    Workspace workspace = null;
    ProjectController pc = Lookup.getDefault().lookup(ProjectController.class);
    ProjectControllerUI pcui = Lookup.getDefault().lookup(ProjectControllerUI.class);
    if (pc.getCurrentProject() == null) {
        pcui.newProject();
        workspace = pc.getCurrentWorkspace();
    }
    //Process
    final ProcessorUI pui = getProcessorUI(processor);
    final ValidResult validResult = new ValidResult();
    if (pui != null) {
        try {
            final JPanel panel = pui.getPanel();
            if (panel != null) {
                SwingUtilities.invokeAndWait(new Runnable() {

                    @Override
                    public void run() {
                        String title = NbBundle.getMessage(DesktopImportControllerUI.class, "DesktopImportControllerUI.processor.ui.dialog.title");
                        pui.setup(processor);
                        final DialogDescriptor dd2 = new DialogDescriptor(panel, title);
                        if (panel instanceof ValidationPanel) {
                            ValidationPanel vp = (ValidationPanel) panel;
                            vp.addChangeListener(new ChangeListener() {

                                @Override
                                public void stateChanged(ChangeEvent e) {
                                    dd2.setValid(!((ValidationPanel) e.getSource()).isProblem());
                                }
                            });
                            dd2.setValid(!vp.isProblem());
                        }
                        Object result = DialogDisplayer.getDefault().notify(dd2);
                        if (result.equals(NotifyDescriptor.CANCEL_OPTION) || result.equals(NotifyDescriptor.CLOSED_OPTION)) {
                            validResult.setResult(false);
                        } else {
                            //true
                            pui.unsetup();
                            validResult.setResult(true);
                        }
                    }
                });
            }
        } catch (InterruptedException ex) {
            Exceptions.printStackTrace(ex);
        } catch (InvocationTargetException ex) {
            Exceptions.printStackTrace(ex);
        }
    }
    if (validResult.isResult()) {
        controller.process(containers, processor, workspace);
        //StatusLine notify
        StatusDisplayer.getDefault().setStatusText(NbBundle.getMessage(DesktopImportControllerUI.class, "DesktopImportControllerUI.status.multiImportSuccess", containers.length));
    }
}
Also used : JPanel(javax.swing.JPanel) Processor(org.gephi.io.processor.spi.Processor) Report(org.gephi.io.importer.api.Report) ValidationPanel(org.netbeans.validation.api.ui.ValidationPanel) ProjectController(org.gephi.project.api.ProjectController) ProcessorUI(org.gephi.io.processor.spi.ProcessorUI) InvocationTargetException(java.lang.reflect.InvocationTargetException) Container(org.gephi.io.importer.api.Container) ChangeEvent(javax.swing.event.ChangeEvent) DialogDescriptor(org.openide.DialogDescriptor) FileObject(org.openide.filesystems.FileObject) ChangeListener(javax.swing.event.ChangeListener) Workspace(org.gephi.project.api.Workspace) ProjectControllerUI(org.gephi.desktop.project.api.ProjectControllerUI)

Example 8 with Report

use of org.gephi.io.importer.api.Report 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 9 with Report

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

the class ImportControllerImpl method importFile.

@Override
public Container importFile(Reader reader, FileImporter importer) {
    //Create Container
    final Container container = Lookup.getDefault().lookup(Container.Factory.class).newContainer();
    //Report
    Report report = new Report();
    container.setReport(report);
    importer.setReader(reader);
    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);
    } finally {
        try {
            reader.close();
        } catch (IOException 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) IOException(java.io.IOException) FileNotFoundException(java.io.FileNotFoundException)

Example 10 with Report

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

the class ImportControllerImpl method importWizard.

@Override
public Container importWizard(WizardImporter importer) {
    //Create Container
    final Container container = Lookup.getDefault().lookup(Container.Factory.class).newContainer();
    //Report
    Report report = new Report();
    container.setReport(report);
    try {
        if (importer.execute(container.getLoader())) {
            if (importer.getReport() != null) {
                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

Report (org.gephi.io.importer.api.Report)16 IOException (java.io.IOException)11 LineNumberReader (java.io.LineNumberReader)8 Container (org.gephi.io.importer.api.Container)5 FileNotFoundException (java.io.FileNotFoundException)3 JPanel (javax.swing.JPanel)2 ChangeEvent (javax.swing.event.ChangeEvent)2 ChangeListener (javax.swing.event.ChangeListener)2 ValidationPanel (org.netbeans.validation.api.ui.ValidationPanel)2 DialogDescriptor (org.openide.DialogDescriptor)2 InvocationTargetException (java.lang.reflect.InvocationTargetException)1 BigInteger (java.math.BigInteger)1 SQLException (java.sql.SQLException)1 Location (javax.xml.stream.Location)1 XMLInputFactory (javax.xml.stream.XMLInputFactory)1 XMLReporter (javax.xml.stream.XMLReporter)1 XMLStreamException (javax.xml.stream.XMLStreamException)1 ProjectControllerUI (org.gephi.desktop.project.api.ProjectControllerUI)1 GeneratorUI (org.gephi.io.generator.spi.GeneratorUI)1 Issue (org.gephi.io.importer.api.Issue)1