要使用好EditorPart,首先得了解其方法在各種情况下的执行流程,在类的每一个方法中加上一个打印语句.运行后看打印输出,就可以得到如下方法执行流程.
(1)双击列表项打开编辑器时
各个方法的作用以及含义:
由此方法获知编辑器是否脏了(所谓"脏"是指编辑器中的值已经发生了改变),true表示脏了,当其返回true时,会出现两个效果:编辑器的標题出现一个"*"号,主菜单"文件"下的"保存"项可用.
特别要注意的是:编辑器不会自己判断自己是否脏了,这需要在程序中用语句手动设置,例如:在编辑器的文本框加入一个键盘监听事件,当在文本框中输入字符时,则将isDirty方法返回值设置为true(脏).
在方法执行的过程中,可以看到此方法的执行是最频繁嘚,所以不要在此方法中加入太耗时的执行语句.否则会影响程序执行速度.
在这个方法中编写保存编辑器的代码,当选择主菜单"文件---->保存"时也会執行此方法.但因在isDirty返回true时,"保存"菜单和Ctrl+S快捷键才能用,也即isDirty方法控制着doSave方法的执行.
当保存成功时,要注意将脏的状态设置回false,并调用firePropertyChange方法将编辑器嘚界面状态更新(编辑器标题前的"*"号以及"保存"菜单).
是否允许编辑器使用"另存为"功能,如果此返回false,则不能使用"另存为"功能,而且主菜单"文件"下的"另存为"项被置灰.
和doSave的作用相似,在这里书写"另存为"功能的处理代码.
当编辑器获得焦点时执行该方法.
在本例子中,当修改ChinaEditor编辑器中文本框的文字时候,编辑器标题前出现"*"而且主菜单"文件---->保存"可用,当编辑器保存后,"*"消失并且"保存"菜单不可用,当编辑器为脏时,关闭编辑器会弹出一个提示保存的對话框.
//......事件处理代码,这里省略
本课程为收费课程请先购买当湔课程
本课程为会员课时,请先开通会员
本课程为会员课时您的会员账号已经过期
本课程为会员课时,您的会员账号已被禁用
章未解锁暂无观看权限
拼团未完成,暂无观看权限
购买未完成暂无观看权限
正在打包请勿關闭和刷新页面
下一节课程:学习的重要性 (02:59)