如何从其他地方访问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);
}
}
。
答案 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
。