X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FPreferences.java;h=dfb89b22b18c20f90c972b539485920727048a60;hb=7c5e7c1c51a48eab1b217a221df82748c35b76b1;hp=1e9cd46069e51946a47d91d6f19e7361db5152e3;hpb=35b5211f569ab800af33ac7ac3b95171dfcf79cc;p=jalview.git diff --git a/src/jalview/gui/Preferences.java b/src/jalview/gui/Preferences.java index 1e9cd46..dfb89b2 100755 --- a/src/jalview/gui/Preferences.java +++ b/src/jalview/gui/Preferences.java @@ -1,34 +1,48 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) - * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) + * Copyright (C) 2014 The Jalview Authors * * This file is part of Jalview. * * 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. - * + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * * 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 . + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.gui; -import java.util.*; - -import java.awt.*; -import java.awt.event.*; - -import javax.swing.*; - -import jalview.bin.*; -import jalview.io.*; -import jalview.jbgui.*; -import jalview.schemes.*; -import jalview.ws.EnfinEnvision2OneWay; +import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder; +import jalview.bin.Cache; +import jalview.io.JalviewFileChooser; +import jalview.io.JalviewFileView; +import jalview.jbgui.GPreferences; +import jalview.jbgui.GSequenceLink; +import jalview.schemes.ColourSchemeProperty; +import jalview.util.MessageManager; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.event.ActionEvent; +import java.awt.event.MouseEvent; +import java.util.Collection; +import java.util.StringTokenizer; +import java.util.Vector; + +import javax.swing.JColorChooser; +import javax.swing.JFileChooser; +import javax.swing.JInternalFrame; +import javax.swing.JOptionPane; /** * DOCUMENT ME! @@ -59,7 +73,7 @@ public class Preferences extends GPreferences String string = Cache .getDefault( "SEQUENCE_LINKS", - "SRS|http://srs.ebi.ac.uk/srsbin/cgi-bin/wgetz?-newId+(([uniprot-all:$SEQUENCE_ID$]))+-view+SwissEntry"); + "EMBL-EBI Search|http://www.ebi.ac.uk/ebisearch/search.ebi?db=allebi&query=$SEQUENCE_ID$"); sequenceURLLinks = new Vector(); try @@ -81,15 +95,25 @@ public class Preferences extends GPreferences { System.out.println(ex + "\nError parsing sequence links"); } + { + // upgrade old SRS link + int srsPos = sequenceURLLinks + .indexOf("SRS|http://srs.ebi.ac.uk/srsbin/cgi-bin/wgetz?-newId+(([uniprot-all:$SEQUENCE_ID$]))+-view+SwissEntry"); + if (srsPos > -1) + { + sequenceURLLinks + .setElementAt( + "EMBL-EBI Search|http://www.ebi.ac.uk/ebisearch/search.ebi?db=allebi&query=$SEQUENCE_ID$", + srsPos); + } + } + /** * TODO: reformulate groupURL encoding so two or more can be stored in the * .properties file as '|' separated strings */ groupURLLinks = new Vector(); - // groupURLLinks.addElement("UNIPROT|EnVision2|http://www.ebi.ac.uk/enfin-srv/envision2/pages/linkin.jsf?tool=Jalview&workflow=Default&datasetName=JalviewIDs$DATASETID$&input=$SEQUENCEIDS$&inputType=0|,"); - // groupURLLinks.addElement("Seqs|EnVision2|http://www.ebi.ac.uk/enfin-srv/envision2/pages/linkin.jsf?tool=Jalview&workflow=Default&datasetName=JalviewSeqs$DATASETID$&input=$SEQUENCES=/([A-Za-z]+)+/=$&inputType=1|,"); - } Vector nameLinks, urlLinks; @@ -119,7 +143,8 @@ public class Preferences extends GPreferences height = 460; } - Desktop.addInternalFrame(frame, "Preferences", width, height); + Desktop.addInternalFrame(frame, + MessageManager.getString("label.preferences"), width, height); frame.setMinimumSize(new Dimension(width, height)); seqLimit.setSelected(Cache.getDefault("SHOW_JVSUFFIX", true)); @@ -150,8 +175,10 @@ public class Preferences extends GPreferences /** * default min-max colours for annotation shading */ - minColour.setBackground(Cache.getDefaultColour("ANNOTATIONCOLOUR_MIN", Color.orange)); - maxColour.setBackground(Cache.getDefaultColour("ANNOTATIONCOLOUR_MAX", Color.red)); + minColour.setBackground(Cache.getDefaultColour("ANNOTATIONCOLOUR_MIN", + Color.orange)); + maxColour.setBackground(Cache.getDefaultColour("ANNOTATIONCOLOUR_MAX", + Color.red)); String[] fonts = java.awt.GraphicsEnvironment .getLocalGraphicsEnvironment().getAvailableFontFamilyNames(); @@ -189,21 +216,39 @@ public class Preferences extends GPreferences startupCheckbox .setSelected(Cache.getDefault("SHOW_STARTUP_FILE", true)); startupFileTextfield.setText(Cache.getDefault("STARTUP_FILE", - Cache.getDefault("www.jalview.org","http://www.jalview.org")+"/examples/exampleFile_2_3.jar")); + Cache.getDefault("www.jalview.org", "http://www.jalview.org") + + "/examples/exampleFile_2_3.jar")); sortby.addItem("No sort"); sortby.addItem("Id"); sortby.addItem("Pairwise Identity"); sortby.setSelectedItem(Cache.getDefault("SORT_ALIGNMENT", "No sort")); - epsRendering.addItem("Prompt each time"); - epsRendering.addItem("Lineart"); - epsRendering.addItem("Text"); - epsRendering.setSelectedItem(Cache.getDefault("EPS_RENDERING", - "Prompt each time")); + sortAnnBy.addItem(SequenceAnnotationOrder.NONE.toString()); + sortAnnBy + .addItem(SequenceAnnotationOrder.SEQUENCE_AND_LABEL.toString()); + sortAnnBy + .addItem(SequenceAnnotationOrder.LABEL_AND_SEQUENCE.toString()); + SequenceAnnotationOrder savedSort = SequenceAnnotationOrder + .valueOf(Cache.getDefault(Cache.SORT_ANNOTATIONS, + SequenceAnnotationOrder.NONE.name())); + sortAnnBy.setSelectedItem(savedSort.toString()); + + sortAutocalc.addItem("Autocalculated first"); + sortAutocalc.addItem("Autocalculated last"); + + final boolean showAbove = Cache.getDefault(Cache.SHOW_AUTOCALC_ABOVE, + true); + sortAutocalc.setSelectedItem(showAbove ? sortAutocalc.getItemAt(0) + : sortAutocalc.getItemAt(1)); + + epsRendering.addItem(MessageManager.getString("label.prompt_each_time")); + epsRendering.addItem(MessageManager.getString("label.lineart")); + epsRendering.addItem(MessageManager.getString("action.text")); + epsRendering.setSelectedIndex(0); autoIdWidth.setSelected(Cache.getDefault("FIGURE_AUTOIDWIDTH", false)); - userIdWidth.setEnabled(!autoIdWidth.isSelected()); - userIdWidthlabel.setEnabled(!autoIdWidth.isSelected()); + userIdWidth.setEnabled(autoIdWidth.isSelected()); + userIdWidthlabel.setEnabled(autoIdWidth.isSelected()); Integer wi = Cache.getIntegerProperty("FIGURE_USERIDWIDTH"); userIdWidth.setText(wi == null ? "" : wi.toString()); blcjv.setSelected(Cache.getDefault("BLC_JVSUFFIX", true)); @@ -339,9 +384,24 @@ public class Preferences extends GPreferences Cache.applicationProperties.setProperty("SORT_ALIGNMENT", sortby .getSelectedItem().toString()); - Cache.setColourProperty("ANNOTATIONCOLOUR_MIN", minColour.getBackground()); - Cache.setColourProperty("ANNOTATIONCOLOUR_MAX", maxColour.getBackground()); - + // convert description of sort order to enum name for save + SequenceAnnotationOrder annSortOrder = SequenceAnnotationOrder + .forDescription(sortAnnBy.getSelectedItem().toString()); + if (annSortOrder != null) + { + Cache.applicationProperties.setProperty(Cache.SORT_ANNOTATIONS, + annSortOrder.name()); + } + + final boolean showAutocalcFirst = sortAutocalc.getSelectedIndex() == 0; + Cache.applicationProperties.setProperty(Cache.SHOW_AUTOCALC_ABOVE, + Boolean.valueOf(showAutocalcFirst).toString()); + + Cache.setColourProperty("ANNOTATIONCOLOUR_MIN", + minColour.getBackground()); + Cache.setColourProperty("ANNOTATIONCOLOUR_MAX", + maxColour.getBackground()); + if (epsRendering.getSelectedItem().equals("Prompt each time")) { Cache.applicationProperties.remove("EPS_RENDERING"); @@ -458,7 +518,7 @@ public class Preferences extends GPreferences Boolean.toString(autoIdWidth.isSelected())); userIdWidth_actionPerformed(); Cache.applicationProperties.setProperty("FIGURE_USERIDWIDTH", - userIdWidth.getText()); + userIdWidth.getText()); Cache.applicationProperties.setProperty("AUTO_CALC_CONSENSUS", Boolean.toString(autoCalculateConsCheck.isSelected())); @@ -491,7 +551,7 @@ public class Preferences extends GPreferences { "Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "Jalview" }, jalview.bin.Cache.getProperty("DEFAULT_FILE_FORMAT")); chooser.setFileView(new JalviewFileView()); - chooser.setDialogTitle("Select startup file"); + chooser.setDialogTitle(MessageManager.getString("label.select_startup_file")); int value = chooser.showOpenDialog(this); @@ -549,8 +609,8 @@ public class Preferences extends GPreferences while (!valid) { if (JOptionPane.showInternalConfirmDialog(Desktop.desktop, link, - "New sequence URL link", JOptionPane.OK_CANCEL_OPTION, -1, - null) == JOptionPane.OK_OPTION) + MessageManager.getString("label.new_sequence_url_link"), + JOptionPane.OK_CANCEL_OPTION, -1, null) == JOptionPane.OK_OPTION) { if (link.checkValid()) { @@ -575,7 +635,8 @@ public class Preferences extends GPreferences if (index == -1) { JOptionPane.showInternalMessageDialog(Desktop.desktop, - "No link selected!", "No link selected", + MessageManager.getString("label.no_link_selected"), + MessageManager.getString("label.no_link_selected"), JOptionPane.WARNING_MESSAGE); return; } @@ -588,8 +649,8 @@ public class Preferences extends GPreferences { if (JOptionPane.showInternalConfirmDialog(Desktop.desktop, link, - "New sequence URL link", JOptionPane.OK_CANCEL_OPTION, -1, - null) == JOptionPane.OK_OPTION) + MessageManager.getString("label.new_sequence_url_link"), + JOptionPane.OK_CANCEL_OPTION, -1, null) == JOptionPane.OK_OPTION) { if (link.checkValid()) { @@ -613,7 +674,8 @@ public class Preferences extends GPreferences if (index == -1) { JOptionPane.showInternalMessageDialog(Desktop.desktop, - "No link selected!", "No link selected", + MessageManager.getString("label.no_link_selected"), + MessageManager.getString("label.no_link_selected"), JOptionPane.WARNING_MESSAGE); return; } @@ -631,7 +693,7 @@ public class Preferences extends GPreferences public void defaultBrowser_mouseClicked(MouseEvent e) { JFileChooser chooser = new JFileChooser("."); - chooser.setDialogTitle("Select default web browser"); + chooser.setDialogTitle(MessageManager.getString("label.select_default_browser")); int value = chooser.showOpenDialog(this); @@ -663,10 +725,11 @@ public class Preferences extends GPreferences { return groupURLLinks; } + public void minColour_actionPerformed() { Color col = JColorChooser.showDialog(this, - "Select Colour for Minimum Value", minColour.getBackground()); + MessageManager.getString("label.select_colour_minimum_value"), minColour.getBackground()); if (col != null) { minColour.setBackground(col); @@ -677,7 +740,7 @@ public class Preferences extends GPreferences public void maxColour_actionPerformed() { Color col = JColorChooser.showDialog(this, - "Select Colour for Maximum Value", maxColour.getBackground()); + MessageManager.getString("label.select_colour_maximum_value"), maxColour.getBackground()); if (col != null) { maxColour.setBackground(col); @@ -705,8 +768,8 @@ public class Preferences extends GPreferences JOptionPane .showInternalMessageDialog( Desktop.desktop, - "The user defined width for the\nannotation and sequence ID columns\nin exported figures must be\nat least 12 pixels wide.", - "Invalid ID Column width", + MessageManager.getString("warn.user_defined_width_requirements"), + MessageManager.getString("label.invalid_id_column_width"), JOptionPane.WARNING_MESSAGE); userIdWidth.setText(""); }