}
}
add(enabled, BorderLayout.NORTH);
+ for (Object str : opt.getPossibleValues())
+ {
+ val.addItem((String) str);
+ }
+ val.setSelectedItem((String) opt.getValue());
if (opt.getPossibleValues().size() > 1)
{
setLayout(new GridLayout(1, 2));
- for (Object str : opt.getPossibleValues())
- {
- val.addItem((String) str);
- }
- val.setSelectedItem((String) opt.getValue());
val.addActionListener(this);
add(val, BorderLayout.SOUTH);
}
}
else
{
- notmod &= initVal == null;
+ notmod &= (initVal!=null) ? initVal.equals(val.getSelectedItem()) : val.getSelectedItem()!=initVal;
}
poparent.argSetModified(this, !notmod);
}
return null;
}
OptionI opt = option.copy();
-
+ if (opt.getPossibleValues()!=null && opt.getPossibleValues().size()==1)
+ {
+ // Hack to make sure the default value for an enabled option with only one value is actually returned
+ opt.setValue(opt.getPossibleValues().get(0));
+ }
if (val.getSelectedItem() != null)
{
opt.setValue((String) val.getSelectedItem());
+ } else {
+ if (option.getValue()!=null)
+ {
+ opt.setValue(option.getValue());
+ }
}
return opt;
}
}
else
{
- initVal = (initEnabled) ? option.getValue() : null;
+ initVal = (initEnabled) ? (String)val.getSelectedItem() : null;
}
}