Merge branch 'develop' into features/JAL-3010ontologyFeatureSettings
[jalview.git] / src / jalview / gui / FeatureTypeSettings.java
index c71d878..7aef644 100644 (file)
@@ -67,7 +67,6 @@ import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JRadioButton;
 import javax.swing.JSlider;
-import javax.swing.JTabbedPane;
 import javax.swing.JTextField;
 import javax.swing.SwingConstants;
 import javax.swing.border.LineBorder;
@@ -112,7 +111,8 @@ public class FeatureTypeSettings extends JalviewDialog
   /*
    * FeatureRenderer holds colour scheme and filters for feature types
    */
-  private final FeatureRenderer fr; // todo refactor to allow interface type here
+  private final FeatureRenderer fr; // todo refactor to allow interface type
+                                    // here
 
   /*
    * the view panel to update when settings change
@@ -161,7 +161,12 @@ public class FeatureTypeSettings extends JalviewDialog
 
   private JRadioButton graduatedColour = new JRadioButton();
 
-  private JPanel singleColour = new JPanel();
+  /**
+   * colours and filters are shown in tabbed view or single content pane
+   */
+  JPanel coloursPanel, filtersPanel;
+
+  JPanel singleColour = new JPanel();
 
   private JPanel minColour = new JPanel();
 
@@ -205,13 +210,8 @@ public class FeatureTypeSettings extends JalviewDialog
    */
   private List<FeatureMatcherI> filters;
 
-  // set white normally, black to debug layout
-  private Color debugBorderColour = Color.white;
-
   private JPanel chooseFiltersPanel;
 
-  private JTabbedPane tabbedPane;
-
   /*
    * feature types present in Feature Renderer which are
    * sub-types of the one this editor is acting on
@@ -296,7 +296,7 @@ public class FeatureTypeSettings extends JalviewDialog
     String title = MessageManager
             .formatMessage("label.display_settings_for", new String[]
             { theType });
-    initDialogFrame(this, true, blocking, title, 600, 360);
+    initDialogFrame(this, true, blocking, title, 500, 500);
 
     waitForInput();
   }
@@ -443,8 +443,6 @@ public class FeatureTypeSettings extends JalviewDialog
   private void initialise()
   {
     this.setLayout(new BorderLayout());
-    tabbedPane = new JTabbedPane();
-    this.add(tabbedPane, BorderLayout.CENTER);
 
     /*
      * an ActionListener that applies colour changes
@@ -459,18 +457,16 @@ public class FeatureTypeSettings extends JalviewDialog
     };
 
     /*
-     * first tab: colour options
+     * first panel/tab: colour options
      */
     JPanel coloursPanel = initialiseColoursPanel();
-    tabbedPane.addTab(MessageManager.getString("action.colour"),
-            coloursPanel);
+    this.add(coloursPanel, BorderLayout.NORTH);
 
     /*
-     * second tab: filter options
+     * second panel/tab: filter options
      */
     JPanel filtersPanel = initialiseFiltersPanel();
-    tabbedPane.addTab(MessageManager.getString("label.filters"),
-            filtersPanel);
+    this.add(filtersPanel, BorderLayout.CENTER);
 
     JPanel okCancelPanel = initialiseOkCancelPanel();
 
@@ -776,7 +772,10 @@ public class FeatureTypeSettings extends JalviewDialog
   private JPanel initialiseColoursPanel()
   {
     JPanel colourByPanel = new JPanel();
+    colourByPanel.setBackground(Color.white);
     colourByPanel.setLayout(new BoxLayout(colourByPanel, BoxLayout.Y_AXIS));
+    JvSwingUtils.createTitledBorder(colourByPanel,
+            MessageManager.getString("action.colour"), true);
 
     /*
      * option to apply colour to sub-types as well (if there are any)
@@ -792,8 +791,8 @@ public class FeatureTypeSettings extends JalviewDialog
      */
     JPanel simpleColourPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
     simpleColourPanel.setBackground(Color.white);
-    JvSwingUtils.createTitledBorder(simpleColourPanel,
-            MessageManager.getString("label.simple"), true);
+//    JvSwingUtils.createTitledBorder(simpleColourPanel,
+//            MessageManager.getString("label.simple"), true);
     colourByPanel.add(simpleColourPanel);
 
     simpleColour = new JRadioButton(
@@ -811,7 +810,7 @@ public class FeatureTypeSettings extends JalviewDialog
       }
 
     });
