+ InputType toedit = currentservice.getInputParams().get(toktoedit);
+ String oldParam = toktoedit;
+ RestInputParamEditDialog dialog = new RestInputParamEditDialog(this,
+ currentservice, toedit);
+ if (dialog.wasUpdated())
+ {
+ currentservice.getInputParams().remove(oldParam);
+ currentservice.getInputParams().put(dialog.current.token,
+ dialog.current);
+ initGuiWith(currentservice);
+ }
+
+ }
+ }
+
+ @Override
+ protected void iprmsAdd_actionPerformed(ActionEvent e)
+ {
+ RestInputParamEditDialog dialog = new RestInputParamEditDialog(this,
+ currentservice, "param"
+ + (1 + currentservice.getInputParams().size()));
+ if (dialog.wasUpdated())
+ {
+ currentservice.getInputParams().put(dialog.current.token,
+ dialog.current);
+ initGuiWith(currentservice);
+ }
+
+ }
+
+ @Override
+ protected void iprmsRem_actionPerformed(ActionEvent e)
+ {
+ String toktoedit = getSelectedInputToken();
+ if (toktoedit != null)
+ {
+ currentservice.getInputParams().remove(toktoedit);
+ initGuiWith(currentservice);
+
+ }
+ }
+
+ @Override
+ protected void rdata_rightClicked(MouseEvent mouse)
+ {
+ final int rdatasel = rdata.getSelectedIndex();
+ if (rdatasel > -1)
+ {
+ JPopupMenu popup = new JPopupMenu(
+ MessageManager.getString("label.select_return_type"));
+ for (final JvDataType type : JvDataType.values())
+ {
+ popup.add(new JMenuItem(type.name())).addActionListener(
+ new ActionListener()
+ {
+
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ currentservice.getResultDataTypes().set(rdatasel, type);
+ initGuiWith(currentservice);
+ rdata.setSelectedIndex(rdatasel);
+ }
+ });
+ }
+ popup.show(rdata, mouse.getX(), mouse.getY());
+ }
+ }
+
+ @Override
+ protected void rdataAdd_actionPerformed(ActionEvent e)
+ {
+ int p;
+ if ((p = rdata.getSelectedIndex()) > -1)
+ {
+ currentservice.getResultDataTypes().add(p + 1, JvDataType.ANNOTATION);
+ }
+ else
+ {
+ currentservice.addResultDatatype(JvDataType.ANNOTATION);
+ }
+ initGuiWith(currentservice);
+ rdata.setSelectedIndex(p == -1 ? currentservice.getResultDataTypes()
+ .size() - 1 : p + 1);
+ }
+
+ @Override
+ protected void rdataNdown_actionPerformed(ActionEvent e)
+ {
+ int p;
+ if ((p = rdata.getSelectedIndex()) > -1 && p < _rparam.size() - 1)
+ {
+ List<JvDataType> rtypes = currentservice.getResultDataTypes();
+ JvDataType below = rtypes.get(p + 1);
+ rtypes.set(p + 1, rtypes.get(p));
+ rtypes.set(p, below);
+ initGuiWith(currentservice);
+ rdata.setSelectedIndex(p + 1);
+ }
+ }
+
+ @Override
+ protected void rdataNup_actionPerformed(ActionEvent e)
+ {
+ int p;
+ if ((p = rdata.getSelectedIndex()) > 0)
+ {
+ List<JvDataType> rtypes = currentservice.getResultDataTypes();
+ JvDataType above = rtypes.get(p - 1);
+ rtypes.set(p - 1, rtypes.get(p));
+ rtypes.set(p, above);
+ initGuiWith(currentservice);
+ rdata.setSelectedIndex(p - 1);
+ }
+ }
+
+ @Override
+ protected void rdataRem_actionPerformed(ActionEvent e)
+ {
+ if (rdata.getSelectedIndex() > -1)
+ {
+ currentservice.getResultDataTypes().remove(rdata.getSelectedIndex());
+ initGuiWith(currentservice);
+ }
+ }
+
+ private boolean updateServiceFromGui()
+ {
+ Map<String, InputType> inputTypes = new HashMap<String, InputType>();
+ StringBuffer warnings = new StringBuffer();
+ for (String its : _iparam)
+ {
+ Matcher mtch = Pattern.compile("(\\S+)\\s(\\S+):\\[(.+)]").matcher(
+ its);
+ if (mtch.find())
+ {
+ if (!RestServiceDescription.parseTypeString(mtch.group(2) + ":"
+ + mtch.group(3), mtch.group(1), mtch.group(2),
+ mtch.group(3), inputTypes, warnings))