代码禁用主窗口的RCP e4应用程序关闭按钮

时间:2012-10-05 06:56:24

标签: eclipse-rcp rcp

有没有办法可以禁用主窗口的RCP e4应用程序关闭按钮。我尝试获取活动shell并添加event.doit = false。但这不起作用。即使我点击是或否,应用程序也会关闭。

1 个答案:

答案 0 :(得分:1)

首先创建你的处理程序:

public class WindowCloseHandler implements IWindowCloseHandler{
        @Override
        public boolean close(MWindow window) {
//          System.out.println("in window close handler");
            Object shell = window.getWidget();
            return MessageDialog.openConfirm((Shell) shell, "Confirmation",
                    "Do you want to exit?");
        }
}

其次将处理程序放在窗口上下文中:我在应用程序中任何部分的post构造方法中执行此操作: 公共类SamplePart {

...

@PostConstruct public void createComposite(复合父级,         应用程序应用程序,         EModelService服务         ){

        ... setup the part ...

WindowCloseHandler close_handler = new WindowCloseHandler();
java.util.List<MTrimmedWindow> wins = 
        service.findElements(app, null, null, null);
for(Object win : wins){
    if(win instanceof MTrimmedWindow)
    ((MTrimmedWindow)win).getContext().set(IWindowCloseHandler.class, close_handler);
    else if(win instanceof MWindow)              ((MWindow)win).getContext().set(IWindowCloseHandler.class, close_handler);
}

}