0

メイン ウィンドウの RCP e4 アプリケーションの閉じるボタンを無効にする方法はありますか。アクティブなシェルを取得して、 event.doit = false を追加してみました。しかし、それは機能していません。はいまたはいいえをクリックしても、アプリケーションが閉じます。

4

1 に答える 1

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?");
        }
}

次に、ハンドラをウィンドウ コンテキストに配置します。アプリケーションの任意の部分のポスト コンストラクト メソッドで行います。 public class SamplePart {

...

@PostConstruct public void createComposite(複合親、MApplication アプリ、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);
}

}

于 2013-09-16T16:17:19.090 に答える