diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowContent.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowContent.java index 75402e61b4..1780e33710 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowContent.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowContent.java @@ -195,34 +195,18 @@ public class ADWindowContent extends AbstractADWindowContent } } - class TabOnCloseHanlder implements ITabOnCloseHandler { - + class TabOnCloseHanlder implements ITabOnCloseHandler, Callback { + private Tabpanel tabPanel; public void onClose(Tabpanel tabPanel) { - if (ADWindowContent.this.getOnExitCallBack() == null){ - OnCloseCallback onCloseCallback = new OnCloseCallback(); - ADWindowContent.this.setOnExitCallBack(onCloseCallback); - onCloseCallback.setTabPanel(tabPanel); - } - if (ADWindowContent.this.onExit()) { - closeTab (tabPanel); - } - } - } - - class OnCloseCallback implements Callback{ - Tabpanel tabPanel; - public Tabpanel getTabPanel() { - return tabPanel; - } - public void setTabPanel(Tabpanel tabPanel) { this.tabPanel = tabPanel; + ADWindowContent.this.onExit(this); } @Override public void onCallback(Boolean result) { if (result){ - closeTab (tabPanel); - } - + closeTab (tabPanel); + } + this.tabPanel = null; } } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java index b3bcd97916..cc2dd3a7a0 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java @@ -970,33 +970,18 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements focusToActivePanel(); } - /** - * handle respond of user with close un save message. - * must set before call onExit - */ - private Callback onExitCallBack; - - public Callback getOnExitCallBack() { - return onExitCallBack; - } - - public void setOnExitCallBack(Callback onExitCallBack) { - this.onExitCallBack = onExitCallBack; - } - /** - * @return boolean + * @param callback */ - public boolean onExit() + public void onExit(Callback callback) { if (!boolChanges) { - return true; + callback.onCallback(Boolean.TRUE); } - else{ - - FDialog.ask(curWindowNo, null, "CloseUnSave?", getOnExitCallBack()); - return false; + else + { + FDialog.ask(curWindowNo, null, "CloseUnSave?", callback); } }