Slight adjustments
[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 fullScreen = new JCheckBox();\r
46     protected JCheckBox conservation = new JCheckBox();\r
47     protected JCheckBox identity = new JCheckBox();\r
48     protected JCheckBox annotations = new JCheckBox();\r
49     JLabel gapLabel = new JLabel();\r
50     protected JComboBox colour = new JComboBox();\r
51     JLabel colourLabel = new JLabel();\r
52     JLabel fontLabel = new JLabel();\r
53     protected JComboBox fontSizeCB = new JComboBox();\r
54     protected JComboBox fontStyleCB = new JComboBox();\r
55     protected JComboBox fontNameCB = new JComboBox();\r
56     protected JComboBox gapSymbolCB = new JComboBox();\r
57     protected JCheckBox startupCheckbox = new JCheckBox();\r
58     protected JTextField startupFileTextfield = new JTextField();\r
59   JPanel connectTab = new JPanel();\r
60   JLabel serverLabel = new JLabel();\r
61   protected JList linkURLList = new JList();\r
62   protected JTextField proxyServerTB = new JTextField();\r
63   protected JTextField proxyPortTB = new JTextField();\r
64   JLabel portLabel = new JLabel();\r
65   JLabel browserLabel = new JLabel();\r
66   protected JTextField defaultBrowser = new JTextField();\r
67   JButton newLink = new JButton();\r
68   JButton editLink = new JButton();\r
69   JButton deleteLink = new JButton();\r
70   JScrollPane linkScrollPane = new JScrollPane();\r
71   JPanel linkPanel = new JPanel();\r
72   BorderLayout borderLayout2 = new BorderLayout();\r
73   JPanel editLinkButtons = new JPanel();\r
74   GridLayout gridLayout1 = new GridLayout();\r
75   protected JList linkNameList = new JList();\r
76   JPanel linkPanel2 = new JPanel();\r
77   BorderLayout borderLayout3 = new BorderLayout();\r
78   protected JCheckBox useProxy = new JCheckBox();\r
79   JPanel jPanel1 = new JPanel();\r
80   TitledBorder titledBorder1 = new TitledBorder("Proxy Server");\r
81   TitledBorder titledBorder2 = new TitledBorder("File Output");\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   JLabel jLabel1 = new JLabel();\r
94   protected  JCheckBox blcjv = new JCheckBox();\r
95   protected  JCheckBox pileupjv = new JCheckBox();\r
96   protected  JCheckBox clustaljv = new JCheckBox();\r
97   protected  JCheckBox msfjv = new JCheckBox();\r
98   protected  JCheckBox fastajv = new JCheckBox();\r
99   protected  JCheckBox pfamjv = new JCheckBox();\r
100   FlowLayout flowLayout1 = new FlowLayout();\r
101   protected  JCheckBox pirjv = new JCheckBox();\r
102   JPanel jPanel11 = new JPanel();\r
103   Font verdana11 = new java.awt.Font("Verdana", Font.PLAIN, 11);\r
104   protected JCheckBox seqLimit = new JCheckBox();\r
105   GridLayout gridLayout3 = new GridLayout();\r
106   protected JCheckBox smoothFont = new JCheckBox();\r
107   /**\r
108      * Creates a new GPreferences object.\r
109      */\r
110     public GPreferences()\r
111     {\r
112         try\r
113         {\r
114             jbInit();\r
115         }\r
116         catch (Exception ex)\r
117         {\r
118             ex.printStackTrace();\r
119         }\r
120     }\r
121 \r
122     /**\r
123      * DOCUMENT ME!\r
124      *\r
125      * @throws Exception DOCUMENT ME!\r
126      */\r
127     private void jbInit() throws Exception\r
128     {\r
129         this.setLayout(borderLayout1);\r
130         ok.setText("OK");\r
131         ok.addActionListener(new ActionListener()\r
132             {\r
133                 public void actionPerformed(ActionEvent e)\r
134                 {\r
135                     ok_actionPerformed(e);\r
136                 }\r
137             });\r
138         cancel.setText("Cancel");\r
139         cancel.addActionListener(new ActionListener()\r
140             {\r
141                 public void actionPerformed(ActionEvent e)\r
142                 {\r
143                     cancel_actionPerformed(e);\r
144                 }\r
145             });\r
146         quality.setEnabled(false);\r
147         quality.setFont(verdana11);\r
148         quality.setHorizontalAlignment(SwingConstants.RIGHT);\r
149         quality.setHorizontalTextPosition(SwingConstants.LEFT);\r
150         quality.setSelected(true);\r
151         quality.setText("Quality");\r
152     visualTab.setBorder(new TitledBorder("Open new alignment"));\r
153     visualTab.setLayout(null);\r
154     fullScreen.setFont(verdana11);\r
155         fullScreen.setHorizontalAlignment(SwingConstants.RIGHT);\r
156         fullScreen.setHorizontalTextPosition(SwingConstants.LEFT);\r
157     fullScreen.setMargin(new Insets(2, 2, 2, 0));\r
158     fullScreen.setText("Maximise Window");\r
159     conservation.setEnabled(false);\r
160         conservation.setFont(verdana11);\r
161         conservation.setHorizontalAlignment(SwingConstants.RIGHT);\r
162         conservation.setHorizontalTextPosition(SwingConstants.LEFT);\r
163         conservation.setSelected(true);\r
164         conservation.setText("Conservation");\r
165     identity.setEnabled(false);\r
166         identity.setFont(verdana11);\r
167         identity.setHorizontalAlignment(SwingConstants.RIGHT);\r
168         identity.setHorizontalTextPosition(SwingConstants.LEFT);\r
169         identity.setSelected(true);\r
170         identity.setText("Consensus");\r
171     annotations.setFont(verdana11);\r
172         annotations.setHorizontalAlignment(SwingConstants.RIGHT);\r
173         annotations.setHorizontalTextPosition(SwingConstants.LEFT);\r
174     annotations.setMargin(new Insets(2, 4, 2, 0));\r
175     annotations.setSelected(true);\r
176         annotations.setText("Show Annotations");\r
177     annotations.addActionListener(new ActionListener()\r
178             {\r
179                 public void actionPerformed(ActionEvent e)\r
180                 {\r
181                     annotations_actionPerformed(e);\r
182                 }\r
183             });\r
184         gapLabel.setFont(verdana11);\r
185         gapLabel.setHorizontalAlignment(SwingConstants.RIGHT);\r
186         gapLabel.setText("Gap Symbol ");\r
187     colour.setFont(verdana11);\r
188         colour.setBounds(new Rectangle(171, 180, 155, 21));\r
189         colourLabel.setFont(verdana11);\r
190         colourLabel.setHorizontalAlignment(SwingConstants.RIGHT);\r
191         colourLabel.setText("Colour ");\r
192     fontLabel.setFont(verdana11);\r
193         fontLabel.setHorizontalAlignment(SwingConstants.RIGHT);\r
194         fontLabel.setText("Font ");\r
195     fontSizeCB.setFont(verdana11);\r
196         fontSizeCB.setBounds(new Rectangle(318, 100, 49, 21));\r
197         fontStyleCB.setFont(verdana11);\r
198         fontStyleCB.setBounds(new Rectangle(366, 100, 70, 21));\r
199         fontNameCB.setFont(verdana11);\r
200         fontNameCB.setBounds(new Rectangle(171, 100, 147, 21));\r
201         gapSymbolCB.setFont(verdana11);\r
202         gapSymbolCB.setBounds(new Rectangle(171, 153, 69, 21));\r
203         startupCheckbox.setText("Open file");\r
204     startupCheckbox.setFont(verdana11);\r
205         startupCheckbox.setHorizontalAlignment(SwingConstants.RIGHT);\r
206         startupCheckbox.setHorizontalTextPosition(SwingConstants.LEFT);\r
207         startupCheckbox.setSelected(true);\r
208         startupFileTextfield.setFont(verdana11);\r
209         startupFileTextfield.setBounds(new Rectangle(171, 236, 270, 20));\r
210         startupFileTextfield.addMouseListener(new MouseAdapter()\r
211             {\r
212                 public void mouseClicked(MouseEvent e)\r
213                 {\r
214                     if (e.getClickCount() > 1)\r
215                     {\r
216                         startupFileTextfield_mouseClicked();\r
217                     }\r
218                 }\r
219             });\r
220 \r
221      connectTab.setLayout(gridBagLayout3);\r
222     serverLabel.setText("Address");\r
223     serverLabel.setHorizontalAlignment(SwingConstants.RIGHT);\r
224     serverLabel.setFont(verdana11);\r
225     proxyServerTB.setFont(verdana11);\r
226     proxyPortTB.setFont(verdana11);\r
227     portLabel.setFont(verdana11);\r
228     portLabel.setHorizontalAlignment(SwingConstants.RIGHT);\r
229     portLabel.setText("Port");\r
230     browserLabel.setFont(new java.awt.Font("SansSerif", 0, 11));\r
231     browserLabel.setHorizontalAlignment(SwingConstants.TRAILING);\r
232     browserLabel.setText("Default Browser (Unix)");\r
233     defaultBrowser.setFont(verdana11);\r
234     defaultBrowser.setText("");\r
235     newLink.setText("New");\r
236     newLink.addActionListener(new java.awt.event.ActionListener() {\r
237       public void actionPerformed(ActionEvent e) {\r
238         newLink_actionPerformed(e);\r
239       }\r
240     });\r
241     editLink.setText("Edit");\r
242     editLink.addActionListener(new java.awt.event.ActionListener() {\r
243       public void actionPerformed(ActionEvent e) {\r
244         editLink_actionPerformed(e);\r
245       }\r
246     });\r
247     deleteLink.setText("Delete");\r
248     deleteLink.addActionListener(new java.awt.event.ActionListener() {\r
249       public void actionPerformed(ActionEvent e) {\r
250         deleteLink_actionPerformed(e);\r
251       }\r
252     });\r
253 \r
254     linkURLList.addListSelectionListener(new ListSelectionListener()\r
255          {\r
256             public void valueChanged(ListSelectionEvent e)\r
257             {\r
258                int index = linkURLList.getSelectedIndex();\r
259                linkNameList.setSelectedIndex(index);\r
260             }\r
261          });\r
262 \r
263     linkNameList.addListSelectionListener(new ListSelectionListener()\r
264         {\r
265           public void valueChanged(ListSelectionEvent e)\r
266           {\r
267               int index = linkNameList.getSelectedIndex();\r
268               linkURLList.setSelectedIndex(index);\r
269           }\r
270         });\r
271 \r
272     linkScrollPane.setBorder(null);\r
273     linkPanel.setBorder(new TitledBorder("URL link from Sequence ID"));\r
274     linkPanel.setLayout(borderLayout2);\r
275     editLinkButtons.setLayout(gridLayout1);\r
276     gridLayout1.setRows(3);\r
277     linkNameList.setFont(verdana11);\r
278     linkNameList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
279     linkPanel2.setLayout(borderLayout3);\r
280     linkURLList.setFont(verdana11);\r
281     linkURLList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
282 \r
283     defaultBrowser.addMouseListener(new MouseAdapter()\r
284     {\r
285       public void mouseClicked(MouseEvent e)\r
286       {\r
287         if (e.getClickCount() > 1)\r
288             {\r
289               defaultBrowser_mouseClicked(e);\r
290             }\r
291       }\r
292     });\r
293     useProxy.setFont(verdana11);\r
294     useProxy.setHorizontalAlignment(SwingConstants.RIGHT);\r
295     useProxy.setHorizontalTextPosition(SwingConstants.LEADING);\r
296     useProxy.setText("Use a proxy server");\r
297     useProxy.addActionListener(new ActionListener()\r
298     {\r
299       public void actionPerformed(ActionEvent e)\r
300       {\r
301         useProxy_actionPerformed();\r
302       }\r
303     });\r
304     jPanel1.setBorder(titledBorder1);\r
305     jPanel1.setLayout(gridBagLayout1);\r
306     sortby.setFont(verdana11);\r
307     sortby.setBounds(new Rectangle(171, 208, 155, 21));\r
308     sortLabel.setFont(verdana11);\r
309     sortLabel.setHorizontalAlignment(SwingConstants.RIGHT);\r
310     sortLabel.setText("Sort by ");\r
311     jPanel2.setBounds(new Rectangle(7, 17, 158, 245));\r
312     jPanel2.setLayout(gridLayout2);\r
313     gridLayout2.setRows(9);\r
314     jPanel3.setBounds(new Rectangle(167, 41, 274, 26));\r
315     exportTab.setLayout(null);\r
316     epsLabel.setFont(verdana11);\r
317     epsLabel.setHorizontalAlignment(SwingConstants.RIGHT);\r
318     epsLabel.setText("EPS Rendering Style");\r
319     epsLabel.setBounds(new Rectangle(9, 31, 140, 24));\r
320     epsRendering.setFont(verdana11);\r
321     epsRendering.setBounds(new Rectangle(154, 34, 187, 21));\r
322     jLabel1.setFont(verdana11);\r
323     jLabel1.setHorizontalAlignment(SwingConstants.CENTER);\r
324     jLabel1.setText("Append /start-end (/15-380)");\r
325     jLabel1.setFont(verdana11);\r
326     fastajv.setFont(verdana11);\r
327     fastajv.setHorizontalAlignment(SwingConstants.LEFT);\r
328     clustaljv.setText("Clustal     ");\r
329     blcjv.setText("BLC     ");\r
330     fastajv.setText("Fasta     ");\r
331     msfjv.setText("MSF     ");\r
332     pfamjv.setText("PFAM     ");\r
333     pileupjv.setText("Pileup     ");\r
334     msfjv.setFont(verdana11);\r
335     msfjv.setHorizontalAlignment(SwingConstants.LEFT);\r
336     pirjv.setText("PIR     ");\r
337     jPanel11.setFont(verdana11);\r
338     jPanel11.setBorder(titledBorder2);\r
339     jPanel11.setBounds(new Rectangle(30, 72, 196, 182));\r
340     jPanel11.setLayout(gridLayout3);\r
341     blcjv.setFont(verdana11);\r
342     blcjv.setHorizontalAlignment(SwingConstants.LEFT);\r
343     clustaljv.setFont(verdana11);\r
344     clustaljv.setHorizontalAlignment(SwingConstants.LEFT);\r
345     pfamjv.setFont(verdana11);\r
346     pfamjv.setHorizontalAlignment(SwingConstants.LEFT);\r
347     pileupjv.setFont(verdana11);\r
348     pileupjv.setHorizontalAlignment(SwingConstants.LEFT);\r
349     pirjv.setFont(verdana11);\r
350     pirjv.setHorizontalAlignment(SwingConstants.LEFT);\r
351     seqLimit.setFont(verdana11);\r
352     seqLimit.setHorizontalAlignment(SwingConstants.RIGHT);\r
353     seqLimit.setHorizontalTextPosition(SwingConstants.LEFT);\r
354     seqLimit.setText("Full Sequence Id");\r
355     gridLayout3.setRows(8);\r
356     smoothFont.setFont(verdana11);\r
357     smoothFont.setHorizontalAlignment(SwingConstants.RIGHT);\r
358     smoothFont.setHorizontalTextPosition(SwingConstants.LEADING);\r
359     smoothFont.setText("Smooth Font");\r
360     jPanel2.add(fullScreen);\r
361 \r
362     jPanel2.add(annotations);\r
363     jPanel2.add(seqLimit);\r
364     jPanel2.add(fontLabel);\r
365     jPanel2.add(smoothFont);\r
366     jPanel2.add(gapLabel);\r
367     jPanel2.add(colourLabel);\r
368     jPanel2.add(sortLabel);\r
369     jPanel2.add(startupCheckbox);\r
370     visualTab.add(colour);\r
371     visualTab.add(gapSymbolCB);\r
372     visualTab.add(startupFileTextfield);\r
373     visualTab.add(sortby);\r
374     visualTab.add(fontNameCB);\r
375     visualTab.add(fontSizeCB);\r
376     visualTab.add(fontStyleCB);\r
377     visualTab.add(jPanel3);\r
378     jPanel3.add(conservation);\r
379     jPanel3.add(identity);\r
380     jPanel3.add(quality);\r
381     visualTab.add(jPanel2);\r
382     linkPanel.add(editLinkButtons, BorderLayout.EAST);\r
383     editLinkButtons.add(newLink, null);\r
384     editLinkButtons.add(editLink, null);\r
385     editLinkButtons.add(deleteLink, null);\r
386     linkPanel.add(linkScrollPane, BorderLayout.CENTER);\r
387     linkScrollPane.getViewport().add(linkPanel2, null);\r
388     linkPanel2.add(linkURLList, BorderLayout.CENTER);\r
389     linkPanel2.add(linkNameList, BorderLayout.WEST);\r
390         okCancelPanel.add(ok);\r
391         okCancelPanel.add(cancel);\r
392     this.add(tabbedPane, java.awt.BorderLayout.CENTER);\r
393 \r
394         this.add(okCancelPanel, java.awt.BorderLayout.SOUTH);\r
395     jPanel1.add(serverLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0\r
396         , GridBagConstraints.WEST, GridBagConstraints.NONE,\r
397         new Insets(0, 2, 4, 0), 5, 0));\r
398     jPanel1.add(portLabel, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0\r
399                                                   , GridBagConstraints.WEST,\r
400                                                   GridBagConstraints.NONE,\r
401                                                   new Insets(0, 0, 4, 0), 11, 6));\r
402     connectTab.add(linkPanel, new GridBagConstraints(0, 0, 2, 1, 1.0, 1.0\r
403         , GridBagConstraints.CENTER, GridBagConstraints.BOTH,\r
404         new Insets(16, 0, 0, 12), 359, -17));\r
405     connectTab.add(jPanel1, new GridBagConstraints(0, 2, 2, 1, 1.0, 1.0\r
406         , GridBagConstraints.CENTER, GridBagConstraints.BOTH,\r
407         new Insets(21, 0, 35, 12), 4, 6));\r
408     connectTab.add(browserLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0\r
409         , GridBagConstraints.WEST, GridBagConstraints.NONE,\r
410         new Insets(16, 0, 0, 0), 5, 1));\r
411     jPanel1.add(proxyPortTB, new GridBagConstraints(3, 1, 1, 1, 1.0, 0.0\r
412         , GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,\r
413         new Insets(0, 2, 4, 2), 54, 1));\r
414     jPanel1.add(proxyServerTB, new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0\r
415         , GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,\r
416         new Insets(0, 2, 4, 0), 263, 1));\r
417     connectTab.add(defaultBrowser, new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0\r
418         , GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,\r
419         new Insets(15, 0, 0, 15), 307, 1));\r
420 \r
421 \r
422     jPanel1.add(useProxy, new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0\r
423                                                  , GridBagConstraints.WEST,\r
424                                                  GridBagConstraints.NONE,\r
425                                                  new Insets(0, 2, 5, 185), 2,\r
426                                                  -4));\r
427     DefaultListCellRenderer dlcr = new DefaultListCellRenderer();\r
428         dlcr.setHorizontalAlignment(DefaultListCellRenderer.CENTER);\r
429         gapSymbolCB.setRenderer(dlcr);\r
430 \r
431     tabbedPane.add(visualTab, "Visual");\r
432     tabbedPane.add(connectTab,"Connections");\r
433     tabbedPane.add(exportTab, "Output");\r
434     jPanel11.add(jLabel1);\r
435     jPanel11.add(blcjv);\r
436     jPanel11.add(clustaljv);\r
437     jPanel11.add(fastajv);\r
438     jPanel11.add(msfjv);\r
439     jPanel11.add(pfamjv);\r
440     jPanel11.add(pileupjv);\r
441     jPanel11.add(pirjv);\r
442 \r
443     exportTab.add(epsLabel);\r
444     exportTab.add(epsRendering);\r
445     exportTab.add(jPanel11);\r
446   }\r
447 \r
448     /**\r
449      * DOCUMENT ME!\r
450      *\r
451      * @param e DOCUMENT ME!\r
452      */\r
453     public void ok_actionPerformed(ActionEvent e)\r
454     {\r
455     }\r
456 \r
457     /**\r
458      * DOCUMENT ME!\r
459      *\r
460      * @param e DOCUMENT ME!\r
461      */\r
462     public void cancel_actionPerformed(ActionEvent e)\r
463     {\r
464     }\r
465 \r
466     /**\r
467      * DOCUMENT ME!\r
468      *\r
469      * @param e DOCUMENT ME!\r
470      */\r
471     public void annotations_actionPerformed(ActionEvent e)\r
472     {\r
473     }\r
474 \r
475 \r
476     /**\r
477      * DOCUMENT ME!\r
478      */\r
479     public void startupFileTextfield_mouseClicked()\r
480     {\r
481     }\r
482 \r
483 \r
484   public void newLink_actionPerformed(ActionEvent e) {\r
485 \r
486   }\r
487 \r
488   public void editLink_actionPerformed(ActionEvent e) {\r
489 \r
490   }\r
491 \r
492   public void deleteLink_actionPerformed(ActionEvent e) {\r
493 \r
494   }\r
495 \r
496   public void defaultBrowser_mouseClicked(MouseEvent e)\r
497   {\r
498 \r
499   }\r
500 \r
501   public void linkURLList_keyTyped(KeyEvent e)\r
502   {\r
503 \r
504   }\r
505 \r
506   public void useProxy_actionPerformed()\r
507   {\r
508       proxyServerTB.setEnabled(useProxy.isSelected());\r
509       proxyPortTB.setEnabled(useProxy.isSelected());\r
510   }\r
511 }\r