DANCE WITH JAVA

开发出高质量的系统

常用链接

统计

积分与排名

好友之家

最新评论

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

有的时候我们需要这样的功能,记下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 == nullreturn;
        
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文件。当然你也可以利用程序来实现。
运行一下看看吧,是不是记住了上次填入的内容.
source下载:http://www.blogjava.net/Files/dreamstone/jface-record.rar

posted on 2007-08-09 18:13 dreamstone 阅读(2521) 评论(1)  编辑  收藏 所属分类: SWT和插件开发

评论

# re: 给自定义Dialog加入保留对话框值的功能 2007-10-25 06:34 QuandeLiu

謝謝你,寫的非常好 .

簡單易懂,又很實用  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: