X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;ds=sidebyside;f=src%2Fbe%2Fnikiroo%2Futils%2Fui%2FConfigItemCombobox.java;fp=src%2Fbe%2Fnikiroo%2Futils%2Fui%2FConfigItemCombobox.java;h=b77e0a820596bea9356c69ab3d378e53afe878e8;hb=d46b7b96f94e88a776bcd2dfd756549ffb300cc9;hp=0000000000000000000000000000000000000000;hpb=c9994f27667bc421bcd448d39e55774fddf5c431;p=fanfix.git diff --git a/src/be/nikiroo/utils/ui/ConfigItemCombobox.java b/src/be/nikiroo/utils/ui/ConfigItemCombobox.java new file mode 100644 index 0000000..b77e0a8 --- /dev/null +++ b/src/be/nikiroo/utils/ui/ConfigItemCombobox.java @@ -0,0 +1,68 @@ +package be.nikiroo.utils.ui; + +import javax.swing.JComboBox; +import javax.swing.JComponent; + +import be.nikiroo.utils.resources.MetaInfo; + +class ConfigItemCombobox> extends ConfigItem { + private static final long serialVersionUID = 1L; + + private boolean editable; + private String[] allowedValues; + + /** + * Create a new {@link ConfigItemCombobox} for the given {@link MetaInfo}. + * + * @param info + * the {@link MetaInfo} + * @param editable + * allows the user to type in another value not in the list + */ + public ConfigItemCombobox(MetaInfo info, boolean editable) { + super(info, true); + this.editable = editable; + this.allowedValues = info.getAllowedValues(); + } + + @Override + protected Object getFromField(int item) { + // rawtypes for Java 1.6 (and 1.7 ?) support + @SuppressWarnings("rawtypes") + JComboBox field = (JComboBox) getField(item); + if (field != null) { + return field.getSelectedItem(); + } + + return null; + } + + @Override + protected Object getFromInfo(int item) { + return info.getString(item, false); + } + + @Override + protected void setToField(Object value, int item) { + // rawtypes for Java 1.6 (and 1.7 ?) support + @SuppressWarnings("rawtypes") + JComboBox field = (JComboBox) getField(item); + if (field != null) { + field.setSelectedItem(value); + } + } + + @Override + protected void setToInfo(Object value, int item) { + info.setString((String) value, item); + } + + // rawtypes for Java 1.6 (and 1.7 ?) support + @SuppressWarnings({ "unchecked", "rawtypes" }) + @Override + protected JComponent createEmptyField(int item) { + JComboBox field = new JComboBox(allowedValues); + field.setEditable(editable); + return field; + } +}