Mercurial > projects > dwt-samples
diff jface/ShowFieldPrefs.d @ 62:caaf053c44d6
more examples
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Fri, 11 Apr 2008 17:08:20 +0200 |
parents | |
children | 5c1906bfc206 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jface/ShowFieldPrefs.d Fri Apr 11 17:08:20 2008 +0200 @@ -0,0 +1,202 @@ +module jface.PreferenceDlgTest; + +import dwtx.jface.preference.BooleanFieldEditor; +import dwtx.jface.preference.ColorFieldEditor; +import dwtx.jface.preference.DirectoryFieldEditor; +import dwtx.jface.preference.FileFieldEditor; +import dwtx.jface.preference.FontFieldEditor; +import dwtx.jface.preference.FieldEditorPreferencePage; +import dwtx.jface.preference.RadioGroupFieldEditor; +import dwtx.jface.preference.PathEditor; +import dwtx.jface.preference.IntegerFieldEditor; +import dwtx.jface.preference.ScaleFieldEditor; +import dwtx.jface.preference.StringFieldEditor; +import dwtx.jface.preference.IPreferenceStore; +import dwtx.jface.preference.PreferenceManager; +import dwtx.jface.preference.PreferencePage; +import dwtx.jface.preference.PreferenceNode; +import dwtx.jface.preference.PreferenceStore; +import dwtx.jface.preference.PreferenceDialog; +import dwtx.jface.resource.ImageDescriptor; + +import dwt.widgets.Display; +import dwt.widgets.Composite; +import dwt.widgets.Label; +import dwt.widgets.Button; +import dwt.widgets.Text; +import dwt.widgets.Control; +import dwt.events.SelectionAdapter; +import dwt.events.SelectionEvent; +import dwt.layout.RowLayout; +import dwt.layout.GridLayout; +import dwt.layout.GridData; +import dwt.DWT; +import dwt.dwthelper.utils; + +import tango.io.File; +import tango.io.FilePath; + +version(JIVE) import jive.stacktrace; + +const char[] FILENAME = "showfieldprefs"; + +/** + * This class demonstrates field editors + */ +public class FieldEditorPageOne : FieldEditorPreferencePage { + public this() { + // Use the "flat" layout + super(FLAT); + } + + /** + * Creates the field editors + */ + protected void createFieldEditors() { + // Add a bool field + BooleanFieldEditor bfe = new BooleanFieldEditor("myBoolean", "Boolean", + getFieldEditorParent()); + addField(bfe); + + // Add a color field + ColorFieldEditor cfe = new ColorFieldEditor("myColor", "Color:", + getFieldEditorParent()); + addField(cfe); + + // Add a directory field + DirectoryFieldEditor dfe = new DirectoryFieldEditor("myDirectory", + "Directory:", getFieldEditorParent()); + addField(dfe); + + // Add a file field + FileFieldEditor ffe = new FileFieldEditor("myFile", "File:", + getFieldEditorParent()); + addField(ffe); + + // Add a font field + FontFieldEditor fontFe = new FontFieldEditor("myFont", "Font:", + getFieldEditorParent()); + addField(fontFe); + + // Add a radio group field + RadioGroupFieldEditor rfe = new RadioGroupFieldEditor("myRadioGroup", + "Radio Group", 2, [ [ "First Value", "first"], + [ "Second Value", "second"], [ "Third Value", "third"], + [ "Fourth Value", "fourth"]], getFieldEditorParent(), true); + addField(rfe); + + // Add a path field + PathEditor pe = new PathEditor("myPath", "Path:", "Choose a Path", + getFieldEditorParent()); + addField(pe); + } +} + + +/** + * This class demonstrates field editors + */ +public class FieldEditorPageTwo : FieldEditorPreferencePage { + public this() { + // Use the "grid" layout + super(GRID); + } + + /** + * Creates the field editors + */ + protected void createFieldEditors() { + // Add an integer field + IntegerFieldEditor ife = new IntegerFieldEditor("myInt", "Int:", + getFieldEditorParent()); + addField(ife); + + // Add a scale field + ScaleFieldEditor sfe = new ScaleFieldEditor("myScale", "Scale:", + getFieldEditorParent(), 0, 100, 1, 10); + addField(sfe); + + // Add a string field + StringFieldEditor stringFe = new StringFieldEditor("myString", "String:", + getFieldEditorParent()); + addField(stringFe); + } +} + + +/** + * This class demonstrates JFace preferences and field editors + */ +public class ShowFieldPrefs { + /** + * Runs the application + */ + public void run() { +// Display display = new Display(); + + // Create the preference manager + PreferenceManager mgr = new PreferenceManager(); + + // Create the nodes + PreferenceNode one = new PreferenceNode("one", "One", null, + FieldEditorPageOne.classinfo.name ); + PreferenceNode two = new PreferenceNode("two", "Two", null, + FieldEditorPageTwo.classinfo.name ); + + // Add the nodes + mgr.addToRoot(one); + mgr.addToRoot(two); + + // Create the preferences dialog + PreferenceDialog dlg = new PreferenceDialog(null, mgr); + + // Set the preference store + PreferenceStore ps = new PreferenceStore(FILENAME); + try { + ps.load(); + } catch (IOException e) { + // Ignore + } + dlg.setPreferenceStore(ps); + + // Open the dialog + dlg.open(); + + try { + // Save the preferences + ps.save(); + } catch (IOException e) { + ExceptionPrintStackTrace(e); + } +// display.dispose(); + } + + /** + * The application entry point + * + * @param args the command line arguments + */ + public static void main(String[] args) { + (new ShowFieldPrefs()).run(); + } +} + + +void main(){ + scope fn = new FilePath( FILENAME ); + if( !fn.exists ){ + scope prefs = new File( fn ); + version(linux){ + prefs.write( import("jface.showfieldprefs.properties.linux" )); + } + version(Windows){ + prefs.write( import("jface.showfieldprefs.properties.win" )); + } + } + ShowFieldPrefs.main( null ); +} + + + + +