JAL-2987 tolerate null double values when formatting JTable
[jalview.git] / src / jalview / fts / core / DecimalFormatTableCellRenderer.java
index 3642721..2453742 100644 (file)
@@ -1,3 +1,23 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
 package jalview.fts.core;
 
 import java.awt.Component;
@@ -10,8 +30,7 @@ import javax.swing.table.DefaultTableCellRenderer;
 /**
  * The class to handle the formatting of the double values for JTable cells.
  */
-public class DecimalFormatTableCellRenderer extends
-        DefaultTableCellRenderer
+public class DecimalFormatTableCellRenderer extends DefaultTableCellRenderer
 {
   private DecimalFormat formatter;
 
@@ -27,8 +46,8 @@ public class DecimalFormatTableCellRenderer extends
       {
         significantFigureBuilder.append("0");
       }
-      formatter = new DecimalFormat(fractionFormater
-              + significantFigureBuilder.toString());
+      formatter = new DecimalFormat(
+              fractionFormater + significantFigureBuilder.toString());
     }
     else
     {
@@ -42,19 +61,17 @@ public class DecimalFormatTableCellRenderer extends
     super.setHorizontalAlignment(JLabel.RIGHT);
   }
 
+  /**
+   * Adapts the default method to ensure that double values are formatted for
+   * display
+   */
   @Override
-  public Component getTableCellRendererComponent(JTable table,
-          Object value, boolean isSelected, boolean hasFocus, int row,
-          int column)
+  public Component getTableCellRendererComponent(JTable table, Object value,
+          boolean isSelected, boolean hasFocus, int row, int column)
   {
-    if (value == null)
-    {
-      return null;
-    }
-
-    value = formatter.format(value);
+    value = value == null ? "" : formatter.format(value);
 
     return super.getTableCellRendererComponent(table, value, isSelected,
             hasFocus, row, column);
   }
-}
\ No newline at end of file
+}