2010年6月14日

Eclipse Preference Pages with Field Editors

Simplifying Preference Pages with Field Editors
JFace preferences and field editors
//-- Main.java --
import java.io.IOException;

import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.ColorFieldEditor;
import org.eclipse.jface.preference.DirectoryFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.FileFieldEditor;
import org.eclipse.jface.preference.FontFieldEditor;
import org.eclipse.jface.preference.PathEditor;
import org.eclipse.jface.preference.PreferenceDialog;
import org.eclipse.jface.preference.PreferenceManager;
import org.eclipse.jface.preference.PreferenceNode;
import org.eclipse.jface.preference.PreferenceStore;
import org.eclipse.jface.preference.RadioGroupFieldEditor;
import org.eclipse.jface.window.Window;

public class Main extends FieldEditorPreferencePage {

@Override
protected void createFieldEditors() {

BooleanFieldEditor bfe = new BooleanFieldEditor("Boolean", "Boolean",
getFieldEditorParent());
addField(bfe);

String[][] labelAndValues = new String[][] {
{ "First Value", "first" }, { "Second Value", "second" } };
RadioGroupFieldEditor rfe = new RadioGroupFieldEditor("RadioGroup",
"Radio Group:", 2, labelAndValues, getFieldEditorParent(), true);
addField(rfe);

ColorFieldEditor cfe = new ColorFieldEditor("Color", "Color:",
getFieldEditorParent());
addField(cfe);

FontFieldEditor fontFe = new FontFieldEditor("Font", "Font:",
getFieldEditorParent());
addField(fontFe);

DirectoryFieldEditor dfe = new DirectoryFieldEditor("Directory",
"Directory:", getFieldEditorParent());
addField(dfe);

FileFieldEditor ffe = new FileFieldEditor("File", "File:",
getFieldEditorParent());
addField(ffe);

PathEditor pe = new PathEditor("Path", "Path:", "Choose a Path",
getFieldEditorParent());
addField(pe);
}

public static void main(String[] args) throws IOException {
PreferenceManager mgr = new PreferenceManager();

PreferenceStore ps = new PreferenceStore("Main.properties");

PreferenceNode one = new PreferenceNode("one", "One", null, Main.class
.getName());

mgr.addToRoot(one);

PreferenceDialog dlg = new PreferenceDialog(null, mgr);

try {
ps.load();
} catch (IOException e) {

}
dlg.setPreferenceStore(ps);
if (dlg.open() == Window.OK) {
ps.save();
}

}

}

沒有留言:

網誌存檔