【问题标题】:Always open (create) Eclipse RCP views始终打开(创建)Eclipse RCP 视图
【发布时间】:2016-08-07 12:28:30
【问题描述】:

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

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

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

【问题讨论】:

    标签: java user-interface swt eclipse-rcp


    【解决方案1】:

    您可以使用以下方法打开视图而不使其处于活动状态:

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

    你也可以使用

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

    如果视图已经打开,则查找它。

    【讨论】:

    • 感谢您的回答,您会将代码的第一部分放在哪里,以便在应用程序启动时(或加载透视图时)打开视图?
    • 这是一个不同的问题。如果这是您的透视图,您只需在透视图设计中包含该视图即可。如果是现有透视图,请使用 org.eclipse.ui.perspectiveExtensions 扩展点为透视图贡献视图。
    猜你喜欢
    • 2013-03-02
    • 2014-07-30
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 2014-12-20
    相关资源
    最近更新 更多