如何使用 Eclipse CNF 的 Saveable Protocol 实现对 View 的保存
2010-05-04 00:00:00 来源:WEB开发网第四步,关联保存模型与 UI 展示,当所要保存的元素发生改变时,更新 Navigator 视图的标题的状态,同时 Save,SaveAll 菜单项将根据用户选择的结点,更新其状态。具体步骤如下:
当用户通过编辑器对模型元素内空进行修改时,通知编辑器、视图、元素修饰器,使其作出相应的变化,如编辑器与视图标题将以“*”作为前缀,树型结点上的名称将以“*”作为后缀。代码片段如下:
清单 3. 样例代码
public class TextFileEditor extends EditorPart{
@Override
public void doSave(IProgressMonitor monitor) {
dirty = false;
PlatformUI.getWorkbench().getDisplay().asyncExec( new Runnable() {
public void run() {
firePropertyChange(IEditorPart.PROP_DIRTY);
// Notify the decorator;
refreshDecoration();
// Notify the content navigator.
FolderManager.fireSaveablesDirtyChanged();
}
});
}
}
public class FolderManager {
public static void fireSaveablesDirtyChanged() {
final IViewPart view = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage().findView(SaveableView.ID);
if (view != null) {
Display.getDefault().syncExec(new Runnable() {
public void run() {
((SaveableView) view).fireSaveabelsChanged();
}
});
}
}
}
更多精彩
赞助商链接