查看文章 |
IPartListener和IPartListener2作用于eclipse视图之间的联系。
2009年09月25日 星期五 21:27
来自:http://blog.csdn.net/starshus/archive/2006/01/04/570540.aspx 1.判断这个view当前是否为active的好方法: private boolean isActivePart() { IWorkbenchPart part = getViewSite().getPage().getActivePart(); return part != null && part.equals(this); }![]()
关掉Editor或Viewer时调用自己逻辑的方法: 1)如果是editor,那么让它实现org.eclipse.ui.ISaveablePart2接口. 2)如果是view,在view class里面加上下面这个方法,并且调用它,比如: private void initPartListener() { getSite().getPage().addPartListener(new IPartListener() {![]() public void partOpened(IWorkbenchPart part) { if (part != YourPartView.this) { return; } else { // your logics } }![]() public void partDeactivated(IWorkbenchPart part) { if (part != YourPartView.this) { return; } else { // your logics } }![]() public void partClosed(IWorkbenchPart part) { if (part != YourPartView.this) { return; } else { // your logics } }![]() public void partBroughtToTop(IWorkbenchPart part) { if (part != YourPartView.this) { return; } else { // your logics } }![]() public void partActivated(IWorkbenchPart part) { if (part != YourPartView.this) { return; } else { // your logics } } }); }![]() ![]() 或者这样写也可以: 或是这样写: public void createPartControl(Composite parent) { getSite().getWorkbenchWindow(). getPartService().addPartListener(this); } public void dispose() { getSite().getWorkbenchWindow(). getPartService().removePartListener(this); }![]() ![]() 注意: 1)Views也能实现ISaveablePart2 2)在view关闭时要做什么事时,建议就用IPartListener2 3)View上的X是与关闭动作关联在一起的,要用别的方法达到目的你只有写自己的 4)ISaveablePart有意义吗? ----------------------------------------------------------------------------------------------- |
最近读者:



IWorkbenchPart part
}

getSite().getPage().addPartListener(