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