Eclipse RCP应用程序 - 多窗口设计多个显示器
-
22-08-2019 - |
题
关于Eclipse RCP和全透视/查看/编辑设计的问题 - 什么是创建应用程序,它会在多个监视器上显示多个窗口的最佳方式?我始终认为,教程和书籍打包RCP / SWT设计成单一的应用程序窗口中的观点里面的观点。
应该一个窗口规则都他人或他们都应该是平等的(关闭最后一个退出应用程序)?如何与观点和看法应对?是否有任何其他的事情我们应该知道?
环境:的Eclipse Ganymede中,Windows XP
解决方案
一个单Eclipse工作台可以建立多个窗口。每个窗口被布置使用的角度来看,这样不同的窗口可以被设置成不同的角度,或相同的观点,也可以在每个窗口独立地切换其它窗口的观点。
您也可以为每个窗口中设置的输入。如果每个窗口正在不同的数据(例如,每个窗口可以被连接到不同的服务器或可以表示来自不同数据库的全部具有相同的模式,但不同的数据的数据),这是有用的。
这可能是因为使用的是Windows只,这样就可以看到在不同的显示器相同的数据的不同的角度。在这种情况下,你不需要编程方式创建的窗口,但只需要添加由工作台提供的动作。这可以通过修改你的ActionBarAdvisor类来完成:
添加到字段声明:
private IWorkbenchAction newWindowAction;
您在其中进行的操作(通常是一种称为makeActions)添加到代码:
newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window);
register(newWindowAction);
在其中创建菜单添加到代码:
menu.add(newWindowAction);
其中菜单通常是窗口菜单。如果你没有一个窗口菜单已经在你的应用程序,并想创建一个,下面一行将工作:
MenuManager menu = new MenuManager(
"&Window",
IWorkbenchActionConstants.M_WINDOW);
这会给你会以同样的方式在Eclipse IDE中的窗口 - >新窗口菜单项创建一个新的窗口中的菜单项。
如果,在另一方面,你希望每个窗口来显示不同的数据,那么你就需要以编程方式打开新窗口。这使您可以设置不同的输入每个窗口。您将需要一行代码是这样的:
IWorkbenchPage newPage = window.openPage(inputObject);
其中inputObject包含识别在该窗口中显示的数据的信息。如果你想设置的初始角度来看,这可以通过调用的setPerspective的页面上完成。
您将要设置的标题在每个窗口:
newPage.getWorkbenchWindow().getShell().setText(windowTitle);
其中WINDOWTITLE是描述输入到窗口的字符串。
可以如下取为一个窗口中的输入:
window.getActivePage().getInput()
您可以再投这个给你使用的是作为你的窗口输入任何类。