多页编辑器的保存

以继承自FormEditor类的多页编辑器为例。

继承自FormEditor编辑器的保存,其中FormEdiotr继承自MultiPageEditorPart

实际上它的保存还是需要调用每一个页面的保存,如

public void doSave(IProgressMonitor monitor){

    tagPage.doSave(monitor);

//省略其它page的doSave(monitor)调用

    editorDirtyStateChanged();

}

 

 

 

其中tagPage为多页编辑器的其中一页,继承自FormPage,实际上FormPage也是一个编辑器,它继承自EditorPage,并实现了IFormPage接口。

 

 

而在FormPage中编辑器的保存通常是这样的,可以在编辑器中定义一个标志编辑器是否脏的变量:

①private boolean isDirty = false;//初始值为false,假定未改写,isDirty方法返回isDirty。

②在需要监听修改事件的地方进行isDirty值的设置,并通知事件,如:

isDirty = true;

getEditor().editorDirtyStateChanged();//特别注意这里的getEditor()方法

③在doSave方法中完成保存工作,且将isDirty设置为false,如:

public void doSave(IProgressMonitor monitor) {

        writeFieldsToTag();

        id3TagInfo.saveMP3File();

        isDirty = false;//重置为false

    }

 

 

说明:实际上FormEditor中的isDirty()方法是把所有它包含的FormPage遍历了一遍,来判断其中哪些有修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值