Changeset 224


Ignore:
Timestamp:
Mar 5, 2012, 7:05:55 PM (5 years ago)
Author:
tim.te.beek@…
Message:

Only show LoggerDialog? after network import if warningWasLogged
Similarly: Report instantiation errors to CyLogger? rather than statusbar

Location:
trunk/piqc-plugin/src/main/java/nl/nbic/brs/piqc/tableimport
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/piqc-plugin/src/main/java/nl/nbic/brs/piqc/tableimport/NetworkCreator.java

    r223 r224  
    121121                // We can't trigger it while we are writing error messages, as that leads to a concurrent modification error due
    122122                // to poor implementation inside the isVisible routine in LoggerDialog
    123                 if (Desktop.isDesktopSupported())
     123                if (warningWasLogged && Desktop.isDesktopSupported())
    124124                        SwingUtilities.invokeLater(new Runnable() {
    125125                                @Override
     
    144144        private static boolean addAdditionalAttributes(final ParsingTableModel tableModel, final CyAttributes cyAttributes, final SortedSet<Integer> additionalAttrIndices, final String identifier, final int row) {
    145145                boolean warningWasLogged = false;
     146                CyLogger logger = CyLogger.getLogger(PIQCPlugin.class);
    146147                for (int addiIdx : additionalAttrIndices) {
    147148                        String attrName = tableModel.getColumnName(addiIdx);
     
    154155                                if (value == null || oldValue == null || !value.equals(oldValue)) {
    155156                                        String message = String.format("Attribute assignment collision in \"%1$s\" for \"%2$s\": Old value \"%3$s\" was overwritten by \"%4$s\"", identifier, attrName, oldValue, value);
    156                                         CyLogger.getLogger(PIQCPlugin.class).warn(message);
     157                                        logger.warn(message);
    157158                                        warningWasLogged = true;
    158159                                }
  • trunk/piqc-plugin/src/main/java/nl/nbic/brs/piqc/tableimport/models/ParsingTableModel.java

    r219 r224  
    11package nl.nbic.brs.piqc.tableimport.models;
    22
     3import java.awt.Desktop;
    34import java.io.File;
    45import java.io.FileReader;
     
    1112
    1213import javax.swing.JOptionPane;
     14import javax.swing.SwingUtilities;
    1315import javax.swing.event.ChangeEvent;
    1416import javax.swing.event.ChangeListener;
     
    1921import au.com.bytecode.opencsv.CSVReader;
    2022import cytoscape.Cytoscape;
     23import cytoscape.dialogs.logger.LoggerDialog;
     24import cytoscape.logger.CyLogger;
     25
     26import nl.nbic.brs.piqc.PIQCPlugin;
    2127
    2228/**
     
    103109                        reader = new CSVReader(new FileReader(tableFile), delimiter, quote, escape);
    104110
     111                        // The logger to use for any warnings
     112                        CyLogger logger = CyLogger.getLogger(PIQCPlugin.class);
     113                        boolean warningLogged = false;
     114
    105115                        int startCountdown = settings.getStartFrom();
    106116                        String[] nextLine;
     
    136146                                        objects[i] = object;
    137147
    138                                         // TODO Possibly improve handling here, as toggling header lines can cause Constructor problems
    139 //                                      if (object == null)
    140 //                                              // Report error to the user in status bar, to prevent the 1000 pop-ups phenomenon
    141 //                                              Cytoscape.getDesktop().setStatusBarMsg("Could not create " + clazz.getSimpleName() + " instance from: " + value);
     148                                        if (object == null) {
     149                                                // Report warnings in logger
     150                                                logger.warn(String.format("Could not create %1$s instance from \"%2$s\"", clazz.getSimpleName(), value));
     151                                                warningLogged = true;
     152                                        }
    142153                                }
    143154
     
    145156                                rows.add(objects);
    146157                        }
     158
     159                        // Launch the LoggerDialog if warnings were logged during this conversion
     160                        if (warningLogged && Desktop.isDesktopSupported())
     161                                SwingUtilities.invokeLater(new Runnable() {
     162                                        @Override
     163                                        public void run() {
     164                                                LoggerDialog.getLoggerDialog().setVisible(true);
     165                                        }
     166                                });
    147167                }
    148168                catch (IOException ioe) {
Note: See TracChangeset for help on using the changeset viewer.