作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我有我的 IWorkbenchWiondow
对象,window
。
我将这个监听器添加到它:
window.addPageListener(new IPageListener()
{
@Override
public void pageOpened(IWorkbenchPage page)
{
// method stub
}
/**
* Whenever the user tries to close the workbench window, this method gets called.
*/
@Override
public void pageClosed(IWorkbenchPage page)
{
if (MessageDialog.openQuestion(page.getWorkbenchWindow().getShell(), "Question", "Do you really want to close the application?"))
{
// YES, then no problem, close
return;
}
else
{
// NO
System.out.println("Now what?");
}
}
@Override
public void pageActivated(IWorkbenchPage page)
{
// method stub
}
});
如果用户说 No
,我如何阻止 window
关闭?
或者我怎样才能达到相同的最终结果?
最佳答案
正如@david 所说,IWorkbenchListener
有一个preShutDown
事件,允许通过返回false
否决关闭整个工作台。
当最后一个工作台窗口关闭时或通过诸如文件 > 退出 之类的操作关闭工作台。
如果您想阻止单个 IWorkbenchWindow
被关闭,您需要向代表工作台窗口的 shell 添加一个close 监听器。
例如:
Shell shell = window.getShell();
shell.addListener( SWT.Close, new Listener() {
public void handleEvent( Event event ) {
MessageBox messageBox = new MessageBox( parentShell, SWT.APPLICATION_MODAL | SWT.YES | SWT.NO );
messageBox.setText( "Confirmation" );
messageBox.setMessage( "Close the window?" );
event.doit = messageBox.open() == SWT.YES;
}
} );
将 doit
标志设置为 false 将防止 shell 被关闭/处置。
关于java - 有没有办法阻止 IWorkbenchWindow 关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32054382/
所以我有我的 IWorkbenchWiondow 对象,window。 我将这个监听器添加到它: window.addPageListener(new IPageListener() { @O
我想测试 Eclipse 插件的命令处理程序类。这就是为什么我想在此处理程序类的构造函数中注入(inject) IWorkbenchWindow 的实例,因为 PlatformUI.getWorkbe
我创建了一个 ToolControl(位于 WindowTrim Id 下:“org.eclipse.ui.trim.status”),ID 为“org.eclipse.ui.ProgressBar”
我是一名优秀的程序员,十分优秀!