preferences held statically
[jalview.git] / src / jalview / gui / Preferences.java
1 package jalview.gui;\r
2 \r
3 import jalview.jbgui.*;\r
4 import jalview.schemes.*;\r
5 \r
6 import jalview.bin.Cache;\r
7 import javax.swing.*;\r
8 import java.awt.event.ActionEvent;\r
9 import java.awt.*;\r
10 \r
11 public class Preferences extends GPreferences\r
12 {\r
13   static boolean preferencesLoaded=false;\r
14 \r
15   public static boolean showFullscreen=false;\r
16   public static boolean showFullId=true;\r
17   public static boolean showAnnotation=true;\r
18   public static boolean showConservation=true;\r
19   public static boolean showQuality=true;\r
20   public static boolean showIdentity=true;\r
21   public static String fontName;\r
22   public static String fontSize;\r
23   public static String fontStyle;\r
24   public static char gapSymbol='-';\r
25   public static String defaultColour=null;\r
26 \r
27   JInternalFrame frame;\r
28 \r
29   public static void initPreferences()\r
30   {\r
31   String string = Cache.getProperty("SHOW_FULL_ID");\r
32   if(string!=null)\r
33     showFullId = Boolean.valueOf(string).booleanValue();\r
34 \r
35   string = Cache.getProperty("SHOW_FULLSCREEN");\r
36   if(string!=null)\r
37     showFullscreen = Boolean.valueOf(string).booleanValue();\r
38 \r
39 \r
40   string = Cache.getProperty("SHOW_ANNOTATIONS");\r
41       if(string!=null)\r
42     showAnnotation = Boolean.valueOf(string).booleanValue();\r
43 \r
44   string = Cache.getProperty("SHOW_CONSERVATION");\r
45       if(string!=null)\r
46     showConservation = Boolean.valueOf(string).booleanValue();\r
47   string = Cache.getProperty("SHOW_QUALITY");\r
48       if(string!=null)\r
49     showQuality = Boolean.valueOf(string).booleanValue();\r
50   string = Cache.getProperty("SHOW_IDENTITY");\r
51       if(string!=null)\r
52     showIdentity = Boolean.valueOf(string).booleanValue();\r
53 \r
54   string = Cache.getProperty("SHOW_FULL_ID");\r
55     if(string!=null)\r
56       showFullId = Boolean.valueOf(string).booleanValue();\r
57 \r
58   fontName = Cache.getProperty("FONT_NAME");\r
59   fontStyle = Cache.getProperty("FONT_STYLE");\r
60   fontSize = Cache.getProperty("FONT_SIZE");\r
61 \r
62       preferencesLoaded = true;\r
63   }\r
64 \r
65   public Preferences()\r
66   {\r
67     if(!preferencesLoaded)\r
68       initPreferences();\r
69 \r
70     frame = new JInternalFrame();\r
71     frame.setContentPane(this);\r
72     Desktop.addInternalFrame(frame, "Preferences", 480,350 );\r
73 \r
74     fullID.setSelected(showFullId);\r
75     String string = Cache.getProperty("SHOW_FULLSCREEN");\r
76     boolean value = false;\r
77     if(string!=null)\r
78       value =  Boolean.valueOf(string).booleanValue();\r
79 \r
80     fullScreen.setSelected(value);\r
81     annotations.setSelected(showAnnotation);\r
82 \r
83     conservation.setEnabled(showAnnotation);\r
84     quality.setEnabled(showAnnotation);\r
85     identity.setEnabled(showAnnotation);\r
86 \r
87     conservation.setSelected(showConservation);\r
88     quality.setSelected(showQuality);\r
89     identity.setSelected(showIdentity);\r
90 \r
91     for(int i=0; i<12; i++)\r
92       colour.addItem( ColourSchemeProperty.getColourName(i) );\r
93 \r
94     string = Cache.getProperty("DEFAULT_COLOUR");\r
95     if(string!=null)\r
96       colour.setSelectedItem( string );\r
97     else\r
98       colour.setSelectedIndex( 11 );\r
99 \r
100     String fonts[] = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();\r
101     for(int i=0; i<fonts.length; i++)\r
102       fontNameCB.addItem(fonts[i]);\r
103 \r
104     for(int i=1; i<31; i++)\r
105       fontSizeCB.addItem(i+"");\r
106 \r
107    fontStyleCB.addItem("plain");\r
108    fontStyleCB.addItem("bold");\r
109    fontStyleCB.addItem("italic");\r
110 \r
111    fontNameCB.setSelectedItem(fontName);\r
112    fontSizeCB.setSelectedItem(fontSize);\r
113    fontStyleCB.setSelectedItem(fontStyle);\r
114 \r
115    gapSymbolCB.addItem("-");\r
116    gapSymbolCB.addItem(".");\r
117 \r
118    gapSymbolCB.setSelectedItem( gapSymbol+"" );\r
119 \r
120   }\r
121 \r
122   public void ok_actionPerformed(ActionEvent e)\r
123   {\r
124     showFullId =  fullID.isSelected() ;\r
125     showFullscreen = fullScreen.isSelected();\r
126     showAnnotation = annotations.isSelected();\r
127     showConservation = conservation.isSelected();\r
128     showQuality = quality.isSelected();\r
129     showIdentity = identity.isSelected();\r
130     defaultColour = colour.getSelectedItem().toString();\r
131     gapSymbol = gapSymbolCB.getSelectedItem().toString().charAt(0);\r
132     fontName = fontNameCB.getSelectedItem().toString();\r
133     fontSize = fontSizeCB.getSelectedItem().toString();\r
134     fontStyle = fontStyleCB.getSelectedItem().toString();\r
135 \r
136     Cache.setProperty("SHOW_FULL_ID", Boolean.toString(showFullId));\r
137     Cache.setProperty("SHOW_FULLSCREEN", Boolean.toString( showFullscreen ) );\r
138 \r
139     Cache.setProperty("SHOW_ANNOTATIONS", Boolean.toString( showAnnotation  ));\r
140     Cache.setProperty("SHOW_CONSERVATION", Boolean.toString( showConservation ));\r
141     Cache.setProperty("SHOW_QUALITY", Boolean.toString( showQuality ));\r
142     Cache.setProperty("SHOW_IDENTITY", Boolean.toString( showIdentity ));\r
143 \r
144     Cache.setProperty("DEFAULT_COLOUR", defaultColour);\r
145     Cache.setProperty("GAP_SYMBOL", gapSymbol+"");\r
146 \r
147     Cache.setProperty("FONT_NAME", fontName);\r
148     Cache.setProperty("FONT_STYLE", fontStyle);\r
149     Cache.setProperty("FONT_SIZE", fontSize);\r
150 \r
151     try    {\r
152       frame.setClosed(true);\r
153     }    catch (Exception ex)  {}\r
154 \r
155   }\r
156 \r
157   public void cancel_actionPerformed(ActionEvent e)\r
158   {\r
159     try{\r
160       frame.setClosed(true);\r
161     }catch(Exception ex){}\r
162   }\r
163 \r
164   public void annotations_actionPerformed(ActionEvent e)\r
165   {\r
166     conservation.setEnabled(annotations.isSelected());\r
167     quality.setEnabled(annotations.isSelected());\r
168     identity.setEnabled(annotations.isSelected());\r
169   }\r
170 \r
171 }\r