1

我正在使用多个视图来显示多个表查看器。我想要的工作或功能是,当用户单击视图选项卡时,应将取决于视图的所需数据填充到表中。

有什么合适的活动可以做到这一点吗?

在此处输入图像描述 我想在用户选择特定视图选项卡时加载数据。我已经使用这两个事件来加载这些数据

第一的 -

getViewSite().getPage().addSelectionListener(new ISelectionListener(){

@覆盖

public void selectionChanged(IWorkbenchPart part, ISelection lection) {

} });

对于此事件,所有视图的 selectionChanged() 方法都会被触发并在所有视图中加载数据.. !!

第二 -

getSite().getPage().addPartListener(partListener);

private IPartListener partListener = new 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) {
   //writing code here to fill TableViewer
  }

};

为此,在创建视图时正在加载数据。

但是,当用户选择特定视图选项卡时,我想在 tableviewer 中加载数据

4

1 回答 1

1

您可以使用org.eclipse.ui.IPartListener来监听视图部分是否被激活。利用:

getSite().getPage().addPartListener(partListener);

在您的视图部分设置侦听器。

partActivated方法在视图被激活时被调用(partBroughtToTop有时也是如此)。

注意:您需要检查该部分是否真的是您的视图,因为您将收到所有部分的事件。

于 2013-10-22T10:08:35.603 回答