如何使用 Eclipse CNF 的 Saveable Protocol 实现对 View 的保存
2010-05-04 00:00:00 来源:WEB开发网当元素保存时,由 SaveableContentProvider 返回可保存的实现 Saveable 对象。其中 Saveable 对象的实现类片段如下:
public class SaveablePart extends Saveable{
private IWorkbenchPart part;
public SaveablePart(IWorkbenchPart part) {
this.part = part;
}
public void doSave(IProgressMonitor monitor) {
if (part instanceof ISaveablePart) {
ISaveablePart saveable = (ISaveablePart) part;
saveable.doSave(monitor);
}
}
public boolean isDirty() {
if (part instanceof ISaveablePart) {
return ((ISaveablePart) part).isDirty();
}
return false;
}
public IWorkbenchPart getWorkbenchPart(){
return this.part;
}
}
保存完毕后,通知编辑器、视图、模型元素标题作出相应的修改。代码片段如下:
清单 4. 样例代码
public class TextFileEditor extends EditorPart{
@Override
public void createPartControl(Composite parent) {
parent.setLayout(new FillLayout());
textSect = new Text(parent, SWT.MULTI);
textSect.addModifyListener( new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
dirty = true;
PlatformUI.getWorkbench().getDisplay().asyncExec( new Runnable() {
public void run() {
firePropertyChange(IEditorPart.PROP_DIRTY);
refreshDecoration();
FolderManager.fireSaveablesDirtyChanged();
}
});
}
});
}
}
总结
本文分对 CommonNavigaor 的 Saveables Protocol 的实现原理进行说,并通过一个实例对其实现方法进行说明。通过该机制,开发者可以不用关注保存的具体机制,而将更多的精力投入到与具体业务流程的开发中,从而更加快速地实现在视图上完成对模型元素的保存。
更多精彩
赞助商链接