在做eclipse的编辑器开发时,可能会需要对编辑器的生命周期中的某个过程进行监听,该监听事件为org.eclipse.ui.IPartListener(2):
public interface IPartListener {
public void partActivated(IWorkbenchPart part);
public void partBroughtToTop(IWorkbenchPart part);
public void partClosed(IWorkbenchPart part);
public void partDeactivated(IWorkbenchPart part);
public void partOpened(IWorkbenchPart part);
}
实现该接口,然后在编辑器创建完成后在编辑器代码中(如FormEditor的addPage()方法中)加入:
getSite().getPage().addPartListener(this); // 加入监听
getSite().getPage().removePartListener(this); // 在编辑器的dispose()方法中删除监听
比如一种应用:在当前编辑器失效(Deactivated)时需要保存编辑器数据,则只需要在partDeactivated()方法中调用doSave()即可。这样做可以避免用户忘记保存编辑器而丢失在编辑器中修改的数据,在用户离开当前编辑器做其他任何操作时编辑器都会自动保存。