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