如何使用 Eclipse CNF 的 Saveable Protocol 实现对 View 的保存
2010-05-04 00:00:00 来源:WEB开发网核心提示: 图 2. triggerPoints 属性然后,通过 org.eclipse.ui.navigator.viewer 扩展点,如何使用 Eclipse CNF 的 Saveable Protocol 实现对 View 的保存(2),将要展现的内容绑定到 view 上,用户不再需要通过硬编程(ha
图 2. triggerPoints 属性
然后,通过 org.eclipse.ui.navigator.viewer 扩展点,将要展现的内容绑定到 view 上,用户不再需要通过硬编程(hard-code)的方式将 ContentProvider 和 LabelProvider 注册到特定的 View 上。在 org.eclipse.ui.navigator.viewer 扩展点上,我们需要指定 viewerContentBinding 来设定导航器中内容的可见性,其中 includes 语句表明该内容在 view 上为可见,pattern 为预先定义好的展示内容的 id。
Editor 的保存
在 Eclipse 中,用于展示和修改模型内容的 UI 容器包括编辑器(editor)与视图(view),如下图所示。我们可以通过继承抽象类 EditorPart 和 ViewPart 来定制所需要编辑器与视图来完成模型的修改与保存。
图 3. WorkbenchPart 的继承关系
EditorPart 中几个重要的方法:
publicabstractbooleanisDirty(): 用于表明编辑器中的内容是否发生修改,当编辑器的内容发生修改时,编辑器的标题栏显式地出现“*”号,同时,主菜单下“文件”下的全局“保存”按钮变为可用。当编辑器中的内容发生改变时,isDirty 方法不会自动变调用。因此我们要对可修改的 UI 元素,如 Text, CheckBox 等注册事件监听器,当修改发生时,由监听器将编辑器的 dirty 标志位置为 true。由于 isDirty() 在编辑器的生命周期中会被频繁地调用,因此不宜在这种方法中加入过多的执行语句,否则会影响程序的执行速度。
更多精彩
赞助商链接