您的位置:首页 > 编程语言 > Java开发

eclipse 插件开发-编辑器脏处理

2014-02-12 00:00 295 查看
1、强行添加command使编辑器脏。

getEditor().getCommandStack().execute(new Command() {});


2、

//第一步,对editor的构造函数添加EditDomain
public MyGraphicalEditor() {
setEditDomain(new DefaultEditDomain(this));
}

//第二步,对Command堆栈进行监听
public void init(IEditorSite site, IEditorInput input) throws PartInitException {
super.init(site, input);
getCommandStack().addCommandStackListener(this);
}

//第三步,重载CommandStackListener的CommandStackChanged()方法
public void commandStackChanged(EventObject event) {
super.commandStackChanged(event);
firePropertyChange(IEditorPart.PROP_DIRTY);// 别忘了
}

//第四步,定义一个boolean类型的变量dirty,并写其set方法。供涉及Command堆栈之外的操作对“脏”状态改的需求
public void setDirty(boolean dirty){
if (dirty != this.dirty) {
this.dirty = dirty;
firePropertyChange(IEditorPart.PROP_DIRTY);
}
}

//第五步,重载editor的isDirty()方法
public boolean isDirty() {
return (getCommandStack().isDirty()) | dirty;
}

// 最后一步,doSave()方法的处理
public void doSave(IProgressMonitor arg0) {
getCommandStack().markSaveLocation();
dirty = false;
firePropertyChange(IEditorPart.PROP_DIRTY);
// Todo others.....
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java
相关文章推荐