ItEr22S12CUVistaRecursosTempoPorProxectoItEr21S07: If the menu doesn't exist, tabs are not registered.

This commit is contained in:
Óscar González Fernández 2009-08-18 12:26:56 +02:00
parent cd5a88b405
commit 78afa5cab1
2 changed files with 13 additions and 4 deletions

View file

@ -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());
}

View file

@ -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();
}
}