X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fjbgui%2FGPreferences.java;h=68073828a3565566836834c5decae22f72fde59b;hb=97264690f394f98cf13cd1d834a53e8956fb1b0e;hp=3fe1939c4d8d9cb2ad9b5c3df54db49132414d51;hpb=c25a5c7301fa43bec8da032f93898d6133391f8a;p=jalview.git diff --git a/src/jalview/jbgui/GPreferences.java b/src/jalview/jbgui/GPreferences.java index 3fe1939..6807382 100755 --- a/src/jalview/jbgui/GPreferences.java +++ b/src/jalview/jbgui/GPreferences.java @@ -81,8 +81,8 @@ public class GPreferences extends JPanel { private static final Font LABEL_FONT = JvSwingUtils.getLabelFont(); - private static final Font LABEL_FONT_ITALIC = JvSwingUtils.getLabelFont( - false, true); + private static final Font LABEL_FONT_ITALIC = JvSwingUtils + .getLabelFont(false, true); /* * Visual tab components @@ -95,11 +95,13 @@ public class GPreferences extends JPanel protected JCheckBox rightAlign = new JCheckBox(); - protected JComboBox fontSizeCB = new JComboBox(); + protected JComboBox fontSizeCB = new JComboBox<>(); - protected JComboBox fontStyleCB = new JComboBox(); + protected JComboBox fontStyleCB = new JComboBox<>(); - protected JComboBox fontNameCB = new JComboBox(); + protected JComboBox fontNameCB = new JComboBox<>(); + + protected JCheckBox showOccupancy = new JCheckBox(); protected JCheckBox showUnconserved = new JCheckBox(); @@ -109,15 +111,15 @@ public class GPreferences extends JPanel protected JCheckBox scaleProteinToCdna = new JCheckBox(); - protected JComboBox gapSymbolCB = new JComboBox(); + protected JComboBox gapSymbolCB = new JComboBox<>(); protected JCheckBox wrap = new JCheckBox(); - protected JComboBox sortby = new JComboBox(); + protected JComboBox sortby = new JComboBox<>(); - protected JComboBox sortAnnBy = new JComboBox(); + protected JComboBox sortAnnBy = new JComboBox<>(); - protected JComboBox sortAutocalc = new JComboBox(); + protected JComboBox sortAutocalc = new JComboBox<>(); protected JCheckBox startupCheckbox = new JCheckBox(); @@ -157,7 +159,7 @@ public class GPreferences extends JPanel protected JCheckBox addTempFactor = new JCheckBox(); - protected JComboBox structViewer = new JComboBox(); + protected JComboBox structViewer = new JComboBox<>(); protected JTextField chimeraPath = new JTextField(); @@ -174,9 +176,22 @@ public class GPreferences extends JPanel protected JPanel maxColour = new JPanel(); - protected JComboBox protColour = new JComboBox(); + protected JComboBox protColour = new JComboBox<>(); + + protected JComboBox nucColour = new JComboBox<>(); + + /* + * Overview tab components + */ + protected JPanel gapColour = new JPanel(); + + protected JPanel hiddenColour = new JPanel(); + + protected JCheckBox useLegacyGap; + + protected JCheckBox showHiddenAtStart; - protected JComboBox nucColour = new JComboBox(); + protected JLabel gapLabel; /* * Connections tab components @@ -214,7 +229,7 @@ public class GPreferences extends JPanel /* * Output tab components */ - protected JComboBox epsRendering = new JComboBox(); + protected JComboBox epsRendering = new JComboBox<>(); protected JLabel userIdWidthlabel = new JLabel(); @@ -249,10 +264,6 @@ public class GPreferences extends JPanel protected JCheckBox sortByTree = new JCheckBox(); - /* - * DAS Settings tab - */ - protected JPanel dasTab = new JPanel(); /* * Web Services tab @@ -292,12 +303,18 @@ 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")); tabbedPane.add(initConnectionsTab(), MessageManager.getString("label.connections")); + tabbedPane.add(initLinksTab(), + MessageManager.getString("label.urllinks")); + tabbedPane.add(initOutputTab(), MessageManager.getString("label.output")); @@ -305,12 +322,6 @@ public class GPreferences extends JPanel MessageManager.getString("label.editing")); /* - * See DasSourceBrowser for the real work of configuring this tab. - */ - dasTab.setLayout(new BorderLayout()); - tabbedPane.add(dasTab, MessageManager.getString("label.das_settings")); - - /* * See WsPreferences for the real work of configuring this tab. */ wsTab.setLayout(new BorderLayout()); @@ -352,18 +363,18 @@ public class GPreferences extends JPanel JPanel editingTab = new JPanel(); editingTab.setLayout(null); autoCalculateConsCheck.setFont(LABEL_FONT); - autoCalculateConsCheck.setText(MessageManager - .getString("label.autocalculate_consensus")); + autoCalculateConsCheck.setText( + MessageManager.getString("label.autocalculate_consensus")); autoCalculateConsCheck.setBounds(new Rectangle(21, 52, 209, 23)); padGaps.setFont(LABEL_FONT); - padGaps.setText(MessageManager.getString("label.pad_gaps_when_editing")); + padGaps.setText( + MessageManager.getString("label.pad_gaps_when_editing")); padGaps.setBounds(new Rectangle(22, 94, 168, 23)); sortByTree.setFont(LABEL_FONT); sortByTree .setText(MessageManager.getString("label.sort_with_new_tree")); - sortByTree - .setToolTipText(MessageManager - .getString("label.any_trees_calculated_or_loaded_alignment_automatically_sort")); + sortByTree.setToolTipText(MessageManager.getString( + "label.any_trees_calculated_or_loaded_alignment_automatically_sort")); sortByTree.setBounds(new Rectangle(22, 136, 168, 23)); editingTab.add(autoCalculateConsCheck); editingTab.add(padGaps); @@ -423,11 +434,10 @@ public class GPreferences extends JPanel pirjv.setFont(LABEL_FONT); pirjv.setHorizontalAlignment(SwingConstants.LEFT); autoIdWidth.setFont(LABEL_FONT); - autoIdWidth.setText(MessageManager - .getString("label.automatically_set_id_width")); - autoIdWidth.setToolTipText(JvSwingUtils.wrapTooltip(true, - MessageManager - .getString("label.adjusts_width_generated_eps_png"))); + autoIdWidth.setText( + MessageManager.getString("label.automatically_set_id_width")); + autoIdWidth.setToolTipText(JvSwingUtils.wrapTooltip(true, MessageManager + .getString("label.adjusts_width_generated_eps_png"))); autoIdWidth.setBounds(new Rectangle(228, 96, 188, 23)); autoIdWidth.addActionListener(new ActionListener() { @@ -439,14 +449,13 @@ public class GPreferences extends JPanel } }); userIdWidthlabel.setFont(LABEL_FONT); - userIdWidthlabel.setText(MessageManager - .getString("label.figure_id_column_width")); - userIdWidth - .setToolTipText(JvSwingUtils.wrapTooltip(true, MessageManager - .getString("label.manually_specify_width_left_column"))); - userIdWidthlabel - .setToolTipText(JvSwingUtils.wrapTooltip(true, MessageManager - .getString("label.manually_specify_width_left_column"))); + userIdWidthlabel.setText( + MessageManager.getString("label.figure_id_column_width")); + userIdWidth.setToolTipText(JvSwingUtils.wrapTooltip(true, MessageManager + .getString("label.manually_specify_width_left_column"))); + userIdWidthlabel.setToolTipText( + JvSwingUtils.wrapTooltip(true, MessageManager.getString( + "label.manually_specify_width_left_column"))); userIdWidthlabel.setBounds(new Rectangle(236, 120, 168, 23)); userIdWidth.setFont(JvSwingUtils.getTextAreaFont()); userIdWidth.setText(""); @@ -461,8 +470,8 @@ public class GPreferences extends JPanel } }); modellerOutput.setFont(LABEL_FONT); - modellerOutput.setText(MessageManager - .getString("label.use_modeller_output")); + modellerOutput + .setText(MessageManager.getString("label.use_modeller_output")); modellerOutput.setBounds(new Rectangle(228, 226, 168, 23)); embbedBioJSON.setFont(LABEL_FONT); embbedBioJSON.setText(MessageManager.getString("label.embbed_biojson")); @@ -501,11 +510,13 @@ public class GPreferences extends JPanel JLabel browserLabel = new JLabel(); browserLabel.setFont(LABEL_FONT); browserLabel.setHorizontalAlignment(SwingConstants.TRAILING); - browserLabel.setText(MessageManager - .getString("label.default_browser_unix")); + browserLabel.setText( + MessageManager.getString("label.default_browser_unix")); defaultBrowser.setFont(LABEL_FONT); defaultBrowser.setText(""); - + final String tooltip = JvSwingUtils.wrapTooltip(true, + MessageManager.getString("label.double_click_to_browse")); + defaultBrowser.setToolTipText(tooltip); defaultBrowser.addMouseListener(new MouseAdapter() { @Override @@ -519,182 +530,116 @@ 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, - 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, - new Insets(10, 0, 0, 0), 5, 1)); + connectTab.add(browserLabel, + new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, + GridBagConstraints.WEST, GridBagConstraints.NONE, + 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, - 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)); + connectTab.add(usagestats, + new GridBagConstraints(0, 2, 1, 1, 1.0, 0.0, + GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, + 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, 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, 5, 5), 70, 1)); + + // 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)); + return connectTab; } /** - * Initialises the proxy server panel in the Connections tab + * Initialises the Links tabbed panel. * - * @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 + * @return */ - private void initConnTabCheckboxes() + private JPanel initLinksTab() { - // Usage stats checkbox label - usagestats.setText(MessageManager - .getString("label.send_usage_statistics")); - usagestats.setFont(LABEL_FONT); - usagestats.setHorizontalAlignment(SwingConstants.RIGHT); - usagestats.setHorizontalTextPosition(SwingConstants.LEADING); + JPanel linkTab = new JPanel(); + linkTab.setLayout(new GridBagLayout()); - // 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 URL links panel in the Connection tab - * - * @return the URL links panel - */ - private JPanel initConnTabUrlLinks() - { // Set up table for Url links linkUrlTable.setFillsViewportHeight(true); linkUrlTable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); linkUrlTable.setAutoCreateRowSorter(true); linkUrlTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + // adjust row height so radio buttons actually fit + // don't do this in the renderer, it causes the awt thread to activate + // constantly + JRadioButton temp = new JRadioButton(); + linkUrlTable.setRowHeight(temp.getMinimumSize().height); + // Table in scrollpane so that the table is given a scrollbar JScrollPane linkScrollPane = new JScrollPane(linkUrlTable); linkScrollPane.setBorder(null); // Panel for links functionality JPanel linkPanel = new JPanel(new GridBagLayout()); - linkPanel.setBorder(new TitledBorder(MessageManager - .getString("label.url_linkfrom_sequence_id"))); + linkPanel.setBorder(new TitledBorder( + MessageManager.getString("label.url_linkfrom_sequence_id"))); // 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( @@ -706,11 +651,12 @@ public class GPreferences extends JPanel filterTB.setFont(LABEL_FONT); filterTB.setText(""); - doReset.setText(MessageManager.getString("action.reset")); + doReset.setText(MessageManager.getString("action.showall")); userOnly.setText(MessageManager.getString("action.customfilter")); // 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; @@ -720,21 +666,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); @@ -742,11 +688,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 @@ -776,24 +731,131 @@ 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); - // 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 gbc1 = new GridBagConstraints(); + gbc1.gridx = 1; + gbc1.gridy = 0; + gbc1.fill = GridBagConstraints.NONE; + buttonPanel.add(editLink, gbc1); + + 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 @@ -834,8 +896,8 @@ public class GPreferences extends JPanel private JPanel initColoursTab() { JPanel coloursTab = new JPanel(); - coloursTab.setBorder(new TitledBorder(MessageManager - .getString("action.open_new_alignment"))); + coloursTab.setBorder(new TitledBorder( + MessageManager.getString("action.open_new_alignment"))); coloursTab.setLayout(new FlowLayout()); JLabel mincolourLabel = new JLabel(); mincolourLabel.setFont(LABEL_FONT); @@ -873,10 +935,11 @@ public class GPreferences extends JPanel JLabel protColourLabel = new JLabel(); protColourLabel.setFont(LABEL_FONT); protColourLabel.setHorizontalAlignment(SwingConstants.LEFT); - protColourLabel.setText(MessageManager - .getString("label.prot_alignment_colour") + " "); - JvSwingUtils.addtoLayout(coloursTab, MessageManager - .getString("label.default_colour_scheme_for_alignment"), + protColourLabel.setText( + MessageManager.getString("label.prot_alignment_colour") + " "); + JvSwingUtils.addtoLayout(coloursTab, + MessageManager + .getString("label.default_colour_scheme_for_alignment"), protColourLabel, protColour); nucColour.setFont(LABEL_FONT); @@ -884,27 +947,175 @@ public class GPreferences extends JPanel JLabel nucColourLabel = new JLabel(); nucColourLabel.setFont(LABEL_FONT); nucColourLabel.setHorizontalAlignment(SwingConstants.LEFT); - nucColourLabel.setText(MessageManager - .getString("label.nuc_alignment_colour") + " "); - JvSwingUtils.addtoLayout(coloursTab, MessageManager - .getString("label.default_colour_scheme_for_alignment"), + nucColourLabel.setText( + MessageManager.getString("label.nuc_alignment_colour") + " "); + JvSwingUtils.addtoLayout(coloursTab, + MessageManager + .getString("label.default_colour_scheme_for_alignment"), nucColourLabel, nucColour); JPanel annotationShding = new JPanel(); - annotationShding.setBorder(new TitledBorder(MessageManager - .getString("label.annotation_shading_default"))); + annotationShding.setBorder(new TitledBorder( + MessageManager.getString("label.annotation_shading_default"))); annotationShding.setLayout(new GridLayout(1, 2)); - JvSwingUtils.addtoLayout(annotationShding, MessageManager - .getString("label.default_minimum_colour_annotation_shading"), + JvSwingUtils.addtoLayout(annotationShding, + MessageManager.getString( + "label.default_minimum_colour_annotation_shading"), mincolourLabel, minColour); - JvSwingUtils.addtoLayout(annotationShding, MessageManager - .getString("label.default_maximum_colour_annotation_shading"), + JvSwingUtils.addtoLayout(annotationShding, + MessageManager.getString( + "label.default_maximum_colour_annotation_shading"), maxcolourLabel, maxColour); 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"))); + + gapColour.setFont(LABEL_FONT); + // 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() + { + @Override + public void mousePressed(MouseEvent e) + { + gapColour_actionPerformed(gapColour); + } + }); + + hiddenColour.setFont(LABEL_FONT); + // 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() + { + @Override + public void mousePressed(MouseEvent e) + { + hiddenColour_actionPerformed(hiddenColour); + } + }); + + useLegacyGap = new JCheckBox( + MessageManager.getString("label.ov_legacy_gap")); + useLegacyGap.setFont(LABEL_FONT); + useLegacyGap.setHorizontalAlignment(SwingConstants.LEFT); + useLegacyGap.setVerticalTextPosition(SwingConstants.TOP); + gapLabel = new JLabel( + MessageManager.getString("label.gap_colour")); + gapLabel.setFont(LABEL_FONT); + gapLabel.setHorizontalAlignment(SwingConstants.LEFT); + gapLabel.setVerticalTextPosition(SwingConstants.TOP); + showHiddenAtStart = new JCheckBox( + MessageManager.getString("label.ov_show_hide_default")); + showHiddenAtStart.setFont(LABEL_FONT); + showHiddenAtStart.setHorizontalAlignment(SwingConstants.LEFT); + showHiddenAtStart.setVerticalTextPosition(SwingConstants.TOP); + JLabel hiddenLabel = new JLabel( + MessageManager.getString("label.hidden_colour")); + hiddenLabel.setFont(LABEL_FONT); + hiddenLabel.setHorizontalAlignment(SwingConstants.LEFT); + hiddenLabel.setVerticalTextPosition(SwingConstants.TOP); + + useLegacyGap.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + useLegacyGaps_actionPerformed(e); + } + }); + + overviewPanel.setLayout(new GridBagLayout()); + GridBagConstraints c1 = new GridBagConstraints(); + + c1.fill = GridBagConstraints.HORIZONTAL; + c1.gridx = 0; + c1.gridy = 0; + c1.weightx = 1; + c1.ipady = 20; + c1.anchor = GridBagConstraints.FIRST_LINE_START; + overviewPanel.add(useLegacyGap, c1); + + GridBagConstraints c2 = new GridBagConstraints(); + c2.fill = GridBagConstraints.HORIZONTAL; + c2.gridx = 1; + c2.gridy = 0; + 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(); + c4.fill = GridBagConstraints.HORIZONTAL; + c4.gridx = 0; + c4.gridy = 1; + c4.weightx = 1; + overviewPanel.add(showHiddenAtStart, c4); + + GridBagConstraints c5 = new GridBagConstraints(); + c5.fill = GridBagConstraints.HORIZONTAL; + c5.gridx = 1; + c5.gridy = 1; + 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); + + JButton resetButton = new JButton( + MessageManager.getString("label.reset_to_defaults")); + + resetButton.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + resetOvDefaults_actionPerformed(e); + } + }); + + GridBagConstraints c7 = new GridBagConstraints(); + c7.fill = GridBagConstraints.NONE; + c7.gridx = 0; + c7.gridy = 2; + c7.insets = new Insets(10, 0, 0, 0); + c7.anchor = GridBagConstraints.WEST; + overviewPanel.add(resetButton, c7); + + // Add padding so the panel doesn't look ridiculous + JPanel spacePanel = new JPanel(); + overviewPanel.add(spacePanel, + new GridBagConstraints(0, 3, 1, 1, 1.0, 1.0, + GridBagConstraints.WEST, GridBagConstraints.BOTH, + new Insets(0, 0, 0, 5), 0, 0)); + + return overviewPanel; + } + + /** * Initialises the Structure tabbed panel. * * @return @@ -913,8 +1124,8 @@ public class GPreferences extends JPanel { structureTab = new JPanel(); - structureTab.setBorder(new TitledBorder(MessageManager - .getString("label.structure_options"))); + structureTab.setBorder(new TitledBorder( + MessageManager.getString("label.structure_options"))); structureTab.setLayout(null); final int width = 400; final int height = 22; @@ -948,8 +1159,8 @@ public class GPreferences extends JPanel ypos += lineSpacing; addSecondaryStructure.setFont(LABEL_FONT); - addSecondaryStructure.setText(MessageManager - .getString("label.autoadd_secstr")); + addSecondaryStructure + .setText(MessageManager.getString("label.autoadd_secstr")); addSecondaryStructure.setBounds(new Rectangle(25, ypos, width, height)); structureTab.add(addSecondaryStructure); @@ -976,8 +1187,8 @@ public class GPreferences extends JPanel @Override public void actionPerformed(ActionEvent e) { - structureViewer_actionPerformed((String) structViewer - .getSelectedItem()); + structureViewer_actionPerformed( + (String) structViewer.getSelectedItem()); } }); structureTab.add(structViewer); @@ -987,14 +1198,14 @@ public class GPreferences extends JPanel pathLabel.setFont(new java.awt.Font("SansSerif", 0, 11)); pathLabel.setHorizontalAlignment(SwingConstants.LEFT); pathLabel.setText(MessageManager.getString("label.chimera_path")); - final String tooltip = JvSwingUtils.wrapTooltip(true, - MessageManager.getString("label.chimera_path_tip")); - pathLabel.setToolTipText(tooltip); pathLabel.setBounds(new Rectangle(10, ypos, 140, height)); structureTab.add(pathLabel); chimeraPath.setFont(LABEL_FONT); chimeraPath.setText(""); + final String tooltip = JvSwingUtils.wrapTooltip(true, + MessageManager.getString("label.chimera_path_tip")); + chimeraPath.setToolTipText(tooltip); chimeraPath.setBounds(new Rectangle(160, ypos, 300, height)); chimeraPath.addMouseListener(new MouseAdapter() { @@ -1064,8 +1275,8 @@ public class GPreferences extends JPanel JFileChooser chooser = new JFileChooser(); // chooser.setFileView(new JalviewFileView()); - chooser.setDialogTitle(MessageManager - .getString("label.open_local_file")); + chooser.setDialogTitle( + MessageManager.getString("label.open_local_file")); chooser.setToolTipText(MessageManager.getString("action.open")); int value = chooser.showOpenDialog(this); @@ -1105,8 +1316,8 @@ public class GPreferences extends JPanel private JPanel initVisualTab() { JPanel visualTab = new JPanel(); - visualTab.setBorder(new TitledBorder(MessageManager - .getString("action.open_new_alignment"))); + visualTab.setBorder(new TitledBorder( + MessageManager.getString("action.open_new_alignment"))); visualTab.setLayout(null); fullScreen.setFont(LABEL_FONT); fullScreen.setHorizontalAlignment(SwingConstants.RIGHT); @@ -1130,25 +1341,32 @@ 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); showGroupbits.setHorizontalTextPosition(SwingConstants.LEFT); - showGroupbits.setText(MessageManager.getString("action.show_group") - + ":"); + showGroupbits + .setText(MessageManager.getString("action.show_group") + ":"); JLabel showConsensbits = new JLabel(); showConsensbits.setFont(LABEL_FONT); showConsensbits.setHorizontalAlignment(SwingConstants.RIGHT); showConsensbits.setHorizontalTextPosition(SwingConstants.LEFT); - showConsensbits.setText(MessageManager.getString("label.consensus") - + ":"); + showConsensbits + .setText(MessageManager.getString("label.consensus") + ":"); showConsensHistogram.setEnabled(false); showConsensHistogram.setFont(LABEL_FONT); showConsensHistogram.setHorizontalAlignment(SwingConstants.RIGHT); showConsensHistogram.setHorizontalTextPosition(SwingConstants.LEFT); showConsensHistogram.setSelected(true); - showConsensHistogram.setText(MessageManager - .getString("label.histogram")); + showConsensHistogram + .setText(MessageManager.getString("label.histogram")); showConsensLogo.setEnabled(false); showConsensLogo.setFont(LABEL_FONT); showConsensLogo.setHorizontalAlignment(SwingConstants.RIGHT); @@ -1166,28 +1384,28 @@ public class GPreferences extends JPanel showGroupConservation.setHorizontalAlignment(SwingConstants.RIGHT); showGroupConservation.setHorizontalTextPosition(SwingConstants.LEFT); showGroupConservation.setSelected(true); - showGroupConservation.setText(MessageManager - .getString("label.conservation")); + showGroupConservation + .setText(MessageManager.getString("label.conservation")); showNpTooltip.setEnabled(true); showNpTooltip.setFont(LABEL_FONT); showNpTooltip.setHorizontalAlignment(SwingConstants.RIGHT); showNpTooltip.setHorizontalTextPosition(SwingConstants.LEFT); showNpTooltip.setSelected(true); - showNpTooltip.setText(MessageManager - .getString("label.non_positional_features")); + showNpTooltip.setText( + MessageManager.getString("label.non_positional_features")); showDbRefTooltip.setEnabled(true); showDbRefTooltip.setFont(LABEL_FONT); showDbRefTooltip.setHorizontalAlignment(SwingConstants.RIGHT); showDbRefTooltip.setHorizontalTextPosition(SwingConstants.LEFT); showDbRefTooltip.setSelected(true); - showDbRefTooltip.setText(MessageManager - .getString("label.database_references")); + showDbRefTooltip + .setText(MessageManager.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 @@ -1216,8 +1434,8 @@ public class GPreferences extends JPanel showUnconserved.setHorizontalAlignment(SwingConstants.RIGHT); showUnconserved.setHorizontalTextPosition(SwingConstants.LEFT); showUnconserved.setSelected(true); - showUnconserved.setText(MessageManager - .getString("action.show_unconserved")); + showUnconserved + .setText(MessageManager.getString("action.show_unconserved")); showUnconserved.addActionListener(new ActionListener() { @Override @@ -1255,10 +1473,10 @@ public class GPreferences extends JPanel scaleProteinToCdna.setFont(LABEL_FONT); scaleProteinToCdna.setHorizontalAlignment(SwingConstants.RIGHT); scaleProteinToCdna.setHorizontalTextPosition(SwingConstants.LEADING); - scaleProteinToCdna.setText(MessageManager - .getString("label.scale_protein_to_cdna")); - scaleProteinToCdna.setToolTipText(MessageManager - .getString("label.scale_protein_to_cdna_tip")); + scaleProteinToCdna.setText( + MessageManager.getString("label.scale_protein_to_cdna")); + scaleProteinToCdna.setToolTipText( + MessageManager.getString("label.scale_protein_to_cdna_tip")); JLabel gapLabel = new JLabel(); gapLabel.setFont(LABEL_FONT); gapLabel.setHorizontalAlignment(SwingConstants.RIGHT); @@ -1286,6 +1504,9 @@ public class GPreferences extends JPanel startupCheckbox.setSelected(true); startupFileTextfield.setFont(LABEL_FONT); startupFileTextfield.setBounds(new Rectangle(172, 310, 330, 20)); + final String tooltip = JvSwingUtils.wrapTooltip(true, + MessageManager.getString("label.double_click_to_browse")); + startupFileTextfield.setToolTipText(tooltip); startupFileTextfield.addMouseListener(new MouseAdapter() { @Override @@ -1314,11 +1535,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); @@ -1330,11 +1553,18 @@ 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); @@ -1343,8 +1573,8 @@ public class GPreferences extends JPanel autoAnnotSettings.add(showConsensLogo); JPanel tooltipSettings = new JPanel(); - tooltipSettings.setBorder(new TitledBorder(MessageManager - .getString("label.sequence_id_tooltip"))); + tooltipSettings.setBorder(new TitledBorder( + MessageManager.getString("label.sequence_id_tooltip"))); tooltipSettings.setBounds(173, 140, 220, 62); tooltipSettings.setLayout(new GridLayout(2, 1)); tooltipSettings.add(showDbRefTooltip); @@ -1363,11 +1593,11 @@ public class GPreferences extends JPanel idItalics.setFont(LABEL_FONT_ITALIC); idItalics.setHorizontalAlignment(SwingConstants.RIGHT); idItalics.setHorizontalTextPosition(SwingConstants.LEADING); - idItalics.setText(MessageManager - .getString("label.sequence_name_italics")); + idItalics.setText( + MessageManager.getString("label.sequence_name_italics")); openoverv.setFont(LABEL_FONT); - openoverv.setActionCommand(MessageManager - .getString("label.open_overview")); + openoverv.setActionCommand( + MessageManager.getString("label.open_overview")); openoverv.setHorizontalAlignment(SwingConstants.RIGHT); openoverv.setHorizontalTextPosition(SwingConstants.LEFT); openoverv.setText(MessageManager.getString("label.open_overview")); @@ -1389,7 +1619,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); @@ -1421,12 +1650,28 @@ public class GPreferences extends JPanel { } + protected void gapColour_actionPerformed(JPanel panel) + { + } + + protected void hiddenColour_actionPerformed(JPanel panel) + { + } + protected void showunconserved_actionPerformed(ActionEvent e) { // TODO Auto-generated method stub } + protected void useLegacyGaps_actionPerformed(ActionEvent e) + { + } + + protected void resetOvDefaults_actionPerformed(ActionEvent e) + { + } + /** * DOCUMENT ME! * @@ -1498,12 +1743,16 @@ public class GPreferences extends JPanel proxyPortTB.setEnabled(enabled); } - public class RadioButtonRenderer extends JRadioButton implements - TableCellRenderer + /** + * 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 @@ -1524,22 +1773,22 @@ public class GPreferences extends JPanel setBackground(table.getBackground()); setForeground(table.getForeground()); } - - // adjust row height so radio buttons actually fit - table.setRowHeight(row, getMinimumSize().height); - return this; } } - public class RadioButtonEditor extends AbstractCellEditor implements - TableCellEditor + /** + * Customer cell editor for JTable: supports column of radio buttons in + * conjunction with renderer + */ + public class RadioButtonEditor extends AbstractCellEditor + implements TableCellEditor { private JRadioButton button = new JRadioButton(); public RadioButtonEditor() { - this.button.setHorizontalAlignment(SwingConstants.CENTER); + button.setHorizontalAlignment(SwingConstants.CENTER); this.button.addActionListener(new ActionListener() { @Override @@ -1551,8 +1800,8 @@ public class GPreferences extends JPanel } @Override - public Component getTableCellEditorComponent(JTable table, - Object value, boolean isSelected, int row, int column) + public Component getTableCellEditorComponent(JTable table, Object value, + boolean isSelected, int row, int column) { button.setSelected((boolean) value); return button;