From 78afa5cab139c2d6e8d070dee84591ef0c72c316 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Tue, 18 Aug 2009 12:26:56 +0200 Subject: [PATCH] ItEr22S12CUVistaRecursosTempoPorProxectoItEr21S07: If the menu doesn't exist, tabs are not registered. --- .../src/main/java/org/zkoss/ganttz/Planner.java | 3 ++- .../ganttz/util/MenuItemsRegisterLocator.java | 14 +++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java b/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java index c7878758a..b6980d0cf 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java @@ -15,7 +15,6 @@ import org.zkoss.ganttz.extensions.ICommandOnTask; import org.zkoss.ganttz.extensions.IContext; import org.zkoss.ganttz.extensions.ITab; import org.zkoss.ganttz.extensions.ITabFactory; -import org.zkoss.ganttz.util.IMenuItemsRegister; import org.zkoss.ganttz.util.MenuItemsRegisterLocator; import org.zkoss.zk.ui.Executions; import org.zkoss.zul.impl.XulElement; @@ -142,6 +141,8 @@ public class Planner extends XulElement { } private void registryTabs(TabsRegistry tabs) { + if (!MenuItemsRegisterLocator.isRegistered()) + return; tabs.registerAtMenu(MenuItemsRegisterLocator.retrieve()); } diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/util/MenuItemsRegisterLocator.java b/ganttzk/src/main/java/org/zkoss/ganttz/util/MenuItemsRegisterLocator.java index 09d7490cd..646cda013 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/util/MenuItemsRegisterLocator.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/util/MenuItemsRegisterLocator.java @@ -20,13 +20,21 @@ public class MenuItemsRegisterLocator { return Executions.getCurrent().getDesktop(); } + public static boolean isRegistered() { + Object result = get(); + return result != null; + } + + private static Object get() { + return getDesktop().getAttribute(MENU_ATTRIBUTE); + } + public static IMenuItemsRegister retrieve() throws IllegalStateException { - Object result = getDesktop().getAttribute(MENU_ATTRIBUTE); - if (result == null) + if (!isRegistered()) throw new IllegalStateException("no " + IMenuItemsRegister.class.getSimpleName() + " registered"); - return (IMenuItemsRegister) result; + return (IMenuItemsRegister) get(); } }