From fd3e1d8dd330d4e31459d638315624e2ea887b02 Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Sun, 23 Jun 2013 11:21:27 +0800 Subject: [PATCH] IDEMPIERE-1090 Toolbar buttons are always shown despite Display Logic --- .../src/org/adempiere/webui/adwindow/ADWindowToolbar.java | 5 ++++- .../org/adempiere/webui/adwindow/ToolbarCustomButton.java | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowToolbar.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowToolbar.java index 1e80032b19..765ddd3ec0 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowToolbar.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ADWindowToolbar.java @@ -54,6 +54,7 @@ import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.event.KeyEvent; import org.zkoss.zk.ui.util.Clients; import org.zkoss.zul.Space; +import org.zkoss.zul.Toolbarbutton; /** * @@ -641,8 +642,10 @@ public class ADWindowToolbar extends FToolbar implements EventListener } public void dynamicDisplay() { + List customButtons = new ArrayList(); for(ToolbarCustomButton toolbarCustomBtn : toolbarCustomButtons) { toolbarCustomBtn.dynamicDisplay(); + customButtons.add(toolbarCustomBtn.getToolbarbutton()); } ADWindow adwindow = ADWindow.findADWindow(this); @@ -653,7 +656,7 @@ public class ADWindowToolbar extends FToolbar implements EventListener for (Component p = this.getFirstChild(); p != null; p = p.getNextSibling()) { if (p instanceof ToolBarButton) { - if (!p.isVisible()) + if (!customButtons.contains(p) && !p.isVisible()) p.setVisible(true); } } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ToolbarCustomButton.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ToolbarCustomButton.java index a142f98f6a..e6b65fa6e0 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ToolbarCustomButton.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/ToolbarCustomButton.java @@ -80,4 +80,8 @@ public class ToolbarCustomButton implements EventListener, Evaluatee { boolean visible = Evaluator.evaluateLogic(this, displayLogic); toolbarButton.setVisible(visible); } + + public Toolbarbutton getToolbarbutton() { + return toolbarButton; + } }