`

扩展org.eclipse.ui.preferencePages的些许经验

阅读更多
最近参考Eclipse插件开发学习笔记弄起了preference,由于本人比较愚笨,看不太透彻书中所写,吃了很大的亏,我先将上面的代码放到自己的应用中跑起来结果出来了,就知道怎回事了,然后根据需要改成了自己想要的结果。今天写成博文,和大家分享下:首先实现preference得扩展org.eclipse.ui.preferencePages和org.eclipse.core.runtime.preferences扩展点,我不知道后者有什么用,我只用了前者
那么如何建立父子关系呢?这个就得从org.eclipse.core.runtime.preferences扩展点做手脚了,因为我没用到org.eclipse.core.runtime.preferences,所以我这里就忽略它了,大家都知道在配置文件里每个类都有它的ID,而preferences里的page都有个category属性,这里指定的就是父节点的ID,这样父子关系就建立了,editorPage和ViewPage我这里也不做介绍了,相信网上都能找得到的,我这里给大家说说FiledEditor吧,因为editorPage和ViewPage都不能直接使用SWT控件,所以就得AddFiled了;首先我来说明一下FiledEditor的name是怎么一回事,知道的大哥别骂我啊,在new一个FiledEditor的时候首参数都是一个name,其实这个name没有任何的约束,可以随便写,这个name是要放到store里的,由store来管理的,store根据这个name的字来告诉你要显示什么东西的,我项目中用的大多都是StringFiledEditor,我就只定义了一个name,昨天早上发现一运行起来所有的StringFiledEditor都有值了,至于是什么情况造成的我没去研究,只是把问题给解决掉了,就是根据这个name给它赋空值,这样就好了,在构造方法里可以赋值,在创建FiledEditor的地方也可以赋值,而且不管先后顺序,只要你赋值了,相同的FiledEditor的值也一样了,后来又多了个修改的需求,所以我根据需求建了若干个StringFiledEditor,但是name都不一样,给每个都赋上初始值,这样它们的值就不一样了,大家都知道用户做修改的时候是不能修改用户名的,所以得将name为username的这个StringFiledEditor Enable掉,这个也很简单了,就是用StringFiledEditor.getTextControl得到Text然后设置Text的 Enable为false,这样就OK了,密码也可以通过这样来设置输入的时候显示成‘*’或者其他的符号。接下来讲讲效验,得实现propertyChange和checkState这两个方法,这个就比较简单了,我就不介绍了,介绍到这里我的话也差不多了,不过还有个地方得提醒大家,就是如果大家实现了performOk这个方法,就得在执行完操作后清空掉filedEditor的值,否则你点击0K的时候又会执行一次,希望对大家有帮助啊
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics