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();
}
}
沒有留言:
張貼留言