Eclipse插件/查看问题

时间:2009-06-24 19:23:58

标签: eclipse eclipse-plugin eclipse-pde

我有一个包含A类的插件,它通过以下代码行显示在B类中定义的视图:

(VideoLogView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("Videolog.VideoLogView");

我在视图的createPartControl()方法(B类对象)中需要做的是访问A类对象中的方法。

如何做到这一点?

感谢。

1 个答案:

答案 0 :(得分:2)

看起来你正面临着“如何将论点传递给我的观点”这一经典问题? This thread最能说明这一点:

  

在我的RCP项目开始时我遇到了同样的问题。对于这样一个事实我感到很奇怪:没有办法将参数传递给视图作为被观察的模型。

为什么呢?因为(强调我的):

  

您使用的是已打开的可插拔平台。   您贡献现有的开发项目,其他人应该能够为您的贡献做出贡献。

     

因此,您不会将“传递”参数传递给视图,这会将整个事物锁定在非打开的设计中   相反,您的视图将询问平台(或将听取平台)以确定要管理的信息   其他视图(来自其他尚不存在的插件)可能也想管理同一事件的相同信息。

     

您应该做的是向工作台询问当前的选择。我猜您的视图是通过双击操作或简单选择打开的,因此您当前将选择要在视图中管理的对象。
  这是您从视图中检索工作台选择的方法:

ISelection s = this.getSite().getWorkbenchWindow().getSelectionService().getSelection();
  

其中“this”是ViewPart。

     

然后,您必须创建初始视图(从DoubleClick这样的给定事件启动视图创建的视图)。 JFace查看器是一个选择提供程序,因此您可以在使用jface时使用它,或者在使用自定义ISelectionProvider控件时可以实现SWT接口我的情况)。


文章“Eclipse Workbench: Using the Selection Service”也可以给你一些指示。

alt text