2 * Jalview - A Sequence Alignment Editor and Viewer
\r
3 * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
\r
5 * This program is free software; you can redistribute it and/or
\r
6 * modify it under the terms of the GNU General Public License
\r
7 * as published by the Free Software Foundation; either version 2
\r
8 * of the License, or (at your option) any later version.
\r
10 * This program is distributed in the hope that it will be useful,
\r
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
13 * GNU General Public License for more details.
\r
15 * You should have received a copy of the GNU General Public License
\r
16 * along with this program; if not, write to the Free Software
\r
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
\r
19 package jalview.gui;
\r
21 import jalview.bin.*;
\r
23 import jalview.io.*;
\r
25 import jalview.jbgui.*;
\r
27 import jalview.schemes.*;
\r
30 import java.awt.event.*;
\r
32 import javax.swing.*;
\r
39 * @version $Revision$
\r
41 public class Preferences extends GPreferences
\r
43 static boolean preferencesLoaded = false;
\r
45 /** DOCUMENT ME!! */
\r
46 public static boolean showFullscreen = false;
\r
48 /** DOCUMENT ME!! */
\r
49 public static boolean showFullId = true;
\r
51 /** DOCUMENT ME!! */
\r
52 public static boolean showAnnotation = true;
\r
54 /** DOCUMENT ME!! */
\r
55 public static boolean showConservation = true;
\r
57 /** DOCUMENT ME!! */
\r
58 public static boolean showQuality = true;
\r
60 /** DOCUMENT ME!! */
\r
61 public static boolean showIdentity = true;
\r
63 /** DOCUMENT ME!! */
\r
64 public static String fontName = "SansSerif";
\r
66 /** DOCUMENT ME!! */
\r
67 public static String fontSize = "10";
\r
69 /** DOCUMENT ME!! */
\r
70 public static String fontStyle = Font.PLAIN + "";
\r
72 /** DOCUMENT ME!! */
\r
73 public static char gapSymbol = '-';
\r
75 /** DOCUMENT ME!! */
\r
76 public static String defaultColour = null;
\r
78 /** DOCUMENT ME!! */
\r
79 public static boolean showStartupFile = true;
\r
81 /** DOCUMENT ME!! */
\r
82 public static String startupFile = "http://www.jalview.org/examples/exampleFile.jar";
\r
83 JInternalFrame frame;
\r
86 * Creates a new Preferences object.
\r
88 public Preferences()
\r
92 frame = new JInternalFrame();
\r
93 frame.setContentPane(this);
\r
94 Desktop.addInternalFrame(frame, "Preferences", 480, 390);
\r
96 fullID.setSelected(showFullId);
\r
98 String string = Cache.getProperty("SHOW_FULLSCREEN");
\r
99 boolean value = false;
\r
101 if (string != null)
\r
103 value = Boolean.valueOf(string).booleanValue();
\r
106 fullScreen.setSelected(value);
\r
107 annotations.setSelected(showAnnotation);
\r
109 conservation.setEnabled(showAnnotation);
\r
110 quality.setEnabled(showAnnotation);
\r
111 identity.setEnabled(showAnnotation);
\r
113 conservation.setSelected(showConservation);
\r
114 quality.setSelected(showQuality);
\r
115 identity.setSelected(showIdentity);
\r
117 for (int i = 0; i < 12; i++)
\r
119 colour.addItem(ColourSchemeProperty.getColourName(i));
\r
122 string = Cache.getProperty("DEFAULT_COLOUR");
\r
124 if (string != null)
\r
126 colour.setSelectedItem(string);
\r
130 colour.setSelectedIndex(11);
\r
133 String[] fonts = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment()
\r
134 .getAvailableFontFamilyNames();
\r
136 for (int i = 0; i < fonts.length; i++)
\r
138 fontNameCB.addItem(fonts[i]);
\r
141 for (int i = 1; i < 31; i++)
\r
143 fontSizeCB.addItem(i + "");
\r
146 fontStyleCB.addItem("plain");
\r
147 fontStyleCB.addItem("bold");
\r
148 fontStyleCB.addItem("italic");
\r
150 fontNameCB.setSelectedItem(fontName);
\r
151 fontSizeCB.setSelectedItem(fontSize);
\r
152 fontStyleCB.setSelectedItem(fontStyle);
\r
154 gapSymbolCB.addItem("-");
\r
155 gapSymbolCB.addItem(".");
\r
157 gapSymbolCB.setSelectedItem(gapSymbol + "");
\r
159 startupCheckbox.setSelected(showStartupFile);
\r
160 startupFileTextfield.setText(startupFile);
\r
166 public static void initPreferences()
\r
168 String string = Cache.getProperty("SHOW_FULL_ID");
\r
170 if (string != null)
\r
172 showFullId = Boolean.valueOf(string).booleanValue();
\r
175 string = Cache.getProperty("SHOW_FULLSCREEN");
\r
177 if (string != null)
\r
179 showFullscreen = Boolean.valueOf(string).booleanValue();
\r
182 string = Cache.getProperty("SHOW_ANNOTATIONS");
\r
184 if (string != null)
\r
186 showAnnotation = Boolean.valueOf(string).booleanValue();
\r
189 string = Cache.getProperty("SHOW_CONSERVATION");
\r
191 if (string != null)
\r
193 showConservation = Boolean.valueOf(string).booleanValue();
\r
196 string = Cache.getProperty("SHOW_QUALITY");
\r
198 if (string != null)
\r
200 showQuality = Boolean.valueOf(string).booleanValue();
\r
203 string = Cache.getProperty("SHOW_IDENTITY");
\r
205 if (string != null)
\r
207 showIdentity = Boolean.valueOf(string).booleanValue();
\r
210 string = Cache.getProperty("GAP_SYMBOL");
\r
212 if (string != null)
\r
214 gapSymbol = string.charAt(0);
\r
217 string = Cache.getProperty("SHOW_FULL_ID");
\r
219 if (string != null)
\r
221 showFullId = Boolean.valueOf(string).booleanValue();
\r
224 string = Cache.getProperty("FONT_NAME");
\r
226 if (string != null)
\r
231 string = Cache.getProperty("FONT_STYLE");
\r
233 if (string != null)
\r
235 fontStyle = string;
\r
238 string = Cache.getProperty("FONT_SIZE");
\r
240 if (string != null)
\r
245 string = Cache.getProperty("DEFAULT_COLOUR");
\r
247 if (string != null)
\r
249 defaultColour = string;
\r
252 string = Cache.getProperty("STARTUP_FILE");
\r
254 if (string != null)
\r
256 startupFile = string;
\r
259 string = Cache.getProperty("SHOW_STARTUP_FILE");
\r
261 if (string != null)
\r
263 showStartupFile = Boolean.valueOf(string).booleanValue();
\r
266 preferencesLoaded = true;
\r
272 * @param e DOCUMENT ME!
\r
274 public void ok_actionPerformed(ActionEvent e)
\r
276 showFullId = fullID.isSelected();
\r
277 showFullscreen = fullScreen.isSelected();
\r
278 showAnnotation = annotations.isSelected();
\r
279 showConservation = conservation.isSelected();
\r
280 showQuality = quality.isSelected();
\r
281 showIdentity = identity.isSelected();
\r
282 defaultColour = colour.getSelectedItem().toString();
\r
283 gapSymbol = gapSymbolCB.getSelectedItem().toString().charAt(0);
\r
284 fontName = fontNameCB.getSelectedItem().toString();
\r
285 fontSize = fontSizeCB.getSelectedItem().toString();
\r
286 fontStyle = fontStyleCB.getSelectedItem().toString();
\r
287 startupFile = startupFileTextfield.getText();
\r
288 showStartupFile = startupCheckbox.isSelected();
\r
290 Cache.setProperty("SHOW_FULL_ID", Boolean.toString(showFullId));
\r
291 Cache.setProperty("SHOW_FULLSCREEN", Boolean.toString(showFullscreen));
\r
293 Cache.setProperty("SHOW_ANNOTATIONS", Boolean.toString(showAnnotation));
\r
294 Cache.setProperty("SHOW_CONSERVATION",
\r
295 Boolean.toString(showConservation));
\r
296 Cache.setProperty("SHOW_QUALITY", Boolean.toString(showQuality));
\r
297 Cache.setProperty("SHOW_IDENTITY", Boolean.toString(showIdentity));
\r
299 Cache.setProperty("DEFAULT_COLOUR", defaultColour);
\r
300 Cache.setProperty("GAP_SYMBOL", gapSymbol + "");
\r
302 Cache.setProperty("FONT_NAME", fontName);
\r
303 Cache.setProperty("FONT_STYLE", fontStyle);
\r
304 Cache.setProperty("FONT_SIZE", fontSize);
\r
306 Cache.setProperty("STARTUP_FILE", startupFile);
\r
307 Cache.setProperty("SHOW_STARTUP_FILE", Boolean.toString(showStartupFile));
\r
311 frame.setClosed(true);
\r
313 catch (Exception ex)
\r
321 public void startupFileTextfield_mouseClicked()
\r
323 JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache.getProperty(
\r
327 "fa, fasta, fastq", "aln", "pfam", "msf", "pir", "blc",
\r
332 "Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "Jalview"
\r
333 }, jalview.bin.Cache.getProperty("DEFAULT_FILE_FORMAT"));
\r
334 chooser.setFileView(new JalviewFileView());
\r
335 chooser.setDialogTitle("Select startup file");
\r
337 int value = chooser.showOpenDialog(this);
\r
339 if (value == JalviewFileChooser.APPROVE_OPTION)
\r
341 jalview.bin.Cache.setProperty("DEFAULT_FILE_FORMAT",
\r
342 chooser.getSelectedFormat());
\r
343 startupFileTextfield.setText(chooser.getSelectedFile()
\r
344 .getAbsolutePath());
\r
351 * @param e DOCUMENT ME!
\r
353 public void cancel_actionPerformed(ActionEvent e)
\r
357 frame.setClosed(true);
\r
359 catch (Exception ex)
\r
367 * @param e DOCUMENT ME!
\r
369 public void annotations_actionPerformed(ActionEvent e)
\r
371 conservation.setEnabled(annotations.isSelected());
\r
372 quality.setEnabled(annotations.isSelected());
\r
373 identity.setEnabled(annotations.isSelected());
\r