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