RAP:如何访问对象在ViewPart时(RAP: How to access Object in

2019-09-22 00:56发布

我怎么访问的Object一的View从别的地方?

(下面的代码是只是勾画了我想做的事情)

public class View extends ViewPart {

    public static final String ID = "view";
    private static List list;

    public View() {
    }

    @Override
    public void createPartControl(Composite parent) {
        list = new List(parent, SWT.BORDER);
    }

    @Override
    public void setFocus() {
    }

    public static void addToList(String string) {
        list.add(string);
    }
}

现在,我希望能够用View.addToList("Message")在应用程序中的任何地方。

Answer 1:

使用下面的代码片段,并替换[ID]与您在您的视图中指定的ID plugin.xml

IViewPart viewPart = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView( [ID] );

该ID通常是形式com.domain.something.viewName并能在您的视图的贡献被发现。



Answer 2:

View以及ViewPart登记在ViewRegistry工作台启动时。 该Workbench包含所有注册的视图和编辑器。 最简单的方式来获得从工作台注册表中的视图的信息。 首先,你检查是否PlatformUI.getWorkbench().isStarting() 一旦这个方法返回false ,你可以得到

IViewDescriptor descriptor = PlatformUI.getWorkbench().getViewRegistry().find("view");

当工作台启动它注册的所有视图和编辑参与了,但运行你的代码,你需要确保工作台正在运行,你有看法的一个实例。

要创建的实例, View您将使用代码

try {
    IViewPart view = descriptor.createView();
    view.createPartControl();
} catch (CoreException e) {
    // TODO something with e
    e.printStackTrace();
}

现在,您be able to use View.addToList("Message") anywhere in the application



文章来源: RAP: How to access Object in ViewPart