如何使用 Eclipse CNF 的 Saveable Protocol 实现对 View 的保存
2010-05-04 00:00:00 来源:WEB开发网第三步:对视图中树型结点元素进行修饰,当对应的可保存元素发生修改后,其名称以“*”作为后缀,当修改被保存后,后缀“*”号消失。该功能主要通过 org.eclipse.ui.decorators 扩展点实现。
图 7. Decorator 扩展点
在上图中,objectClass 属性指明的是所要修饰对象的类型。class 属性指明的修饰的具体实现类,Eclipse 框架为我们提供了轻量级的修饰机制,只需将 lightweight 属性值指明为 true,同时,将所要提供的修饰类实现 ILightweightLabelDecorator 接口,框架就能对树型结点元素提供前缀、后缀、重叠图片的修饰。在本文的例子中,当模型元素对应的 eidtor 发生修改时,树型导航器上结点的名称将以“*”作为后缀。具体代码如下:
清单 2. 样例代码
public class FileModifiedDecorator extends LabelProvider implements
ILightweightLabelDecorator {
@Override
public void decorate(Object element, IDecoration decoration) {
if (element instanceof TextFile) {
TextFileEditor editor = (TextFileEditor) FolderManager
.getWorkbenchPart((TextFile) element);
if (editor != null && editor.isDirty())
decoration.addSuffix("*");
}
}
public void refreshDecorator(final Object element) {
Display.getDefault().asyncExec(new Runnable() {
public void run() {
fireLabelProviderChanged(new LabelProviderChangedEvent(
FileModifiedDecorator.this, element));
}
});
}
}
更多精彩
赞助商链接