JAL-1517 fix copyright for 2.8.2
[jalview.git] / src / jalview / jbgui / GRestServiceEditorPane.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
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
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.gui.JvSwingUtils;
24 import jalview.util.MessageManager;
25
26 import java.awt.BorderLayout;
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.JButton;
33 import javax.swing.JCheckBox;
34 import javax.swing.JComboBox;
35 import javax.swing.JLabel;
36 import javax.swing.JList;
37 import javax.swing.JPanel;
38 import javax.swing.JScrollPane;
39 import javax.swing.JTabbedPane;
40 import javax.swing.JTextArea;
41 import javax.swing.ListSelectionModel;
42 import javax.swing.border.TitledBorder;
43
44 import net.miginfocom.swing.MigLayout;
45
46 public class GRestServiceEditorPane extends JPanel
47 {
48
49   protected JTabbedPane panels;
50
51   protected JPanel details, inputs, paste;
52
53   protected JTextArea urldesc, url, urlsuff, name, descr, parseRes;
54
55   protected JComboBox action, gapChar;
56
57   JLabel acttype;
58
59   protected JButton okButton;
60
61   protected JButton cancelButton;
62
63   JPanel svcattribs;
64
65   JPanel status;
66
67   protected JList iprms;
68
69   protected JList rdata;
70
71   JScrollPane iprmVp, rdataVp, parseResVp, urlVp, descrVp, urldescVp;
72
73   JButton rdataAdd, rdataRem, rdataNdown, rdataNup;
74
75   JButton iprmsAdd, iprmsRem;
76
77   protected JCheckBox hSeparable;
78
79   protected JCheckBox vSeparable;
80
81   protected JPanel parseWarnings;
82
83   public GRestServiceEditorPane()
84   {
85     jbInit();
86   }
87
88   protected void jbInit()
89   {
90     details = new JPanel();
91     details.setName(MessageManager.getString("label.details"));
92     details.setLayout(new MigLayout());
93     inputs = new JPanel();
94     inputs.setName(MessageManager.getString("label.input_output"));
95     inputs.setLayout(new MigLayout("", "[grow 85,fill][]", ""));
96     paste = new JPanel();
97     paste.setName(MessageManager.getString("label.cut_paste"));
98     paste.setLayout(new MigLayout("", "[grow 100, fill]",
99             "[][grow 100,fill]"));
100
101     panels = new JTabbedPane();
102     panels.addTab(details.getName(), details);
103     panels.addTab(inputs.getName(), inputs);
104     panels.addTab(paste.getName(), paste);
105
106     JPanel cpanel;
107
108     // Name and URL Panel
109     cpanel = details;
110     name = new JTextArea(1, 12);
111
112     JvSwingUtils.mgAddtoLayout(cpanel,
113             MessageManager.getString("label.short_descriptive_name_for_service"), new JLabel(MessageManager.getString("label.name")),
114             name, "wrap");
115     action = new JComboBox();
116     JvSwingUtils
117             .mgAddtoLayout(
118                     cpanel,
119                     MessageManager.getString("label.function_service_performs"),
120                     new JLabel(MessageManager.getString("label.service_action")), action, "wrap");
121     descr = new JTextArea(4, 60);
122     descrVp = new JScrollPane();
123     descrVp.setViewportView(descr);
124     JvSwingUtils.mgAddtoLayout(cpanel, MessageManager.getString("label.brief_description_service"),
125             new JLabel(MessageManager.getString("label.description")), descrVp, "wrap");
126
127     url = new JTextArea(2, 60);
128     urlVp = new JScrollPane();
129     urlVp.setViewportView(url);
130     JvSwingUtils
131             .mgAddtoLayout(
132                     cpanel,
133                     MessageManager.getString("label.url_post_data_service"),
134                     new JLabel(MessageManager.getString("label.post_url")), urlVp, "wrap");
135
136     urlsuff = new JTextArea();
137     urlsuff.setColumns(60);
138
139     JvSwingUtils
140             .mgAddtoLayout(
141                     cpanel,
142                     MessageManager.getString("label.optional_suffix"),
143                     new JLabel(MessageManager.getString("label.url_suffix")), urlsuff, "wrap");
144
145     // input options
146     // details.add(cpanel = new JPanel(), BorderLayout.CENTER);
147     // cpanel.setLayout(new FlowLayout());
148     hSeparable = new JCheckBox(MessageManager.getString("label.per_seq"));
149     hSeparable
150             .setToolTipText("<html>"
151                     + JvSwingUtils
152                             .wrapTooltip("When checked, a job is created for every sequence in the current selection.")
153                     + "<html>");
154     hSeparable.addActionListener(new ActionListener()
155     {
156
157       @Override
158       public void actionPerformed(ActionEvent arg0)
159       {
160         hSeparable_actionPerformed(arg0);
161
162       }
163     });
164     vSeparable = new JCheckBox(MessageManager.getString("label.result_vertically_separable"));
165     vSeparable
166             .setToolTipText("<html>"
167                     + JvSwingUtils
168                             .wrapTooltip("When checked, a single job is created for the visible region and results"
169                                     + " mapped back onto their location in the alignment. Otherwise, a job would be"
170                                     + " created for every contiguous region visible in the alignment or current"
171                                     + " selection (e.g. a multiple alignment).")
172                     + "</html>");
173     vSeparable.addActionListener(new ActionListener()
174     {
175
176       @Override
177       public void actionPerformed(ActionEvent arg0)
178       {
179         vSeparable_actionPerformed(arg0);
180
181       }
182     });
183     gapChar = new JComboBox();
184     JvSwingUtils.mgAddtoLayout(cpanel,
185             MessageManager.getString("label.preferred_gap_character"), new JLabel(
186                     MessageManager.getString("label.gap_character") + ":"), gapChar, "wrap");
187
188     cpanel.add(hSeparable);
189     cpanel.add(vSeparable);
190
191     // Input and Output lists
192     // Inputparams
193     JPanel iprmsList = new JPanel();
194     iprmsList.setBorder(new TitledBorder(MessageManager.getString("label.data_input_parameters")));
195     iprmsList.setLayout(new MigLayout("", "[grow 90, fill][]"));
196     iprmVp = new JScrollPane();
197     iprmVp.getViewport().setView(iprms = new JList());
198     iprmsList.add(iprmVp);
199     iprms.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
200     iprms.addMouseListener(new MouseListener()
201     {
202
203       @Override
204       public void mouseReleased(MouseEvent e)
205       {
206         // TODO Auto-generated method stub
207
208       }
209
210       @Override
211       public void mousePressed(MouseEvent e)
212       {
213         // TODO Auto-generated method stub
214
215       }
216
217       @Override
218       public void mouseExited(MouseEvent e)
219       {
220         // TODO Auto-generated method stub
221
222       }
223
224       @Override
225       public void mouseEntered(MouseEvent e)
226       {
227         // TODO Auto-generated method stub
228
229       }
230
231       @Override
232       public void mouseClicked(MouseEvent e)
233       {
234         if (e.getClickCount() > 1)
235         {
236           iprmListSelection_doubleClicked();
237         }
238
239       }
240     });
241     JPanel iprmButs = new JPanel();
242     iprmButs.setLayout(new MigLayout());
243
244     iprmsAdd = JvSwingUtils.makeButton("+", MessageManager.getString("action.add_input_parameter"),
245             new ActionListener()
246             {
247
248               @Override
249               public void actionPerformed(ActionEvent e)
250               {
251                 iprmsAdd_actionPerformed(e);
252
253               }
254             });
255     iprmsRem = JvSwingUtils.makeButton("-",
256             MessageManager.getString("action.remove_input_parameter"), new ActionListener()
257             {
258
259               @Override
260               public void actionPerformed(ActionEvent e)
261               {
262                 iprmsRem_actionPerformed(e);
263
264               }
265             });
266
267     iprmButs.add(iprmsAdd, "wrap");
268     iprmButs.add(iprmsRem, "wrap");
269     iprmsList.add(iprmButs, "wrap");
270     inputs.add(iprmsList, "wrap");
271
272     // Return Parameters
273
274     rdataAdd = JvSwingUtils.makeButton("+", MessageManager.getString("action.add_return_datatype"),
275             new ActionListener()
276             {
277
278               @Override
279               public void actionPerformed(ActionEvent e)
280               {
281                 rdataAdd_actionPerformed(e);
282
283               }
284             });
285     rdataRem = JvSwingUtils.makeButton("-", MessageManager.getString("action.remove_return_datatype"),
286             new ActionListener()
287             {
288
289               @Override
290               public void actionPerformed(ActionEvent e)
291               {
292                 rdataRem_actionPerformed(e);
293
294               }
295             });
296     rdataNup = JvSwingUtils.makeButton(MessageManager.getString("action.move_up"),
297             MessageManager.getString("label.move_return_type_up_order"), new ActionListener()
298             {
299
300               @Override
301               public void actionPerformed(ActionEvent e)
302               {
303                 rdataNup_actionPerformed(e);
304
305               }
306             });
307     rdataNdown = JvSwingUtils.makeButton(MessageManager.getString("action.move_down"),
308             MessageManager.getString("label.move_return_type_down_order"), new ActionListener()
309             {
310
311               @Override
312               public void actionPerformed(ActionEvent e)
313               {
314                 rdataNdown_actionPerformed(e);
315
316               }
317             });
318
319     JPanel rparamList = new JPanel();
320     rparamList.setBorder(new TitledBorder(MessageManager.getString("label.data_returned_by_service")));
321     rparamList.setLayout(new MigLayout("", "[grow 90, fill][]"));
322     rdata = new JList();
323     rdata.setToolTipText(MessageManager.getString("label.right_click_to_edit_currently_selected_parameter"));
324     rdata.addMouseListener(new MouseListener()
325     {
326
327       @Override
328       public void mouseReleased(MouseEvent arg0)
329       {
330         // TODO Auto-generated method stub
331
332       }
333
334       @Override
335       public void mousePressed(MouseEvent arg0)
336       {
337
338       }
339
340       @Override
341       public void mouseExited(MouseEvent arg0)
342       {
343         // TODO Auto-generated method stub
344
345       }
346
347       @Override
348       public void mouseEntered(MouseEvent arg0)
349       {
350         // TODO Auto-generated method stub
351
352       }
353
354       @Override
355       public void mouseClicked(MouseEvent arg0)
356       {
357         if (arg0.getButton() == MouseEvent.BUTTON3)
358         {
359           rdata_rightClicked(arg0);
360         }
361
362       }
363     });
364     rdataVp = new JScrollPane();
365     rdataVp.getViewport().setView(rdata);
366     rparamList.add(rdataVp);
367     JPanel rparamButs = new JPanel();
368     rparamButs.setLayout(new MigLayout());
369     rparamButs.add(rdataAdd, "wrap");
370     rparamButs.add(rdataRem, "wrap");
371     rparamButs.add(rdataNup, "wrap");
372     rparamButs.add(rdataNdown, "wrap");
373     rparamList.add(rparamButs, "wrap");
374     inputs.add(rparamList, "wrap");
375
376     // Parse flat-text to a service
377
378     urldesc = new JTextArea(4, 60);
379     urldesc.setEditable(true);
380     urldesc.setWrapStyleWord(true);
381     urldescVp = new JScrollPane();
382     urldescVp.setViewportView(urldesc);
383     JPanel urldescPane = new JPanel();
384     urldescPane.setLayout(new MigLayout("", "[grow 100, fill]",
385             "[grow 100, fill]"));
386     urldescPane.setBorder(new TitledBorder(MessageManager.getString("label.rsbs_encoded_service")));
387     urldescPane.add(urldescVp, "span");
388     paste.add(urldescPane, "span");
389     urldescPane
390             .setToolTipText("<html>"
391                     + JvSwingUtils
392                             .wrapTooltip("Flat file representation of this rest service using the Really Simple Bioinformatics Service formalism"));
393
394     parseRes = new JTextArea();
395     parseResVp = new JScrollPane();
396     parseResVp.setViewportView(parseRes);
397     parseRes.setWrapStyleWord(true);
398     parseRes.setColumns(60);
399     parseWarnings = new JPanel(new MigLayout("", "[grow 100, fill]",
400             "[grow 100, fill]"));
401     parseWarnings.setBorder(new TitledBorder(MessageManager.getString("label.parsing_errors")));
402     parseWarnings
403             .setToolTipText("<html>"
404                     + JvSwingUtils
405                             .wrapTooltip("Results of parsing the RSBS representation")
406                     + "</html>");
407     parseWarnings.add(parseResVp, "center");
408     parseRes.setEditable(false);
409     paste.add(parseWarnings, "span");
410     setLayout(new BorderLayout());
411     add(panels, BorderLayout.CENTER);
412     okButton = JvSwingUtils.makeButton(MessageManager.getString("action.ok"), "", new ActionListener()
413     {
414
415       @Override
416       public void actionPerformed(ActionEvent e)
417       {
418         ok_actionPerformed();
419       }
420     });
421     cancelButton = JvSwingUtils.makeButton(MessageManager.getString("action.cancel"), "",
422             new ActionListener()
423             {
424
425               @Override
426               public void actionPerformed(ActionEvent e)
427               {
428                 cancel_actionPerformed();
429               }
430             });
431
432   }
433
434   protected void rdata_rightClicked(MouseEvent arg0)
435   {
436     // TODO Auto-generated method stub
437
438   }
439
440   protected void iprmListSelection_doubleClicked()
441   {
442     // TODO Auto-generated method stub
443
444   }
445
446   protected void hSeparable_actionPerformed(ActionEvent arg0)
447   {
448     // TODO Auto-generated method stub
449
450   }
451
452   protected void vSeparable_actionPerformed(ActionEvent arg0)
453   {
454     // TODO Auto-generated method stub
455
456   }
457
458   protected void cancel_actionPerformed()
459   {
460     // TODO Auto-generated method stub
461
462   }
463
464   protected void ok_actionPerformed()
465   {
466     // TODO Auto-generated method stub
467
468   }
469
470   protected void iprmsAdd_actionPerformed(ActionEvent e)
471   {
472     // TODO Auto-generated method stub
473
474   }
475
476   protected void iprmsRem_actionPerformed(ActionEvent e)
477   {
478     // TODO Auto-generated method stub
479
480   }
481
482   protected void rdataAdd_actionPerformed(ActionEvent e)
483   {
484     // TODO Auto-generated method stub
485
486   }
487
488   protected void rdataRem_actionPerformed(ActionEvent e)
489   {
490     // TODO Auto-generated method stub
491
492   }
493
494   protected void rdataNup_actionPerformed(ActionEvent e)
495   {
496     // TODO Auto-generated method stub
497
498   }
499
500   protected void rdataNdown_actionPerformed(ActionEvent e)
501   {
502     // TODO Auto-generated method stub
503
504   }
505
506   protected void ok_actionPerformed(ActionEvent e)
507   {
508     // TODO Auto-generated method stub
509
510   }
511
512   protected void cancel_actionPerformed(ActionEvent e)
513   {
514     // TODO Auto-generated method stub
515
516   }
517
518 }