巧妙设置编辑为dirty

一。XXX extends DiagramDocumentEditor
        private boolean dirty = false;  //是否被修改
   public boolean isDirty() {

return super.isDirty() || dirty;
}
/**
* @generated NOT
*/
public void setDirty(boolean dirty) {

if (isDirty() != dirty) {

this.dirty = dirty;

firePropertyChange(IEditorPart.PROP_DIRTY);
}
}

二。extends FormEditor 多页编辑器 
    private boolean dirty = false; // 是否修改的标识
    @Override
public boolean isDirty() {
return dirty;
}
    public void setDirty(boolean dirty) {
if (this.dirty != dirty) {
this.dirty = dirty;
editorDirtyStateChanged();
}
}
三。多页编辑器的其中一页extends FormPage
    private boolean dirty = false; // 是否被修改
    @Override
public boolean isDirty() {
return dirty;
}
    public void setDirty(boolean dirty) {
this.dirty = dirty;
}
   public void doSave(IProgressMonitor monitor) {
       父编辑器[主编辑器]profileEditor.setDirty(false);
   }
   //当某一个属性改变时,需调用此方法
   public void setDirtyAfterModify() {
profileEditor父编辑器[主编辑器].setDirty(true);
setDirty(true); 
}

四。最普通的编辑器 extends EditorPart
@Override
public boolean isDirty() {
return dirty;
}

public void setDirty() {
firePropertyChange(IEditorPart.PROP_DIRTY);
}
doSave(){
dirty = false;
}

你可能感兴趣的:(DI)