579d4098b18a5480b62f4e31eb4b47bcc3067130
[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       public void actionPerformed(ActionEvent e)
150       {
151         refreshWs_actionPerformed(e);
152       }
153     });
154     resetWs.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
155     resetWs.setText(MessageManager.getString("action.reset_services"));
156
157     resetWs.addActionListener(new ActionListener()
158     {
159       public void actionPerformed(ActionEvent e)
160       {
161         resetWs_actionPerformed(e);
162       }
163     });
164     indexByHost.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
165     indexByHost.setText(MessageManager.getString("label.index_by_host"));
166     indexByHost.setToolTipText(MessageManager
167             .getString("label.index_web_services_menu_by_host_site"));
168     indexByHost.addActionListener(new ActionListener()
169     {
170       public void actionPerformed(ActionEvent e)
171       {
172         indexByHost_actionPerformed(e);
173       }
174     });
175     indexByType.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
176     indexByType.setText(MessageManager.getString("label.index_by_type"));
177     indexByType.addActionListener(new ActionListener()
178     {
179       public void actionPerformed(ActionEvent e)
180       {
181         indexByType_actionPerformed(e);
182       }
183     });
184     enableJws2Services
185             .setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
186     enableJws2Services.setText(
187             MessageManager.getString("label.enable_jabaws_services"));
188     enableJws2Services.addActionListener(new ActionListener()
189     {
190       public void actionPerformed(ActionEvent e)
191       {
192         enableJws2Services_actionPerformed(e);
193       }
194     });
195     displayWsWarning.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
196     displayWsWarning
197             .setText(MessageManager.getString("label.display_warnings"));
198     displayWsWarning.setToolTipText("<html>" + MessageManager.getString(
199             "label.option_want_informed_web_service_URL_cannot_be_accessed_jalview_when_starts_up"));
200     displayWsWarning.addActionListener(new ActionListener()
201     {
202       public void actionPerformed(ActionEvent e)
203       {
204         displayWsWarning_actionPerformed(e);
205       }
206     });
207     newWsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
208     newWsUrl.setText(MessageManager.getString("label.new_service_url"));
209     newWsUrl.addActionListener(new ActionListener()
210     {
211       public void actionPerformed(ActionEvent e)
212       {
213         newWsUrl_actionPerformed(e);
214       }
215     });
216     editWsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
217     editWsUrl.setText(MessageManager.getString("label.edit_service_url"));
218     editWsUrl.addActionListener(new ActionListener()
219     {
220       public void actionPerformed(ActionEvent e)
221       {
222         editWsUrl_actionPerformed(e);
223       }
224     });
225
226     deleteWsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
227     deleteWsUrl
228             .setText(MessageManager.getString("label.delete_service_url"));
229     deleteWsUrl.addActionListener(new ActionListener()
230     {
231       public void actionPerformed(ActionEvent e)
232       {
233         deleteWsUrl_actionPerformed(e);
234       }
235     });
236     moveWsUrlUp.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
237     moveWsUrlUp.setText(MessageManager.getString("action.move_up"));
238     moveWsUrlUp
239             .setToolTipText(MessageManager.getString("label.move_url_up"));
240     moveWsUrlUp.addActionListener(new ActionListener()
241     {
242       public void actionPerformed(ActionEvent e)
243       {
244         moveWsUrlUp_actionPerformed(e);
245       }
246     });
247     moveWsUrlDown.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
248     moveWsUrlDown.setText(MessageManager.getString("action.move_down"));
249     moveWsUrlDown.setToolTipText(
250             MessageManager.getString("label.move_url_down"));
251     moveWsUrlDown.addActionListener(new ActionListener()
252     {
253       public void actionPerformed(ActionEvent e)
254       {
255         moveWsUrlDown_actionPerformed(e);
256       }
257     });
258     newSbrsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
259     newSbrsUrl
260             .setText(MessageManager.getString("label.add_sbrs_definition"));
261     newSbrsUrl.addActionListener(new ActionListener()
262     {
263       public void actionPerformed(ActionEvent e)
264       {
265         newSbrsUrl_actionPerformed(e);
266       }
267     });
268     editSbrsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
269     editSbrsUrl.setText(
270             MessageManager.getString("label.edit_sbrs_definition"));
271     editSbrsUrl.addActionListener(new ActionListener()
272     {
273       public void actionPerformed(ActionEvent e)
274       {
275         editSbrsUrl_actionPerformed(e);
276       }
277     });
278
279     deleteSbrsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
280     deleteSbrsUrl.setText(
281             MessageManager.getString("label.delete_sbrs_definition"));
282     deleteSbrsUrl.addActionListener(new ActionListener()
283     {
284       public void actionPerformed(ActionEvent e)
285       {
286         deleteSbrsUrl_actionPerformed(e);
287       }
288     });
289
290     setLayout(myBorderlayout);
291     setPreferredSize(new Dimension(500, 400));
292     progressBar.setPreferredSize(new Dimension(450, 20));
293     progressBar.setString("");
294     wsListUrlPanel.setBorder(BorderFactory.createEtchedBorder());
295     wsListUrlPanel.setLayout(new BorderLayout());
296     wsListPane.setBorder(BorderFactory.createEtchedBorder());
297     wsListPane.getViewport().add(wsList);
298     wsList.setPreferredSize(new Dimension(482, 202));
299     wsList.getTableHeader().setReorderingAllowed(false);
300     wsListPane.setPreferredSize(new Dimension(380, 80));
301     wsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
302     wsList.setColumnSelectionAllowed(false);
303     wsList.addMouseListener(new MouseListener()
304     {
305
306       public void mouseClicked(MouseEvent e)
307       {
308         if (e.getClickCount() > 1)
309         {
310           editWsUrl_actionPerformed(null);
311         }
312
313       }
314
315       public void mouseEntered(MouseEvent e)
316       {
317
318       }
319
320       public void mouseExited(MouseEvent e)
321       {
322       }
323
324       public void mousePressed(MouseEvent e)
325       {
326
327       }
328
329       public void mouseReleased(MouseEvent e)
330       {
331
332       }
333
334     });
335     wsListButtons.setLayout(new FlowLayout());
336     wsListButtons.add(newWsUrl);
337     wsListButtons.add(editWsUrl);
338     wsListButtons.add(deleteWsUrl);
339     wsListButtons.setMinimumSize(new Dimension(350, 80));
340     wsListNavButs.setSize(new Dimension(80, 80));
341     wsListNavButs.setPreferredSize(new Dimension(80, 80));
342     wsListNavButs.setLayout(new FlowLayout());
343     wsListNavButs.add(moveWsUrlUp);
344     wsListNavButs.add(moveWsUrlDown);
345     wsListUrlPanel.add(wsListPane, BorderLayout.CENTER);
346     wsListUrlPanel.add(wsListNavButs, BorderLayout.WEST);
347     wsListPanel.setBorder(wsListTitleBorder);
348     wsListPanel.setLayout(new BorderLayout());
349     wsListPanel.add(wsListUrlPanel, BorderLayout.NORTH);
350     wsListPanel.add(wsListButtons, BorderLayout.SOUTH);
351
352     srbsListUrlPanel.setBorder(BorderFactory.createEtchedBorder());
353     srbsListUrlPanel.setLayout(new BorderLayout());
354     srbsListPane.setBorder(BorderFactory.createEtchedBorder());
355     srbsListPane.getViewport().add(sbrsList);
356     sbrsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
357     sbrsList.addMouseListener(new MouseListener()
358     {
359
360       public void mouseClicked(MouseEvent e)
361       {
362         if (e.getClickCount() > 1)
363         {
364           editSbrsUrl_actionPerformed(null);
365         }
366
367       }
368
369       public void mouseEntered(MouseEvent e)
370       {
371
372       }
373
374       public void mouseExited(MouseEvent e)
375       {
376       }
377
378       public void mousePressed(MouseEvent e)
379       {
380
381       }
382
383       public void mouseReleased(MouseEvent e)
384       {
385
386       }
387
388     });
389     srbsListButtons.setLayout(new FlowLayout());
390     srbsListButtons.add(newSbrsUrl);
391     srbsListButtons.add(editSbrsUrl);
392     srbsListButtons.add(deleteSbrsUrl);
393     srbsListUrlPanel.add(srbsListPane, BorderLayout.CENTER);
394     srbsListPanel.setBorder(sbrsListTitleBorder);
395     srbsListPanel.setLayout(new BorderLayout());
396     srbsListPanel.add(srbsListUrlPanel, BorderLayout.NORTH);
397     srbsListPanel.add(srbsListButtons, BorderLayout.CENTER);
398
399     wsMenuButtons.setLayout(new GridLayout(2, 3));
400     wsMenuButtons.add(indexByHost);
401     wsMenuButtons.add(indexByType);
402     wsMenuButtons.add(enableJws2Services);
403     wsMenuButtons.add(displayWsWarning);
404     wsMenuRefreshButs.setLayout(new FlowLayout());
405     wsMenuRefreshButs.setPreferredSize(new Dimension(480, 30));
406     wsMenuRefreshButs.setSize(new Dimension(480, 30));
407     wsMenuRefreshButs.add(refreshWs, null);
408     wsMenuRefreshButs.add(resetWs, null);
409     wsMenuRefreshButs.add(progressBar, null);
410     myBorderlayout.setHgap(3);
411     if (jalview.bin.Cache.getDefault("ENABLE_RSBS_EDITOR", false))
412     {
413       JTabbedPane listPanels = new JTabbedPane();
414       listPanels.addTab("JABAWS Servers", wsListPanel);
415       listPanels.addTab("RSB Services", srbsListPanel);
416       add(listPanels, BorderLayout.NORTH);
417     }
418     else
419     {
420       add(wsListPanel, BorderLayout.NORTH);
421     }
422     add(wsMenuButtons, BorderLayout.CENTER);
423     add(wsMenuRefreshButs, BorderLayout.SOUTH);
424   }
425
426   protected void deleteSbrsUrl_actionPerformed(ActionEvent e)
427   {
428     // TODO Auto-generated method stub
429
430   }
431
432   protected void editSbrsUrl_actionPerformed(ActionEvent e)
433   {
434     // TODO Auto-generated method stub
435
436   }
437
438   protected void newSbrsUrl_actionPerformed(ActionEvent e)
439   {
440     // TODO Auto-generated method stub
441
442   }
443
444   protected void displayWsWarning_actionPerformed(ActionEvent e)
445   {
446     // TODO Auto-generated method stub
447
448   }
449
450   protected void resetWs_actionPerformed(ActionEvent e)
451   {
452
453   }
454
455   protected void indexByType_actionPerformed(ActionEvent e)
456   {
457
458   }
459
460   protected void indexByHost_actionPerformed(ActionEvent e)
461   {
462
463   }
464
465   protected void newWsUrl_actionPerformed(ActionEvent e)
466   {
467
468   }
469
470   protected void editWsUrl_actionPerformed(ActionEvent e)
471   {
472
473   }
474
475   protected void deleteWsUrl_actionPerformed(ActionEvent e)
476   {
477
478   }
479
480   protected void moveWsUrlUp_actionPerformed(ActionEvent e)
481   {
482
483   }
484
485   protected void moveWsUrlDown_actionPerformed(ActionEvent e)
486   {
487
488   }
489
490   protected void enableEnfinServices_actionPerformed(ActionEvent e)
491   {
492
493   }
494
495   protected void enableJws2Services_actionPerformed(ActionEvent e)
496   {
497
498   }
499
500   protected void refreshWs_actionPerformed(ActionEvent e)
501   {
502
503   }
504
505 }