package org.jenerate.internal.domain.preference.impl; import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.jface.preference.ComboFieldEditor; import org.eclipse.jface.preference.FieldEditor; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.swt.widgets.Composite; import org.jenerate.internal.domain.identifier.StrategyIdentifier; import org.jenerate.internal.domain.identifier.impl.MethodContentStrategyIdentifier; import org.jenerate.internal.domain.preference.PluginPreference; /** * Default implementation of the {@link PluginPreference} for StrategyIdentifier preferences * * @author maudrain */ public class StrategyIdentifierPluginPreference extends AbstractPluginPreference<StrategyIdentifier> { /** * Constructor * * @param key the key for this preference * @param description the description for this preference * @param defaultValue the default value of this preference */ public StrategyIdentifierPluginPreference(String key, String description, StrategyIdentifier defaultValue) { super(key, description, defaultValue); } @Override public StrategyIdentifier getCurrentPreferenceValue(IPreferenceStore preferenceStore) { return MethodContentStrategyIdentifier.valueOf(preferenceStore.getString(this.getKey())); } @Override public FieldEditor createFieldEditor(Composite parent) { MethodContentStrategyIdentifier[] values = MethodContentStrategyIdentifier.values(); String[][] comboValues = new String[values.length][2]; for (int i = 0; i < values.length; i++) { comboValues[i] = new String[] { values[i].name(), values[i].name() }; } return new ComboFieldEditor(this.getKey(), this.getDescription(), comboValues, parent); } @Override public void putDefaultValue(IEclipsePreferences preferences) { preferences.put(this.getKey(), this.getDefaultValue().getName()); } }