84de4930b7ca6f45a5d62e7d2509efd334d53ee7
[jalview.git] / src / jalview / jbgui / GWsPreferences.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3  * Copyright (C) $$Year-Rel$$ The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3
10  * of the License, or (at your option) any later version.
11  *  
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License
18  * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
19  * The Jalview Authors are detailed in the 'AUTHORS' file.
20  */
21 package jalview.jbgui;
22
23 import jalview.util.MessageManager;
24
25 import java.awt.BorderLayout;
26 import java.awt.Dimension;
27 import java.awt.FlowLayout;
28 import java.awt.Font;
29 import java.awt.GridBagLayout;
30 import java.awt.GridLayout;
31 import java.awt.event.ActionEvent;
32 import java.awt.event.ActionListener;
33 import java.awt.event.MouseEvent;
34 import java.awt.event.MouseListener;
35
36 import javax.swing.BorderFactory;
37 import javax.swing.JButton;
38 import javax.swing.JCheckBox;
39 import javax.swing.JList;
40 import javax.swing.JPanel;
41 import javax.swing.JProgressBar;
42 import javax.swing.JScrollPane;
43 import javax.swing.JTabbedPane;
44 import javax.swing.JTable;
45 import javax.swing.ListSelectionModel;
46 import javax.swing.border.TitledBorder;
47
48 /**
49  * Preference dialog for jalview web services
50  * 
51  * @author JimP
52  */
53 public class GWsPreferences extends JPanel
54 {
55   protected JList sbrsList = new JList();
56
57   protected TitledBorder sbrsListTitleBorder = new TitledBorder(
58           MessageManager
59                   .getString("label.simple_bioinformatics_rest_services"));
60
61   protected JButton newSbrsUrl = new JButton();
62
63   protected JButton editSbrsUrl = new JButton();
64
65   protected JButton deleteSbrsUrl = new JButton();
66
67   // Web service status and url table
68   protected JTable wsList = new JTable();
69
70   protected TitledBorder wsListTitleBorder = new TitledBorder(
71           MessageManager.getString("label.web_service_discovery_urls"));
72
73   protected JButton newWsUrl = new JButton();
74
75   protected JButton editWsUrl = new JButton();
76
77   protected JButton deleteWsUrl = new JButton();
78
79   protected JButton moveWsUrlUp = new JButton();
80
81   protected JButton moveWsUrlDown = new JButton();
82
83   protected JCheckBox indexByHost = new JCheckBox();
84
85   protected JCheckBox indexByType = new JCheckBox();
86
87   protected JCheckBox enableJws2Services = new JCheckBox();
88
89   protected JCheckBox enableEnfinServices = new JCheckBox();
90
91   protected JCheckBox displayWsWarning = new JCheckBox();
92
93   protected JButton refreshWs = new JButton();
94
95   protected JButton resetWs = new JButton();
96
97   protected JProgressBar progressBar = new JProgressBar();
98
99   JScrollPane wsListPane = new JScrollPane();
100
101   JPanel wsListUrlPanel = new JPanel();
102
103   JPanel wsListPanel = new JPanel();
104
105   JPanel wsListButtons = new JPanel();
106
107   JPanel wsListNavButs = new JPanel();
108
109   JScrollPane srbsListPane = new JScrollPane();
110
111   JPanel srbsListUrlPanel = new JPanel();
112
113   JPanel srbsListPanel = new JPanel();
114
115   JPanel srbsListButtons = new JPanel();
116
117   JPanel srbsListNavButs = new JPanel();
118
119   BorderLayout myBorderlayout = new BorderLayout();
120
121   BorderLayout wsListBorderlayout = new BorderLayout();
122
123   BorderLayout srbsListBorderlayout = new BorderLayout();
124
125   GridBagLayout wsPrefLayout = new GridBagLayout();
126
127   GridBagLayout wsListLayout = new GridBagLayout();
128
129   GridBagLayout srbsListLayout = new GridBagLayout();
130
131   GridBagLayout wsMenuLayout = new GridBagLayout();
132
133   JPanel wsMenuButtons = new JPanel();
134
135   JPanel wsMenuRefreshButs = new JPanel();
136
137   public GWsPreferences()
138   {
139     jbInit();
140   }
141
142   private void jbInit()
143   {
144
145     refreshWs.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
146     refreshWs.setText(MessageManager.getString("action.refresh_services"));
147     refreshWs.addActionListener(new ActionListener()
148     {
149       @Override
150       public void actionPerformed(ActionEvent e)
151       {
152         refreshWs_actionPerformed(e);
153       }
154     });
155     resetWs.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
156     resetWs.setText(MessageManager.getString("action.reset_services"));
157
158     resetWs.addActionListener(new ActionListener()
159     {
160       @Override
161       public void actionPerformed(ActionEvent e)
162       {
163         resetWs_actionPerformed(e);
164       }
165     });
166     indexByHost.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
167     indexByHost.setText(MessageManager.getString("label.index_by_host"));
168     indexByHost.setToolTipText(MessageManager
169             .getString("label.index_web_services_menu_by_host_site"));
170     indexByHost.addActionListener(new ActionListener()
171     {
172       @Override
173       public void actionPerformed(ActionEvent e)
174       {
175         indexByHost_actionPerformed(e);
176       }
177     });
178     indexByType.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
179     indexByType.setText(MessageManager.getString("label.index_by_type"));
180     indexByType.addActionListener(new ActionListener()
181     {
182       @Override
183       public void actionPerformed(ActionEvent e)
184       {
185         indexByType_actionPerformed(e);
186       }
187     });
188     enableJws2Services
189             .setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
190     enableJws2Services.setText(
191             MessageManager.getString("label.enable_jabaws_services"));
192     enableJws2Services.addActionListener(new ActionListener()
193     {
194       @Override
195       public void actionPerformed(ActionEvent e)
196       {
197         enableJws2Services_actionPerformed(e);
198       }
199     });
200     displayWsWarning.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
201     displayWsWarning
202             .setText(MessageManager.getString("label.display_warnings"));
203     displayWsWarning.setToolTipText("<html>" + MessageManager.getString(
204             "label.option_want_informed_web_service_URL_cannot_be_accessed_jalview_when_starts_up"));
205     displayWsWarning.addActionListener(new ActionListener()
206     {
207       @Override
208       public void actionPerformed(ActionEvent e)
209       {
210         displayWsWarning_actionPerformed(e);
211       }
212     });
213     newWsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
214     newWsUrl.setText(MessageManager.getString("label.new_service_url"));
215     newWsUrl.addActionListener(new ActionListener()
216     {
217       @Override
218       public void actionPerformed(ActionEvent e)
219       {
220         newWsUrl_actionPerformed(e);
221       }
222     });
223     editWsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
224     editWsUrl.setText(MessageManager.getString("label.edit_service_url"));
225     editWsUrl.addActionListener(new ActionListener()
226     {
227       @Override
228       public void actionPerformed(ActionEvent e)
229       {
230         editWsUrl_actionPerformed(e);
231       }
232     });
233
234     deleteWsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
235     deleteWsUrl
236             .setText(MessageManager.getString("label.delete_service_url"));
237     deleteWsUrl.addActionListener(new ActionListener()
238     {
239       @Override
240       public void actionPerformed(ActionEvent e)
241       {
242         deleteWsUrl_actionPerformed(e);
243       }
244     });
245     moveWsUrlUp.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
246     moveWsUrlUp.setText(MessageManager.getString("action.move_up"));
247     moveWsUrlUp
248             .setToolTipText(MessageManager.getString("label.move_url_up"));
249     moveWsUrlUp.addActionListener(new ActionListener()
250     {
251       @Override
252       public void actionPerformed(ActionEvent e)
253       {
254         moveWsUrlUp_actionPerformed(e);
255       }
256     });
257     moveWsUrlDown.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
258     moveWsUrlDown.setText(MessageManager.getString("action.move_down"));
259     moveWsUrlDown.setToolTipText(
260             MessageManager.getString("label.move_url_down"));
261     moveWsUrlDown.addActionListener(new ActionListener()
262     {
263       @Override
264       public void actionPerformed(ActionEvent e)
265       {
266         moveWsUrlDown_actionPerformed(e);
267       }
268     });
269     newSbrsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
270     newSbrsUrl
271             .setText(MessageManager.getString("label.add_sbrs_definition"));
272     newSbrsUrl.addActionListener(new ActionListener()
273     {
274       @Override
275       public void actionPerformed(ActionEvent e)
276       {
277         newSbrsUrl_actionPerformed(e);
278       }
279     });
280     editSbrsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
281     editSbrsUrl.setText(
282             MessageManager.getString("label.edit_sbrs_definition"));
283     editSbrsUrl.addActionListener(new ActionListener()
284     {
285       @Override
286       public void actionPerformed(ActionEvent e)
287       {
288         editSbrsUrl_actionPerformed(e);
289       }
290     });
291
292     deleteSbrsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
293     deleteSbrsUrl.setText(
294             MessageManager.getString("label.delete_sbrs_definition"));
295     deleteSbrsUrl.addActionListener(new ActionListener()
296     {
297       @Override
298       public void actionPerformed(ActionEvent e)
299       {
300         deleteSbrsUrl_actionPerformed(e);
301       }
302     });
303
304     setLayout(myBorderlayout);
305     setPreferredSize(new Dimension(500, 400));
306     progressBar.setPreferredSize(new Dimension(450, 20));
307     progressBar.setString("");
308     wsListUrlPanel.setBorder(BorderFactory.createEtchedBorder());
309     wsListUrlPanel.setLayout(new BorderLayout());
310     wsListPane.setBorder(BorderFactory.createEtchedBorder());
311     wsList.setPreferredSize(new Dimension(482, 202));
312     wsList.getTableHeader().setReorderingAllowed(false);
313     wsListPane.getViewport().add(wsList);
314     wsListPane.setPreferredSize(new Dimension(380, 80));
315     wsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
316     wsList.setColumnSelectionAllowed(false);
317     wsList.addMouseListener(new MouseListener()
318     {
319
320       @Override
321       public void mouseClicked(MouseEvent e)
322       {
323         if (e.getClickCount() > 1)
324         {
325           editWsUrl_actionPerformed(null);
326         }
327
328       }
329
330       @Override
331       public void mouseEntered(MouseEvent e)
332       {
333
334       }
335
336       @Override
337       public void mouseExited(MouseEvent e)
338       {
339       }
340
341       @Override
342       public void mousePressed(MouseEvent e)
343       {
344
345       }
346
347       @Override
348       public void mouseReleased(MouseEvent e)
349       {
350
351       }
352
353     });
354     wsListButtons.setLayout(new FlowLayout());
355     wsListButtons.add(newWsUrl);
356     wsListButtons.add(editWsUrl);
357     wsListButtons.add(deleteWsUrl);
358     wsListButtons.setMinimumSize(new Dimension(350, 80));
359     wsListNavButs.setSize(new Dimension(80, 80));
360     wsListNavButs.setPreferredSize(new Dimension(80, 80));
361     wsListNavButs.setLayout(new FlowLayout());
362     wsListNavButs.add(moveWsUrlUp);
363     wsListNavButs.add(moveWsUrlDown);
364     wsListUrlPanel.add(wsListPane, BorderLayout.CENTER);
365     wsListUrlPanel.add(wsListNavButs, BorderLayout.WEST);
366     wsListPanel.setBorder(wsListTitleBorder);
367     wsListPanel.setLayout(new BorderLayout());
368     wsListPanel.add(wsListUrlPanel, BorderLayout.NORTH);
369     wsListPanel.add(wsListButtons, BorderLayout.SOUTH);
370
371     srbsListUrlPanel.setBorder(BorderFactory.createEtchedBorder());
372     srbsListUrlPanel.setLayout(new BorderLayout());
373     srbsListPane.setBorder(BorderFactory.createEtchedBorder());
374     srbsListPane.getViewport().add(sbrsList);
375     sbrsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
376     sbrsList.addMouseListener(new MouseListener()
377     {
378
379       @Override
380       public void mouseClicked(MouseEvent e)
381       {
382         if (e.getClickCount() > 1)
383         {
384           editSbrsUrl_actionPerformed(null);
385         }
386
387       }
388
389       @Override
390       public void mouseEntered(MouseEvent e)
391       {
392
393       }
394
395       @Override
396       public void mouseExited(MouseEvent e)
397       {
398       }
399
400       @Override
401       public void mousePressed(MouseEvent e)
402       {
403
404       }
405
406       @Override
407       public void mouseReleased(MouseEvent e)
408       {
409
410       }
411
412     });
413     srbsListButtons.setLayout(new FlowLayout());
414     srbsListButtons.add(newSbrsUrl);
415     srbsListButtons.add(editSbrsUrl);
416     srbsListButtons.add(deleteSbrsUrl);
417     srbsListUrlPanel.add(srbsListPane, BorderLayout.CENTER);
418     srbsListPanel.setBorder(sbrsListTitleBorder);
419     srbsListPanel.setLayout(new BorderLayout());
420     srbsListPanel.add(srbsListUrlPanel, BorderLayout.NORTH);
421     srbsListPanel.add(srbsListButtons, BorderLayout.CENTER);
422
423     wsMenuButtons.setLayout(new GridLayout(2, 3));
424     wsMenuButtons.add(indexByHost);
425     wsMenuButtons.add(indexByType);
426     wsMenuButtons.add(enableJws2Services);
427     wsMenuButtons.add(displayWsWarning);
428     wsMenuRefreshButs.setLayout(new FlowLayout());
429     wsMenuRefreshButs.setPreferredSize(new Dimension(480, 30));
430     wsMenuRefreshButs.setSize(new Dimension(480, 30));
431     wsMenuRefreshButs.add(refreshWs, null);
432     wsMenuRefreshButs.add(resetWs, null);
433     wsMenuRefreshButs.add(progressBar, null);
434     myBorderlayout.setHgap(3);
435     if (jalview.bin.Cache.getDefault("ENABLE_RSBS_EDITOR", false))
436     {
437       JTabbedPane listPanels = new JTabbedPane();
438       listPanels.addTab("JABAWS Servers", wsListPanel);
439       listPanels.addTab("RSB Services", srbsListPanel);
440       add(listPanels, BorderLayout.NORTH);
441     }
442     else
443     {
444       add(wsListPanel, BorderLayout.NORTH);
445     }
446     add(wsMenuButtons, BorderLayout.CENTER);
447     add(wsMenuRefreshButs, BorderLayout.SOUTH);
448   }
449
450   protected void deleteSbrsUrl_actionPerformed(ActionEvent e)
451   {
452     // TODO Auto-generated method stub
453
454   }
455
456   protected void editSbrsUrl_actionPerformed(ActionEvent e)
457   {
458     // TODO Auto-generated method stub
459
460   }
461
462   protected void newSbrsUrl_actionPerformed(ActionEvent e)
463   {
464     // TODO Auto-generated method stub
465
466   }
467
468   protected void displayWsWarning_actionPerformed(ActionEvent e)
469   {
470     // TODO Auto-generated method stub
471
472   }
473
474   protected void resetWs_actionPerformed(ActionEvent e)
475   {
476
477   }
478
479   protected void indexByType_actionPerformed(ActionEvent e)
480   {
481
482   }
483
484   protected void indexByHost_actionPerformed(ActionEvent e)
485   {
486
487   }
488
489   protected void newWsUrl_actionPerformed(ActionEvent e)
490   {
491
492   }
493
494   protected void editWsUrl_actionPerformed(ActionEvent e)
495   {
496
497   }
498
499   protected void deleteWsUrl_actionPerformed(ActionEvent e)
500   {
501
502   }
503
504   protected void moveWsUrlUp_actionPerformed(ActionEvent e)
505   {
506
507   }
508
509   protected void moveWsUrlDown_actionPerformed(ActionEvent e)
510   {
511
512   }
513
514   protected void enableEnfinServices_actionPerformed(ActionEvent e)
515   {
516
517   }
518
519   protected void enableJws2Services_actionPerformed(ActionEvent e)
520   {
521
522   }
523
524   protected void refreshWs_actionPerformed(ActionEvent e)
525   {
526
527   }
528
529 }