2 * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.1)
3 * Copyright (C) 2014 The Jalview Authors
5 * This file is part of Jalview.
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.
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.
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.
19 package jalview.jbgui;
21 import jalview.gui.JvSwingUtils;
22 import jalview.util.MessageManager;
24 import java.awt.BorderLayout;
25 import java.awt.event.ActionEvent;
26 import java.awt.event.ActionListener;
27 import java.awt.event.MouseEvent;
28 import java.awt.event.MouseListener;
30 import javax.swing.JButton;
31 import javax.swing.JCheckBox;
32 import javax.swing.JComboBox;
33 import javax.swing.JLabel;
34 import javax.swing.JList;
35 import javax.swing.JPanel;
36 import javax.swing.JScrollPane;
37 import javax.swing.JTabbedPane;
38 import javax.swing.JTextArea;
39 import javax.swing.ListSelectionModel;
40 import javax.swing.border.TitledBorder;
42 import net.miginfocom.swing.MigLayout;
44 public class GRestServiceEditorPane extends JPanel
47 protected JTabbedPane panels;
49 protected JPanel details, inputs, paste;
51 protected JTextArea urldesc, url, urlsuff, name, descr, parseRes;
53 protected JComboBox action, gapChar;
57 protected JButton okButton;
59 protected JButton cancelButton;
65 protected JList iprms;
67 protected JList rdata;
69 JScrollPane iprmVp, rdataVp, parseResVp, urlVp, descrVp, urldescVp;
71 JButton rdataAdd, rdataRem, rdataNdown, rdataNup;
73 JButton iprmsAdd, iprmsRem;
75 protected JCheckBox hSeparable;
77 protected JCheckBox vSeparable;
79 protected JPanel parseWarnings;
81 public GRestServiceEditorPane()
86 protected void jbInit()
88 details = new JPanel();
89 details.setName(MessageManager.getString("label.details"));
90 details.setLayout(new MigLayout());
91 inputs = new JPanel();
92 inputs.setName(MessageManager.getString("label.input_output"));
93 inputs.setLayout(new MigLayout("", "[grow 85,fill][]", ""));
95 paste.setName(MessageManager.getString("label.cut_paste"));
96 paste.setLayout(new MigLayout("", "[grow 100, fill]",
97 "[][grow 100,fill]"));
99 panels = new JTabbedPane();
100 panels.addTab(details.getName(), details);
101 panels.addTab(inputs.getName(), inputs);
102 panels.addTab(paste.getName(), paste);
106 // Name and URL Panel
108 name = new JTextArea(1, 12);
110 JvSwingUtils.mgAddtoLayout(cpanel,
111 MessageManager.getString("label.short_descriptive_name_for_service"), new JLabel(MessageManager.getString("label.name")),
113 action = new JComboBox();
117 MessageManager.getString("label.function_service_performs"),
118 new JLabel(MessageManager.getString("label.service_action")), action, "wrap");
119 descr = new JTextArea(4, 60);
120 descrVp = new JScrollPane();
121 descrVp.setViewportView(descr);
122 JvSwingUtils.mgAddtoLayout(cpanel, MessageManager.getString("label.brief_description_service"),
123 new JLabel(MessageManager.getString("label.description")), descrVp, "wrap");
125 url = new JTextArea(2, 60);
126 urlVp = new JScrollPane();
127 urlVp.setViewportView(url);
131 MessageManager.getString("label.url_post_data_service"),
132 new JLabel(MessageManager.getString("label.post_url")), urlVp, "wrap");
134 urlsuff = new JTextArea();
135 urlsuff.setColumns(60);
140 MessageManager.getString("label.optional_suffix"),
141 new JLabel(MessageManager.getString("label.url_suffix")), urlsuff, "wrap");
144 // details.add(cpanel = new JPanel(), BorderLayout.CENTER);
145 // cpanel.setLayout(new FlowLayout());
146 hSeparable = new JCheckBox(MessageManager.getString("label.per_seq"));
148 .setToolTipText("<html>"
150 .wrapTooltip("When checked, a job is created for every sequence in the current selection.")
152 hSeparable.addActionListener(new ActionListener()
156 public void actionPerformed(ActionEvent arg0)
158 hSeparable_actionPerformed(arg0);
162 vSeparable = new JCheckBox(MessageManager.getString("label.result_vertically_separable"));
164 .setToolTipText("<html>"
166 .wrapTooltip("When checked, a single job is created for the visible region and results"
167 + " mapped back onto their location in the alignment. Otherwise, a job would be"
168 + " created for every contiguous region visible in the alignment or current"
169 + " selection (e.g. a multiple alignment).")
171 vSeparable.addActionListener(new ActionListener()
175 public void actionPerformed(ActionEvent arg0)
177 vSeparable_actionPerformed(arg0);
181 gapChar = new JComboBox();
182 JvSwingUtils.mgAddtoLayout(cpanel,
183 MessageManager.getString("label.preferred_gap_character"), new JLabel(
184 MessageManager.getString("label.gap_character") + ":"), gapChar, "wrap");
186 cpanel.add(hSeparable);
187 cpanel.add(vSeparable);
189 // Input and Output lists
191 JPanel iprmsList = new JPanel();
192 iprmsList.setBorder(new TitledBorder(MessageManager.getString("label.data_input_parameters")));
193 iprmsList.setLayout(new MigLayout("", "[grow 90, fill][]"));
194 iprmVp = new JScrollPane();
195 iprmVp.getViewport().setView(iprms = new JList());
196 iprmsList.add(iprmVp);
197 iprms.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
198 iprms.addMouseListener(new MouseListener()
202 public void mouseReleased(MouseEvent e)
204 // TODO Auto-generated method stub
209 public void mousePressed(MouseEvent e)
211 // TODO Auto-generated method stub
216 public void mouseExited(MouseEvent e)
218 // TODO Auto-generated method stub
223 public void mouseEntered(MouseEvent e)
225 // TODO Auto-generated method stub
230 public void mouseClicked(MouseEvent e)
232 if (e.getClickCount() > 1)
234 iprmListSelection_doubleClicked();
239 JPanel iprmButs = new JPanel();
240 iprmButs.setLayout(new MigLayout());
242 iprmsAdd = JvSwingUtils.makeButton("+", MessageManager.getString("action.add_input_parameter"),
247 public void actionPerformed(ActionEvent e)
249 iprmsAdd_actionPerformed(e);
253 iprmsRem = JvSwingUtils.makeButton("-",
254 MessageManager.getString("action.remove_input_parameter"), new ActionListener()
258 public void actionPerformed(ActionEvent e)
260 iprmsRem_actionPerformed(e);
265 iprmButs.add(iprmsAdd, "wrap");
266 iprmButs.add(iprmsRem, "wrap");
267 iprmsList.add(iprmButs, "wrap");
268 inputs.add(iprmsList, "wrap");
272 rdataAdd = JvSwingUtils.makeButton("+", MessageManager.getString("action.add_return_datatype"),
277 public void actionPerformed(ActionEvent e)
279 rdataAdd_actionPerformed(e);
283 rdataRem = JvSwingUtils.makeButton("-", MessageManager.getString("action.remove_return_datatype"),
288 public void actionPerformed(ActionEvent e)
290 rdataRem_actionPerformed(e);
294 rdataNup = JvSwingUtils.makeButton(MessageManager.getString("action.move_up"),
295 MessageManager.getString("label.move_return_type_up_order"), new ActionListener()
299 public void actionPerformed(ActionEvent e)
301 rdataNup_actionPerformed(e);
305 rdataNdown = JvSwingUtils.makeButton(MessageManager.getString("action.move_down"),
306 MessageManager.getString("label.move_return_type_down_order"), new ActionListener()
310 public void actionPerformed(ActionEvent e)
312 rdataNdown_actionPerformed(e);
317 JPanel rparamList = new JPanel();
318 rparamList.setBorder(new TitledBorder(MessageManager.getString("label.data_returned_by_service")));
319 rparamList.setLayout(new MigLayout("", "[grow 90, fill][]"));
321 rdata.setToolTipText(MessageManager.getString("label.right_click_to_edit_currently_selected_parameter"));
322 rdata.addMouseListener(new MouseListener()
326 public void mouseReleased(MouseEvent arg0)
328 // TODO Auto-generated method stub
333 public void mousePressed(MouseEvent arg0)
339 public void mouseExited(MouseEvent arg0)
341 // TODO Auto-generated method stub
346 public void mouseEntered(MouseEvent arg0)
348 // TODO Auto-generated method stub
353 public void mouseClicked(MouseEvent arg0)
355 if (arg0.getButton() == MouseEvent.BUTTON3)
357 rdata_rightClicked(arg0);
362 rdataVp = new JScrollPane();
363 rdataVp.getViewport().setView(rdata);
364 rparamList.add(rdataVp);
365 JPanel rparamButs = new JPanel();
366 rparamButs.setLayout(new MigLayout());
367 rparamButs.add(rdataAdd, "wrap");
368 rparamButs.add(rdataRem, "wrap");
369 rparamButs.add(rdataNup, "wrap");
370 rparamButs.add(rdataNdown, "wrap");
371 rparamList.add(rparamButs, "wrap");
372 inputs.add(rparamList, "wrap");
374 // Parse flat-text to a service
376 urldesc = new JTextArea(4, 60);
377 urldesc.setEditable(true);
378 urldesc.setWrapStyleWord(true);
379 urldescVp = new JScrollPane();
380 urldescVp.setViewportView(urldesc);
381 JPanel urldescPane = new JPanel();
382 urldescPane.setLayout(new MigLayout("", "[grow 100, fill]",
383 "[grow 100, fill]"));
384 urldescPane.setBorder(new TitledBorder(MessageManager.getString("label.rsbs_encoded_service")));
385 urldescPane.add(urldescVp, "span");
386 paste.add(urldescPane, "span");
388 .setToolTipText("<html>"
390 .wrapTooltip("Flat file representation of this rest service using the Really Simple Bioinformatics Service formalism"));
392 parseRes = new JTextArea();
393 parseResVp = new JScrollPane();
394 parseResVp.setViewportView(parseRes);
395 parseRes.setWrapStyleWord(true);
396 parseRes.setColumns(60);
397 parseWarnings = new JPanel(new MigLayout("", "[grow 100, fill]",
398 "[grow 100, fill]"));
399 parseWarnings.setBorder(new TitledBorder(MessageManager.getString("label.parsing_errors")));
401 .setToolTipText("<html>"
403 .wrapTooltip("Results of parsing the RSBS representation")
405 parseWarnings.add(parseResVp, "center");
406 parseRes.setEditable(false);
407 paste.add(parseWarnings, "span");
408 setLayout(new BorderLayout());
409 add(panels, BorderLayout.CENTER);
410 okButton = JvSwingUtils.makeButton(MessageManager.getString("action.ok"), "", new ActionListener()
414 public void actionPerformed(ActionEvent e)
416 ok_actionPerformed();
419 cancelButton = JvSwingUtils.makeButton(MessageManager.getString("action.cancel"), "",
424 public void actionPerformed(ActionEvent e)
426 cancel_actionPerformed();
432 protected void rdata_rightClicked(MouseEvent arg0)
434 // TODO Auto-generated method stub
438 protected void iprmListSelection_doubleClicked()
440 // TODO Auto-generated method stub
444 protected void hSeparable_actionPerformed(ActionEvent arg0)
446 // TODO Auto-generated method stub
450 protected void vSeparable_actionPerformed(ActionEvent arg0)
452 // TODO Auto-generated method stub
456 protected void cancel_actionPerformed()
458 // TODO Auto-generated method stub
462 protected void ok_actionPerformed()
464 // TODO Auto-generated method stub
468 protected void iprmsAdd_actionPerformed(ActionEvent e)
470 // TODO Auto-generated method stub
474 protected void iprmsRem_actionPerformed(ActionEvent e)
476 // TODO Auto-generated method stub
480 protected void rdataAdd_actionPerformed(ActionEvent e)
482 // TODO Auto-generated method stub
486 protected void rdataRem_actionPerformed(ActionEvent e)
488 // TODO Auto-generated method stub
492 protected void rdataNup_actionPerformed(ActionEvent e)
494 // TODO Auto-generated method stub
498 protected void rdataNdown_actionPerformed(ActionEvent e)
500 // TODO Auto-generated method stub
504 protected void ok_actionPerformed(ActionEvent e)
506 // TODO Auto-generated method stub
510 protected void cancel_actionPerformed(ActionEvent e)
512 // TODO Auto-generated method stub