From b02e2d7bed980ad4c50112575f4253494b993ee2 Mon Sep 17 00:00:00 2001 From: kiramt Date: Tue, 29 Aug 2017 14:55:53 +0100 Subject: [PATCH] JAL-2527 Added overview prefs - don't get picked up by overview yet --- resources/lang/Messages.properties | 9 +-- resources/lang/Messages_es.properties | 9 +-- src/jalview/gui/Preferences.java | 49 ++++++++++++---- src/jalview/jbgui/GPreferences.java | 101 ++++++++++++++++++++++++--------- 4 files changed, 120 insertions(+), 48 deletions(-) diff --git a/resources/lang/Messages.properties b/resources/lang/Messages.properties index 9c6f75b..754bc03 100644 --- a/resources/lang/Messages.properties +++ b/resources/lang/Messages.properties @@ -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 diff --git a/resources/lang/Messages_es.properties b/resources/lang/Messages_es.properties index 9fb2fc5..e8187f5 100644 --- a/resources/lang/Messages_es.properties +++ b/resources/lang/Messages_es.properties @@ -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 diff --git a/src/jalview/gui/Preferences.java b/src/jalview/gui/Preferences.java index 6fdaa0d..e8dc07c 100755 --- a/src/jalview/gui/Preferences.java +++ b/src/jalview/gui/Preferences.java @@ -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 diff --git a/src/jalview/jbgui/GPreferences.java b/src/jalview/jbgui/GPreferences.java index a58569a..f8fd47b 100755 --- a/src/jalview/jbgui/GPreferences.java +++ b/src/jalview/jbgui/GPreferences.java @@ -180,9 +180,20 @@ public class GPreferences extends JPanel protected JComboBox 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! * -- 1.7.10.2