Changeset 224

Show
Ignore:
Timestamp:
05-03-12 19:05:55 (2 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 modified

Legend:

Unmodified
Added
Removed
  • 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) { 
  • 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                                }