给自定义Dialog加入保留对话框值的功能

系统 1426 0

有的时候我们需要这样的功能,记下Dialog中的值,当再次打开这个Dialog的时候,还原这些值。这就需要把这些Dialog的值保存起来。Dialog的IDialogSettings类提供了这个功能。下边是使用方法:
在上例"自定义Dialog"的代码上加入三个函数:

public   void  saveState() {
        
if  (text.getText()  ==   null   ||  text.getText().equals( "" )) {
            
return  ;
        }

        IDialogSettings topSettings 
=  getTopSettings();
        IDialogSettings settings 
=   topSettings.getSection( " TestDialog " );
        
if (settings  ==   null )settings  =  topSettings.addNewSection( " TestDialog " );
        settings.put(
" value " , text.getText());
        
try {
            topSettings.save(
" content/system.xml " );
        }
catch (IOException e) {
            System.out.println(e.getMessage());
        }

    }

    
public   void  restoreState() {
        IDialogSettings topSettings 
=  getTopSettings();
        IDialogSettings settings 
=   topSettings.getSection( " TestDialog " );
        
if (settings  ==   null return ;
        
if  (text.getText()  ==   null   ||  text.getText().equals( "" )) {
            text.setText(settings.get(
" value " ));
        }

    }

    
public  IDialogSettings getTopSettings() {
        IDialogSettings topSettings 
=   new  DialogSettings( " system " );
        
try {
            topSettings.load(
" content/system.xml " );
        }
catch (IOException e) {
            System.out.println(e.getMessage());
        }

        
return  topSettings;
    }


然后在覆写的buttonPressed函数中调用save

protected   void  buttonPressed( int  button) {
        saveState();
    }

在createDialogArea函数中加入取出数据

protected  Control createDialogArea(Composite parent)  {
        Composite container 
=  (Composite)  super .createDialogArea(parent);
        container.setLayout(
new  RowLayout());
        text 
=   new  Text(container, SWT.BORDER);
        text.setLayoutData(
new  RowData( 100 , - 1 ));
        
// 加入这一句
         if  (text.getText()  ==   null   ||  text.getText().equals( "" )) {
            restoreState();
        }

        
return  container;
    }

最后,记得建立需要的文件,在当前workspace下建立文件夹content,然后在文件夹下建立system.xml文件。当然你也可以利用程序来实现。
运行一下看看吧,是不是记住了上次填入的内容.

给自定义Dialog加入保留对话框值的功能


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论