我有一个小的Eclipse RCP应用程序。
我注意到在Windows 10 FileDialog
上没有可用的路径部分。
在对话框初始化期间,我尝试了Style
标志的不同组合,但是没有用。
值得一提的是,在Windows 7上一切正常。
对该问题的进一步调查发现:
如果我从WorkbenchAdvisor
中启动对话框,则对话框会正确显示在导航栏中。
代码基本上是这样的:
@Override
public Object start(IApplicationContext context) throws Exception {
try {
int returnCode = PlatformUI.createAndRunWorkbench(display, new WorkbenchAdvisor() {
@Override
public void postStartup() {
// THIS MAKES THE DIALOG APPEAR WITHOUT NAVIGATION BAR
Display display = new Display();
Shell shell = new Shell(display);
FileDialog dialog = new FileDialog (shell, SWT.OPEN | SWT.MULTI);
dialog.open();
shell.close();
while (!shell.isDisposed ()) {
if (!display.readAndDispatch ()) {
display.sleep ();
}
}
}
});
if (returnCode == PlatformUI.RETURN_RESTART) {
return IApplication.EXIT_RESTART;
}
return IApplication.EXIT_OK;
} finally {
Display.getDefault().dispose();
}
return IApplication.EXIT_OK;
}
启动工作台后,我需要能够正确启动FileDialog
。
如果执行以下操作,则对话框会正确显示在导航栏上,但这不是您所希望的:
@Override
public Object start(IApplicationContext context) throws Exception {
// THIS MAKES THE DIALOG APPEAR WITH THE NAVIGATION BAR CORRECTLY
Display display = new Display();
Shell shell = new Shell(display);
FileDialog dialog = new FileDialog (shell, SWT.OPEN | SWT.MULTI);
dialog.open();
shell.close();
while (!shell.isDisposed ()) {
if (!display.readAndDispatch ()) {
display.sleep ();
}
}
Display.getDefault().dispose();
return IApplication.EXIT_OK;
}
我仍然不知道如何解决此问题或实际发生的事情。
另一条信息是,如果我使用启动配置从eclipse启动我的RCP可以正常工作,即使我在WorkbenchAdvisor
中启动它,文件对话框也会显示带有导航栏。
答案 0 :(得分:2)
我建议您使用org.eclipse.ui.startup
扩展名。您可以在plugin.xml中声明它。
此扩展要求您提供一个实现IStartup
接口的类。此类的earlyStartup
方法在之后 WorkbenchAdvisor.postStartup
之后运行。
也许这时候出现导航栏。