JAL-2527 Added overview prefs - don't get picked up by overview yet
authorkiramt <k.mourao@dundee.ac.uk>
Tue, 29 Aug 2017 13:55:53 +0000 (14:55 +0100)
committerkiramt <k.mourao@dundee.ac.uk>
Tue, 29 Aug 2017 13:55:53 +0000 (14:55 +0100)
resources/lang/Messages.properties
resources/lang/Messages_es.properties
src/jalview/gui/Preferences.java
src/jalview/jbgui/GPreferences.java

index 9c6f75b..754bc03 100644 (file)
@@ -1313,8 +1313,9 @@ label.show_experimental_tip = Enable any new and currently 'experimental' featur
 label.warning_hidden = Warning: {0} {1} is currently hidden
 label.overview_settings = Overview settings
 label.ov_legacy_gap = Use legacy gap colouring (gaps are white)
-label.gap_colour = Gap colour
+label.gap_colour = Gap colour:
 label.ov_show_hide_default = Show hidden regions when opening overview
-label.hidden_colour = Hidden colour
-label.select_gap_colour = Gap colour
-label.select_hidden_colour = Hidden colour
+label.hidden_colour = Hidden colour:
+label.select_gap_colour = Select gap colour
+label.select_hidden_colour = Select hidden colour
+label.overview = Overview
\ No newline at end of file
index 9fb2fc5..e8187f5 100644 (file)
@@ -1313,8 +1313,9 @@ label.show_experimental_tip = Habilitar funciones nuevas y experimentales (ver L
 label.warning_hidden = Advertencia: {0} {1} está actualmente oculto
 label.overview_settings = Overview settings
 label.ov_legacy_gap = Use legacy gap colouring (gaps are white)
-label.gap_colour = Gap colour
+label.gap_colour = Gap colour:
 label.ov_show_hide_default = Show hidden regions when opening overview
-label.hidden_colour = Hidden colour
-label.select_gap_colour = Gap colour
-label.select_hidden_colour = Hidden colour
\ No newline at end of file
+label.hidden_colour = Hidden colour:
+label.select_gap_colour = Select gap colour
+label.select_hidden_colour = Select hidden colour
+label.overview = Overview
\ No newline at end of file
index 6fdaa0d..e8dc07c 100755 (executable)
@@ -54,7 +54,6 @@ import java.util.ArrayList;
 import java.util.List;
 
 import javax.help.HelpSetException;
-import javax.swing.JButton;
 import javax.swing.JColorChooser;
 import javax.swing.JFileChooser;
 import javax.swing.JInternalFrame;
@@ -110,6 +109,10 @@ public class Preferences extends GPreferences
 
   public static final String SHOW_OCCUPANCY = "SHOW_OCCUPANCY";
 
+  public static final String SHOW_OV_HIDDEN_AT_START = "SHOW_OV_HIDDEN_AT_START";
+
+  public static final String USE_LEGACY_GAP = "USE_LEGACY_GAP";
+
   private static final int MIN_FONT_SIZE = 1;
 
   private static final int MAX_FONT_SIZE = 30;
@@ -308,10 +311,19 @@ public class Preferences extends GPreferences
             Cache.getDefaultColour("ANNOTATIONCOLOUR_MIN", Color.orange));
     maxColour.setBackground(
             Cache.getDefaultColour("ANNOTATIONCOLOUR_MAX", Color.red));
+
+    /*
+     * Set overview panel defaults
+     */
     gapColour.setBackground(
             Cache.getDefaultColour("GAP_COLOUR", Color.lightGray));
     hiddenColour.setBackground(
             Cache.getDefaultColour("HIDDEN_COLOUR", Color.darkGray));
