Resize for mac
[jalview.git] / src / jalview / jbgui / GPreferences.java
1 /*\r
2 * Jalview - A Sequence Alignment Editor and Viewer\r
3 * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
4 *\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
9 *\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
14 *\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
18 */\r
19 package jalview.jbgui;\r
20 \r
21 import java.awt.*;\r
22 \r
23 import javax.swing.*;\r
24 import javax.swing.border.TitledBorder;\r
25 import java.awt.event.*;\r
26 import javax.swing.event.*;\r
27 \r
28 \r
29 /**\r
30  * DOCUMENT ME!\r
31  *\r
32  * @author $author$\r
33  * @version $Revision$\r
34  */\r
35 public class GPreferences extends JPanel\r
36 {\r
37     JTabbedPane tabbedPane = new JTabbedPane();\r
38 \r
39     JButton ok = new JButton();\r
40     JButton cancel = new JButton();\r
41     JPanel okCancelPanel = new JPanel();\r
42     BorderLayout borderLayout1 = new BorderLayout();\r
43     protected JCheckBox quality = new JCheckBox();\r
44     JPanel visualTab = new JPanel();\r
45     protected JCheckBox fullID = new JCheckBox();\r
46     protected JCheckBox fullScreen = new JCheckBox();\r
47     protected JCheckBox conservation = new JCheckBox();\r
48     protected JCheckBox identity = new JCheckBox();\r
49     protected JCheckBox annotations = new JCheckBox();\r
50     JLabel gapLabel = new JLabel();\r
51     protected JComboBox colour = new JComboBox();\r
52     JLabel colourLabel = new JLabel();\r
53     JLabel fontLabel = new JLabel();\r
54     protected JComboBox fontSizeCB = new JComboBox();\r
55     protected JComboBox fontStyleCB = new JComboBox();\r
56     protected JComboBox fontNameCB = new JComboBox();\r
57     protected JComboBox gapSymbolCB = new JComboBox();\r
58     protected JCheckBox startupCheckbox = new JCheckBox();\r
59     protected JTextField startupFileTextfield = new JTextField();\r
60   JPanel connectTab = new JPanel();\r
61   JLabel serverLabel = new JLabel();\r
62   protected JList linkURLList = new JList();\r
63   protected JTextField proxyServerTB = new JTextField();\r
64   protected JTextField proxyPortTB = new JTextField();\r
65   JLabel portLabel = new JLabel();\r
66   JLabel browserLabel = new JLabel();\r
67   protected JTextField defaultBrowser = new JTextField();\r
68   JButton newLink = new JButton();\r
69   JButton editLink = new JButton();\r
70   JButton deleteLink = new JButton();\r
71   JScrollPane linkScrollPane = new JScrollPane();\r
72   JPanel linkPanel = new JPanel();\r
73   BorderLayout borderLayout2 = new BorderLayout();\r
74   JPanel editLinkButtons = new JPanel();\r
75   GridLayout gridLayout1 = new GridLayout();\r
76   protected JList linkNameList = new JList();\r
77   JPanel linkPanel2 = new JPanel();\r
78   BorderLayout borderLayout3 = new BorderLayout();\r
79   protected JCheckBox useProxy = new JCheckBox();\r
80   JPanel jPanel1 = new JPanel();\r
81   TitledBorder titledBorder1 = new TitledBorder("Proxy Server");\r
82   GridBagLayout gridBagLayout2 = new GridBagLayout();\r
83   GridBagLayout gridBagLayout1 = new GridBagLayout();\r
84   GridBagLayout gridBagLayout3 = new GridBagLayout();\r
85   protected JComboBox sortby = new JComboBox();\r
86   JLabel sortLabel = new JLabel();\r
87   JPanel jPanel2 = new JPanel();\r
88   GridLayout gridLayout2 = new GridLayout();\r
89   JPanel jPanel3 = new JPanel();\r
90   JPanel exportTab = new JPanel();\r
91   JLabel epsLabel = new JLabel();\r
92   protected JComboBox epsRendering = new JComboBox();\r
93   /**\r
94      * Creates a new GPreferences object.\r
95      */\r
96     public GPreferences()\r
97     {\r
98         try\r
99         {\r
100             jbInit();\r
101         }\r
102         catch (Exception ex)\r
103         {\r
104             ex.printStackTrace();\r
105         }\r
106     }\r
107 \r
108     /**\r
109      * DOCUMENT ME!\r
110      *\r
111      * @throws Exception DOCUMENT ME!\r
112      */\r
113     private void jbInit() throws Exception\r
114     {\r
115         this.setLayout(borderLayout1);\r
116         ok.setText("OK");\r
117         ok.addActionListener(new ActionListener()\r
118             {\r
119                 public void actionPerformed(ActionEvent e)\r
120                 {\r
121                     ok_actionPerformed(e);\r
122                 }\r
123             });\r
124         cancel.setText("Cancel");\r
125         cancel.addActionListener(new ActionListener()\r
126             {\r
127                 public void actionPerformed(ActionEvent e)\r
128                 {\r
129                     cancel_actionPerformed(e);\r
130                 }\r
131             });\r
132         quality.setEnabled(false);\r
133         quality.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
134         quality.setHorizontalAlignment(SwingConstants.RIGHT);\r
135         quality.setHorizontalTextPosition(SwingConstants.LEFT);\r
136         quality.setSelected(true);\r
137         quality.setText("Quality");\r
138     visualTab.setBorder(new TitledBorder("Open new alignment"));\r
139     visualTab.setLayout(null);\r
140         fullID.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
141         fullID.setHorizontalAlignment(SwingConstants.RIGHT);\r
142         fullID.setHorizontalTextPosition(SwingConstants.LEFT);\r
143     fullID.setMargin(new Insets(4, 2, 2, 0));\r
144     fullID.setText("Full Sequence ID");\r
145     fullScreen.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
146         fullScreen.setHorizontalAlignment(SwingConstants.RIGHT);\r
147         fullScreen.setHorizontalTextPosition(SwingConstants.LEFT);\r
148     fullScreen.setMargin(new Insets(2, 2, 2, 0));\r
149     fullScreen.setText("Maximise Window");\r
150     conservation.setEnabled(false);\r
151         conservation.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
152         conservation.setHorizontalAlignment(SwingConstants.RIGHT);\r
153         conservation.setHorizontalTextPosition(SwingConstants.LEFT);\r
154         conservation.setSelected(true);\r
155         conservation.setText("Conservation");\r
156     identity.setEnabled(false);\r
157         identity.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
158         identity.setHorizontalAlignment(SwingConstants.RIGHT);\r
159         identity.setHorizontalTextPosition(SwingConstants.LEFT);\r
160         identity.setSelected(true);\r
161         identity.setText("Consensus");\r
162     annotations.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
163         annotations.setHorizontalAlignment(SwingConstants.RIGHT);\r
164         annotations.setHorizontalTextPosition(SwingConstants.LEFT);\r
165     annotations.setMargin(new Insets(2, 4, 2, 0));\r
166     annotations.setSelected(true);\r
167         annotations.setText("Show Annotations");\r
168     annotations.addActionListener(new ActionListener()\r
169             {\r
170                 public void actionPerformed(ActionEvent e)\r
171                 {\r
172                     annotations_actionPerformed(e);\r
173                 }\r
174             });\r
175         gapLabel.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
176         gapLabel.setHorizontalAlignment(SwingConstants.RIGHT);\r
177         gapLabel.setText("Gap Symbol ");\r
178     colour.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
179         colour.setBounds(new Rectangle(148, 171, 154, 21));\r
180         colourLabel.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
181         colourLabel.setHorizontalAlignment(SwingConstants.RIGHT);\r
182         colourLabel.setText("Colour ");\r
183     fontLabel.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
184         fontLabel.setHorizontalAlignment(SwingConstants.RIGHT);\r
185         fontLabel.setText("Font ");\r
186     fontSizeCB.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
187         fontSizeCB.setBounds(new Rectangle(317, 111, 49, 21));\r
188         fontStyleCB.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
189         fontStyleCB.setBounds(new Rectangle(365, 111, 70, 21));\r
190         fontNameCB.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
191         fontNameCB.setBounds(new Rectangle(148, 111, 169, 21));\r
192         gapSymbolCB.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
193         gapSymbolCB.setBounds(new Rectangle(148, 141, 67, 21));\r
194         startupCheckbox.setText("Open file");\r
195     startupCheckbox.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
196         startupCheckbox.setHorizontalAlignment(SwingConstants.RIGHT);\r
197         startupCheckbox.setHorizontalTextPosition(SwingConstants.LEFT);\r
198         startupCheckbox.setSelected(true);\r
199         startupFileTextfield.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
200         startupFileTextfield.setBounds(new Rectangle(148, 232, 302, 20));\r
201         startupFileTextfield.addMouseListener(new MouseAdapter()\r
202             {\r
203                 public void mouseClicked(MouseEvent e)\r
204                 {\r
205                     if (e.getClickCount() > 1)\r
206                     {\r
207                         startupFileTextfield_mouseClicked();\r
208                     }\r
209                 }\r
210             });\r
211 \r
212      connectTab.setLayout(gridBagLayout3);\r
213     serverLabel.setText("Address");\r
214     serverLabel.setHorizontalAlignment(SwingConstants.RIGHT);\r
215     serverLabel.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
216     proxyServerTB.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
217     proxyPortTB.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
218     portLabel.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
219     portLabel.setHorizontalAlignment(SwingConstants.RIGHT);\r
220     portLabel.setText("Port");\r
221     browserLabel.setFont(new java.awt.Font("SansSerif", 0, 11));\r
222     browserLabel.setHorizontalAlignment(SwingConstants.TRAILING);\r
223     browserLabel.setText("Default Browser (Unix)");\r
224     defaultBrowser.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
225     defaultBrowser.setText("");\r
226     newLink.setText("New");\r
227     newLink.addActionListener(new java.awt.event.ActionListener() {\r
228       public void actionPerformed(ActionEvent e) {\r
229         newLink_actionPerformed(e);\r
230       }\r
231     });\r
232     editLink.setText("Edit");\r
233     editLink.addActionListener(new java.awt.event.ActionListener() {\r
234       public void actionPerformed(ActionEvent e) {\r
235         editLink_actionPerformed(e);\r
236       }\r
237     });\r
238     deleteLink.setText("Delete");\r
239     deleteLink.addActionListener(new java.awt.event.ActionListener() {\r
240       public void actionPerformed(ActionEvent e) {\r
241         deleteLink_actionPerformed(e);\r
242       }\r
243     });\r
244 \r
245     linkURLList.addListSelectionListener(new ListSelectionListener()\r
246          {\r
247             public void valueChanged(ListSelectionEvent e)\r
248             {\r
249                int index = linkURLList.getSelectedIndex();\r
250                linkNameList.setSelectedIndex(index);\r
251             }\r
252          });\r
253 \r
254     linkNameList.addListSelectionListener(new ListSelectionListener()\r
255         {\r
256           public void valueChanged(ListSelectionEvent e)\r
257           {\r
258               int index = linkNameList.getSelectedIndex();\r
259               linkURLList.setSelectedIndex(index);\r
260           }\r
261         });\r
262 \r
263     linkScrollPane.setBorder(null);\r
264     linkPanel.setBorder(new TitledBorder("URL link from Sequence ID"));\r
265     linkPanel.setLayout(borderLayout2);\r
266     editLinkButtons.setLayout(gridLayout1);\r
267     gridLayout1.setRows(3);\r
268     linkNameList.setFont(new java.awt.Font("Verdana", Font.ITALIC, 11));\r
269     linkNameList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
270     linkPanel2.setLayout(borderLayout3);\r
271     linkURLList.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
272     linkURLList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
273 \r
274     defaultBrowser.addMouseListener(new MouseAdapter()\r
275     {\r
276       public void mouseClicked(MouseEvent e)\r
277       {\r
278         if (e.getClickCount() > 1)\r
279             {\r
280               defaultBrowser_mouseClicked(e);\r
281             }\r
282       }\r
283     });\r
284     useProxy.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
285     useProxy.setHorizontalAlignment(SwingConstants.RIGHT);\r
286     useProxy.setHorizontalTextPosition(SwingConstants.LEADING);\r
287     useProxy.setText("Use a proxy server");\r
288     useProxy.addActionListener(new ActionListener()\r
289     {\r
290       public void actionPerformed(ActionEvent e)\r
291       {\r
292         useProxy_actionPerformed();\r
293       }\r
294     });\r
295     jPanel1.setBorder(titledBorder1);\r
296     jPanel1.setLayout(gridBagLayout1);\r
297     sortby.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
298     sortby.setBounds(new Rectangle(148, 200, 302, 21));\r
299     sortLabel.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
300     sortLabel.setHorizontalAlignment(SwingConstants.RIGHT);\r
301     sortLabel.setText("Sort by ");\r
302     jPanel2.setBounds(new Rectangle(7, 17, 138, 242));\r
303     jPanel2.setLayout(gridLayout2);\r
304     gridLayout2.setRows(8);\r
305     jPanel3.setBounds(new Rectangle(147, 46, 274, 26));\r
306     exportTab.setLayout(null);\r
307     epsLabel.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
308     epsLabel.setHorizontalAlignment(SwingConstants.RIGHT);\r
309     epsLabel.setText("EPS Rendering Style");\r
310     epsLabel.setBounds(new Rectangle(3, 47, 134, 21));\r
311     epsRendering.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11));\r
312     epsRendering.setBounds(new Rectangle(145, 47, 286, 21));\r
313     jPanel2.add(fullScreen);\r
314     jPanel2.add(annotations);\r
315     jPanel2.add(fullID);\r
316     jPanel2.add(fontLabel);\r
317     jPanel2.add(gapLabel);\r
318     jPanel2.add(colourLabel);\r
319     jPanel2.add(sortLabel);\r
320     jPanel2.add(startupCheckbox);\r
321     visualTab.add(jPanel3);\r
322     jPanel3.add(conservation);\r
323     jPanel3.add(quality);\r
324     jPanel3.add(identity);\r
325     visualTab.add(sortby);\r
326     visualTab.add(colour);\r
327     visualTab.add(startupFileTextfield);\r
328     visualTab.add(fontNameCB);\r
329     visualTab.add(fontSizeCB);\r
330     visualTab.add(fontStyleCB);\r
331     visualTab.add(gapSymbolCB);\r
332     visualTab.add(jPanel2);\r
333 \r
334     linkPanel.add(editLinkButtons, BorderLayout.EAST);\r
335     editLinkButtons.add(newLink, null);\r
336     editLinkButtons.add(editLink, null);\r
337     editLinkButtons.add(deleteLink, null);\r
338     linkPanel.add(linkScrollPane, BorderLayout.CENTER);\r
339     linkScrollPane.getViewport().add(linkPanel2, null);\r
340     linkPanel2.add(linkURLList, BorderLayout.CENTER);\r
341     linkPanel2.add(linkNameList, BorderLayout.WEST);\r
342         okCancelPanel.add(ok);\r
343         okCancelPanel.add(cancel);\r
344     this.add(tabbedPane, java.awt.BorderLayout.CENTER);\r
345 \r
346         this.add(okCancelPanel, java.awt.BorderLayout.SOUTH);\r
347     jPanel1.add(serverLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0\r
348         , GridBagConstraints.WEST, GridBagConstraints.NONE,\r
349         new Insets(0, 2, 4, 0), 5, 0));\r
350     jPanel1.add(portLabel, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0\r
351                                                   , GridBagConstraints.WEST,\r
352                                                   GridBagConstraints.NONE,\r
353                                                   new Insets(0, 0, 4, 0), 11, 6));\r
354     connectTab.add(linkPanel, new GridBagConstraints(0, 0, 2, 1, 1.0, 1.0\r
355         , GridBagConstraints.CENTER, GridBagConstraints.BOTH,\r
356         new Insets(16, 0, 0, 12), 359, -17));\r
357     connectTab.add(jPanel1, new GridBagConstraints(0, 2, 2, 1, 1.0, 1.0\r
358         , GridBagConstraints.CENTER, GridBagConstraints.BOTH,\r
359         new Insets(21, 0, 35, 12), 4, 6));\r
360     connectTab.add(browserLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0\r
361         , GridBagConstraints.WEST, GridBagConstraints.NONE,\r
362         new Insets(16, 0, 0, 0), 5, 1));\r
363     jPanel1.add(proxyPortTB, new GridBagConstraints(3, 1, 1, 1, 1.0, 0.0\r
364         , GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,\r
365         new Insets(0, 2, 4, 2), 54, 1));\r
366     jPanel1.add(proxyServerTB, new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0\r
367         , GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,\r
368         new Insets(0, 2, 4, 0), 263, 1));\r
369     connectTab.add(defaultBrowser, new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0\r
370         , GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,\r
371         new Insets(15, 0, 0, 15), 307, 1));\r
372 \r
373     exportTab.add(epsLabel);\r
374     exportTab.add(epsRendering);\r
375 \r
376     jPanel1.add(useProxy, new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0\r
377                                                  , GridBagConstraints.WEST,\r
378                                                  GridBagConstraints.NONE,\r
379                                                  new Insets(0, 2, 5, 185), 2,\r
380                                                  -4));\r
381     DefaultListCellRenderer dlcr = new DefaultListCellRenderer();\r
382         dlcr.setHorizontalAlignment(DefaultListCellRenderer.CENTER);\r
383         gapSymbolCB.setRenderer(dlcr);\r
384 \r
385     tabbedPane.add(visualTab, "Visual");\r
386     tabbedPane.add(connectTab, "Connections");\r
387     tabbedPane.add(exportTab, "Export");\r
388   }\r
389 \r
390     /**\r
391      * DOCUMENT ME!\r
392      *\r
393      * @param e DOCUMENT ME!\r
394      */\r
395     public void ok_actionPerformed(ActionEvent e)\r
396     {\r
397     }\r
398 \r
399     /**\r
400      * DOCUMENT ME!\r
401      *\r
402      * @param e DOCUMENT ME!\r
403      */\r
404     public void cancel_actionPerformed(ActionEvent e)\r
405     {\r
406     }\r
407 \r
408     /**\r
409      * DOCUMENT ME!\r
410      *\r
411      * @param e DOCUMENT ME!\r
412      */\r
413     public void annotations_actionPerformed(ActionEvent e)\r
414     {\r
415     }\r
416 \r
417 \r
418     /**\r
419      * DOCUMENT ME!\r
420      */\r
421     public void startupFileTextfield_mouseClicked()\r
422     {\r
423     }\r
424 \r
425 \r
426   public void newLink_actionPerformed(ActionEvent e) {\r
427 \r
428   }\r
429 \r
430   public void editLink_actionPerformed(ActionEvent e) {\r
431 \r
432   }\r
433 \r
434   public void deleteLink_actionPerformed(ActionEvent e) {\r
435 \r
436   }\r
437 \r
438   public void defaultBrowser_mouseClicked(MouseEvent e)\r
439   {\r
440 \r
441   }\r
442 \r
443   public void linkURLList_keyTyped(KeyEvent e)\r
444   {\r
445 \r
446   }\r
447 \r
448   public void useProxy_actionPerformed()\r
449   {\r
450       proxyServerTB.setEnabled(useProxy.isSelected());\r
451       proxyPortTB.setEnabled(useProxy.isSelected());\r
452   }\r
453 }\r