3 import jalview.gui.JvSwingUtils;
5 import java.awt.BorderLayout;
6 import java.awt.Dimension;
7 import java.awt.FlowLayout;
8 import java.awt.GridLayout;
9 import java.awt.event.ActionEvent;
10 import java.awt.event.ActionListener;
12 import javax.swing.BoxLayout;
13 import javax.swing.JButton;
14 import javax.swing.JCheckBox;
15 import javax.swing.JComboBox;
16 import javax.swing.JLabel;
17 import javax.swing.JList;
18 import javax.swing.JPanel;
19 import javax.swing.JScrollPane;
20 import javax.swing.JTabbedPane;
21 import javax.swing.JTextArea;
22 import javax.swing.JViewport;
23 import javax.swing.UIManager;
24 import javax.swing.border.TitledBorder;
25 import javax.swing.event.CaretEvent;
26 import javax.swing.event.CaretListener;
27 import javax.swing.event.DocumentEvent;
28 import javax.swing.event.DocumentListener;
30 import net.miginfocom.swing.MigLayout;
32 public class GRestServiceEditorPane extends JPanel {
34 protected JTabbedPane panels;
36 protected JPanel details, inputs, paste;
38 protected JTextArea urldesc, url, urlsuff, name, descr, parseRes;
40 protected JComboBox action, gapChar;
44 protected JButton okButton;
46 protected JButton cancelButton;
52 protected JList iprms;
54 protected JList rdata;
56 JScrollPane iprmVp, rdataVp, parseResVp, urlVp, descrVp, urldescVp;
58 JButton rdataAdd, rdataRem, rdataNdown, rdataNup;
60 JButton iprmsAdd, iprmsRem;
62 protected JCheckBox hSeparable;
64 protected JCheckBox vSeparable;
66 protected JPanel parseWarnings;
68 public GRestServiceEditorPane()
73 protected void jbInit()
75 details = new JPanel();
76 details.setName("Details");
77 details.setLayout(new MigLayout());
78 inputs = new JPanel();
79 inputs.setName("Input/Output");
80 inputs.setLayout(new MigLayout("","[grow 85,fill][]",""));
82 paste.setName("Cut'n'Paste");
83 paste.setLayout(new MigLayout());
85 panels = new JTabbedPane();
86 panels.addTab(details.getName(), details);
87 panels.addTab(inputs.getName(), inputs);
88 panels.addTab(paste.getName(), paste);
94 name = new JTextArea(1, 12);
97 .mgAddtoLayout(cpanel, "Short descriptive name for service",
98 new JLabel("Name:"), name,"wrap");
99 action = new JComboBox();
103 "What kind of function the service performs (e.g. alignment, analysis, search, etc).",
104 new JLabel("Service Action:"), action,"wrap");
105 descr = new JTextArea(4, 40);
106 descrVp = new JScrollPane();
107 descrVp.setViewportView(descr);
108 JvSwingUtils.mgAddtoLayout(cpanel, "Brief description of service",
109 new JLabel("Description:"), descrVp,"wrap");
111 url = new JTextArea(2, 20);
112 urlVp = new JScrollPane();
113 urlVp.setViewportView(url);
117 "URL to post data to service. Include any special parameters needed here",
118 new JLabel("POST URL:"), urlVp,"wrap");
120 urlsuff = new JTextArea();
121 urlsuff.setColumns(20);
126 "Optional suffix added to URL when retrieving results from service",
127 new JLabel("URL Suffix:"), urlsuff,"wrap");
130 // details.add(cpanel = new JPanel(), BorderLayout.CENTER);
131 // cpanel.setLayout(new FlowLayout());
132 hSeparable = new JCheckBox("per Sequence");
134 .setToolTipText("<html>"
136 .wrapTooltip("When checked, a job is created for every sequence in the current selection.")
138 hSeparable.addActionListener(new ActionListener()
142 public void actionPerformed(ActionEvent arg0)
144 hSeparable_actionPerformed(arg0);
148 vSeparable = new JCheckBox("Results are vertically separable");
150 .setToolTipText("<html>"
152 .wrapTooltip("When checked, a single job is created for the visible region and results"
153 + " mapped back onto their location in the alignment. Otherwise, a job would be"
154 + " created for every contiguous region visible in the alignment or current"
155 + " selection (e.g. a multiple alignment).")
157 vSeparable.addActionListener(new ActionListener()
161 public void actionPerformed(ActionEvent arg0)
163 vSeparable_actionPerformed(arg0);
167 gapChar = new JComboBox();
171 "Which gap character does this service prefer ?",
172 new JLabel("Gap Character:"), gapChar,"wrap");
175 cpanel.add(hSeparable);
176 cpanel.add(vSeparable);
178 // Input and Output lists
180 JPanel iprmsList = new JPanel();
181 iprmsList.setBorder(new TitledBorder("Data input parameters"));
182 iprmsList.setLayout(new MigLayout());
183 iprmVp = new JScrollPane();
184 iprmVp.getViewport().setView(iprms = new JList());
185 iprmsList.add(iprmVp);
186 JPanel iprmButs = new JPanel();
187 iprmButs.setLayout(new MigLayout());
189 iprmsAdd = JvSwingUtils.makeButton("+", "Add input parameter",
194 public void actionPerformed(ActionEvent e)
196 iprmsAdd_actionPerformed(e);
200 iprmsRem = JvSwingUtils.makeButton("-",
201 "Remove selected input parameter", new ActionListener()
205 public void actionPerformed(ActionEvent e)
207 iprmsRem_actionPerformed(e);
212 iprmButs.add(iprmsAdd,"wrap");
213 iprmButs.add(iprmsRem,"wrap");
214 iprmsList.add(iprmButs, "wrap");
215 inputs.add(iprmsList, "wrap");
219 rdataAdd = JvSwingUtils.makeButton("+", "Add return datatype",
224 public void actionPerformed(ActionEvent e)
226 rdataAdd_actionPerformed(e);
230 rdataRem = JvSwingUtils.makeButton("-", "Remove return datatype",
235 public void actionPerformed(ActionEvent e)
237 rdataRem_actionPerformed(e);
241 rdataNup = JvSwingUtils.makeButton("Move Up",
242 "Move return type up order", new ActionListener()
246 public void actionPerformed(ActionEvent e)
248 rdataNup_actionPerformed(e);
252 rdataNdown = JvSwingUtils.makeButton("Move Down",
253 "Move return type down order", new ActionListener()
257 public void actionPerformed(ActionEvent e)
259 rdataNdown_actionPerformed(e);
264 JPanel rparamList = new JPanel();
265 rparamList.setBorder(new TitledBorder("Data returned by service"));
266 rparamList.setLayout(new MigLayout());
268 rdataVp = new JScrollPane();
269 rdataVp.getViewport().setView(rdata);
270 rparamList.add(rdataVp);
271 JPanel rparamButs = new JPanel();
272 rparamButs.setLayout(new MigLayout());
273 rparamButs.add(rdataAdd,"wrap");
274 rparamButs.add(rdataRem,"wrap");
275 rparamButs.add(rdataNup,"wrap");
276 rparamButs.add(rdataNdown,"wrap");
277 rparamList.add(rparamButs,"wrap");
278 inputs.add(rparamList,"wrap");
280 // Parse flat-text to a service
283 urldesc = new JTextArea(2,40);
284 urldesc.setEditable(true);
285 urldescVp = new JScrollPane();
286 urldescVp.setViewportView(urldesc);
287 JvSwingUtils.mgAddtoLayout(paste,"Flat file representation of this rest service using the Really Simple Bioinformatics Service formalism", new JLabel("RSBS Encoded Service:"), urldescVp,"wrap");
289 parseRes = new JTextArea(5,40);
290 parseResVp = new JScrollPane();
291 parseResVp.setViewportView(parseRes);
292 parseWarnings = new JPanel(new MigLayout());
293 parseWarnings.setBorder(new TitledBorder("Parsing errors"));
294 parseWarnings.setToolTipText("<html>"+JvSwingUtils.wrapTooltip("Results of parsing the RSBS representation")+"</html>");
295 parseWarnings.add(parseResVp, "wrap");
296 parseRes.setEditable(false);
298 setLayout(new BorderLayout());
299 add(panels, BorderLayout.CENTER);
300 okButton = JvSwingUtils.makeButton("OK", "", new ActionListener()
304 public void actionPerformed(ActionEvent e)
306 ok_actionPerformed();
309 cancelButton = JvSwingUtils.makeButton("Cancel", "",
314 public void actionPerformed(ActionEvent e)
316 cancel_actionPerformed();
322 protected void hSeparable_actionPerformed(ActionEvent arg0)
324 // TODO Auto-generated method stub
328 protected void vSeparable_actionPerformed(ActionEvent arg0)
330 // TODO Auto-generated method stub
334 protected void cancel_actionPerformed()
336 // TODO Auto-generated method stub
340 protected void ok_actionPerformed()
342 // TODO Auto-generated method stub
346 protected void iprmsAdd_actionPerformed(ActionEvent e)
348 // TODO Auto-generated method stub
352 protected void iprmsRem_actionPerformed(ActionEvent e)
354 // TODO Auto-generated method stub
358 protected void rdataAdd_actionPerformed(ActionEvent e)
360 // TODO Auto-generated method stub
364 protected void rdataRem_actionPerformed(ActionEvent e)
366 // TODO Auto-generated method stub
370 protected void rdataNup_actionPerformed(ActionEvent e)
372 // TODO Auto-generated method stub
376 protected void rdataNdown_actionPerformed(ActionEvent e)
378 // TODO Auto-generated method stub
382 protected void ok_actionPerformed(ActionEvent e)
384 // TODO Auto-generated method stub
388 protected void cancel_actionPerformed(ActionEvent e)
390 // TODO Auto-generated method stub