Changeset 266

Show
Ignore:
Timestamp:
14-03-12 16:54:18 (2 years ago)
Author:
tim.te.beek@…
Message:

Only warn about failure to instantiate column values when input was non empty
Provide tooltips for table cells

Location:
trunk/alternative-table-import/src/main/java/nl/nbic/brs/alttableimport
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/alternative-table-import/src/main/java/nl/nbic/brs/alttableimport/models/ParsingTableModel.java

    r253 r266  
    156156                                        objects[i] = object; 
    157157 
    158                                         if (object == null) { 
     158                                        if (object == null && !value.isEmpty()) { 
    159159                                                // Report warnings in logger 
    160160                                                logger.warn(String.format("Could not create %1$s instance from \"%2$s\"", clazz.getSimpleName(), value)); 
  • trunk/alternative-table-import/src/main/java/nl/nbic/brs/alttableimport/views/PreviewPanel.java

    r251 r266  
    1313import javax.swing.GroupLayout.ParallelGroup; 
    1414import javax.swing.GroupLayout.SequentialGroup; 
     15import javax.swing.JComponent; 
    1516import javax.swing.JLabel; 
    1617import javax.swing.JPanel; 
     
    236237                Component component = renderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 
    237238 
     239                // Build up a tooltip 
     240                StringBuilder tooltipBuilder = new StringBuilder(); 
     241 
    238242                // Warn for null value by adding a red border 
    239                 if (value == null) 
     243                if (value == null) { 
    240244                        ((JLabel) component).setBorder(BorderFactory.createLineBorder(Color.red, 2)); 
     245                        tooltipBuilder.append("Value was empty\n"); 
     246                } 
    241247 
    242248                // For Integer & Double add i & d suffixes 
     
    247253                                String suffix = columnClass == Double.class ? " (d)" : " (i)"; 
    248254                                label.setText(componentText + suffix); 
     255                                tooltipBuilder.append("Value is interpreted as " + columnClass.getSimpleName() + "\n"); 
    249256                        } 
    250257                } 
     
    254261                Color bgColor = Color.black; 
    255262                ParserSettingsModel settings = tableModel.getSettings(); 
    256                 if (settings.getSourceAttributes().contains(column)) 
     263                if (settings.getSourceAttributes().contains(column)) { 
    257264                        bgColor = new Color(bgColor.getRGB() | new Color(255, 192, 192).getRGB()); 
    258                 if (settings.getEdgeAttributes().contains(column)) 
     265                        tooltipBuilder.append("Value will be added as Source attribute\n"); 
     266                } 
     267                if (settings.getEdgeAttributes().contains(column)) { 
    259268                        bgColor = new Color(bgColor.getRGB() | new Color(192, 255, 192).getRGB()); 
    260                 if (settings.getTargetAttributes().contains(column)) 
     269                        tooltipBuilder.append("Value will be added as Edge attribute\n"); 
     270                } 
     271                if (settings.getTargetAttributes().contains(column)) { 
    261272                        bgColor = new Color(bgColor.getRGB() | new Color(192, 192, 255).getRGB()); 
     273                        tooltipBuilder.append("Value will be added as Target attribute\n"); 
     274                } 
    262275                // Use a slightly darker hue if column is an attribute to all three, to distinguish from white 
    263276                if (bgColor.getRGB() == Color.white.getRGB()) 
     
    275288                component.setBackground(bgColor); 
    276289 
    277                 // TODO Provide a tooltip per cell to explain the colors and weird suffixes 
     290                // Provide a tooltip per cell to explain the border, colors and weird suffixes 
     291                String tooltip = tooltipBuilder.toString(); 
     292                if (!tooltip.isEmpty()) 
     293                        // Tooltip text can not handle new lines by default: We need wrap in html tags instead 
     294                        tooltip = String.format("<html>%1$s</html>", tooltip.trim().replace("\n", "<br>")); 
     295                else 
     296                        tooltip = null; 
     297                ((JComponent) component).setToolTipText(tooltip); 
    278298 
    279299                return component;