package com.aptana.rdt.internal.ui.preferences; import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.jface.preference.FileFieldEditor; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.StringButtonFieldEditor; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import org.rubypeople.rdt.ui.EclipsePreferencesAdapter; import com.aptana.rdt.AptanaRDTPlugin; import com.aptana.rdt.ui.AptanaRDTUIPlugin; import com.aptana.rdt.ui.preferences.IPreferenceConstants; public class GemPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { private FileFieldEditor gemScriptEditor; private EclipsePreferencesAdapter store; public GemPreferencePage() { super(GRID); setPreferenceStore(AptanaRDTUIPlugin.getDefault().getPreferenceStore()); setDescription(""); } public void createFieldEditors() { gemScriptEditor = new FileFieldEditor(com.aptana.rdt.core.preferences.IPreferenceConstants.GEM_SCRIPT_PATH, "Path to gem bin script", true, StringButtonFieldEditor.VALIDATE_ON_KEY_STROKE, getFieldEditorParent()); addField(gemScriptEditor); addField(new BooleanFieldEditor(IPreferenceConstants.PROMPT_TO_AUTO_INSTALL_GEMS, "Prompt me to install or update recommended gems when necessary", getFieldEditorParent())); } @Override protected void initialize() { super.initialize(); store = new EclipsePreferencesAdapter(new InstanceScope(), AptanaRDTPlugin.PLUGIN_ID); gemScriptEditor.setPreferenceStore(store); gemScriptEditor.load(); } @Override public boolean performOk() { // TODO Auto-generated method stub boolean ret = super.performOk(); store.flush(); store = null; return ret; } public void init(IWorkbench workbench) { // do nothing } }