JAL-1517 source formatting
[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, MessageManager
113             .getString("label.short_descriptive_name_for_service"),
114             new JLabel(MessageManager.getString("label.name")), name,
115             "wrap");
116     action = new JComboBox();
117     JvSwingUtils.mgAddtoLayout(cpanel,
118             MessageManager.getString("label.function_service_performs"),
119             new JLabel(MessageManager.getString("label.service_action")),
120             action, "wrap");
121     descr = new JTextArea(4, 60);
122     descrVp = new JScrollPane();
123     descrVp.setViewportView(descr);
124     JvSwingUtils.mgAddtoLayout(cpanel,
125             MessageManager.getString("label.brief_description_service"),
126             new JLabel(MessageManager.getString("label.description")),
127             descrVp, "wrap");
128
129     url = new JTextArea(2, 60);
130     urlVp = new JScrollPane();
131     urlVp.setViewportView(url);
132     JvSwingUtils.mgAddtoLayout(cpanel,
133             MessageManager.getString("label.url_post_data_service"),
134             new JLabel(MessageManager.getString("label.post_url")), urlVp,
135             "wrap");
136
137     urlsuff = new JTextArea();
138     urlsuff.setColumns(60);
139
140     JvSwingUtils.mgAddtoLayout(cpanel, MessageManager
141             .getString("label.optional_suffix"),
142             new JLabel(MessageManager.getString("label.url_suffix")),
143             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(
165             MessageManager.getString("label.result_vertically_separable"));
166     vSeparable
167             .setToolTipText("<html>"
168                     + JvSwingUtils
169                             .wrapTooltip("When checked, a single job is created for the visible region and results"
170                                     + " mapped back onto their location in the alignment. Otherwise, a job would be"
171                                     + " created for every contiguous region visible in the alignment or current"
172                                     + " selection (e.g. a multiple alignment).")
173                     + "</html>");
174     vSeparable.addActionListener(new ActionListener()
175     {
176
177       @Override
178       public void actionPerformed(ActionEvent arg0)
179       {
180         vSeparable_actionPerformed(arg0);
181
182       }
183     });
184     gapChar = new JComboBox();
185     JvSwingUtils.mgAddtoLayout(cpanel,
186             MessageManager.getString("label.preferred_gap_character"),
187             new JLabel(MessageManager.getString("label.gap_character")
188                     + ":"), gapChar, "wrap");
189
190     cpanel.add(hSeparable);
191     cpanel.add(vSeparable);
192
193     // Input and Output lists
194     // Inputparams
195     JPanel iprmsList = new JPanel();
196     iprmsList.setBorder(new TitledBorder(MessageManager
197             .getString("label.data_input_parameters")));
198     iprmsList.setLayout(new MigLayout("", "[grow 90, fill][]"));
199     iprmVp = new JScrollPane();
200     iprmVp.getViewport().setView(iprms = new JList());
201     iprmsList.add(iprmVp);
202     iprms.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
203     iprms.addMouseListener(new MouseListener()
204     {
205
206       @Override
207       public void mouseReleased(MouseEvent e)
208       {
209         // TODO Auto-generated method stub
210
211       }
212
213       @Override
214       public void mousePressed(MouseEvent e)
215       {
216         // TODO Auto-generated method stub
217
218       }
219
220       @Override
221       public void mouseExited(MouseEvent e)
222       {
223         // TODO Auto-generated method stub
224
225       }
226
227       @Override
228       public void mouseEntered(MouseEvent e)
229       {
230         // TODO Auto-generated method stub
231
232       }
233
234       @Override
235       public void mouseClicked(MouseEvent e)
236       {
237         if (e.getClickCount() > 1)
238         {
239           iprmListSelection_doubleClicked();
240         }
241
242       }
243     });
244     JPanel iprmButs = new JPanel();
245     iprmButs.setLayout(new MigLayout());
246
247     iprmsAdd = JvSwingUtils.makeButton("+",
248             MessageManager.getString("action.add_input_parameter"),
249             new ActionListener()
250             {
251
252               @Override
253               public void actionPerformed(ActionEvent e)
254               {
255                 iprmsAdd_actionPerformed(e);
256
257               }
258             });
259     iprmsRem = JvSwingUtils.makeButton("-",
260             MessageManager.getString("action.remove_input_parameter"),
261             new ActionListener()
262             {
263
264               @Override
265               public void actionPerformed(ActionEvent e)
266               {
267                 iprmsRem_actionPerformed(e);
268
269               }
270             });
271
272     iprmButs.add(iprmsAdd, "wrap");
273     iprmButs.add(iprmsRem, "wrap");
274     iprmsList.add(iprmButs, "wrap");
275     inputs.add(iprmsList, "wrap");
276
277     // Return Parameters
278
279     rdataAdd = JvSwingUtils.makeButton("+",
280             MessageManager.getString("action.add_return_datatype"),
281             new ActionListener()
282             {
283
284               @Override
285               public void actionPerformed(ActionEvent e)
286               {
287                 rdataAdd_actionPerformed(e);
288
289               }
290             });
291     rdataRem = JvSwingUtils.makeButton("-",
292             MessageManager.getString("action.remove_return_datatype"),
293             new ActionListener()
294             {
295
296               @Override
297               public void actionPerformed(ActionEvent e)
298               {
299                 rdataRem_actionPerformed(e);
300
301               }
302             });
303     rdataNup = JvSwingUtils.makeButton(
304             MessageManager.getString("action.move_up"),
305             MessageManager.getString("label.move_return_type_up_order"),
306             new ActionListener()
307             {
308
309               @Override
310               public void actionPerformed(ActionEvent e)
311               {
312                 rdataNup_actionPerformed(e);
313
314               }
315             });
316     rdataNdown = JvSwingUtils.makeButton(
317             MessageManager.getString("action.move_down"),
318             MessageManager.getString("label.move_return_type_down_order"),
319             new ActionListener()
320             {
321
322               @Override
323               public void actionPerformed(ActionEvent e)
324               {
325                 rdataNdown_actionPerformed(e);
326
327               }
328             });
329
330     JPanel rparamList = new JPanel();
331     rparamList.setBorder(new TitledBorder(MessageManager
332             .getString("label.data_returned_by_service")));
333     rparamList.setLayout(new MigLayout("", "[grow 90, fill][]"));
334     rdata = new JList();
335     rdata.setToolTipText(MessageManager
336             .getString("label.right_click_to_edit_currently_selected_parameter"));
337     rdata.addMouseListener(new MouseListener()
338     {
339
340       @Override
341       public void mouseReleased(MouseEvent arg0)
342       {
343         // TODO Auto-generated method stub
344
345       }
346
347       @Override
348       public void mousePressed(MouseEvent arg0)
349       {
350
351       }
352
353       @Override
354       public void mouseExited(MouseEvent arg0)
355       {
356         // TODO Auto-generated method stub
357
358       }
359
360       @Override
361       public void mouseEntered(MouseEvent arg0)
362       {
363         // TODO Auto-generated method stub
364
365       }
366
367       @Override
368       public void mouseClicked(MouseEvent arg0)
369       {
370         if (arg0.getButton() == MouseEvent.BUTTON3)
371         {
372           rdata_rightClicked(arg0);
373         }
374
375       }
376     });
377     rdataVp = new JScrollPane();
378     rdataVp.getViewport().setView(rdata);
379     rparamList.add(rdataVp);
380     JPanel rparamButs = new JPanel();
381     rparamButs.setLayout(new MigLayout());
382     rparamButs.add(rdataAdd, "wrap");
383     rparamButs.add(rdataRem, "wrap");
384     rparamButs.add(rdataNup, "wrap");
385     rparamButs.add(rdataNdown, "wrap");
386     rparamList.add(rparamButs, "wrap");
387     inputs.add(rparamList, "wrap");
388
389     // Parse flat-text to a service
390
391     urldesc = new JTextArea(4, 60);
392     urldesc.setEditable(true);
393     urldesc.setWrapStyleWord(true);
394     urldescVp = new JScrollPane();
395     urldescVp.setViewportView(urldesc);
396     JPanel urldescPane = new JPanel();
397     urldescPane.setLayout(new MigLayout("", "[grow 100, fill]",
398             "[grow 100, fill]"));
399     urldescPane.setBorder(new TitledBorder(MessageManager
400             .getString("label.rsbs_encoded_service")));
401     urldescPane.add(urldescVp, "span");
402     paste.add(urldescPane, "span");
403     urldescPane
404             .setToolTipText("<html>"
405                     + JvSwingUtils
406                             .wrapTooltip("Flat file representation of this rest service using the Really Simple Bioinformatics Service formalism"));
407
408     parseRes = new JTextArea();
409     parseResVp = new JScrollPane();
410     parseResVp.setViewportView(parseRes);
411     parseRes.setWrapStyleWord(true);
412     parseRes.setColumns(60);
413     parseWarnings = new JPanel(new MigLayout("", "[grow 100, fill]",
414             "[grow 100, fill]"));
415     parseWarnings.setBorder(new TitledBorder(MessageManager
416             .getString("label.parsing_errors")));
417     parseWarnings
418             .setToolTipText("<html>"
419                     + JvSwingUtils
420                             .wrapTooltip("Results of parsing the RSBS representation")
421                     + "</html>");
422     parseWarnings.add(parseResVp, "center");
423     parseRes.setEditable(false);
424     paste.add(parseWarnings, "span");
425     setLayout(new BorderLayout());
426     add(panels, BorderLayout.CENTER);
427     okButton = JvSwingUtils.makeButton(
428             MessageManager.getString("action.ok"), "", new ActionListener()
429             {
430
431               @Override
432               public void actionPerformed(ActionEvent e)
433               {
434                 ok_actionPerformed();
435               }
436             });
437     cancelButton = JvSwingUtils.makeButton(
438             MessageManager.getString("action.cancel"), "",
439             new ActionListener()
440             {
441
442               @Override
443               public void actionPerformed(ActionEvent e)
444               {
445                 cancel_actionPerformed();
446               }
447             });
448
449   }
450
451   protected void rdata_rightClicked(MouseEvent arg0)
452   {
453     // TODO Auto-generated method stub
454
455   }
456
457   protected void iprmListSelection_doubleClicked()
458   {
459     // TODO Auto-generated method stub
460
461   }
462
463   protected void hSeparable_actionPerformed(ActionEvent arg0)
464   {
465     // TODO Auto-generated method stub
466
467   }
468
469   protected void vSeparable_actionPerformed(ActionEvent arg0)
470   {
471     // TODO Auto-generated method stub
472
473   }
474
475   protected void cancel_actionPerformed()
476   {
477     // TODO Auto-generated method stub
478
479   }
480
481   protected void ok_actionPerformed()
482   {
483     // TODO Auto-generated method stub
484
485   }
486
487   protected void iprmsAdd_actionPerformed(ActionEvent e)
488   {
489     // TODO Auto-generated method stub
490
491   }
492
493   protected void iprmsRem_actionPerformed(ActionEvent e)
494   {
495     // TODO Auto-generated method stub
496
497   }
498
499   protected void rdataAdd_actionPerformed(ActionEvent e)
500   {
501     // TODO Auto-generated method stub
502
503   }
504
505   protected void rdataRem_actionPerformed(ActionEvent e)
506   {
507     // TODO Auto-generated method stub
508
509   }
510
511   protected void rdataNup_actionPerformed(ActionEvent e)
512   {
513     // TODO Auto-generated method stub
514
515   }
516
517   protected void rdataNdown_actionPerformed(ActionEvent e)
518   {
519     // TODO Auto-generated method stub
520
521   }
522
523   protected void ok_actionPerformed(ActionEvent e)
524   {
525     // TODO Auto-generated method stub
526
527   }
528
529   protected void cancel_actionPerformed(ActionEvent e)
530   {
531     // TODO Auto-generated method stub
532
533   }
534
535 }