JAL-2808 i18n, widget state settings
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Wed, 8 Nov 2017 15:46:56 +0000 (15:46 +0000)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Wed, 8 Nov 2017 15:46:56 +0000 (15:46 +0000)
resources/lang/Messages.properties
src/jalview/gui/FeatureColourChooser.java
src/jalview/gui/FeatureSettings.java

index 4626c39..75c002a 100644 (file)
@@ -1349,3 +1349,4 @@ label.attribute = Attribute
 label.colour_by_label = Colour by label
 label.variable_colour = Variable colour
 label.select_new_colour = Select new colour
+label.no_feature_attributes = No feature attributes found
index 6280a64..6c85e8c 100644 (file)
@@ -59,6 +59,12 @@ public class FeatureColourChooser extends JalviewDialog
 {
   private static final int MAX_TOOLTIP_LENGTH = 50;
 
+  private static int NO_COLOUR_OPTION = 0;
+
+  private static int MIN_COLOUR_OPTION = 1;
+
+  private static int MAX_COLOUR_OPTION = 2;
+
   private FeatureRenderer fr;
 
   private FeatureColourI cs;
@@ -190,6 +196,7 @@ public class FeatureColourChooser extends JalviewDialog
       }
     });
 
+    // todo move all threshold setup inside a method
     float mm[] = fr.getMinMax().get(theType)[0];
     min = mm[0];
     max = mm[1];
@@ -231,6 +238,8 @@ public class FeatureColourChooser extends JalviewDialog
     }
     minColour.setBackground(oldminColour = cs.getMinColour());
     maxColour.setBackground(oldmaxColour = cs.getMaxColour());
+    noColour = cs.getNoColour();
+
     adjusting = true;
 
     try
@@ -245,8 +254,6 @@ public class FeatureColourChooser extends JalviewDialog
     /*
      * set the initial state of options on screen
      */
-    thresholdIsMin.setSelected(!cs.isAutoScaled());
-
     if (cs.isColourByLabel())
     {
       if (cs.isColourByAttribute())
@@ -278,6 +285,19 @@ public class FeatureColourChooser extends JalviewDialog
       }
     }
 
+    if (noColour == null)
+    {
+      noValueCombo.setSelectedIndex(NO_COLOUR_OPTION);
+    }
+    else if (noColour.equals(oldminColour))
+    {
+      noValueCombo.setSelectedIndex(MIN_COLOUR_OPTION);
+    }
+    else if (noColour.equals(oldmaxColour))
+    {
+      noValueCombo.setSelectedIndex(MAX_COLOUR_OPTION);
+    }
+
     threshline = new GraphLine((max - min) / 2f, "Threshold", Color.black);
     threshline.value = cs.getThreshold();
 
@@ -555,21 +575,21 @@ public class FeatureColourChooser extends JalviewDialog
   }
 
   /**
-   * Action on user choice of no / min / max colour when there is no value to
-   * colour by
+   * Action on user choice of no / min / max colour to use when there is no
+   * value to colour by
    */
   protected void setNoValueColour()
   {
     int i = noValueCombo.getSelectedIndex();
-    if (i == 0)
+    if (i == NO_COLOUR_OPTION)
     {
       noColour = null;
     }
-    else if (i == 1)
+    else if (i == MIN_COLOUR_OPTION)
     {
       noColour = minColour.getBackground();
     }
-    else if (i == 2)
+    else if (i == MAX_COLOUR_OPTION)
     {
       noColour = maxColour.getBackground();
     }
@@ -798,6 +818,7 @@ public class FeatureColourChooser extends JalviewDialog
       maxColour.setForeground(oldmaxColour);
       minColour.setBackground(oldminColour);
       minColour.setForeground(oldminColour);
+      noColour = oldNoColour;
     }
 
     /*
index 4e4d2cb..01c40d5 100644 (file)
@@ -53,6 +53,7 @@ import java.awt.FlowLayout;
 import java.awt.Font;
 import java.awt.Graphics;
 import java.awt.GridLayout;
+import java.awt.LayoutManager;
 import java.awt.Rectangle;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
@@ -199,6 +200,9 @@ public class FeatureSettings extends JPanel
 
   private JTextArea filtersAsText;
 
+  // set white normally, black to debug layout
+  private Color debugBorderColour = Color.white;
+
   /**
    * Constructor
    * 
@@ -1371,6 +1375,7 @@ public class FeatureSettings extends JPanel
      */
     JPanel andOrPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
     andOrPanel.setBackground(Color.white);
+    andOrPanel.setBorder(BorderFactory.createLineBorder(debugBorderColour));
     andFilters = new JRadioButton("And");
     orFilters = new JRadioButton("Or");
     ActionListener actionListener = new ActionListener()
@@ -1397,8 +1402,9 @@ public class FeatureSettings extends JPanel
      * panel with filters - populated by refreshFiltersDisplay
      */
     chooseFiltersPanel = new JPanel();
-    chooseFiltersPanel.setLayout(new BoxLayout(chooseFiltersPanel,
-            BoxLayout.Y_AXIS));
+    LayoutManager box = new BoxLayout(chooseFiltersPanel,
+            BoxLayout.Y_AXIS);
+    chooseFiltersPanel.setLayout(box);
     filtersPanel.add(chooseFiltersPanel);
 
     /*
@@ -1454,12 +1460,12 @@ public class FeatureSettings extends JPanel
     }
     if (!found)
     {
-      filteredFeatureChoice // todo i18n
-              .addItem("No filterable feature attributes known");
+      filteredFeatureChoice.addItem(MessageManager
+              .getString("label.no_feature_attributes"));
+      filteredFeatureChoice.setEnabled(false);
     }
 
     filteredFeatureChoice.addItemListener(listener);
-
   }
 
   /**
@@ -1515,9 +1521,11 @@ public class FeatureSettings extends JPanel
               .getCondition();
       String pattern = filter.getMatcher().getPattern();
       JPanel row = addFilter(key, attNames, condition, pattern, filterIndex);
+      row.setBorder(BorderFactory.createLineBorder(debugBorderColour));
       chooseFiltersPanel.add(row);
       filterIndex++;
     }
+    // chooseFiltersPanel.add(Box.createVerticalGlue());
 
     filtersPane.validate();
     filtersPane.repaint();
@@ -1549,9 +1557,6 @@ public class FeatureSettings extends JPanel
     filterRow.setBackground(Color.white);
 
     /*
-     * inputs for attribute, condition, pattern
-     */
-    /*
      * drop-down choice of attribute, with description as a tooltip 
      * if we can obtain it
      */
@@ -1634,7 +1639,7 @@ public class FeatureSettings extends JPanel
      */
     if (pattern != null && pattern.trim().length() > 0)
     {
-      // todo: gif for - button
+      // todo: gif for button drawing '-' or 'x'
       JButton removeCondition = new BasicArrowButton(SwingConstants.WEST);
       removeCondition.setToolTipText(MessageManager
               .getString("label.delete_row"));