2016-04-15 86 views
0

我正在使用Eclipse-RCP-应用程序,其中有两个不同文件夹的透视图。左侧文件夹中的视图显示用户可以单击以获取更多信息的信息。因此,详细信息显示在正确的文件夹中。
当右侧文件夹中只有一个视图时,没有问题。然而,当我向正确的文件夹添加另一个视图时,事情变得混乱。由于视图必须以某种方式进行交流,因此我为此编写了一些代码。在createPartControl(Composite)期间,视图注册用户选择的更改。但是该文件夹的第二个视图在用户点击它之前不会被加载,所以当用户选择表格行或其他内容时它不会自动更新。总是打开(创建)Eclipse RCP视图

这可能很难理解,所以这里有一个例子:用户打开应用程序并看到两个标签页。然后他在表格中选择X行。右侧文件夹的前视图现在包含有关X行的信息。该文件夹的第二个视图尚未加载,因此尚未注册选择更改。如果用户现在打开此视图,则它将处于默认状态,因为它没有获得有关选择更改的信息。
只有在用户打开视图后才能显示信息。有没有办法创建一个视图,一旦加载透视图就会自动加载(被创建)?

与此一起,如果用户选择X行并且最小化右侧选项卡文件夹,我想打开正确的选项卡文件夹。为此,我使用了IWorkbenchPage.showView(String)。打开选项卡文件夹的第一个视图。但是,每当我打开另一个视图并选择Y行时,“打开”第一个视图将导致将其置于前面。有没有办法来防止这种情况?

回答

1

您可以打开一个视图,而不将其激活使用:

IWorkbenchPage page = ... 

page.showView("view id", null, IWorkbenchPage.VIEW_VISIBLE); 

您还可以使用

IViewPart part = page.findView("view id"); 

找到看法,如果它已经打开。

+0

感谢您的回答,您将在哪里放置代码的第一部分以便在应用程序启动时(或加载透视图时)打开视图? – AidenPearce

+0

这是一个不同的问题。如果这是您的观点,您只需将视图包含在您的视角设计中。如果它是一个现有的透视图,使用'org.eclipse.ui.perspectiveExtensions'扩展点为视角提供一个视图。 –