这里指导的所谓"普通的单页编辑器"是指直接继承自EditorPart的编辑器,只有一个页面。和继承自MultiPageEditorPart不同。
普通编辑器的保存分三步走:
1.在编辑器中定义一个标志编辑器是否脏的变量:
private boolean isDirty = false;//编辑器是否脏的标识,初始置为false
2.覆盖父类的isDirty()方法,如下:
public boolean isDirty() {
return this.dirty;
}
3.在需要监听修改的地方调用如下代码,设置isDirty的值,触发事件
m_StyledText.addKeyListener(new KeyAdapter(){//添加键盘事件监听
@Override
public void keyPressed(KeyEvent e) {
if (! isDirty()){//如果未脏
setDirty(true);//改变isDirty的值为true,标志编辑器已修改,已为脏状态
firePropertyChange(IEditorPart.PROP_DIRTY);//更新编辑器的界面(编辑器标题前的"*"号及"保存"菜单
}
}
});
4.在doSave方法处进行保存处理,如
@Override
public void doSave(IProgressMonitor monitor) {
if (isDirty()){
//保存编辑器事件处理代码待添加:write do save event
setDirty(false);//
firePropertyChange(IEditorPart.PROP_DIRTY);
}
}