X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FGPreferences.java;h=6cad0b5a283f185ca8be340254e9c6554122b0e4;hb=a45774ee31d9f35d4eff46d54d7deab719afb092;hp=e28581facda4d97dc7120fe313f9e9ed25b79522;hpb=506d60f0e188723ddc91c26824b41ac7034df3fe;p=jalview.git diff --git a/src/jalview/jbgui/GPreferences.java b/src/jalview/jbgui/GPreferences.java index e28581f..6cad0b5 100755 --- a/src/jalview/jbgui/GPreferences.java +++ b/src/jalview/jbgui/GPreferences.java @@ -1,25 +1,27 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4) - * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) + * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. + * This file is part of Jalview. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with Jalview. If not, see . */ package jalview.jbgui; +import jalview.gui.JvSwingUtils; + import java.awt.*; import java.awt.event.*; + import javax.swing.*; import javax.swing.border.*; import javax.swing.event.*; @@ -46,6 +48,7 @@ public class GPreferences extends JPanel protected JCheckBox quality = new JCheckBox(); JPanel visualTab = new JPanel(); + JPanel visual2Tab = new JPanel(); protected JCheckBox fullScreen = new JCheckBox(); @@ -55,6 +58,12 @@ public class GPreferences extends JPanel protected JCheckBox annotations = new JCheckBox(); + protected JPanel minColour = new JPanel(); + JLabel mincolourLabel = new JLabel(); + + protected JPanel maxColour = new JPanel(); + JLabel maxcolourLabel = new JLabel(); + JLabel gapLabel = new JLabel(); protected JComboBox colour = new JComboBox(); @@ -132,10 +141,19 @@ public class GPreferences extends JPanel JLabel sortLabel = new JLabel(); JPanel jPanel2 = new JPanel(); + JPanel visual2panel = new JPanel(); GridLayout gridLayout2 = new GridLayout(); - JPanel jPanel3 = new JPanel(); + GridLayout gridLayout4 = new GridLayout(); + + JPanel annsettingsPanel = new JPanel(); + + JPanel autoAnnotSettings1 = new JPanel(); + + JPanel autoAnnotSettings2 = new JPanel(); + + JPanel autoAnnotSettings3 = new JPanel(); JPanel exportTab = new JPanel(); @@ -163,7 +181,7 @@ public class GPreferences extends JPanel JPanel jPanel11 = new JPanel(); - Font verdana11 = new java.awt.Font("Verdana", Font.PLAIN, 11); + Font verdana11 = JvSwingUtils.getLabelFont(); protected JCheckBox seqLimit = new JCheckBox(); @@ -183,14 +201,48 @@ public class GPreferences extends JPanel BorderLayout borderLayout4 = new BorderLayout(); + protected JPanel wsPanel = new JPanel(); + + BorderLayout borderLayout5 = new BorderLayout(); + protected JCheckBox wrap = new JCheckBox(); protected JCheckBox rightAlign = new JCheckBox(); + protected JCheckBox showUnconserved = new JCheckBox(); + + protected JCheckBox showDbRefTooltip = new JCheckBox(); + + protected JCheckBox showNpTooltip = new JCheckBox(); + protected JCheckBox idItalics = new JCheckBox(); protected JCheckBox openoverv = new JCheckBox(); + protected JCheckBox usagestats = new JCheckBox(); + + protected JCheckBox questionnaire = new JCheckBox(); + + protected JCheckBox versioncheck = new JCheckBox(); + + protected JLabel showGroupbits = new JLabel(); + + protected JLabel showConsensbits = new JLabel(); + + protected JCheckBox showConsensLogo = new JCheckBox(); + + protected JCheckBox showConsensHistogram = new JCheckBox(); + + protected JCheckBox showGroupConsensus = new JCheckBox(); + + protected JCheckBox showGroupConservation = new JCheckBox(); + + protected JCheckBox shareSelections = new JCheckBox(); + + protected JCheckBox followHighlight = new JCheckBox(); + + protected JCheckBox sortByTree= new JCheckBox(); + /** * Creates a new GPreferences object. */ @@ -209,7 +261,7 @@ public class GPreferences extends JPanel * DOCUMENT ME! * * @throws Exception - * DOCUMENT ME! + * DOCUMENT ME! */ private void jbInit() throws Exception { @@ -238,6 +290,8 @@ public class GPreferences extends JPanel quality.setText("Quality"); visualTab.setBorder(new TitledBorder("Open new alignment")); visualTab.setLayout(null); + visual2Tab.setBorder(new TitledBorder("Open new alignment")); + visual2Tab.setLayout(new FlowLayout()); fullScreen.setFont(verdana11); fullScreen.setHorizontalAlignment(SwingConstants.RIGHT); fullScreen.setHorizontalTextPosition(SwingConstants.LEFT); @@ -254,11 +308,56 @@ public class GPreferences extends JPanel identity.setHorizontalTextPosition(SwingConstants.LEFT); identity.setSelected(true); identity.setText("Consensus"); + showGroupbits.setFont(verdana11); + showGroupbits.setHorizontalAlignment(SwingConstants.RIGHT); + showGroupbits.setHorizontalTextPosition(SwingConstants.LEFT); + showGroupbits.setText("Show group:"); + showConsensbits.setFont(verdana11); + showConsensbits.setHorizontalAlignment(SwingConstants.RIGHT); + showConsensbits.setHorizontalTextPosition(SwingConstants.LEFT); + showConsensbits.setText("Consensus:"); + showConsensHistogram.setEnabled(false); + showConsensHistogram.setFont(verdana11); + showConsensHistogram.setHorizontalAlignment(SwingConstants.RIGHT); + showConsensHistogram.setHorizontalTextPosition(SwingConstants.LEFT); + showConsensHistogram.setSelected(true); + showConsensHistogram.setText("Histogram"); + showConsensLogo.setEnabled(false); + showConsensLogo.setFont(verdana11); + showConsensLogo.setHorizontalAlignment(SwingConstants.RIGHT); + showConsensLogo.setHorizontalTextPosition(SwingConstants.LEFT); + showConsensLogo.setSelected(true); + showConsensLogo.setText("Logo"); + showGroupConsensus.setEnabled(false); + showGroupConsensus.setFont(verdana11); + showGroupConsensus.setHorizontalAlignment(SwingConstants.RIGHT); + showGroupConsensus.setHorizontalTextPosition(SwingConstants.LEFT); + showGroupConsensus.setSelected(true); + showGroupConsensus.setText("Consensus"); + showGroupConservation.setEnabled(false); + showGroupConservation.setFont(verdana11); + showGroupConservation.setHorizontalAlignment(SwingConstants.RIGHT); + showGroupConservation.setHorizontalTextPosition(SwingConstants.LEFT); + showGroupConservation.setSelected(true); + showGroupConservation.setText("Conservation"); + showNpTooltip.setEnabled(true); + showNpTooltip.setFont(verdana11); + showNpTooltip.setHorizontalAlignment(SwingConstants.RIGHT); + showNpTooltip.setHorizontalTextPosition(SwingConstants.LEFT); + showNpTooltip.setSelected(true); + showNpTooltip.setText("Non-positional Features"); + showDbRefTooltip.setEnabled(true); + showDbRefTooltip.setFont(verdana11); + showDbRefTooltip.setHorizontalAlignment(SwingConstants.RIGHT); + showDbRefTooltip.setHorizontalTextPosition(SwingConstants.LEFT); + showDbRefTooltip.setSelected(true); + showDbRefTooltip.setText("Database References"); annotations.setFont(verdana11); annotations.setHorizontalAlignment(SwingConstants.RIGHT); - annotations.setHorizontalTextPosition(SwingConstants.LEFT); + annotations.setHorizontalTextPosition(SwingConstants.LEADING); annotations.setSelected(true); annotations.setText("Show Annotations"); + annotations.setBounds(new Rectangle(169, 12, 200, 23)); annotations.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) @@ -266,6 +365,45 @@ public class GPreferences extends JPanel annotations_actionPerformed(e); } }); + identity.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + annotations_actionPerformed(e); + } + }); + showGroupConsensus.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + annotations_actionPerformed(e); + } + }); + showUnconserved.setFont(verdana11); + showUnconserved.setHorizontalAlignment(SwingConstants.RIGHT); + showUnconserved.setHorizontalTextPosition(SwingConstants.LEFT); + showUnconserved.setSelected(true); + showUnconserved.setText("Show Unconserved"); + showUnconserved.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + showunconserved_actionPerformed(e); + } + }); + // / TODO: fit these in to preferences panel!!!!! + shareSelections.setFont(verdana11); + shareSelections.setHorizontalAlignment(SwingConstants.RIGHT); + shareSelections.setHorizontalTextPosition(SwingConstants.LEFT); + shareSelections.setSelected(true); + shareSelections.setText("Share selection across views"); + followHighlight.setFont(verdana11); + followHighlight.setHorizontalAlignment(SwingConstants.RIGHT); + followHighlight.setHorizontalTextPosition(SwingConstants.LEFT); + // showUnconserved.setBounds(new Rectangle(169, 40, 200, 23)); + followHighlight.setSelected(true); + followHighlight.setText("Scroll to highlighted regions"); + gapLabel.setFont(verdana11); gapLabel.setHorizontalAlignment(SwingConstants.RIGHT); gapLabel.setText("Gap Symbol "); @@ -273,18 +411,45 @@ public class GPreferences extends JPanel colour.setBounds(new Rectangle(172, 225, 155, 21)); colourLabel.setFont(verdana11); colourLabel.setHorizontalAlignment(SwingConstants.RIGHT); - colourLabel.setText("Colour "); + colourLabel.setText("Alignment Colour "); fontLabel.setFont(verdana11); fontLabel.setHorizontalAlignment(SwingConstants.RIGHT); fontLabel.setText("Font "); fontSizeCB.setFont(verdana11); - fontSizeCB.setBounds(new Rectangle(319, 111, 49, 21)); + fontSizeCB.setBounds(new Rectangle(319, 104, 49, 23)); fontStyleCB.setFont(verdana11); - fontStyleCB.setBounds(new Rectangle(367, 111, 70, 21)); + fontStyleCB.setBounds(new Rectangle(367, 104, 70, 23)); fontNameCB.setFont(verdana11); - fontNameCB.setBounds(new Rectangle(172, 111, 147, 21)); + fontNameCB.setBounds(new Rectangle(172, 104, 147, 23)); gapSymbolCB.setFont(verdana11); - gapSymbolCB.setBounds(new Rectangle(172, 204, 69, 21)); + gapSymbolCB.setBounds(new Rectangle(172, 204, 69, 23)); + mincolourLabel.setFont(verdana11); + mincolourLabel.setHorizontalAlignment(SwingConstants.RIGHT); + mincolourLabel.setText("Minimum Colour"); + minColour.setFont(verdana11); + minColour.setBorder(BorderFactory.createEtchedBorder()); + minColour.setPreferredSize(new Dimension(40, 20)); + minColour.addMouseListener(new MouseAdapter() + { + public void mousePressed(MouseEvent e) + { + minColour_actionPerformed(); + } + }); + maxcolourLabel.setFont(verdana11); + maxcolourLabel.setHorizontalAlignment(SwingConstants.RIGHT); + maxcolourLabel.setText("Maximum Colour "); + maxColour.setFont(verdana11); + maxColour.setBorder(BorderFactory.createEtchedBorder()); + maxColour.setPreferredSize(new Dimension(40, 20)); + maxColour.addMouseListener(new MouseAdapter() + { + public void mousePressed(MouseEvent e) + { + maxColour_actionPerformed(); + } + }); + startupCheckbox.setText("Open file"); startupCheckbox.setFont(verdana11); startupCheckbox.setHorizontalAlignment(SwingConstants.RIGHT); @@ -317,6 +482,18 @@ public class GPreferences extends JPanel browserLabel.setText("Default Browser (Unix)"); defaultBrowser.setFont(verdana11); defaultBrowser.setText(""); + usagestats.setText("Send usage statistics"); + usagestats.setFont(verdana11); + usagestats.setHorizontalAlignment(SwingConstants.RIGHT); + usagestats.setHorizontalTextPosition(SwingConstants.LEADING); + questionnaire.setText("Check for questionnaires"); + questionnaire.setFont(verdana11); + questionnaire.setHorizontalAlignment(SwingConstants.RIGHT); + questionnaire.setHorizontalTextPosition(SwingConstants.LEADING); + versioncheck.setText("Check for latest version"); + versioncheck.setFont(verdana11); + versioncheck.setHorizontalAlignment(SwingConstants.RIGHT); + versioncheck.setHorizontalTextPosition(SwingConstants.LEADING); newLink.setText("New"); newLink.addActionListener(new java.awt.event.ActionListener() { @@ -402,7 +579,6 @@ public class GPreferences extends JPanel jPanel2.setBounds(new Rectangle(7, 17, 158, 278)); jPanel2.setLayout(gridLayout2); gridLayout2.setRows(12); - jPanel3.setBounds(new Rectangle(173, 35, 274, 26)); exportTab.setLayout(null); epsLabel.setFont(verdana11); epsLabel.setHorizontalAlignment(SwingConstants.RIGHT); @@ -449,61 +625,108 @@ public class GPreferences extends JPanel smoothFont.setHorizontalTextPosition(SwingConstants.LEADING); smoothFont.setText("Smooth Font"); calcTab.setLayout(null); - autoCalculateConsCheck.setFont(new java.awt.Font("Verdana", Font.PLAIN, - 11)); + autoCalculateConsCheck.setFont(JvSwingUtils.getLabelFont()); autoCalculateConsCheck.setText("AutoCalculate Consensus"); autoCalculateConsCheck.setBounds(new Rectangle(21, 52, 209, 23)); - padGaps.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11)); - padGaps.setText("Pad gaps when editing"); + padGaps.setFont(JvSwingUtils.getLabelFont()); + padGaps.setText("Pad Gaps When Editing"); padGaps.setBounds(new Rectangle(22, 94, 168, 23)); - modellerOutput.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11)); + sortByTree.setFont(JvSwingUtils.getLabelFont()); + sortByTree.setText("Sort With New Tree"); + sortByTree.setToolTipText("When selected, any trees calculated or loaded onto the alignment will automatically sort the alignment."); + sortByTree.setBounds(new Rectangle(22, 136, 168, 23)); + modellerOutput.setFont(JvSwingUtils.getLabelFont()); modellerOutput.setText("Use Modeller Output"); modellerOutput.setBounds(new Rectangle(228, 226, 168, 23)); dasPanel.setLayout(borderLayout4); - wrap.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11)); + wsPanel.setLayout(borderLayout5); + wrap.setFont(JvSwingUtils.getLabelFont()); wrap.setHorizontalAlignment(SwingConstants.TRAILING); wrap.setHorizontalTextPosition(SwingConstants.LEADING); wrap.setText("Wrap Alignment"); - rightAlign.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11)); + rightAlign.setFont(JvSwingUtils.getLabelFont()); rightAlign.setForeground(Color.black); rightAlign.setHorizontalAlignment(SwingConstants.RIGHT); rightAlign.setHorizontalTextPosition(SwingConstants.LEFT); rightAlign.setText("Right Align Ids"); - idItalics.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11)); + idItalics.setFont(JvSwingUtils.getLabelFont()); idItalics.setHorizontalAlignment(SwingConstants.RIGHT); idItalics.setHorizontalTextPosition(SwingConstants.LEADING); idItalics.setText("Sequence Name Italics"); - openoverv.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11)); + openoverv.setFont(JvSwingUtils.getLabelFont()); openoverv.setActionCommand("Open Overview"); openoverv.setHorizontalAlignment(SwingConstants.RIGHT); - openoverv.setHorizontalTextPosition(SwingConstants.LEADING); - openoverv.setText("Open Overview Window"); - openoverv.setBounds(new Rectangle(169, 17, 200, 23)); + openoverv.setHorizontalTextPosition(SwingConstants.LEFT); + openoverv.setText("Open Overview"); jPanel2.add(fullScreen); - jPanel2.add(annotations); + jPanel2.add(openoverv); jPanel2.add(seqLimit); jPanel2.add(rightAlign); jPanel2.add(fontLabel); + jPanel2.add(showUnconserved); jPanel2.add(idItalics); jPanel2.add(smoothFont); - jPanel2.add(wrap); jPanel2.add(gapLabel); - jPanel2.add(colourLabel); + jPanel2.add(wrap); jPanel2.add(sortLabel); jPanel2.add(startupCheckbox); - visualTab.add(openoverv); + visualTab.add(annotations); visualTab.add(startupFileTextfield); visualTab.add(sortby); - visualTab.add(colour); visualTab.add(gapSymbolCB); - visualTab.add(jPanel3); visualTab.add(fontNameCB); visualTab.add(fontSizeCB); visualTab.add(fontStyleCB); - jPanel3.add(conservation); - jPanel3.add(identity); - jPanel3.add(quality); + annsettingsPanel.setBounds(new Rectangle(173, 34, 300, 61)); + annsettingsPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0)); + annsettingsPanel.add(autoAnnotSettings1); + annsettingsPanel.add(autoAnnotSettings2); + annsettingsPanel.add(autoAnnotSettings3); + autoAnnotSettings1.setLayout(new GridLayout(3, 1, 0, 0)); + autoAnnotSettings2.setLayout(new GridLayout(3, 1, 0, 0)); + autoAnnotSettings3.setLayout(new GridLayout(3, 1, 0, 0)); + visualTab.add(annsettingsPanel); + Border jb = new EmptyBorder(1, 1, 4, 5); + quality.setBorder(jb); + conservation.setBorder(jb); + identity.setBorder(jb); + showConsensbits.setBorder(jb); + showGroupbits.setBorder(jb); + showGroupConsensus.setBorder(jb); + showGroupConservation.setBorder(jb); + showConsensHistogram.setBorder(jb); + showConsensLogo.setBorder(jb); + + autoAnnotSettings2.add(conservation); + autoAnnotSettings1.add(quality); + autoAnnotSettings3.add(identity); + autoAnnotSettings1.add(showGroupbits); + autoAnnotSettings3.add(showGroupConsensus); + autoAnnotSettings2.add(showGroupConservation); + autoAnnotSettings1.add(showConsensbits); + autoAnnotSettings2.add(showConsensHistogram); + autoAnnotSettings3.add(showConsensLogo); + + JPanel tooltipSettings = new JPanel(); + tooltipSettings.setBorder(new TitledBorder("Sequence ID Tooltip")); + tooltipSettings.setBounds(173, 130, 200, 62); + tooltipSettings.setLayout(new GridLayout(2, 1)); + tooltipSettings.add(showDbRefTooltip); + tooltipSettings.add(showNpTooltip); + visualTab.add(tooltipSettings); visualTab.add(jPanel2); + JvSwingUtils.addtoLayout(visual2Tab, "Default Colourscheme for alignment", colourLabel, colour); + JPanel annotationShding=new JPanel(); + annotationShding.setBorder(new TitledBorder("Annotation Shading Default")); + annotationShding.setLayout(new GridLayout(1,2)); + JvSwingUtils.addtoLayout(annotationShding, "Default Minimum Colour for annotation shading", mincolourLabel,minColour); + JvSwingUtils.addtoLayout(annotationShding,"Default Maximum Colour for annotation shading", maxcolourLabel, maxColour); + visual2Tab.add(annotationShding); // , FlowLayout.LEFT); + +// visual2panel.add(minColour); +// visual2panel.add(maxColour); +// visual2Tab.add(visual2panel); + linkPanel.add(editLinkButtons, BorderLayout.EAST); editLinkButtons.add(newLink, null); editLinkButtons.add(editLink, null); @@ -541,6 +764,15 @@ public class GPreferences extends JPanel connectTab.add(defaultBrowser, new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(15, 0, 0, 15), 307, 1)); + connectTab.add(usagestats, new GridBagConstraints(0, 4, 1, 1, 1.0, 0.0, + GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, + new Insets(0, 2, 4, 2), 70, 1)); + connectTab.add(questionnaire, new GridBagConstraints(1, 4, 1, 1, 1.0, + 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, + new Insets(0, 2, 4, 2), 70, 1)); + connectTab.add(versioncheck, new GridBagConstraints(0, 5, 1, 1, 1.0, + 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, + new Insets(0, 2, 4, 2), 70, 1)); jPanel1.add(useProxy, new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, @@ -550,6 +782,7 @@ public class GPreferences extends JPanel gapSymbolCB.setRenderer(dlcr); tabbedPane.add(visualTab, "Visual"); + tabbedPane.add(visual2Tab,"Colours"); tabbedPane.add(connectTab, "Connections"); tabbedPane.add(exportTab, "Output"); jPanel11.add(jLabel1); @@ -564,18 +797,39 @@ public class GPreferences extends JPanel tabbedPane.add(calcTab, "Editing"); calcTab.add(autoCalculateConsCheck); calcTab.add(padGaps); + calcTab.add(sortByTree); + tabbedPane.add(dasPanel, "DAS Settings"); + tabbedPane.add(wsPanel, "Web Services"); exportTab.add(epsLabel); exportTab.add(epsRendering); exportTab.add(jPanel11); } + protected void maxColour_actionPerformed() + { + // TODO Auto-generated method stub + + } + + protected void minColour_actionPerformed() + { + // TODO Auto-generated method stub + + } + + protected void showunconserved_actionPerformed(ActionEvent e) + { + // TODO Auto-generated method stub + + } + /** * DOCUMENT ME! * * @param e - * DOCUMENT ME! + * DOCUMENT ME! */ public void ok_actionPerformed(ActionEvent e) { @@ -585,7 +839,7 @@ public class GPreferences extends JPanel * DOCUMENT ME! * * @param e - * DOCUMENT ME! + * DOCUMENT ME! */ public void cancel_actionPerformed(ActionEvent e) { @@ -595,7 +849,7 @@ public class GPreferences extends JPanel * DOCUMENT ME! * * @param e - * DOCUMENT ME! + * DOCUMENT ME! */ public void annotations_actionPerformed(ActionEvent e) {