RAP:如何在ViewPart中访问Object

时间:2012-08-31 19:42:11

标签: java swt eclipse-rcp jface

如何从其他地方访问Object的{​​{1}}?

(以下代码仅用于描绘我想做的事情)

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); } }

2 个答案:

答案 0 :(得分:1)

使用以下代码段,并将[ID]替换为您在plugin.xml中为视图指定的ID。

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

ID通常采用com.domain.something.viewName的形式,可以在您的视图撰稿中找到。

答案 1 :(得分:1)

启动工作台时,View以及ViewPart已在ViewRegistry中注册。 Workbench包含所有已注册的视图和编辑者。从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