-    
+
     singleColour.setFont(JvSwingUtils.getLabelFont());
     singleColour.setBorder(BorderFactory.createLineBorder(Color.black));
     singleColour.setPreferredSize(new Dimension(40, 20));
@@ -938,9 +937,9 @@ public class FeatureTypeSettings extends JalviewDialog
   }
 
   /**
-   * Constructs and sets the selected colour options as the colour for the feature
-   * type, and repaints the alignment, and optionally the Overview and/or
-   * structure viewer if open
+   * Constructs and sets the selected colour options as the colour for the
+   * feature type, and repaints the alignment, and optionally the Overview
+   * and/or structure viewer if open
    * 
    * @param updateStructsAndOverview
    */
@@ -1185,8 +1184,8 @@ public class FeatureTypeSettings extends JalviewDialog
 
   /**
    * Converts the slider value to its absolute value by dividing by the
-   * scaleFactor. Rounding errors are squashed by forcing min/max of slider range
-   * to the actual min/max of feature score range
+   * scaleFactor. Rounding errors are squashed by forcing min/max of slider
+   * range to the actual min/max of feature score range
    * 
    * @return
    */
@@ -1209,11 +1208,11 @@ public class FeatureTypeSettings extends JalviewDialog
   }
 
   /**
-   * A helper method to build the drop-down choice of attributes for a feature. If
-   * 'withRange' is true, then Score, and any attributes with a min-max range, are
-   * added. If 'withText' is true, Label and any known attributes are added. This
-   * allows 'categorical numerical' attributes e.g. codon position to be coloured
-   * by text.
+   * A helper method to build the drop-down choice of attributes for a feature.
+   * If 'withRange' is true, then Score, and any attributes with a min-max
+   * range, are added. If 'withText' is true, Label and any known attributes are
+   * added. This allows 'categorical numerical' attributes e.g. codon position
+   * to be coloured by text.
    * <p>
    * Where metadata is available with a description for an attribute, that is
    * added as a tooltip.
@@ -1322,10 +1321,13 @@ public class FeatureTypeSettings extends JalviewDialog
   {
     JPanel andOrPanel = new JPanel(new BorderLayout());
     andOrPanel.setBackground(Color.white);
-    JPanel panel1 = new JPanel(new FlowLayout(FlowLayout.LEFT));
-    andOrPanel.add(panel1, BorderLayout.WEST);
-    panel1.setBackground(Color.white);
-    panel1.setBorder(BorderFactory.createLineBorder(debugBorderColour));
+//<<<<<<< HEAD
+//    JPanel panel1 = new JPanel(new FlowLayout(FlowLayout.LEFT));
+//    andOrPanel.add(panel1, BorderLayout.WEST);
+//    panel1.setBackground(Color.white);
+//    panel1.setBorder(BorderFactory.createLineBorder(debugBorderColour));
+//=======
+//>>>>>>> refs/heads/develop
     andFilters = new JRadioButton(MessageManager.getString("label.and"));
     orFilters = new JRadioButton(MessageManager.getString("label.or"));
     ActionListener actionListener = new ActionListener()
@@ -1342,10 +1344,10 @@ public class FeatureTypeSettings extends JalviewDialog
     andOr.add(andFilters);
     andOr.add(orFilters);
     andFilters.setSelected(true);
-    panel1.add(
+    andOrPanel.add(
             new JLabel(MessageManager.getString("label.join_conditions")));
-    panel1.add(andFilters);
-    panel1.add(orFilters);
+    andOrPanel.add(andFilters);
+    andOrPanel.add(orFilters);
 
     return andOrPanel;
   }
@@ -1427,7 +1429,6 @@ public class FeatureTypeSettings extends JalviewDialog
     for (FeatureMatcherI filter : filters)
     {
       JPanel row = addFilter(filter, attNames, filterIndex);
-      row.setBorder(BorderFactory.createLineBorder(debugBorderColour));
       chooseFiltersPanel.add(row);
       filterIndex++;
     }
@@ -1439,7 +1440,8 @@ public class FeatureTypeSettings extends JalviewDialog
   /**
    * A helper method that constructs a row (panel) with one filter condition:
    * <ul>
-   * <li>a drop-down list of Label, Score and attribute names to choose from</li>
+   * <li>a drop-down list of Label, Score and attribute names to choose
+   * from</li>
    * <li>a drop-down list of conditions to choose from</li>
    * <li>a text field for input of a match pattern</li>
    * <li>optionally, a 'remove' button</li>
@@ -1637,8 +1639,8 @@ public class FeatureTypeSettings extends JalviewDialog
    * @param selectedCondition
    * @param patternField
    */
