2010年6月14日

Eclipse FieldEditor

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

import org.eclipse.jface.preference.PreferenceStore;
import org.eclipse.jface.preference.RadioGroupFieldEditor;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class Main {

public static void main(String[] args) throws IOException {

PreferenceStore ps = new PreferenceStore("RadioGroupFieldEditor.properties");
try {
ps.load();
} catch (IOException e) {
}

Display display = new Display();
Shell shell = new Shell(display);
shell.setText("RadioGroup");
shell.setLayout(new FillLayout());

String[][] labelAndValues = new String[][] {
{ "Red", "1" },
{ "Green", "2" }
};
RadioGroupFieldEditor radioGroupEditor = new RadioGroupFieldEditor(
"color", "Radio Group", 2,
labelAndValues, shell, true);

IPropertyChangeListener listener = new IPropertyChangeListener() {

@Override
public void propertyChange(PropertyChangeEvent event) {
Object newValue = event.getNewValue();
if (event.getOldValue() != newValue) {
System.out.println(newValue);
}
}

};

radioGroupEditor.setPropertyChangeListener(listener);
radioGroupEditor.setPreferenceStore(ps);
radioGroupEditor.load();

shell.pack();
shell.open();

while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
radioGroupEditor.store();

display.dispose();

ps.save();
}
}

沒有留言:

網誌存檔