如何在eclipse RCP 4中处理关闭选项卡

时间:2014-09-10 15:10:45

标签: java eclipse-rcp e4

我想在eclipse RCP 4应用程序中选项卡的脉冲关闭按钮时进行验证,如果某些验证失败则阻止de close。

1 个答案:

答案 0 :(得分:0)

如果您不希望part.setDirty(true)ISaveHandler一起使用greg-449 monister,您可以收听模型事件并更正其中的内容。在这个方向的东西:

public class PreventCloseAddon {
    @PostConstruct
    public void init(final IEventBroker eventBroker, final EPartService partService) {
        EventHandler tbrHandler = new EventHandler() {
            @Override
            public void handleEvent(Event event) {
                if (!UIEvents.isSET(event))
                    return;
                Object element = event.getProperty(UIEvents.EventTags.ELEMENT);
                if (element instanceof MPart) {
                    MPart part = (MPart) element;
                    if (!part.isToBeRendered()) {
                        // ... validate here ...
                        part.setToBeRendered(true);
                        partService.activate(part);
                    }
                }
            }
        };
        eventBroker.subscribe(UIEvents.UIElement.TOPIC_TOBERENDERED, tbrHandler);
    }
}

您应该知道该部件将使用此代码再次渲染。