【问题标题】:Eclipse RCP View Tab SelectionEclipse RCP 视图选项卡选择
【发布时间】:2013-10-31 00:08:47
【问题描述】:

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

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

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

第一-

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

@Override

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 中加载数据

【问题讨论】:

  • 桌子在哪里?一张图或许能帮助我们理解。
  • 表格在每个视图中。当我选择一个特定的视图然后在选定的视图表上填充数据
  • 我也在寻找同样的解决方案。

标签: eclipse view rcp


【解决方案1】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多