2 * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
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
10 * of the License, or (at your option) any later version.
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.
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.
21 package jalview.jbgui;
23 import jalview.gui.JvSwingUtils;
24 import jalview.util.MessageManager;
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;
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;
44 import net.miginfocom.swing.MigLayout;
46 public class GRestServiceEditorPane extends JPanel
49 protected JTabbedPane panels;
51 protected JPanel details, inputs, paste;
53 protected JTextArea urldesc, url, urlsuff, name, descr, parseRes;
55 protected JComboBox action, gapChar;
59 protected JButton okButton;
61 protected JButton cancelButton;
67 protected JList iprms;
69 protected JList rdata;
71 JScrollPane iprmVp, rdataVp, parseResVp, urlVp, descrVp, urldescVp;
73 JButton rdataAdd, rdataRem, rdataNdown, rdataNup;
75 JButton iprmsAdd, iprmsRem;
77 protected JCheckBox hSeparable;
79 protected JCheckBox vSeparable;
81 protected JPanel parseWarnings;
83 public GRestServiceEditorPane()
88 protected void jbInit()
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][]", ""));
97 paste.setName(MessageManager.getString("label.cut_paste"));
98 paste.setLayout(new MigLayout("", "[grow 100, fill]",
99 "[][grow 100,fill]"));
101 panels = new JTabbedPane();
102 panels.addTab(details.getName(), details);
103 panels.addTab(inputs.getName(), inputs);
104 panels.addTab(paste.getName(), paste);
108 // Name and URL Panel
110 name = new JTextArea(1, 12);
112 JvSwingUtils.mgAddtoLayout(cpanel, MessageManager
113 .getString("label.short_descriptive_name_for_service"),
114 new JLabel(MessageManager.getString("label.name")), name,
116 action = new JComboBox();
117 JvSwingUtils.mgAddtoLayout(cpanel,
118 MessageManager.getString("label.function_service_performs"),
119 new JLabel(MessageManager.getString("label.service_action")),
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")),
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,
137 urlsuff = new JTextArea();
138 urlsuff.setColumns(60);
140 JvSwingUtils.mgAddtoLayout(cpanel, MessageManager
141 .getString("label.optional_suffix"),
142 new JLabel(MessageManager.getString("label.url_suffix")),
146 // details.add(cpanel = new JPanel(), BorderLayout.CENTER);
147 // cpanel.setLayout(new FlowLayout());
148 hSeparable = new JCheckBox(MessageManager.getString("label.per_seq"));
150 .setToolTipText("<html>"
152 .wrapTooltip("When checked, a job is created for every sequence in the current selection.")
154 hSeparable.addActionListener(new ActionListener()
158 public void actionPerformed(ActionEvent arg0)
160 hSeparable_actionPerformed(arg0);
164 vSeparable = new JCheckBox(
165 MessageManager.getString("label.result_vertically_separable"));
167 .setToolTipText("<html>"
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).")
174 vSeparable.addActionListener(new ActionListener()
178 public void actionPerformed(ActionEvent arg0)
180 vSeparable_actionPerformed(arg0);
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");
190 cpanel.add(hSeparable);
191 cpanel.add(vSeparable);
193 // Input and Output lists
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()
207 public void mouseReleased(MouseEvent e)
209 // TODO Auto-generated method stub
214 public void mousePressed(MouseEvent e)
216 // TODO Auto-generated method stub
221 public void mouseExited(MouseEvent e)
223 // TODO Auto-generated method stub
228 public void mouseEntered(MouseEvent e)
230 // TODO Auto-generated method stub
235 public void mouseClicked(MouseEvent e)
237 if (e.getClickCount() > 1)
239 iprmListSelection_doubleClicked();
244 JPanel iprmButs = new JPanel();
245 iprmButs.setLayout(new MigLayout());
247 iprmsAdd = JvSwingUtils.makeButton("+",
248 MessageManager.getString("action.add_input_parameter"),
253 public void actionPerformed(ActionEvent e)
255 iprmsAdd_actionPerformed(e);
259 iprmsRem = JvSwingUtils.makeButton("-",
260 MessageManager.getString("action.remove_input_parameter"),
265 public void actionPerformed(ActionEvent e)
267 iprmsRem_actionPerformed(e);
272 iprmButs.add(iprmsAdd, "wrap");
273 iprmButs.add(iprmsRem, "wrap");
274 iprmsList.add(iprmButs, "wrap");
275 inputs.add(iprmsList, "wrap");
279 rdataAdd = JvSwingUtils.makeButton("+",
280 MessageManager.getString("action.add_return_datatype"),
285 public void actionPerformed(ActionEvent e)
287 rdataAdd_actionPerformed(e);
291 rdataRem = JvSwingUtils.makeButton("-",
292 MessageManager.getString("action.remove_return_datatype"),
297 public void actionPerformed(ActionEvent e)
299 rdataRem_actionPerformed(e);
303 rdataNup = JvSwingUtils.makeButton(
304 MessageManager.getString("action.move_up"),
305 MessageManager.getString("label.move_return_type_up_order"),
310 public void actionPerformed(ActionEvent e)
312 rdataNup_actionPerformed(e);
316 rdataNdown = JvSwingUtils.makeButton(
317 MessageManager.getString("action.move_down"),
318 MessageManager.getString("label.move_return_type_down_order"),
323 public void actionPerformed(ActionEvent e)
325 rdataNdown_actionPerformed(e);
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][]"));
335 rdata.setToolTipText(MessageManager
336 .getString("label.right_click_to_edit_currently_selected_parameter"));
337 rdata.addMouseListener(new MouseListener()
341 public void mouseReleased(MouseEvent arg0)
343 // TODO Auto-generated method stub
348 public void mousePressed(MouseEvent arg0)
354 public void mouseExited(MouseEvent arg0)
356 // TODO Auto-generated method stub
361 public void mouseEntered(MouseEvent arg0)
363 // TODO Auto-generated method stub
368 public void mouseClicked(MouseEvent arg0)
370 if (arg0.getButton() == MouseEvent.BUTTON3)
372 rdata_rightClicked(arg0);
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");
389 // Parse flat-text to a service
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");
404 .setToolTipText("<html>"
406 .wrapTooltip("Flat file representation of this rest service using the Really Simple Bioinformatics Service formalism"));
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")));
418 .setToolTipText("<html>"
420 .wrapTooltip("Results of parsing the RSBS representation")
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()
432 public void actionPerformed(ActionEvent e)
434 ok_actionPerformed();
437 cancelButton = JvSwingUtils.makeButton(
438 MessageManager.getString("action.cancel"), "",
443 public void actionPerformed(ActionEvent e)
445 cancel_actionPerformed();
451 protected void rdata_rightClicked(MouseEvent arg0)
453 // TODO Auto-generated method stub
457 protected void iprmListSelection_doubleClicked()
459 // TODO Auto-generated method stub
463 protected void hSeparable_actionPerformed(ActionEvent arg0)
465 // TODO Auto-generated method stub
469 protected void vSeparable_actionPerformed(ActionEvent arg0)
471 // TODO Auto-generated method stub
475 protected void cancel_actionPerformed()
477 // TODO Auto-generated method stub
481 protected void ok_actionPerformed()
483 // TODO Auto-generated method stub
487 protected void iprmsAdd_actionPerformed(ActionEvent e)
489 // TODO Auto-generated method stub
493 protected void iprmsRem_actionPerformed(ActionEvent e)
495 // TODO Auto-generated method stub
499 protected void rdataAdd_actionPerformed(ActionEvent e)
501 // TODO Auto-generated method stub
505 protected void rdataRem_actionPerformed(ActionEvent e)
507 // TODO Auto-generated method stub
511 protected void rdataNup_actionPerformed(ActionEvent e)
513 // TODO Auto-generated method stub
517 protected void rdataNdown_actionPerformed(ActionEvent e)
519 // TODO Auto-generated method stub
523 protected void ok_actionPerformed(ActionEvent e)
525 // TODO Auto-generated method stub
529 protected void cancel_actionPerformed(ActionEvent e)
531 // TODO Auto-generated method stub