X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FGPreferences.java;h=1ad95ddcfedbdc15dd902572fbf0eea85344144b;hb=dbd89a2f85503279ad57c1d8a073a4b8394fa235;hp=6fe6be213aaad2207480e2c621cf29c049451016;hpb=e63a4d52c27252dfb83efeeee1bda6c89b6dddec;p=jalview.git diff --git a/src/jalview/jbgui/GPreferences.java b/src/jalview/jbgui/GPreferences.java index 6fe6be2..1ad95dd 100755 --- a/src/jalview/jbgui/GPreferences.java +++ b/src/jalview/jbgui/GPreferences.java @@ -101,6 +101,8 @@ public class GPreferences extends JPanel protected JComboBox fontNameCB = new JComboBox(); + protected JCheckBox showOccupancy = new JCheckBox(); + protected JCheckBox showUnconserved = new JCheckBox(); protected JCheckBox idItalics = new JCheckBox(); @@ -298,6 +300,9 @@ public class GPreferences extends JPanel tabbedPane.add(initConnectionsTab(), MessageManager.getString("label.connections")); + tabbedPane.add(initLinksTab(), + MessageManager.getString("label.urllinks")); + tabbedPane.add(initOutputTab(), MessageManager.getString("label.output")); @@ -519,135 +524,54 @@ public class GPreferences extends JPanel }); JPanel proxyPanel = initConnTabProxyPanel(); - JPanel linkPanel = initConnTabUrlLinks(); initConnTabCheckboxes(); - // Add URL link panel - connectTab.add(linkPanel, new GridBagConstraints(0, 0, 2, 1, 2.0, 2.0, - GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets( - 16, 0, 0, 12), 359, 32)); - // Add default Browser text box - connectTab.add(browserLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, + connectTab.add(browserLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, - new Insets(10, 0, 0, 0), 5, 1)); + new Insets(10, 0, 5, 5), 5, 1)); + defaultBrowser.setFont(LABEL_FONT); + defaultBrowser.setText(""); - connectTab.add(defaultBrowser, new GridBagConstraints(1, 1, 1, 1, 1.0, - 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, - new Insets(10, 0, 0, 10), 307, 1)); + connectTab.add(defaultBrowser, new GridBagConstraints(1, 0, 1, 1, 1.0, + 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, + new Insets(10, 0, 5, 10), 30, 1)); // Add proxy server panel - connectTab.add(proxyPanel, new GridBagConstraints(0, 2, 2, 1, 1.0, 0.0, + connectTab.add(proxyPanel, new GridBagConstraints(0, 1, 2, 1, 1.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, - new Insets(10, 0, 0, 12), 4, 10)); + new Insets(10, 0, 5, 12), 4, 10)); // Add usage stats, version check and questionnaire checkboxes - connectTab.add(usagestats, new GridBagConstraints(0, 3, 1, 1, 1.0, 0.0, + connectTab.add(usagestats, new GridBagConstraints(0, 2, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, - new Insets(0, 2, 4, 2), 70, 1)); - connectTab.add(questionnaire, new GridBagConstraints(1, 3, 1, 1, 1.0, - 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, - new Insets(0, 2, 4, 10), 70, 1)); - connectTab.add(versioncheck, new GridBagConstraints(0, 4, 1, 1, 1.0, - 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, - new Insets(0, 2, 4, 2), 70, 1)); - return connectTab; - } - - /** - * Initialises the proxy server panel in the Connections tab - * - * @return the proxy server panel - */ - private JPanel initConnTabProxyPanel() - { - // Label for server text box - serverLabel.setText(MessageManager.getString("label.address")); - serverLabel.setHorizontalAlignment(SwingConstants.RIGHT); - serverLabel.setFont(LABEL_FONT); - - // Proxy server and port text boxes - proxyServerTB.setFont(LABEL_FONT); - proxyPortTB.setFont(LABEL_FONT); - - // Label for Port text box - portLabel.setFont(LABEL_FONT); - portLabel.setHorizontalAlignment(SwingConstants.RIGHT); - portLabel.setText(MessageManager.getString("label.port")); - - // Use proxy server checkbox - useProxy.setFont(LABEL_FONT); - useProxy.setHorizontalAlignment(SwingConstants.RIGHT); - useProxy.setHorizontalTextPosition(SwingConstants.LEADING); - useProxy.setText(MessageManager.getString("label.use_proxy_server")); - useProxy.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - useProxy_actionPerformed(); - } - }); - - // Make proxy server panel - JPanel proxyPanel = new JPanel(); - TitledBorder titledBorder1 = new TitledBorder( - MessageManager.getString("label.proxy_server")); - proxyPanel.setBorder(titledBorder1); - proxyPanel.setLayout(new GridBagLayout()); - proxyPanel.add(serverLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, - 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, - new Insets(0, 2, 2, 0), 5, 0)); - proxyPanel.add(portLabel, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0, - GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, - 0, 2, 0), 11, 0)); - proxyPanel.add(useProxy, new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0, - GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, - 2, 5, 185), 2, -4)); - proxyPanel.add(proxyPortTB, new GridBagConstraints(3, 1, 1, 1, 1.0, + new Insets(0, 2, 5, 5), 70, 1)); + connectTab.add(questionnaire, new GridBagConstraints(1, 2, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, - new Insets(0, 2, 2, 2), 54, 1)); - proxyPanel.add(proxyServerTB, new GridBagConstraints(1, 1, 1, 1, 1.0, + new Insets(0, 2, 5, 10), 70, 1)); + connectTab.add(versioncheck, new GridBagConstraints(0, 3, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, - new Insets(0, 2, 2, 0), 263, 1)); - - return proxyPanel; - } + new Insets(0, 2, 5, 5), 70, 1)); - /** - * Initialises the checkboxes in the Connections tab - */ - private void initConnTabCheckboxes() - { - // Usage stats checkbox label - usagestats.setText(MessageManager - .getString("label.send_usage_statistics")); - usagestats.setFont(LABEL_FONT); - usagestats.setHorizontalAlignment(SwingConstants.RIGHT); - usagestats.setHorizontalTextPosition(SwingConstants.LEADING); - - // Questionnaire checkbox label - questionnaire.setText(MessageManager - .getString("label.check_for_questionnaires")); - questionnaire.setFont(LABEL_FONT); - questionnaire.setHorizontalAlignment(SwingConstants.RIGHT); - questionnaire.setHorizontalTextPosition(SwingConstants.LEADING); + // Add padding so the panel doesn't look ridiculous + JPanel spacePanel = new JPanel(); + connectTab.add(spacePanel, new GridBagConstraints(0, 4, 1, 1, 1.0, 1.0, + GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0, + 0, 0, 5), 70, 1)); - // Check for latest version checkbox label - versioncheck.setText(MessageManager - .getString("label.check_for_latest_version")); - versioncheck.setFont(LABEL_FONT); - versioncheck.setHorizontalAlignment(SwingConstants.RIGHT); - versioncheck.setHorizontalTextPosition(SwingConstants.LEADING); + return connectTab; } /** - * Initialises the URL links panel in the Connection tab + * Initialises the Links tabbed panel. * - * @return the URL links panel + * @return */ - private JPanel initConnTabUrlLinks() + private JPanel initLinksTab() { + JPanel linkTab = new JPanel(); + linkTab.setLayout(new GridBagLayout()); + // Set up table for Url links linkUrlTable.setFillsViewportHeight(true); linkUrlTable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); @@ -672,35 +596,39 @@ public class GPreferences extends JPanel // Put the Url links panel together // Buttons go at top right, resizing only resizes the blank space vertically - JPanel buttonPanel = initConnTabUrlButtons(); + JPanel buttonPanel = initLinkTabUrlButtons(); GridBagConstraints linkConstraints1 = new GridBagConstraints(); - linkConstraints1.gridx = 1; + linkConstraints1.insets = new Insets(0, 0, 5, 0); + linkConstraints1.gridx = 0; linkConstraints1.gridy = 0; - linkConstraints1.fill = GridBagConstraints.VERTICAL; - linkPanel.add(buttonPanel, linkConstraints1); + linkConstraints1.weightx = 1.0; + linkConstraints1.fill = GridBagConstraints.HORIZONTAL; + linkTab.add(buttonPanel, linkConstraints1); // Links table goes at top left, resizing resizes the table GridBagConstraints linkConstraints2 = new GridBagConstraints(); + linkConstraints2.insets = new Insets(0, 0, 5, 5); linkConstraints2.gridx = 0; - linkConstraints2.gridy = 0; + linkConstraints2.gridy = 1; linkConstraints2.weightx = 1.0; linkConstraints2.weighty = 1.0; linkConstraints2.fill = GridBagConstraints.BOTH; - linkPanel.add(linkScrollPane, linkConstraints2); + linkTab.add(linkScrollPane, linkConstraints2); // Filter box and buttons goes at bottom left, resizing resizes the text box - JPanel filterPanel = initConnTabFilterPanel(); + JPanel filterPanel = initLinkTabFilterPanel(); GridBagConstraints linkConstraints3 = new GridBagConstraints(); + linkConstraints3.insets = new Insets(0, 0, 0, 5); linkConstraints3.gridx = 0; - linkConstraints3.gridy = 1; + linkConstraints3.gridy = 2; linkConstraints3.weightx = 1.0; linkConstraints3.fill = GridBagConstraints.HORIZONTAL; - linkPanel.add(filterPanel, linkConstraints3); + linkTab.add(filterPanel, linkConstraints3); - return linkPanel; + return linkTab; } - private JPanel initConnTabFilterPanel() + private JPanel initLinkTabFilterPanel() { // Filter textbox and reset button JLabel filterLabel = new JLabel( @@ -717,6 +645,7 @@ public class GPreferences extends JPanel // Panel for filter functionality JPanel filterPanel = new JPanel(new GridBagLayout()); + filterPanel.setBorder(new TitledBorder("Filter")); GridBagConstraints gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 0; @@ -726,21 +655,21 @@ public class GPreferences extends JPanel filterPanel.add(filterLabel, gbc); GridBagConstraints gbc1 = new GridBagConstraints(); - gbc1.gridx = 0; gbc1.gridx = 1; + gbc1.gridwidth = 2; gbc1.fill = GridBagConstraints.HORIZONTAL; gbc1.anchor = GridBagConstraints.WEST; gbc1.weightx = 1.0; filterPanel.add(filterTB, gbc1); GridBagConstraints gbc2 = new GridBagConstraints(); - gbc2.gridx = 2; + gbc2.gridx = 3; gbc2.fill = GridBagConstraints.NONE; gbc2.anchor = GridBagConstraints.WEST; filterPanel.add(doReset, gbc2); GridBagConstraints gbc3 = new GridBagConstraints(); - gbc3.gridx = 3; + gbc3.gridx = 4; gbc3.fill = GridBagConstraints.NONE; gbc3.anchor = GridBagConstraints.WEST; filterPanel.add(userOnly, gbc3); @@ -748,11 +677,20 @@ public class GPreferences extends JPanel return filterPanel; } - private JPanel initConnTabUrlButtons() + private JPanel initLinkTabUrlButtons() { // Buttons for new / edit / delete Url links JButton newLink = new JButton(); newLink.setText(MessageManager.getString("action.new")); + + editLink.setText(MessageManager.getString("action.edit")); + + deleteLink.setText(MessageManager.getString("action.delete")); + + // no current selection, so initially disable delete/edit buttons + editLink.setEnabled(false); + deleteLink.setEnabled(false); + newLink.addActionListener(new java.awt.event.ActionListener() { @Override @@ -782,24 +720,126 @@ public class GPreferences extends JPanel } }); - // no current selection, so initially disable delete/edit buttons - editLink.setEnabled(false); - deleteLink.setEnabled(false); + JPanel buttonPanel = new JPanel(new GridBagLayout()); + buttonPanel.setBorder(new TitledBorder("Edit links")); + GridBagConstraints gbc = new GridBagConstraints(); + gbc.gridx = 0; + gbc.gridy = 0; + gbc.fill = GridBagConstraints.NONE; + buttonPanel.add(newLink, gbc); + + GridBagConstraints gbc1 = new GridBagConstraints(); + gbc1.gridx = 1; + gbc1.gridy = 0; + gbc1.fill = GridBagConstraints.NONE; + buttonPanel.add(editLink, gbc1); - // Panels for new/edit/delete link buttons - // buttonContent prevents the buttons from being resized when the window is - JPanel buttonContent = new JPanel(new GridLayout(0, 1, 0, 0)); - JPanel buttonPanel = new JPanel(new BorderLayout()); + GridBagConstraints gbc2 = new GridBagConstraints(); + gbc2.gridx = 2; + gbc2.gridy = 0; + gbc2.fill = GridBagConstraints.NONE; + buttonPanel.add(deleteLink, gbc2); - buttonContent.add(newLink, null); - buttonContent.add(editLink, null); - buttonContent.add(deleteLink, null); - buttonPanel.add(buttonContent, BorderLayout.NORTH); + GridBagConstraints gbc3 = new GridBagConstraints(); + gbc3.gridx = 3; + gbc3.gridy = 0; + gbc3.fill = GridBagConstraints.HORIZONTAL; + gbc3.weightx = 1.0; + JPanel spacePanel = new JPanel(); + spacePanel.setBorder(null); + buttonPanel.add(spacePanel, gbc3); return buttonPanel; } /** + * Initialises the proxy server panel in the Connections tab + * + * @return the proxy server panel + */ + private JPanel initConnTabProxyPanel() + { + // Label for server text box + serverLabel.setText(MessageManager.getString("label.address")); + serverLabel.setHorizontalAlignment(SwingConstants.RIGHT); + serverLabel.setFont(LABEL_FONT); + + // Proxy server and port text boxes + proxyServerTB.setFont(LABEL_FONT); + proxyPortTB.setFont(LABEL_FONT); + + // Label for Port text box + portLabel.setFont(LABEL_FONT); + portLabel.setHorizontalAlignment(SwingConstants.RIGHT); + portLabel.setText(MessageManager.getString("label.port")); + + // Use proxy server checkbox + useProxy.setFont(LABEL_FONT); + useProxy.setHorizontalAlignment(SwingConstants.RIGHT); + useProxy.setHorizontalTextPosition(SwingConstants.LEADING); + useProxy.setText(MessageManager.getString("label.use_proxy_server")); + useProxy.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + useProxy_actionPerformed(); + } + }); + + // Make proxy server panel + JPanel proxyPanel = new JPanel(); + TitledBorder titledBorder1 = new TitledBorder( + MessageManager.getString("label.proxy_server")); + proxyPanel.setBorder(titledBorder1); + proxyPanel.setLayout(new GridBagLayout()); + proxyPanel.add(serverLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, + 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, + new Insets(0, 2, 2, 0), 5, 0)); + proxyPanel.add(portLabel, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0, + GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, + 0, 2, 0), 11, 0)); + proxyPanel.add(useProxy, new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0, + GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, + 2, 5, 185), 2, -4)); + proxyPanel.add(proxyPortTB, new GridBagConstraints(3, 1, 1, 1, 1.0, + 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, + new Insets(0, 2, 2, 2), 54, 1)); + proxyPanel.add(proxyServerTB, new GridBagConstraints(1, 1, 1, 1, 1.0, + 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, + new Insets(0, 2, 2, 0), 263, 1)); + + return proxyPanel; + } + + /** + * Initialises the checkboxes in the Connections tab + */ + private void initConnTabCheckboxes() + { + // Usage stats checkbox label + usagestats.setText(MessageManager + .getString("label.send_usage_statistics")); + usagestats.setFont(LABEL_FONT); + usagestats.setHorizontalAlignment(SwingConstants.RIGHT); + usagestats.setHorizontalTextPosition(SwingConstants.LEADING); + + // Questionnaire checkbox label + questionnaire.setText(MessageManager + .getString("label.check_for_questionnaires")); + questionnaire.setFont(LABEL_FONT); + questionnaire.setHorizontalAlignment(SwingConstants.RIGHT); + questionnaire.setHorizontalTextPosition(SwingConstants.LEADING); + + // Check for latest version checkbox label + versioncheck.setText(MessageManager + .getString("label.check_for_latest_version")); + versioncheck.setFont(LABEL_FONT); + versioncheck.setHorizontalAlignment(SwingConstants.RIGHT); + versioncheck.setHorizontalTextPosition(SwingConstants.LEADING); + } + + /** * Initialises the parent panel which contains the tabbed sections. * * @return @@ -1136,6 +1176,13 @@ public class GPreferences extends JPanel identity.setHorizontalTextPosition(SwingConstants.LEFT); identity.setSelected(true); identity.setText(MessageManager.getString("label.consensus")); + showOccupancy.setFont(LABEL_FONT); + showOccupancy.setEnabled(false); + showOccupancy.setHorizontalAlignment(SwingConstants.RIGHT); + showOccupancy.setHorizontalTextPosition(SwingConstants.LEFT); + showOccupancy.setSelected(true); + showOccupancy.setText(MessageManager.getString("label.occupancy")); + JLabel showGroupbits = new JLabel(); showGroupbits.setFont(LABEL_FONT); showGroupbits.setHorizontalAlignment(SwingConstants.RIGHT); @@ -1190,10 +1237,10 @@ public class GPreferences extends JPanel .getString("label.database_references")); annotations.setFont(LABEL_FONT); annotations.setHorizontalAlignment(SwingConstants.RIGHT); - annotations.setHorizontalTextPosition(SwingConstants.LEADING); + annotations.setHorizontalTextPosition(SwingConstants.LEFT); annotations.setSelected(true); annotations.setText(MessageManager.getString("label.show_annotations")); - annotations.setBounds(new Rectangle(169, 12, 200, 23)); + // annotations.setBounds(new Rectangle(169, 12, 200, 23)); annotations.addActionListener(new ActionListener() { @Override @@ -1320,11 +1367,13 @@ public class GPreferences extends JPanel sortAutocalc.setBounds(new Rectangle(290, 285, 165, 21)); JPanel annsettingsPanel = new JPanel(); - annsettingsPanel.setBounds(new Rectangle(173, 34, 320, 75)); + annsettingsPanel.setBounds(new Rectangle(173, 13, 320, 96)); annsettingsPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0)); annsettingsPanel.setBorder(new EtchedBorder()); visualTab.add(annsettingsPanel); Border jb = new EmptyBorder(1, 1, 4, 5); + annotations.setBorder(jb); + showOccupancy.setBorder(jb); quality.setBorder(jb); conservation.setBorder(jb); identity.setBorder(jb); @@ -1336,17 +1385,26 @@ public class GPreferences extends JPanel showConsensLogo.setBorder(jb); JPanel autoAnnotSettings = new JPanel(); - autoAnnotSettings.setLayout(new GridLayout(3, 3)); annsettingsPanel.add(autoAnnotSettings); + autoAnnotSettings.setLayout(new GridLayout(0, 2)); + autoAnnotSettings.add(annotations); autoAnnotSettings.add(quality); + // second row of autoannotation box + autoAnnotSettings = new JPanel(); + annsettingsPanel.add(autoAnnotSettings); + + autoAnnotSettings.setLayout(new GridLayout(0, 3)); autoAnnotSettings.add(conservation); autoAnnotSettings.add(identity); + autoAnnotSettings.add(showOccupancy); autoAnnotSettings.add(showGroupbits); autoAnnotSettings.add(showGroupConservation); autoAnnotSettings.add(showGroupConsensus); autoAnnotSettings.add(showConsensbits); autoAnnotSettings.add(showConsensHistogram); autoAnnotSettings.add(showConsensLogo); + + JPanel tooltipSettings = new JPanel(); tooltipSettings.setBorder(new TitledBorder(MessageManager @@ -1395,7 +1453,6 @@ public class GPreferences extends JPanel jPanel2.add(sortAnnLabel); jPanel2.add(startupCheckbox); visualTab.add(jPanel2); - visualTab.add(annotations); visualTab.add(startupFileTextfield); visualTab.add(sortby); visualTab.add(sortAnnBy); @@ -1504,12 +1561,16 @@ public class GPreferences extends JPanel proxyPortTB.setEnabled(enabled); } + /** + * Customer renderer for JTable: supports column of radio buttons + */ public class RadioButtonRenderer extends JRadioButton implements TableCellRenderer { public RadioButtonRenderer() { setHorizontalAlignment(CENTER); + setToolTipText(MessageManager.getString("label.urltooltip")); } @Override @@ -1530,11 +1591,14 @@ public class GPreferences extends JPanel setBackground(table.getBackground()); setForeground(table.getForeground()); } - return this; } } + /** + * Customer cell editor for JTable: supports column of radio buttons in + * conjunction with renderer + */ public class RadioButtonEditor extends AbstractCellEditor implements TableCellEditor { @@ -1542,7 +1606,7 @@ public class GPreferences extends JPanel public RadioButtonEditor() { - // this.button.setHorizontalAlignment(SwingConstants.CENTER); + button.setHorizontalAlignment(SwingConstants.CENTER); this.button.addActionListener(new ActionListener() { @Override