-  private void setNumericHints(String attName,
-          Condition selectedCondition, JTextField patternField)
+  private void setNumericHints(String attName, Condition selectedCondition,
+          JTextField patternField)
   {
     patternField.setToolTipText("");
 
@@ -1672,11 +1674,11 @@ public class FeatureTypeSettings extends JalviewDialog
   }
 
   /**
-   * Populates the drop-down list of comparison conditions for the given attribute
-   * name. The conditions added depend on the datatype of the attribute values.
-   * The supplied condition is set as the selected item in the list, provided it
-   * is in the list. If the pattern is now invalid (non-numeric pattern for a
-   * numeric condition), it is cleared.
+   * Populates the drop-down list of comparison conditions for the given
+   * attribute name. The conditions added depend on the datatype of the
+   * attribute values. The supplied condition is set as the selected item in the
+   * list, provided it is in the list. If the pattern is now invalid
+   * (non-numeric pattern for a numeric condition), it is cleared.
    * 
    * @param attName
    * @param cond
@@ -1755,12 +1757,12 @@ public class FeatureTypeSettings extends JalviewDialog
   }
 
   /**
-   * Answers true unless a numeric condition has been selected with a non-numeric
-   * value. Sets the value field to RED with a tooltip if in error.
+   * Answers true unless a numeric condition has been selected with a
+   * non-numeric value. Sets the value field to RED with a tooltip if in error.
    * <p>
-   * If the pattern is expected but is empty, this method returns false, but does
-   * not mark the field as invalid. This supports selecting an attribute for a new
-   * condition before a match pattern has been entered.
+   * If the pattern is expected but is empty, this method returns false, but
+   * does not mark the field as invalid. This supports selecting an attribute
+   * for a new condition before a match pattern has been entered.
    * 
    * @param value
    * @param condCombo
@@ -1806,14 +1808,15 @@ public class FeatureTypeSettings extends JalviewDialog
 
   /**
    * Constructs a filter condition from the given input fields, and replaces the
-   * condition at filterIndex with the new one. Does nothing if the pattern field
-   * is blank (unless the match condition is one that doesn't require a pattern,
-   * e.g. 'Is present'). Answers true if the filter was updated, else false.
+   * condition at filterIndex with the new one. Does nothing if the pattern
+   * field is blank (unless the match condition is one that doesn't require a
+   * pattern, e.g. 'Is present'). Answers true if the filter was updated, else
+   * false.
    * <p>
    * This method may update the tooltip on the filter value field to show the
-   * value range, if a numeric condition is selected. This ensures the tooltip is
-   * updated when a numeric valued attribute is chosen on the last 'add a filter'
-   * row.
+   * value range, if a numeric condition is selected. This ensures the tooltip
+   * is updated when a numeric valued attribute is chosen on the last 'add a
+   * filter' row.
    * 
    * @param attCombo
    * @param condCombo
@@ -1861,17 +1864,6 @@ public class FeatureTypeSettings extends JalviewDialog
   }
 
   /**
-   * Makes the dialog visible, at the Feature Colour tab or at the Filters tab
-   * 
-   * @param coloursTab
-   */
-  public void showTab(boolean coloursTab)
-  {
-    setVisible(true);
-    tabbedPane.setSelectedIndex(coloursTab ? 0 : 1);
-  }
-
-  /**
    * Action on any change to feature filtering, namely
    * <ul>
    * <li>change of selected attribute</li>
@@ -1879,8 +1871,8 @@ public class FeatureTypeSettings extends JalviewDialog
    * <li>change of match pattern</li>
    * <li>removal of a condition</li>
    * </ul>
-   * The inputs are parsed into a combined filter and this is set for the feature
-   * type, and the alignment redrawn.
+   * The inputs are parsed into a combined filter and this is set for the
+   * feature type, and the alignment redrawn.
    */
   protected void filtersChanged()
   {