Changeset 171:0a21c7cabc16

Show
Ignore:
Timestamp:
10/26/08 09:07:11 (3 years ago)
Author:
Frank Benoit <benoit@tionex.de>
branch:
default
Message:

presentation windows

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • jface/ActionAndStatusbar.d

    r60 r171  
    2020import dwtx.jface.action.StatusLineManager; 
    2121import dwtx.jface.action.ToolBarManager; 
     22import dwtx.jface.action.Separator; 
    2223import dwtx.jface.resource.ImageDescriptor; 
    2324import dwtx.jface.window.ApplicationWindow; 
     
    2728import dwt.widgets.Control; 
    2829import dwt.widgets.Display; 
     30import dwt.widgets.Group; 
     31import dwt.widgets.Button; 
     32import dwt.widgets.Event; 
     33import dwt.widgets.Listener; 
     34import dwt.widgets.Text; 
     35import dwt.layout.GridData; 
     36import dwt.layout.GridLayout; 
    2937 
    3038import tango.text.convert.Format; 
     
    5967    protected Control createContents(Composite parent) { 
    6068        getShell().setText("Action/Contribution Example"); 
    61         parent.setSize(290, 150); 
    62         aci.fill(parent); 
    63         return parent; 
     69        //parent.setSize(290, 150); 
     70        //aci.fill(parent); 
     71        Composite comp = cast(Composite) super.createContents(parent); 
     72        comp.setLayout( new GridLayout()); 
     73        new Text( comp, DWT.BORDER ); 
     74        auto grp = new Group(comp, DWT.None); 
     75        grp.setLayoutData( new GridData( GridData.FILL_BOTH )); 
     76        //grp.setSize( 200, 200 ); 
     77        grp.setText("Action enable" ); 
     78        grp.setLayout(new GridLayout( 1, true )); 
     79        with( new Button( grp, DWT.RADIO )){ 
     80            setText( "On" ); 
     81            addListener( DWT.Selection, dgListener( &doEnable, true )); 
     82        } 
     83        with( new Button( grp, DWT.RADIO )){ 
     84            setText( "Off" ); 
     85            addListener( DWT.Selection, dgListener( &doEnable, false )); 
     86        } 
     87        return comp; 
     88    } 
     89    void doEnable( Event e, bool state ){ 
     90        status_action.setEnabled( state ); 
    6491    } 
    6592 
    6693    protected MenuManager createMenuManager() { 
    6794        MenuManager main_menu = new MenuManager(null); 
     95        MenuManager file_menu = new MenuManager("File"); 
    6896        MenuManager action_menu = new MenuManager("Menu"); 
     97        main_menu.add(file_menu); 
    6998        main_menu.add(action_menu); 
    7099        action_menu.add(status_action); 
     100        file_menu.add(status_action); 
    71101        return main_menu; 
    72102    } 
     
    74104    protected ToolBarManager createToolBarManager(int style) { 
    75105        ToolBarManager tool_bar_manager = new ToolBarManager(style); 
     106        tool_bar_manager.add(status_action); 
     107        tool_bar_manager.add(new Separator()); 
    76108        tool_bar_manager.add(status_action); 
    77109        return tool_bar_manager; 
  • jface/user/PopUp.d

    r162 r171  
    11module user.PopUp; 
    22import tango.util.log.Trace; 
     3import tango.io.FileConduit; 
     4import tango.io.Stdout; 
     5import tango.core.Thread; 
    36 
    47import dwt.dwthelper.utils; 
     8import dwt.dwthelper.FileOutputStream; 
    59import dwt.DWT; 
    610 
     
    2226import dwt.widgets.Label; 
    2327 
     28import dwtx.core.runtime.IProgressMonitor; 
     29import dwtx.jface.operation.IRunnableWithProgress; 
     30import dwtx.jface.preference.PreferenceStore; 
    2431import dwtx.jface.dialogs.PopupDialog; 
    2532import dwtx.jface.dialogs.ErrorDialog; 
     
    3239import dwtx.jface.dialogs.DialogTray; 
    3340import dwtx.jface.dialogs.IInputValidator; 
     41import dwtx.jface.dialogs.DialogSettings; 
     42import dwtx.jface.dialogs.IDialogSettings; 
     43import dwtx.jface.dialogs.StatusDialog; 
     44 
     45import dwtx.jface.wizard.Wizard; 
     46import dwtx.jface.wizard.WizardPage; 
     47import dwtx.jface.wizard.WizardSelectionPage; 
     48import dwtx.jface.wizard.WizardDialog; 
    3449 
    3550import dwtx.jface.window.ApplicationWindow; 
     
    5873        } 
    5974        with( new Button( comp, DWT.PUSH )){ 
     75            addListener( DWT.Selection, dgListener( & doMessageDlg )); 
     76            setText( "Message DLG" ); 
     77        } 
     78        with( new Button( comp, DWT.PUSH )){ 
    6079            addListener( DWT.Selection, dgListener( & doErrorDlg )); 
    6180            setText( "Error DLG" ); 
     
    7291            addListener( DWT.Selection, dgListener( & doTitleAreaDialog )); 
    7392            setText( "TitleAreaDialog" ); 
     93        } 
     94        with( new Button( comp, DWT.PUSH )){ 
     95            addListener( DWT.Selection, dgListener( & doWizard )); 
     96            setText( "Wizard" ); 
     97        } 
     98        with( new Button( comp, DWT.PUSH )){ 
     99            addListener( DWT.Selection, dgListener( & doStatusDialog )); 
     100            setText( "StatusDialog" ); 
    74101        } 
    75102        return comp; 
     
    88115        pu.open(); 
    89116    } 
     117    void doMessageDlg( Event e ){ 
     118    } 
    90119    void doErrorDlg( Event e ){ 
    91         auto status = new MultiStatus( "plugin-ID", 0, "MultiStatus message", null ); 
    92         status.add( new Status( Status.ERROR, "plugin-ID", "Status message 'error'"/+, new RuntimeException("bla")+/ ) ); 
    93         status.add( new Status( Status.WARNING, "plugin-ID", "Status message 'warning'" ) ); 
     120        auto status = new MultiStatus( "plugin-ID", 0, "Message text of the MultiStatus", null ); 
     121        status.add( new Status( Status.ERROR, "plugin-ID", "message of an example 'error' status"/+, new RuntimeException("bla")+/ ) ); 
     122        status.add( new Status( Status.WARNING, "plugin-ID", "message of an example 'warning' status" ) ); 
    94123        auto dlg = new ErrorDialog( 
    95124            getShell(), 
    96             "Title", 
     125            "ErrorDialog", 
    97126            "Dialog message", 
    98127            status, 
     
    101130    } 
    102131    void doMessageDialogWithToggleDlg( Event e ){ 
     132        auto ps = new PreferenceStore( "ps.txt" ); 
     133        auto dlg = MessageDialogWithToggle.openYesNoCancelQuestion( 
     134                getShell(), 
     135                "MessageDialogWithToggle", 
     136                "MessageDialogWithToggle with additional toggle message. " 
     137                "A preference can be controlled by this that is set to 'always' if check and 'YES' or is set to 'never' if check and NO is selected. ", 
     138                "Toggle message (e.g. Remember my decision)", 
     139                false, 
     140                ps, 
     141                "key" ); 
     142        ps.save(); 
     143        Stdout.formatln("list:" ); 
     144        ps.list(Stdout); 
     145/+ 
    103146        auto dlg = new MessageDialogWithToggle( 
    104147            getShell(), 
     
    112155            true); 
    113156        dlg.open(); 
     157+/ 
     158    } 
     159    void doStatusDialog( Event e ){ 
     160        auto dlg = new MyStatusDialog( getShell() ); 
     161        dlg.setTitle( "StatusDialog" ); 
     162        dlg.open(); 
    114163    } 
    115164    void doInputDlg( Event e ){ 
    116165        auto dlg = new InputDialog( 
    117166            getShell(), 
    118             "Title", 
     167            "InputDialog", 
    119168            "Enter a positive number", 
    120169            "42", 
     
    126175                    } 
    127176                    catch( Exception e ){ 
    128                         return "Not a valid number"; 
     177                        return "\"" ~ newText ~ "\" is not a valid number"; 
    129178                    } 
    130179                } 
     
    133182    } 
    134183 
     184    DialogSettings dlgsettings; 
    135185    void doTitleAreaDialog( Event e ){ 
     186        if( dlgsettings is null ){ 
     187            dlgsettings = new DialogSettings("TitleAreaDialog"); 
     188 
     189            try{ 
     190                dlgsettings.load( "dlgsettings.txt" ); 
     191            } 
     192            catch( IOException e ){ 
     193 
     194            } 
     195        } 
    136196        auto dlg = new MyTitleAreaDialog( 
    137             getShell()); 
    138         dlg.open(); 
    139     } 
    140  
     197            getShell(), dlgsettings ); 
     198        dlg.open(); 
     199        dlgsettings.save( "dlgsettings.txt" ); 
     200    } 
     201 
     202    void doWizard( Event e ){ 
     203        auto myWizard = new MyWizard(); 
     204        auto w = new WizardDialog( getShell(), myWizard ); 
     205        w.open(); 
     206    } 
    141207} 
    142  
     208    class MyStatusDialog : StatusDialog { 
     209        this( Shell parent ) { 
     210            super(parent ); 
     211        } 
     212        override void create(){ 
     213            super.create(); 
     214            updateStatus( new Status( IStatus.ERROR, "id", "the error message" ) ); 
     215        } 
     216    } 
    143217    class MyTitleAreaDialog : TitleAreaDialog { 
    144         this( Shell shell ){ 
     218        IDialogSettings settings; 
     219        this( Shell shell, IDialogSettings settings ){ 
     220            this.settings = settings; 
    145221            super(shell); 
    146222        } 
     
    149225            newShell.setText( "Application Name" ); 
    150226        } 
     227        protected override IDialogSettings getDialogBoundsSettings(){ 
     228            return settings; 
     229        } 
    151230        protected override bool isResizable(){ 
    152231            return true; 
    153232        } 
     233        protected override int getDialogBoundsStrategy(){ 
     234            //return DIALOG_PERSISTLOCATION; 
     235            //return DIALOG_PERSISTSIZE; 
     236            return DIALOG_PERSISTLOCATION | DIALOG_PERSISTSIZE; 
     237            //return 0; 
     238        } 
    154239        protected override Control createContents(Composite parent) { 
    155240            auto comp = cast(Composite) super.createContents(parent); 
    156             openTray( new MyTray() ); 
     241            //openTray( new MyTray() ); 
    157242            setTitle( "Title" ); 
    158243            setMessage( "A custom message", IMessageProvider.INFORMATION ); 
     
    161246        protected override Control createDialogArea(Composite parent){ 
    162247            auto comp = cast(Composite) super.createDialogArea(parent); 
    163             //comp.setLayout( new FillLayout()); 
    164248            auto lbl = new Label( comp, DWT.None ); 
    165249            lbl.setText( "Dialog Area" ); 
     
    168252            gd.horizontalIndent = 5; 
    169253            lbl.setLayoutData( gd ); 
    170             return comp; 
     254 
     255            Group grp = new Group( comp, DWT.NONE ); 
     256            grp.setLayoutData( new GridData( GridData.FILL, GridData.FILL, true, false )); 
     257            grp.setLayout( new GridLayout( 2, true )); 
     258            grp.setText( "Select" ); 
     259 
     260            with( new Button( grp, DWT.RADIO )){ 
     261                addListener( DWT.Selection, dgListener( &selNone )); 
     262                setText( "None" ); 
     263            } 
     264            with( new Button( grp, DWT.RADIO )){ 
     265                addListener( DWT.Selection, dgListener( &selDescription )); 
     266                setText( "Description" ); 
     267            } 
     268            with( new Button( grp, DWT.RADIO )){ 
     269                addListener( DWT.Selection, dgListener( &selInfo )); 
     270                setText( "Info" ); 
     271            } 
     272            with( new Button( grp, DWT.RADIO )){ 
     273                addListener( DWT.Selection, dgListener( &selWarning )); 
     274                setText( "Warning" ); 
     275            } 
     276            with( new Button( grp, DWT.RADIO )){ 
     277                addListener( DWT.Selection, dgListener( &selError )); 
     278                setText( "Error" ); 
     279            } 
     280 
     281            return comp; 
     282        } 
     283        private void selNone( Event e ){ 
     284            setMessage(null); 
     285        } 
     286        private void selDescription( Event e ){ 
     287            setMessage("Description which can also be a bit\nlonger.", IMessageProvider.NONE ); 
     288        } 
     289        private void selInfo( Event e ){ 
     290            setMessage("Information", IMessageProvider.INFORMATION ); 
     291        } 
     292        private void selWarning( Event e ){ 
     293            setMessage("Warning", IMessageProvider.WARNING ); 
     294        } 
     295        private void selError( Event e ){ 
     296            setMessage("Error", IMessageProvider.ERROR ); 
    171297        } 
    172298    } 
     
    186312    } 
    187313 
     314    class Page1 : WizardPage { 
     315        this( char[] title ){ 
     316            super(title); 
     317            setTitle( title ); 
     318            setMessage( "A description of the wizard page", IMessageProvider.NONE ); 
     319        } 
     320        public void createControl( Composite parent ){ 
     321            Composite comp = new Composite( parent, DWT.NONE ); 
     322            comp.setLayout( new FillLayout() ); 
     323            with( new Label( comp, DWT.NONE )){ 
     324                setText( "content" ); 
     325            } 
     326            setControl( comp ); 
     327            return comp; 
     328        } 
     329    } 
     330    class Page2 : WizardSelectionPage { 
     331        this( char[] title ){ 
     332            super(title); 
     333        } 
     334        public void createControl( Composite parent ){ 
     335            Composite comp = new Composite( parent, DWT.NONE ); 
     336            comp.setLayout( new FillLayout() ); 
     337            with( new Label( comp, DWT.NONE )){ 
     338                setText( "content" ); 
     339            } 
     340            setControl( comp ); 
     341 
     342            return comp; 
     343        } 
     344    } 
     345    class MyWizard : Wizard { 
     346        this(){ 
     347            addPage( new Page1( "First Wizard Page") ); 
     348            addPage( new Page1( "Second Wizard Page") ); 
     349            setNeedsProgressMonitor(true); 
     350            setWindowTitle( "Wizard" ); 
     351        } 
     352        public override bool performFinish(){ 
     353            // puts the data into a database ... 
     354            getContainer().run(true, true, new class IRunnableWithProgress { 
     355                public void run(IProgressMonitor monitor) { 
     356                    monitor.beginTask("Store data", 100); 
     357 
     358                    monitor.worked(40); 
     359 
     360                    // store data here ... 
     361                    //System.out.println(data); 
     362 
     363                    Thread.sleep(5.200); 
     364                    monitor.done(); 
     365                } 
     366            }); 
     367            return true; 
     368        } 
     369    } 
    188370 
    189371void main(){