+
+ String lastParmSet = null;
+
+ Hashtable<String, Object[]> editedParams = new Hashtable<String, Object[]>();
+
+ @Override
+ public void itemStateChanged(ItemEvent e)
+ {
+ if (e.getSource() == setName)
+ {
+ String setname = (String) setName.getSelectedItem();
+ if (setname == null)
+ {
+ return;
+ }
+ // if modified - warn user - or at least save current edited set.
+ if (lastParmSet != null)
+ {
+ // save current state
+ Object[] pset;
+ editedParams.put(lastParmSet, pset = new Object[3]);
+ pset[0] = lastParmSet;
+ pset[1] = setDescr.getText();
+ pset[2] = getJobParams();
+ }
+ Object[] pset = editedParams.get(setname);
+ if (pset != null)
+ {
+ setDescr.setText((String) pset[1]);
+ updateTable(null, (List<Argument>) pset[2]);
+ lastParmSet = setname;
+ validate();
+ }
+ else
+ {
+ // must be a default preset from service
+ Preset p = null;
+ try
+ {
+ p = service.getPresets().getPresetByName(setname);
+ } catch (Exception ex)
+ {
+ ex.printStackTrace();
+ }
+ if (p != null)
+ {
+ updateTable(p, null);
+ validate();
+ lastParmSet = setname;
+ }
+ }
+
+ }
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ if (e.getSource() == setName)
+ {
+ // rename any existing records we know about for this set.
+ String newname = (String) setName.getSelectedItem();
+ System.err.println("Command " + newname + " : "
+ + e.getActionCommand());
+ }
+ }