我想在隐藏ViewPart时触发方法(隐藏==它开始不可见)并且它正在打开(打开==它开始可见)。类似的东西:
void onHide(){removeAllListeners();}
void onShow(){refreshView();}
我试图使用:
getSite().getPage().addSelectionListener(new ISelectionListener() {
@Override
public void selectionChanged(final IWorkbenchPart workbenchPart, final ISelection selection) {
System.out.println("TEST");
}});
但它仅在ViewPart变为不可见时才起作用,并且在变为可见时不会被触发
答案 0 :(得分:1)
这与选择被更改无关。使用IPartListener2
。
答案 1 :(得分:1)
您可以使用IPartListener2
(或较旧的IPartListener
)来收听所有部分状态的更改。
getSite().getPage().addPartListener(new IPartListener2() ....
您可能想要对'partHidden'和'partVisible'方法做出反应。在这些方法中,您需要检查事件是否适合您:
IViewPart myViewPart = ... your view part
@Override
public void partHidden(IWorkbenchPartReference ref) {
IWorkbenchPart part = ref.getPart(false);
if (part == myViewPart) {
// Event is for your view
}
}
@Override
public void partVisible(IWorkbenchPartReference ref) {
IWorkbenchPart part = ref.getPart(false);
if (part == myViewPart) {
// Event is for your view
}
}