且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-06-07 14:08:39

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

有的时候我们需要这样的功能,记下Dialog中的值,当再次打开这个Dialog的时候,还原这些值。这就需要把这些Dialog的值保存起来。Dialog的IDialogSettings类提供了这个功能。下边是使用方法:
在上例"自定义Dialog"的代码上加入三个函数:
给自定义Dialog加入保留对话框值的功能public void saveState(){
给自定义Dialog加入保留对话框值的功能        
if (text.getText() == null || text.getText().equals("")){
给自定义Dialog加入保留对话框值的功能            
return ;
给自定义Dialog加入保留对话框值的功能        }

给自定义Dialog加入保留对话框值的功能        IDialogSettings topSettings 
= getTopSettings();
给自定义Dialog加入保留对话框值的功能        IDialogSettings settings 
=  topSettings.getSection("TestDialog");
给自定义Dialog加入保留对话框值的功能        
if(settings == null)settings = topSettings.addNewSection("TestDialog");
给自定义Dialog加入保留对话框值的功能        settings.put(
"value", text.getText());
给自定义Dialog加入保留对话框值的功能        
try{
给自定义Dialog加入保留对话框值的功能            topSettings.save(
"content/system.xml");
给自定义Dialog加入保留对话框值的功能        }
catch(IOException e){
给自定义Dialog加入保留对话框值的功能            System.out.println(e.getMessage());
给自定义Dialog加入保留对话框值的功能        }

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

给自定义Dialog加入保留对话框值的功能    
public void restoreState(){
给自定义Dialog加入保留对话框值的功能        IDialogSettings topSettings 
= getTopSettings();
给自定义Dialog加入保留对话框值的功能        IDialogSettings settings 
=  topSettings.getSection("TestDialog");
给自定义Dialog加入保留对话框值的功能        
if(settings == nullreturn;
给自定义Dialog加入保留对话框值的功能        
if (text.getText() == null || text.getText().equals("")){
给自定义Dialog加入保留对话框值的功能            text.setText(settings.get(
"value"));
给自定义Dialog加入保留对话框值的功能        }

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

给自定义Dialog加入保留对话框值的功能    
public IDialogSettings getTopSettings(){
给自定义Dialog加入保留对话框值的功能        IDialogSettings topSettings 
= new DialogSettings("system");
给自定义Dialog加入保留对话框值的功能        
try{
给自定义Dialog加入保留对话框值的功能            topSettings.load(
"content/system.xml");
给自定义Dialog加入保留对话框值的功能        }
catch(IOException e){
给自定义Dialog加入保留对话框值的功能            System.out.println(e.getMessage());
给自定义Dialog加入保留对话框值的功能        }

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

然后在覆写的buttonPressed函数中调用save
给自定义Dialog加入保留对话框值的功能protected void buttonPressed(int button){
给自定义Dialog加入保留对话框值的功能        saveState();
给自定义Dialog加入保留对话框值的功能    }
在createDialogArea函数中加入取出数据
给自定义Dialog加入保留对话框值的功能protected Control createDialogArea(Composite parent) {
给自定义Dialog加入保留对话框值的功能        Composite container 
= (Composite) super.createDialogArea(parent);
给自定义Dialog加入保留对话框值的功能        container.setLayout(
new RowLayout());
给自定义Dialog加入保留对话框值的功能        text 
= new Text(container, SWT.BORDER);
给自定义Dialog加入保留对话框值的功能        text.setLayoutData(
new RowData(100,-1));
给自定义Dialog加入保留对话框值的功能        
//加入这一句
给自定义Dialog加入保留对话框值的功能
        if (text.getText() == null || text.getText().equals("")){
给自定义Dialog加入保留对话框值的功能            restoreState();
给自定义Dialog加入保留对话框值的功能        }

给自定义Dialog加入保留对话框值的功能        
return container;
给自定义Dialog加入保留对话框值的功能    }
最后,记得建立需要的文件,在当前workspace下建立文件夹content,然后在文件夹下建立system.xml文件。当然你也可以利用程序来实现。
运行一下看看吧,是不是记住了上次填入的内容.

SourceCODE

本文转自kenty博客园博客,原文链接http://www.cnblogs.com/kentyshang/archive/2007/08/16/858307.html如需转载请自行联系原作者


kenty