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

简介:

给自定义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文件。当然你也可以利用程序来实现。
运行一下看看吧,是不是记住了上次填入的内容.

SourceCODE

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


kenty

相关文章
|
3月前
|
存储 开发框架 前端开发
在Winform分页控件中集成保存用户列表显示字段及宽度调整设置
在Winform分页控件中集成保存用户列表显示字段及宽度调整设置
vitepress如何配置右上角的小两侧标志,利用nav标签进行修改,右侧边栏如何设置成自动弹出水平框,让原先隐藏的框能够显示出来
vitepress如何配置右上角的小两侧标志,利用nav标签进行修改,右侧边栏如何设置成自动弹出水平框,让原先隐藏的框能够显示出来
单文档的BCG程序,为什么在CMainFrame::OnCreate最后设置工具条的标题,为什么无效?
单文档的BCG程序,为什么在CMainFrame::OnCreate最后设置工具条的标题,为什么无效?
|
Android开发
android 自定义登陆对话框基类封装,且随着软键盘的弹起自动移动位置
android 自定义登陆对话框基类封装,且随着软键盘的弹起自动移动位置
|
JavaScript
【经验分享】单选/下拉单选选项数据源为动态值的时候控制组件状态
单选/下拉单选的选项为动态值的时候,实现类似于关联选项的功能。
192 0
|
iOS开发
iOS 设置tableview默认选中第一行并实现点击第一行的效果
iOS 设置tableview默认选中第一行并实现点击第一行的效果
1243 0
|
JavaScript
使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态
使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态
434 0
使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态
PyQt5 技术篇 - 按钮隐藏并保留位置,pyqt5设置按钮的可见度,设置按钮透明度
PyQt5 技术篇 - 按钮隐藏并保留位置,pyqt5设置按钮的可见度,设置按钮透明度
522 0
PyQt5 技术篇 - 按钮隐藏并保留位置,pyqt5设置按钮的可见度,设置按钮透明度
|
存储
PyQt5 技巧篇-复选框绑定行内容,全选、清空、展示选中的内容功能实现演示,设置复选框选中,检查复选框选中状态
PyQt5 技巧篇-复选框绑定行内容,全选、清空、展示选中的内容功能实现演示,设置复选框选中,检查复选框选中状态
476 0
PyQt5 技巧篇-复选框绑定行内容,全选、清空、展示选中的内容功能实现演示,设置复选框选中,检查复选框选中状态