+    useLegacyGap.setSelected(Cache.getDefault("USE_LEGACY_GAP", false));
+    gapLabel.setEnabled(!useLegacyGap.isSelected());
+    gapColour.setEnabled(!useLegacyGap.isSelected());
+    showHiddenAtStart
+            .setSelected(Cache.getDefault("SHOW_OV_HIDDEN_AT_START", true));
 
     /*
      * Set Structure tab defaults.
@@ -636,6 +648,16 @@ public class Preferences extends GPreferences
             maxColour.getBackground());
 
     /*
+     * Save Overview settings
+     */
+    Cache.setColourProperty("GAP_COLOUR", gapColour.getBackground());
+    Cache.setColourProperty("HIDDEN_COLOUR", hiddenColour.getBackground());
+    Cache.applicationProperties.setProperty(USE_LEGACY_GAP,
+            Boolean.toString(useLegacyGap.isSelected()));
+    Cache.applicationProperties.setProperty(SHOW_OV_HIDDEN_AT_START,
+            Boolean.toString(showHiddenAtStart.isSelected()));
+
+    /*
      * Save Structure settings
      */
     Cache.applicationProperties.setProperty(ADD_TEMPFACT_ANN,
@@ -1040,29 +1062,32 @@ public class Preferences extends GPreferences
   }
 
   @Override
-  public void gapColour_actionPerformed(JButton btn)
+  public void gapColour_actionPerformed(JPanel gap)
   {
-    Color col = JColorChooser.showDialog(this,
-            MessageManager.getString("label.select_gap_colour"),
-            gapColour.getForeground());
-    if (col != null)
+    if (!useLegacyGap.isSelected())
     {
-      btn.setForeground(col);
+      Color col = JColorChooser.showDialog(this,
+              MessageManager.getString("label.select_gap_colour"),
+              gapColour.getBackground());
+      if (col != null)
+      {
+        gap.setBackground(col);
+      }
+      gap.repaint();
     }
-    btn.repaint();
   }
 
   @Override
-  public void hiddenColour_actionPerformed(JButton btn)
+  public void hiddenColour_actionPerformed(JPanel hidden)
   {
     Color col = JColorChooser.showDialog(this,
             MessageManager.getString("label.select_hidden_colour"),
-            hiddenColour.getForeground());
+            hiddenColour.getBackground());
     if (col != null)
     {
-      btn.setForeground(col);
+      hidden.setBackground(col);
     }
-    btn.repaint();
+    hidden.repaint();
   }
 
   @Override
index a58569a..f8fd47b 100755 (executable)
@@ -180,9 +180,20 @@ public class GPreferences extends JPanel
 
   protected JComboBox<String> nucColour = new JComboBox<>();
 
-  protected JButton gapColour = new JButton();
+  /*
+   * Overview tab components
+   */
+  protected JPanel overviewTab;
+
+  protected JPanel gapColour = new JPanel();
+
+  protected JPanel hiddenColour = new JPanel();
 
-  protected JButton hiddenColour = new JButton();
+  protected JCheckBox useLegacyGap;
+
+  protected JCheckBox showHiddenAtStart;
+
+  protected JLabel gapLabel;
 
   /*
    * Connections tab components
@@ -298,6 +309,9 @@ public class GPreferences extends JPanel
     tabbedPane.add(initColoursTab(),
             MessageManager.getString("label.colours"));
 
+    tabbedPane.add(initOverviewTab(),
+            MessageManager.getString("label.overview"));
+
     tabbedPane.add(initStructureTab(),
             MessageManager.getString("label.structure"));
 
@@ -892,10 +906,9 @@ public class GPreferences extends JPanel
   private JPanel initColoursTab()
   {
     JPanel coloursTab = new JPanel();
-    JPanel alignmentPanel = new JPanel();
-    alignmentPanel.setBorder(new TitledBorder(
+    coloursTab.setBorder(new TitledBorder(
             MessageManager.getString("action.open_new_alignment")));
-    alignmentPanel.setLayout(new FlowLayout());
+    coloursTab.setLayout(new FlowLayout());
     JLabel mincolourLabel = new JLabel();
     mincolourLabel.setFont(LABEL_FONT);
     mincolourLabel.setHorizontalAlignment(SwingConstants.RIGHT);
@@ -934,7 +947,7 @@ public class GPreferences extends JPanel
     protColourLabel.setHorizontalAlignment(SwingConstants.LEFT);
     protColourLabel.setText(
             MessageManager.getString("label.prot_alignment_colour") + " ");
-    JvSwingUtils.addtoLayout(alignmentPanel,
+    JvSwingUtils.addtoLayout(coloursTab,
             MessageManager
                     .getString("label.default_colour_scheme_for_alignment"),
             protColourLabel, protColour);
@@ -946,7 +959,7 @@ public class GPreferences extends JPanel
     nucColourLabel.setHorizontalAlignment(SwingConstants.LEFT);
     nucColourLabel.setText(
             MessageManager.getString("label.nuc_alignment_colour") + " ");
-    JvSwingUtils.addtoLayout(alignmentPanel,
+    JvSwingUtils.addtoLayout(coloursTab,
             MessageManager
                     .getString("label.default_colour_scheme_for_alignment"),
             nucColourLabel, nucColour);
@@ -963,15 +976,25 @@ public class GPreferences extends JPanel
             MessageManager.getString(
                     "label.default_maximum_colour_annotation_shading"),
             maxcolourLabel, maxColour);
-    alignmentPanel.add(annotationShding); // , FlowLayout.LEFT);
+    coloursTab.add(annotationShding); // , FlowLayout.LEFT);
+    return coloursTab;
+  }
 
+  /**
+   * Initialises the Overview tabbed panel.
+   * 
+   * @return
+   */
+  private JPanel initOverviewTab()
+  {
     JPanel overviewPanel = new JPanel();
     overviewPanel.setBorder(new TitledBorder(
             MessageManager.getString("label.overview_settings")));
-    overviewPanel.setLayout(new FlowLayout());
 
     gapColour.setFont(LABEL_FONT);
-    gapColour.setBorder(BorderFactory.createEtchedBorder());
+    // fixing the border colours stops apparent colour bleed from the panel
+    gapColour.setBorder(
+            BorderFactory.createEtchedBorder(Color.white, Color.lightGray));
     gapColour.setPreferredSize(new Dimension(40, 20));
     gapColour.addMouseListener(new MouseAdapter()
     {
@@ -983,7 +1006,9 @@ public class GPreferences extends JPanel
     });
 
     hiddenColour.setFont(LABEL_FONT);
-    hiddenColour.setBorder(BorderFactory.createEtchedBorder());
+    // fixing the border colours stops apparent colour bleed from the panel
+    hiddenColour.setBorder(
+            BorderFactory.createEtchedBorder(Color.white, Color.lightGray));
     hiddenColour.setPreferredSize(new Dimension(40, 20));
     hiddenColour.addMouseListener(new MouseAdapter()
     {
@@ -994,23 +1019,32 @@ public class GPreferences extends JPanel
       }
     });
     
