java - Eclipse RCP : TableViewer setInput from another view

标签 java eclipse-rcp jface tableviewer

我对我的 RCP 项目有几个看法。

在一个 View 中,我有一个 TableViewer

在另一个 View 中,我有一个带有 ButtonJFrame

当我在另一个 View 中按下按钮时,我想使用 setInput() 方法更新 TableViewer 中的数据。

我该怎么做?

编辑:

表查看器的初始输入:

tableViewer.setContentProvider(ArrayContentProvider.getInstance());
tableViewer.setLabelProvider(new TableLabelProvider() );
tableViewer.setInput(TraceData.getTraceData());     // get realtime data

我将监听器添加到 tableViewer 以监听 GUI 中的更改

listener = new ISelectionListener() {
    public void selectionChanged(IWorkbenchPart part, ISelection sel) {
       if (!(sel instanceof IStructuredSelection))
          return;
       IStructuredSelection ss = (IStructuredSelection) sel;
       Object o = ss.getFirstElement();
       if (o instanceof Book) // something else in place of Book
          tableViewer.setInput(TraceData.getSavedTraceData());
    }
 };

getSite().getPage().addSelectionListener(listener);

问题是如何让它对另一个 View 中的按钮事件使用react?这就是如何广播 JButton 按下事件,然后在此 TreeViewer 中监听该事件。

最佳答案

在我的 RCP 应用程序中,我有一个由所有其他类扩展的 View 类。在这个 View 中我有:

abstract void refresh();

现在,您必须通过 TableViewer 使用 View 的刷新方法。

@Override
public void refresh() {
    tableViewer.setInput(...);
    tableViewer.refresh();
}

并且您必须从按钮调用刷新方法

如何访问其他人的 View 。

final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
final IWorkbenchPage page = window.getActivePage();
try {
    if (page.getActivePart() != null) {
    viewTitle = page.getActivePart().getTitle();
    IViewPart view = page.showView(MainView.ID)  //id de la view in plugin.xml
    page.hideView(page.findView(SitesView.ID));
    }

关于java - Eclipse RCP : TableViewer setInput from another view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26593750/

相关文章:

java - 如何在 JRadioButtons 中使用 ActionListener

c++ - Eclipse Oxygen 和 org.eclipse.jface 给出 NullPointerException 对话框

java - Equinox 与 SWT/Jface

java - 删除 createButtonsForButtonBar 或使其有用 - JFace Dialogs

java - 如何使用带有 EXTJS 的 Ajax HTTP GET 下载 xlsx?

java - 我可以将具有泛型类型的类用于不同类的集合吗?

eclipse - 如何在 RCP 应用程序中重用 Eclipse 4 IDE 透视图功能

java - eclipse RCP/SWT : How do you detect mouse events that happen elsewhere on the system

java - 如何在 Java 中使用缓冲流附加到文件?

java - Eclipselinkfactory.createEntityManager() 在多个实例运行时停止