update author list in license for (JAL-826)
[jalview.git] / src / jalview / jbgui / GWsPreferences.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
3  * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
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  */
18 package jalview.jbgui;
19
20 import java.awt.BorderLayout;
21 import java.awt.Dimension;
22 import java.awt.FlowLayout;
23 import java.awt.Font;
24 import java.awt.GridBagLayout;
25 import java.awt.GridLayout;
26 import java.awt.event.ActionEvent;
27 import java.awt.event.ActionListener;
28 import java.awt.event.MouseEvent;
29 import java.awt.event.MouseListener;
30
31 import javax.swing.BorderFactory;
32 import javax.swing.JButton;
33 import javax.swing.JCheckBox;
34 import javax.swing.JList;
35 import javax.swing.JPanel;
36 import javax.swing.JProgressBar;
37 import javax.swing.JScrollPane;
38 import javax.swing.JTabbedPane;
39 import javax.swing.ListSelectionModel;
40 import javax.swing.SwingConstants;
41 import javax.swing.border.TitledBorder;
42
43 /**
44  * Preference dialog for jalview web services
45  * 
46  * @author JimP
47  */
48 public class GWsPreferences extends JPanel
49 {
50   protected JList sbrsList = new JList();
51
52   protected TitledBorder sbrsListTitleBorder = new TitledBorder(
53           "Simple Bioinformatics Rest Services");
54
55   protected JButton newSbrsUrl = new JButton();
56
57   protected JButton editSbrsUrl = new JButton();
58
59   protected JButton deleteSbrsUrl = new JButton();
60
61   protected JList wsList = new JList();
62
63   protected TitledBorder wsListTitleBorder = new TitledBorder(
64           "Web Service Discovery URLS");
65
66   protected JButton newWsUrl = new JButton();
67
68   protected JButton editWsUrl = new JButton();
69
70   protected JButton deleteWsUrl = new JButton();
71
72   protected JButton moveWsUrlUp = new JButton();
73
74   protected JButton moveWsUrlDown = new JButton();
75
76   protected JCheckBox indexByHost = new JCheckBox();
77
78   protected JCheckBox indexByType = new JCheckBox();
79
80   protected JCheckBox enableJws2Services = new JCheckBox();
81
82   protected JCheckBox enableEnfinServices = new JCheckBox();
83
84   protected JCheckBox displayWsWarning = new JCheckBox();
85
86   protected JButton refreshWs = new JButton();
87
88   protected JButton resetWs = new JButton();
89
90   protected JProgressBar progressBar = new JProgressBar();
91
92   JScrollPane wsListPane = new JScrollPane();
93
94   JPanel wsListUrlPanel = new JPanel();
95
96   JPanel wsListPanel = new JPanel();
97
98   JPanel wsListButtons = new JPanel();
99
100   JPanel wsListNavButs = new JPanel();
101
102   JScrollPane srbsListPane = new JScrollPane();
103
104   JPanel srbsListUrlPanel = new JPanel();
105
106   JPanel srbsListPanel = new JPanel();
107
108   JPanel srbsListButtons = new JPanel();
109
110   JPanel srbsListNavButs = new JPanel();
111
112   BorderLayout myBorderlayout = new BorderLayout();
113
114   BorderLayout wsListBorderlayout = new BorderLayout();
115   
116   BorderLayout srbsListBorderlayout = new BorderLayout();
117
118   GridBagLayout wsPrefLayout = new GridBagLayout();
119
120   GridBagLayout wsListLayout = new GridBagLayout();
121
122   GridBagLayout srbsListLayout = new GridBagLayout();
123
124   GridBagLayout wsMenuLayout = new GridBagLayout();
125
126   JPanel wsMenuButtons = new JPanel();
127
128   JPanel wsMenuRefreshButs = new JPanel();
129
130   public GWsPreferences()
131   {
132     jbInit();
133   }
134
135   private void jbInit()
136   {
137
138     refreshWs.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
139     refreshWs.setText("Refresh Services");
140     refreshWs.addActionListener(new ActionListener()
141     {
142       public void actionPerformed(ActionEvent e)
143       {
144         refreshWs_actionPerformed(e);
145       }
146     });
147     resetWs.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
148     resetWs.setText("Reset Services");
149
150     resetWs.addActionListener(new ActionListener()
151     {
152       public void actionPerformed(ActionEvent e)
153       {
154         resetWs_actionPerformed(e);
155       }
156     });
157     indexByHost.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
158     indexByHost.setText("Index by host");
159     indexByHost
160             .setToolTipText("Index web services in menu by the host site.");
161     indexByHost.addActionListener(new ActionListener()
162     {
163       public void actionPerformed(ActionEvent e)
164       {
165         indexByHost_actionPerformed(e);
166       }
167     });
168     indexByType.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
169     indexByType.setText("Index by type");
170     indexByType.addActionListener(new ActionListener()
171     {
172       public void actionPerformed(ActionEvent e)
173       {
174         indexByType_actionPerformed(e);
175       }
176     });
177     enableEnfinServices
178             .setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
179     enableEnfinServices.setText("Enable Enfin Services");
180     enableEnfinServices.addActionListener(new ActionListener()
181     {
182       public void actionPerformed(ActionEvent e)
183       {
184         enableEnfinServices_actionPerformed(e);
185       }
186     });
187     enableJws2Services
188             .setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
189     enableJws2Services.setText("Enable JABAWS Services");
190     enableJws2Services.addActionListener(new ActionListener()
191     {
192       public void actionPerformed(ActionEvent e)
193       {
194         enableJws2Services_actionPerformed(e);
195       }
196     });
197     displayWsWarning.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
198     displayWsWarning.setText("Display warnings");
199     displayWsWarning
200             .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");
201     displayWsWarning.addActionListener(new ActionListener()
202     {
203       public void actionPerformed(ActionEvent e)
204       {
205         displayWsWarning_actionPerformed(e);
206       }
207     });
208     newWsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
209     newWsUrl.setText("New Service URL");
210     newWsUrl.addActionListener(new ActionListener()
211     {
212       public void actionPerformed(ActionEvent e)
213       {
214         newWsUrl_actionPerformed(e);
215       }
216     });
217     editWsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
218     editWsUrl.setText("Edit Service URL");
219     editWsUrl.addActionListener(new ActionListener()
220     {
221       public void actionPerformed(ActionEvent e)
222       {
223         editWsUrl_actionPerformed(e);
224       }
225     });
226
227     deleteWsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
228     deleteWsUrl.setText("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("Up");
238     moveWsUrlUp.setToolTipText("Move URL up");
239     moveWsUrlUp.addActionListener(new ActionListener()
240     {
241       public void actionPerformed(ActionEvent e)
242       {
243         moveWsUrlUp_actionPerformed(e);
244       }
245     });
246     moveWsUrlDown.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
247     moveWsUrlDown.setText("Down");
248     moveWsUrlDown.setToolTipText("Move URL Down");
249     moveWsUrlDown.addActionListener(new ActionListener()
250     {
251       public void actionPerformed(ActionEvent e)
252       {
253         moveWsUrlDown_actionPerformed(e);
254       }
255     });
256     newSbrsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
257     newSbrsUrl.setText("Add a SBRS definition");
258     newSbrsUrl.addActionListener(new ActionListener()
259     {
260       public void actionPerformed(ActionEvent e)
261       {
262         newSbrsUrl_actionPerformed(e);
263       }
264     });
265     editSbrsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
266     editSbrsUrl.setText("Edit SBRS definition");
267     editSbrsUrl.addActionListener(new ActionListener()
268     {
269       public void actionPerformed(ActionEvent e)
270       {
271         editSbrsUrl_actionPerformed(e);
272       }
273     });
274
275     deleteSbrsUrl.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
276     deleteSbrsUrl.setText("Delete SBRS definition");
277     deleteSbrsUrl.addActionListener(new ActionListener()
278     {
279       public void actionPerformed(ActionEvent e)
280       {
281         deleteSbrsUrl_actionPerformed(e);
282       }
283     });
284
285     setLayout(myBorderlayout);
286     setPreferredSize(new Dimension(500, 400));
287     progressBar.setPreferredSize(new Dimension(450, 20));
288     progressBar.setString("");
289     wsListUrlPanel.setBorder(BorderFactory.createEtchedBorder());
290     wsListUrlPanel.setLayout(new BorderLayout());
291     // wsListUrlPanel.setPreferredSize(new Dimension(482,202));
292     wsListPane.setBorder(BorderFactory.createEtchedBorder());
293     wsListPane.getViewport().add(wsList);
294     // wsListPane.setPreferredSize(new Dimension(380, 80));
295     wsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
296     wsList.addMouseListener(new MouseListener()
297     {
298
299       public void mouseClicked(MouseEvent e)
300       {
301         if (e.getClickCount() > 1)
302         {
303           editWsUrl_actionPerformed(null);
304         }
305
306       }
307
308       public void mouseEntered(MouseEvent e)
309       {
310
311       }
312
313       public void mouseExited(MouseEvent e)
314       {
315       }
316
317       public void mousePressed(MouseEvent e)
318       {
319
320       }
321
322       public void mouseReleased(MouseEvent e)
323       {
324
325       }
326
327     });
328     // wsListButtons.setPreferredSize(new Dimension(480, 60));
329     wsListButtons.setLayout(new FlowLayout());
330     // wsListButtons.add(moveWsUrlUp);
331     // wsListButtons.add(moveWsUrlDown);
332     wsListButtons.add(newWsUrl);
333     wsListButtons.add(editWsUrl);
334     wsListButtons.add(deleteWsUrl);
335     wsListNavButs.setSize(new Dimension(80, 80));
336     wsListNavButs.setPreferredSize(new Dimension(80, 80));
337     wsListNavButs.setLayout(new FlowLayout());
338     wsListNavButs.add(moveWsUrlUp);
339     wsListNavButs.add(moveWsUrlDown);
340     wsListUrlPanel.add(wsListPane, BorderLayout.CENTER);
341     wsListUrlPanel.add(wsListNavButs, BorderLayout.WEST);
342     wsListPanel.setBorder(wsListTitleBorder);
343     wsListPanel.setLayout(new BorderLayout());
344     wsListPanel.add(wsListUrlPanel, BorderLayout.NORTH);
345     wsListPanel.add(wsListButtons, BorderLayout.SOUTH);
346
347     srbsListUrlPanel.setBorder(BorderFactory.createEtchedBorder());
348     srbsListUrlPanel.setLayout(new BorderLayout());
349     srbsListPane.setBorder(BorderFactory.createEtchedBorder());
350     srbsListPane.getViewport().add(sbrsList);
351     //srbsListPane.setMinimumSize(new Dimension(380, 80));
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         JTabbedPane listPanels=new JTabbedPane();
410         listPanels.addTab("JABAWS Servers",wsListPanel);
411         listPanels.addTab("RSB Services", srbsListPanel);
412         add(listPanels,  BorderLayout.NORTH);
413     } else {
414         add(wsListPanel, BorderLayout.NORTH);
415     }
416     add(wsMenuButtons, BorderLayout.CENTER);
417     add(wsMenuRefreshButs, BorderLayout.SOUTH);
418   }
419
420   protected void deleteSbrsUrl_actionPerformed(ActionEvent e)
421   {
422     // TODO Auto-generated method stub
423     
424   }
425
426   protected void editSbrsUrl_actionPerformed(ActionEvent e)
427   {
428     // TODO Auto-generated method stub
429     
430   }
431
432   protected void newSbrsUrl_actionPerformed(ActionEvent e)
433   {
434     // TODO Auto-generated method stub
435     
436   }
437
438   protected void displayWsWarning_actionPerformed(ActionEvent e)
439   {
440     // TODO Auto-generated method stub
441     
442   }
443
444   protected void resetWs_actionPerformed(ActionEvent e)
445   {
446
447   }
448
449   protected void indexByType_actionPerformed(ActionEvent e)
450   {
451
452   }
453
454   protected void indexByHost_actionPerformed(ActionEvent e)
455   {
456
457   }
458
459   protected void newWsUrl_actionPerformed(ActionEvent e)
460   {
461
462   }
463
464   protected void editWsUrl_actionPerformed(ActionEvent e)
465   {
466
467   }
468
469   protected void deleteWsUrl_actionPerformed(ActionEvent e)
470   {
471
472   }
473
474   protected void moveWsUrlUp_actionPerformed(ActionEvent e)
475   {
476
477   }
478
479   protected void moveWsUrlDown_actionPerformed(ActionEvent e)
480   {
481
482   }
483
484   protected void enableEnfinServices_actionPerformed(ActionEvent e)
485   {
486
487   }
488
489   protected void enableJws2Services_actionPerformed(ActionEvent e)
490   {
491
492   }
493
494   protected void refreshWs_actionPerformed(ActionEvent e)
495   {
496
497   }
498
499 }