当前位置:  开发笔记 > Android > 正文

Eclipse RCP应用程序 - 用于多个监视器的多窗口设计

如何解决《EclipseRCP应用程序-用于多个监视器的多窗口设计》经验,为你挑选了1个好方法。

关于Eclipse RCP和整个透视/视图/编辑器设计的问题 - 创建将在多个监视器上显示多个窗口的应用程序的最佳方法是什么?我见过的教程和书籍总是将RCP/SWT设计打包到单个应用程序窗口内的透视图中.

一个窗口应该统治所有其他窗口还是它们都应该相等(关闭最后一个退出应用程序)?如何处理观点和观点?还有其他我们应该知道的事情吗?

环境:Eclipse Ganymede,Windows XP.



1> user85259..:

单个Eclipse工作台可以创建多个窗口.每个窗口都使用透视图布局,因此可以将不同的窗口设置为不同的透视图或相同的透视图,并且可以独立于其他窗口切换每个窗口中的透视图.

您还可以为每个窗口设置输入.如果每个窗口处理不同的数据(例如,每个窗口可以连接到不同的服务器,或者可以显示来自不同数据库的数据,这些数据都具有相同的模式但数据不同),这将非常有用.

可能是您仅使用Windows,以便您可以在不同的监视器上看到相同数据的不同视角.在这种情况下,您不需要以编程方式创建窗口,但只需添加工作台提供的操作.这可以通过修改ActionBarAdvisor类来完成:

添加到字段声明:

private IWorkbenchAction newWindowAction;

添加到您执行操作的代码(通常是一个名为makeActions的方法):

    newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window);
    register(newWindowAction);

添加到您创建菜单的代码:

    menu.add(newWindowAction);

菜单通常是窗口菜单.如果您的应用程序中已经没有Window菜单并且想要创建一个,则以下行将起作用:

    MenuManager menu = new MenuManager(
      "&Window", 
      IWorkbenchActionConstants.M_WINDOW);

这将为您提供一个菜单项,该菜单项将以与Eclipse IDE中的Window-> New Window菜单项相同的方式创建新窗口.

另一方面,如果您希望每个窗口显示不同的数据,则需要以编程方式打开新窗口.这允许您为每个窗口设置不同的输入.您将需要一行代码,例如:

IWorkbenchPage newPage = window.openPage(inputObject);

其中inputObject包含标识窗口中显示的数据的信息.如果要设置初始透视图,可以通过调用页面上的setPerspective来完成.

您需要在每个窗口中设置标题:

newPage.getWorkbenchWindow().getShell().setText(windowTitle);

其中windowTitle是描述窗口输入的字符串.

您可以按如下方式获取窗口的输入:

window.getActivePage().getInput()

然后,您可以将其转换为您用作窗口输入的任何类.

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有