3 import java.awt.BorderLayout;
5 import java.awt.Component;
6 import java.awt.Dimension;
7 import java.awt.FlowLayout;
9 import java.awt.GridLayout;
10 import java.awt.Rectangle;
11 import java.awt.event.ActionEvent;
12 import java.awt.event.ActionListener;
13 import java.awt.event.ComponentEvent;
14 import java.awt.event.ComponentListener;
15 import java.awt.event.ContainerEvent;
16 import java.awt.event.ContainerListener;
17 import java.awt.event.ItemEvent;
18 import java.awt.event.ItemListener;
19 import java.awt.event.KeyEvent;
20 import java.awt.event.KeyListener;
21 import java.awt.event.MouseEvent;
22 import java.awt.event.MouseListener;
23 import java.awt.event.WindowEvent;
24 import java.awt.event.WindowListener;
25 import java.awt.event.WindowStateListener;
26 import java.util.ArrayList;
27 import java.util.EventObject;
28 import java.util.HashSet;
29 import java.util.Hashtable;
30 import java.util.Iterator;
31 import java.util.List;
33 import java.util.Vector;
35 import javax.swing.JButton;
36 import javax.swing.JCheckBox;
37 import javax.swing.JComboBox;
38 import javax.swing.JDialog;
39 import javax.swing.JFrame;
40 import javax.swing.JLabel;
41 import javax.swing.JList;
42 import javax.swing.JOptionPane;
43 import javax.swing.JPanel;
44 import javax.swing.JScrollPane;
45 import javax.swing.JSlider;
46 import javax.swing.JTable;
47 import javax.swing.JTextArea;
48 import javax.swing.JTextField;
49 import javax.swing.ListSelectionModel;
50 import javax.swing.SwingConstants;
51 import javax.swing.SwingUtilities;
52 import javax.swing.border.TitledBorder;
53 import javax.swing.event.CellEditorListener;
54 import javax.swing.event.ChangeEvent;
55 import javax.swing.event.ChangeListener;
56 import javax.swing.table.*;
58 import compbio.metadata.Argument;
59 import compbio.metadata.Option;
60 import compbio.metadata.Parameter;
61 import compbio.metadata.Preset;
62 import compbio.metadata.PresetManager;
63 import compbio.metadata.RunnerConfig;
64 import compbio.metadata.ValueConstrain;
65 import compbio.metadata.WrongParameterException;
66 import compbio.metadata.ValueConstrain.Type;
68 import jalview.ws.jws2.Jws2Discoverer;
69 import jalview.ws.jws2.Jws2Discoverer.Jws2Instance;
71 public class WsJobParameters extends JPanel implements ItemListener,
74 private static final int PARAM_WIDTH = 340, PARAM_HEIGHT = 150,PARAM_CLOSEDHEIGHT=80;
76 private static final int OPTSET_HEIGHT = 30;
78 JPanel setDetails = new JPanel();
80 JPanel settingsPanel = new JPanel();
82 JPanel jobOptions = new JPanel();
84 JScrollPane jobOptionsPane = new JScrollPane();
86 JPanel jobParameters = new JPanel();
88 JPanel paramButtons = new JPanel();
90 JPanel paramPanel = new JPanel();
92 JLabel modified = new JLabel();
94 JButton startjob = new JButton();
96 JButton canceljob = new JButton();
98 JButton exportParams = new JButton();
100 JButton importParams = new JButton();
102 JButton resetParams = new JButton();
104 JButton addParam = new JButton();
106 JButton removeParam = new JButton();
108 JButton editParam = new JButton();
110 JComboBox setName = new JComboBox();
112 JTextArea setDescr = new JTextArea();
114 JScrollPane paramPane = new JScrollPane();
116 // JList paramList = new JList();
117 JPanel paramList = new JPanel();
119 RunnerConfig serviceOptions;
121 List<Parameter> availableParameters;
123 private BorderLayout jparamLayout;
125 WsJobParameters(Jws2Instance service)
130 public WsJobParameters(Jws2Instance service, Preset p)
132 this(null, service, p, null);
138 * - if null, create new JFrame outside of desktop
142 public WsJobParameters(JFrame parent, Jws2Instance service, Preset p,
143 List<Argument> jobArgset)
147 argSetModified(false);
148 // populate parameter table
149 initForService(service, p, jobArgset);
150 // display in new JFrame attached to parent.
156 JDialog frame = null;
158 public boolean showRunDialog()
161 frame = new JDialog(Desktop.instance, true);
163 frame.setTitle("Edit parameters for " + service.getActionText());
164 Rectangle deskr = Desktop.instance.getBounds();
165 frame.setBounds(new Rectangle((int) (deskr.getCenterX() - 240),
166 (int) (deskr.getCenterY() - 92), 380, 385));
167 frame.setContentPane(this);
169 frame.setVisible(true);
178 private void jbInit()
180 modified.setText("*");
181 modified.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
182 modified.setForeground(Color.red);
183 modified.setHorizontalAlignment(SwingConstants.RIGHT);
185 exportParams.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
186 exportParams.setText("Export");
187 exportParams.setToolTipText("Export parameters to a file");
188 exportParams.addActionListener(new ActionListener()
190 public void actionPerformed(ActionEvent e)
192 exportParams_actionPerformed(e);
195 importParams.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
196 importParams.setText("Import");
197 importParams.setToolTipText("Import parameters from a file");
198 importParams.addActionListener(new ActionListener()
200 public void actionPerformed(ActionEvent e)
202 importParams_actionPerformed(e);
205 resetParams.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
206 resetParams.setText("Defaults");
207 resetParams.setToolTipText("Reset to defaults");
208 resetParams.addActionListener(new ActionListener()
210 public void actionPerformed(ActionEvent e)
212 resetParams_actionPerformed(e);
215 addParam.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
216 addParam.setText("Add");
217 addParam.setToolTipText("Add new parameter");
218 addParam.addActionListener(new ActionListener()
220 public void actionPerformed(ActionEvent e)
222 addParam_actionPerformed(e);
225 removeParam.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
226 removeParam.setText("Remove");
227 removeParam.setToolTipText("Remove selected parameter");
228 removeParam.addActionListener(new ActionListener()
230 public void actionPerformed(ActionEvent e)
232 removeParam_actionPerformed(e);
235 editParam.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
236 editParam.setText("Edit");
237 editParam.setToolTipText("Edit selected parameter");
238 editParam.addActionListener(new ActionListener()
240 public void actionPerformed(ActionEvent e)
242 editParam_actionPerformed(e);
245 startjob.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
246 startjob.setText("Start");
247 startjob.setToolTipText("Start Job");
248 startjob.addActionListener(new ActionListener()
250 public void actionPerformed(ActionEvent e)
252 startjob_actionPerformed(e);
255 canceljob.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
256 canceljob.setText("Cancel");
257 canceljob.setToolTipText("Cancel Job");
258 canceljob.addActionListener(new ActionListener()
260 public void actionPerformed(ActionEvent e)
262 canceljob_actionPerformed(e);
266 setDetails.setBorder(new TitledBorder("Details"));
267 setDetails.setLayout(new BorderLayout());
268 setDescr.setColumns(40);
269 setDescr.setWrapStyleWord(true);
270 setDescr.setLineWrap(true);
271 setDescr.setBackground(getBackground());
272 setDescr.setEditable(false);
273 JScrollPane setDescrView = new JScrollPane();
274 // setDescrView.setPreferredSize(new Dimension(350, 200));
275 setDescrView.getViewport().setView(setDescr);
276 setName.setEditable(true);
277 setName.addItemListener(this);
278 setName.getEditor().addActionListener(this);
279 modified.setPreferredSize(new Dimension(15, 15));
280 JPanel SetNamePanel = new JPanel();
281 SetNamePanel.setLayout(new BorderLayout());
282 SetNamePanel.add(setName, BorderLayout.WEST);
283 SetNamePanel.add(modified, BorderLayout.EAST);
284 setDetails.add(SetNamePanel, BorderLayout.NORTH);
285 setDetails.add(setDescrView, BorderLayout.CENTER);
286 // setDetails.setPreferredSize(new Dimension(360, 100));
287 jobParameters.setBorder(new TitledBorder("Parameters"));
288 jobParameters.setLayout(jparamLayout = new BorderLayout());
289 paramPane.setPreferredSize(new Dimension(360, 300));
290 paramPane.getVerticalScrollBar().setUnitIncrement(20);
291 // paramPanel.setPreferredSize(new Dimension(360, 300));
292 paramButtons.setLayout(new GridLayout(2, 3));
293 paramButtons.add(addParam);
294 paramButtons.add(editParam);
295 paramButtons.add(removeParam);
296 // TODO: relayout buttons nicely
297 paramButtons.add(exportParams);
298 paramButtons.add(importParams);
299 paramButtons.add(resetParams);
300 paramPane.getViewport().setView(paramList);
301 jobParameters.add(paramPane, BorderLayout.NORTH);
302 // jobParameters.add(paramButtons, BorderLayout.SOUTH);
303 settingsPanel.setLayout(new BorderLayout());
304 // settingsPanel.add(modified, BorderLayout.NORTH);
305 JPanel jobOptionsPanel = new JPanel();
306 jobOptionsPanel.setBorder(new TitledBorder("Options"));
307 jobOptionsPane.getViewport().setView(jobOptions);
308 jobOptionsPanel.add(jobOptionsPane);
309 settingsPanel.add(jobOptionsPanel, BorderLayout.NORTH);
310 settingsPanel.add(jobParameters, BorderLayout.SOUTH);
312 setLayout(new BorderLayout());
313 // setPreferredSize(new Dimension(400, 600));
314 // setSize(new Dimension(400, 600));
315 add(setDetails, BorderLayout.NORTH);
316 add(settingsPanel, BorderLayout.CENTER);
317 JPanel dialogpanel = new JPanel();
318 dialogpanel.add(startjob);
319 dialogpanel.add(canceljob);
320 add(dialogpanel, BorderLayout.SOUTH);
323 protected void canceljob_actionPerformed(ActionEvent e)
328 frame.setVisible(false);
332 protected void startjob_actionPerformed(ActionEvent e)
337 frame.setVisible(false);
341 protected void editParam_actionPerformed(ActionEvent e)
343 // TODO Auto-generated method stub
347 protected void removeParam_actionPerformed(ActionEvent e)
349 // TODO Auto-generated method stub
353 protected void addParam_actionPerformed(ActionEvent e)
355 // TODO Auto-generated method stub
359 protected void resetParams_actionPerformed(ActionEvent e)
361 // TODO Auto-generated method stub
365 protected void importParams_actionPerformed(ActionEvent e)
367 // TODO Auto-generated method stub
371 protected void exportParams_actionPerformed(ActionEvent e)
373 // TODO Auto-generated method stub
377 Jws2Instance service;
379 void initForService(Jws2Instance service, Preset p,
380 List<Argument> jobArgset)
382 this.service = service;
383 serviceOptions = service.getRunnerConfig();
384 // add any presets not already added.
385 String curname = (p == null ? "" : p.getName());
386 PresetManager prman = service.getPresets();
389 List prList = service.getPresets().getPresets();
392 for (Object pr : prList)
394 if (p == null || !curname.equals(((Preset) pr).getName()))
396 setName.addItem(((Preset) pr).getName());
401 updateTable(p, jobArgset);
404 @SuppressWarnings("unchecked")
405 private void updateTable(Preset p, List<Argument> jobArgset)
407 availableParameters = new ArrayList<Parameter>();
408 List<Parameter> setargs = new ArrayList<Parameter>();
409 // populate table from default parameter set.
410 List<Argument> args = serviceOptions.getArguments();
412 // split to params and required arguments
414 for (Argument arg : args)
416 Argument myarg = (Argument) arg;
417 // Ideally, Argument would implement isRequired !
418 if (myarg instanceof Parameter)
420 Parameter parm = (Parameter) myarg;
421 if (true) // parm.isRequired())
427 availableParameters.add(parm);
432 if (myarg instanceof Option)
434 Option opt = (Option) myarg;
436 if (opt.isRequired())
438 selectOption(opt, opt.getDefaultValue());
443 System.err.println("Ignoring unknown service argument type "
444 + arg.getClass().getName());
448 args = null; // no more args to process.
452 if (lastParmSet == null)
454 // initialise setname
455 setName.addItem(p.getName());
457 setDescr.setText(p.getDescription());
461 args = p.getArguments(serviceOptions);
462 } catch (Exception e)
466 // TODO: check if args should be unselected prior to resetting using the
472 if (lastParmSet == null)
474 // first call - so create a dummy name
475 setName.addItem("Defaults *");
478 if (jobArgset != null)
480 argSetModified(true);
483 // get setargs from current object
486 for (Argument arg : args)
488 if (arg instanceof Parameter)
490 setargs.add((Parameter) arg);
494 if (arg instanceof Option)
496 selectOption((Option) arg, arg.getDefaultValue());
503 // mdl.setData(setargs);
504 // jobOptions.setLayout(new GridLayout(optSet.size() / 2 + 1, 2));
505 jobOptions.setPreferredSize(new Dimension(PARAM_WIDTH, optSet.size()
507 jobOptions.setLayout(new GridLayout(optSet.size(), 1));
508 refreshParamLayout();
509 // paramPanel.setLayout(new GridLayout(paramSet.size(), 1));
511 // paramPane.getViewport().validate();
512 paramPane.validate();
516 private boolean isModified()
518 return modified.isVisible();
521 private void argSetModified(boolean b)
523 modified.setVisible(b);
525 * String setn = (String)setName.getSelectedItem(); if (setn==null) return;
526 * int p = setName.getSelectedIndex(); if (b) { if (setn.length()<2 ||
527 * setn.lastIndexOf(" *")!=setn.length()-2) { setn = setn+" *"; } } else {
528 * if (setn.lastIndexOf(" *")==setn.length()-2) { setn =
529 * setn.substring(0,setn.length()-2); } } // edit the list
531 * Object[] objects = new Object[setName.getItemCount()]; for (int
532 * i=0;i<objects.length; i++) { objects[i] = setName.getItemAt(i); }
533 * objects[p] = setn; setName.removeAllItems(); for (int
534 * i=0;i<objects.length; i++) { setName.addItem(objects[i]); }
535 * setName.setSelectedIndex(p);
540 private void addParameter(Parameter parm)
542 ParamBox pb = paramSet.get(parm.getName());
545 pb = new ParamBox(this, parm);
546 paramSet.put(parm.getName(), pb);
551 private void selectOption(Option opt, String string)
553 OptionBox cb = optSet.get(opt.getName());
560 // no value specified.
561 if (opt.isRequired())
563 // indicate option needs to be selected!
567 cb.enabled.setSelected(false);
572 cb.enabled.setSelected(true);
574 if (opt.getPossibleValues().contains(string))
576 cb.val.setSelectedItem(string);
580 throw new Error("Invalid value " + string + " for option " + opt);
586 Map<String, ParamBox> paramSet = new Hashtable<String, ParamBox>();
588 public class ParamBox extends JPanel implements ChangeListener,
591 JCheckBox showDesc = new JCheckBox();
593 JTextArea string = new JTextArea();
594 JScrollPane descPanel = new JScrollPane();
596 JSlider slider = null;
598 JTextField valueField = null;
600 ValueConstrain validator = null;
601 JPanel settingPanel = new JPanel();
602 boolean integ = false;
604 boolean choice = false;
606 public ParamBox(final WsJobParameters pmlayout, Parameter parm)
608 setLayout(new FlowLayout(FlowLayout.LEFT));
609 setBorder(new TitledBorder(parm.getName()));
610 setPreferredSize(new Dimension(PARAM_WIDTH, PARAM_CLOSEDHEIGHT));
611 string.setFont(new Font("Verdana", Font.PLAIN, 11));
612 string.setBackground(getBackground());
613 // string.setSize(new Dimension(PARAM_WIDTH, 80));
614 string.setEditable(false);
615 showDesc.setText("Show Description");
616 showDesc.setSelected(false);
617 showDesc.setToolTipText(parm.getDescription());
618 //showDesc.setLocation(2,2);
619 descPanel.setPreferredSize(new Dimension(PARAM_WIDTH-20, 90));
620 descPanel.getViewport().setView(string);
621 //descPanel.setLocation(2,17);
622 descPanel.setVisible(false);
623 // string.setMinimumSize(new Dimension(140,80));
624 // string.setMaximumSize(new Dimension(280,80));
625 final ParamBox me=this;
626 showDesc.addActionListener(new ActionListener() {
629 public void actionPerformed(ActionEvent e)
631 boolean show = showDesc.isSelected();
632 descPanel.setVisible(show);
633 me.setPreferredSize(new Dimension(PARAM_WIDTH, (show) ? PARAM_HEIGHT : PARAM_CLOSEDHEIGHT));
635 pmlayout.refreshParamLayout();
638 string.setWrapStyleWord(true);
639 string.setLineWrap(true);
640 string.setColumns(32);
641 string.setText(parm.getDescription());
642 // name.setToolTipText(parm.getDescription());
644 validator = parm.getValidValue();
646 if (validator != null)
648 integ = validator.getType() == Type.Integer;
652 if (parameter.getPossibleValues() != null)
657 updateControls(parm);
658 add(descPanel); // , BorderLayout.NORTH);
663 boolean adjusting = false;
668 public int getBoxHeight()
670 return (showDesc.isSelected() ? PARAM_HEIGHT : PARAM_CLOSEDHEIGHT);
672 public void updateControls(Parameter parm)
675 boolean init = valueField == null;
682 choicebox = new JComboBox();
683 choicebox.addActionListener(this);
688 slider = new JSlider();
689 slider.addChangeListener(this);
690 valueField = new JTextField();
691 valueField.addActionListener(this);
692 valueField.setPreferredSize(new Dimension(80, 25));
693 JPanel container = new JPanel();
694 // container.setLayout(new FlowLayout());
695 add(slider);// , BorderLayout.SOUTH);
696 add(valueField);// ,BorderLayout.CENTER);
697 // add(container, BorderLayout.EAST);
698 // container.validate();
707 List vals = parm.getPossibleValues();
708 for (Object val : vals)
710 choicebox.addItem(val);
712 if (parm.getDefaultValue() != null)
714 choicebox.setSelectedItem(parm.getDefaultValue());
719 valueField.setText(parm.getDefaultValue());
722 updateSliderFromValueField();
726 public Parameter getParameter()
732 parameter.setDefaultValue((String) choicebox.getSelectedItem());
736 parameter.setDefaultValue(valueField.getText());
738 } catch (WrongParameterException e)
746 public Object updateSliderFromValueField()
750 if (validator != null)
757 valueField.setText(valueField.getText().trim());
758 iVal = Integer.valueOf(valueField.getText());
759 } catch (Exception e)
763 if (validator.getMin() != null && validator.getMax() != null)
765 slider.getModel().setRangeProperties(iVal, 1,
766 validator.getMin().intValue(),
767 validator.getMax().intValue(), true);
771 slider.setVisible(false);
781 fVal = Float.valueOf(valueField.getText());
782 } catch (Exception e)
786 if (validator.getMin() != null && validator.getMax() != null)
788 slider.getModel().setRangeProperties((int) fVal * 1000, 1,
789 (int) validator.getMin().floatValue() * 1000,
790 (int) validator.getMax().floatValue() * 1000, true);
794 slider.setVisible(false);
804 slider.setVisible(false);
806 { valueField.getText().trim() };
811 { (String) choicebox.getSelectedItem() };
818 public void stateChanged(ChangeEvent e)
822 valueField.setText(""
823 + ((integ) ? ("" + (int) slider.getValue())
824 : ("" + (float) (slider.getValue() / 1000f))));
829 public void actionPerformed(ActionEvent e)
836 updateSliderFromValueField();
838 argSetModified(true);
843 Map<String, OptionBox> optSet = new Hashtable<String, OptionBox>();
845 public class OptionBox extends JPanel implements ActionListener
847 JComboBox val = new JComboBox();
849 JCheckBox enabled = new JCheckBox();
853 public OptionBox(Option opt)
856 setLayout(new BorderLayout());
857 enabled.setSelected(opt.isRequired());
858 enabled.setFont(new Font("Verdana", Font.PLAIN, 11));
859 enabled.setText(opt.getName());
860 enabled.setToolTipText(opt.getDescription());
861 add(enabled, BorderLayout.NORTH);
862 if (opt.getPossibleValues().size() > 1)
864 setLayout(new GridLayout(1, 2));
865 for (Object str : opt.getPossibleValues())
867 val.addItem((String) str);
869 val.setSelectedItem((String) opt.getDefaultValue());
870 val.addActionListener(this);
871 add(val, BorderLayout.SOUTH);
873 // TODO: add actionListeners for popup (to open further info),
874 // and to update list of parameters if an option is enabled
875 // that takes a value.
878 public Option getOptionIfEnabled()
880 if (!enabled.isSelected())
886 if (val.getSelectedItem() != null)
888 option.setDefaultValue((String) val.getSelectedItem());
890 } catch (WrongParameterException e)
899 public void actionPerformed(ActionEvent e)
901 argSetModified(true);
902 enabled.setSelected(true);
906 private OptionBox addOption(Option opt)
908 OptionBox cb = optSet.get(opt.getName());
911 cb = new OptionBox(opt);
912 optSet.put(opt.getName(), cb);
918 protected void refreshParamLayout()
921 for (ParamBox pbox : paramSet.values()){
922 s+=pbox.getBoxHeight();
924 paramList.setPreferredSize(new Dimension(PARAM_WIDTH, s));
925 paramList.setLayout(new FlowLayout());
930 * testing method - grab a service and parameter set and show the window
934 public static void main(String[] args)
936 jalview.ws.jws2.Jws2Discoverer disc = jalview.ws.jws2.Jws2Discoverer
941 Vector<String> services = new Vector<String>();
942 services.addElement(args[p++]);
943 Jws2Discoverer.setServiceUrls(services);
948 } catch (Exception e)
950 System.err.println("Aborting. Problem discovering services.");
954 Jws2Discoverer.Jws2Instance lastserv = null;
955 for (Jws2Discoverer.Jws2Instance service : disc.getServices())
958 if (p < args.length && service.serviceType.equalsIgnoreCase(args[p]))
963 if (lastserv != null)
965 List<Preset> prl = null;
967 if (++p < args.length)
969 PresetManager prman = lastserv.getPresets();
972 pr = prman.getPresetByName(args[p]);
975 // just grab the last preset.
976 prl = prman.getPresets();
980 Iterator<Preset> en = (prl == null) ? null : prl.iterator();
991 WsJobParameters pgui = new WsJobParameters(lastserv, pr);
992 JFrame jf = new JFrame("Parameters for " + lastserv.getActionText());
993 JPanel cont = new JPanel();
994 jf.setPreferredSize(new Dimension(600, 800));
997 final Thread thr = Thread.currentThread();
998 jf.addWindowListener(new WindowListener()
1002 public void windowActivated(WindowEvent e)
1004 // TODO Auto-generated method stub
1009 public void windowClosed(WindowEvent e)
1014 public void windowClosing(WindowEvent e)
1021 public void windowDeactivated(WindowEvent e)
1023 // TODO Auto-generated method stub
1028 public void windowDeiconified(WindowEvent e)
1030 // TODO Auto-generated method stub
1035 public void windowIconified(WindowEvent e)
1037 // TODO Auto-generated method stub
1042 public void windowOpened(WindowEvent e)
1044 // TODO Auto-generated method stub
1049 jf.setVisible(true);
1050 boolean inter = false;
1055 Thread.sleep(10000);
1056 } catch (Exception e)
1067 public List<Argument> getJobParams()
1069 List<Argument> argSet = new ArrayList<Argument>();
1070 // recover options and parameters from GUI
1071 for (OptionBox opts : optSet.values())
1073 Option opt = opts.getOptionIfEnabled();
1079 for (ParamBox parambox : paramSet.values())
1081 Parameter parm = parambox.getParameter();
1091 String lastParmSet = null;
1093 Hashtable<String, Object[]> editedParams = new Hashtable<String, Object[]>();
1096 public void itemStateChanged(ItemEvent e)
1098 if (e.getSource() == setName)
1100 String setname = (String) setName.getSelectedItem();
1101 if (setname == null)
1105 // if modified - warn user - or at least save current edited set.
1106 if (lastParmSet != null)
1108 // save current state
1110 editedParams.put(lastParmSet, pset = new Object[3]);
1111 pset[0] = lastParmSet;
1112 pset[1] = setDescr.getText();
1113 pset[2] = getJobParams();
1115 Object[] pset = editedParams.get(setname);
1118 setDescr.setText((String) pset[1]);
1119 updateTable(null, (List<Argument>) pset[2]);
1120 lastParmSet = setname;
1125 // must be a default preset from service
1129 p = service.getPresets().getPresetByName(setname);
1130 } catch (Exception ex)
1132 ex.printStackTrace();
1136 updateTable(p, null);
1138 lastParmSet = setname;
1146 public void actionPerformed(ActionEvent e)
1148 if (e.getSource() == setName)
1150 // rename any existing records we know about for this set.
1151 String newname = (String) setName.getSelectedItem();
1152 System.err.println("Command " + newname + " : "
1153 + e.getActionCommand());