-    JCheckBox gapSetting = new JCheckBox(
+    useLegacyGap = new JCheckBox(
             MessageManager.getString("label.ov_legacy_gap"));
-    gapSetting.setFont(LABEL_FONT);
-    gapSetting.setHorizontalAlignment(SwingConstants.LEFT);
-    JLabel gapLabel = new JLabel(
+    useLegacyGap.setFont(LABEL_FONT);
+    useLegacyGap.setHorizontalAlignment(SwingConstants.LEFT);
+    gapLabel = new JLabel(
             MessageManager.getString("label.gap_colour"));
     gapLabel.setFont(LABEL_FONT);
     gapLabel.setHorizontalAlignment(SwingConstants.LEFT);
-    JCheckBox hiddenSetting = new JCheckBox(
+    showHiddenAtStart = new JCheckBox(
             MessageManager.getString("label.ov_show_hide_default"));
-    hiddenSetting.setFont(LABEL_FONT);
-    hiddenSetting.setHorizontalAlignment(SwingConstants.LEFT);
+    showHiddenAtStart.setFont(LABEL_FONT);
+    showHiddenAtStart.setHorizontalAlignment(SwingConstants.LEFT);
     JLabel hiddenLabel = new JLabel(
             MessageManager.getString("label.hidden_colour"));
     hiddenLabel.setFont(LABEL_FONT);
     hiddenLabel.setHorizontalAlignment(SwingConstants.LEFT);
 
+    useLegacyGap.addActionListener(new ActionListener()
+    {
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        useLegacyGaps_actionPerformed(e);
+      }
+    });
+
     overviewPanel.setLayout(new GridBagLayout());
     GridBagConstraints c1 = new GridBagConstraints();
 
@@ -1018,20 +1052,22 @@ public class GPreferences extends JPanel
     c1.gridx = 0;
     c1.gridy = 0;
     c1.weightx = 1;
+    c1.ipady = 20;
     c1.anchor = GridBagConstraints.FIRST_LINE_START;
-    overviewPanel.add(gapSetting, c1);
+    overviewPanel.add(useLegacyGap, c1);
 
     GridBagConstraints c2 = new GridBagConstraints();
     c2.fill = GridBagConstraints.HORIZONTAL;
     c2.gridx = 1;
     c2.gridy = 0;
-    c2.insets = new Insets(0, 5, 0, 5);
+    c2.insets = new Insets(0, 15, 0, 10);
     overviewPanel.add(gapLabel, c2);
 
     GridBagConstraints c3 = new GridBagConstraints();
     c3.fill = GridBagConstraints.HORIZONTAL;
     c3.gridx = 2;
     c3.gridy = 0;
+    c3.insets = new Insets(0, 0, 0, 15);
     overviewPanel.add(gapColour, c3);
 
     GridBagConstraints c4 = new GridBagConstraints();
@@ -1039,19 +1075,20 @@ public class GPreferences extends JPanel
     c4.gridx = 0;
     c4.gridy = 1;
     c4.weightx = 1;
-    overviewPanel.add(hiddenSetting, c4);
+    overviewPanel.add(showHiddenAtStart, c4);
 
     GridBagConstraints c5 = new GridBagConstraints();
     c5.fill = GridBagConstraints.HORIZONTAL;
     c5.gridx = 1;
     c5.gridy = 1;
-    c5.insets = new Insets(0, 5, 0, 5);
+    c5.insets = new Insets(0, 15, 0, 10);
     overviewPanel.add(hiddenLabel, c5);
 
     GridBagConstraints c6 = new GridBagConstraints();
     c6.fill = GridBagConstraints.HORIZONTAL;
     c6.gridx = 2;
     c6.gridy = 1;
+    c6.insets = new Insets(0, 0, 0, 15);
     overviewPanel.add(hiddenColour, c6);
 
     // Add padding so the panel doesn't look ridiculous
@@ -1061,10 +1098,7 @@ public class GPreferences extends JPanel
                     GridBagConstraints.WEST, GridBagConstraints.BOTH,
                     new Insets(0, 0, 0, 5), 0, 0));
 
-    coloursTab.setLayout(new GridLayout(2, 1));
-    coloursTab.add(alignmentPanel);
-    coloursTab.add(overviewPanel);
-    return coloursTab;
+    return overviewPanel;
   }
 
   /**
@@ -1599,11 +1633,11 @@ public class GPreferences extends JPanel
   {
   }
 
-  protected void gapColour_actionPerformed(JButton btn)
+  protected void gapColour_actionPerformed(JPanel panel)
   {
   }
 
-  protected void hiddenColour_actionPerformed(JButton btn)
+  protected void hiddenColour_actionPerformed(JPanel panel)
   {
   }
 
@@ -1613,6 +1647,17 @@ public class GPreferences extends JPanel
 
   }
 
+  protected void useLegacyGaps_actionPerformed(ActionEvent e)
+  {
+    boolean enabled = useLegacyGap.isSelected();
+    if (enabled)
+    {
+      gapColour.setBackground(Color.WHITE);
+    }
+    gapColour.setEnabled(!enabled);
+    gapLabel.setEnabled(!enabled);
+  }
+
   /**
    * DOCUMENT ME!
    *