2011-06-28 36 views
2

我可以使用plugin.xml和声明性定义创建Eclipse透视图并向其添加视图部件。使用视图动态创建Eclipse透视图

但是,我需要以编程方式创建一个透视图,设置其名称/标题,并在拆分视图中添加两个视图部件(一个视图左侧,另一个右侧)。

我已经搜索了网络,并通过大量的文档阅读,但无法弄清楚如何做到这一点。有没有人有这样的一个小例子?也许知道要搜索什么?

回答

0

您应该通过IPerspectiveRegistry.clonePerspective(String id, String label, IPerspectiveDescriptor desc)创建新视角。这里的原始视角desc可以为null,但我还没有找到为新视角设置图像的方法。

您可以通过IWorkbenchPage.showView(...)添加所需的意见,但从来没有想出如何布局的角度来看,新的观点...

+0

嗨! 谢谢。我在plugin.xml中有一个透视定义,其ID为“com.acme.browser.perspectives.BrowserPerspective”,它的工作方式应该如此。但是,以编程方式,它不起作用。我试过的是: – KimH

+0

'code'IWorkbenchWindow window = getSite()。getWorkbenchWindow()。getWorkbench()。getActiveWorkbenchWindow(); IPerspectiveRegistry perspectiveRegistry = PlatformUI.getWorkbench()。getPerspectiveRegistry(); IPerspectiveDescriptor descriptor = perspectiveRegistry.findPerspectiveWithId(“browser.perspectives.BrowserPerspective”); 012ersterDescriptor perspective = perspectiveRegistry.clonePerspective(“browser.perspectives.BrowserPerspective.id2”,“My new perspective title”,descriptor); PlatformUI.getWorkbench()。showPerspective(“browser.perspectives.BrowserPerspective.id2”,window); – KimH

+0

错误,我得到: 'code'java.lang.IllegalArgumentException \t在org.eclipse.ui.internal.registry.PerspectiveRegistry.clonePerspective(PerspectiveRegistry.java:656) \t在browser.views.MyView $ 1.widgetSelected (SidebarView.java:58) \t在org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228) \t在org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) \t at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1176) \t at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3493) \t at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3112) – KimH