diff --git a/de.pellepelster.myadmin.client.base/src/de/pellepelster/myadmin/client/base/modules/dictionary/model/DictionaryModelProvider.java b/de.pellepelster.myadmin.client.base/src/de/pellepelster/myadmin/client/base/modules/dictionary/model/DictionaryModelProvider.java index 52c02602..0fdb2ef0 100644 --- a/de.pellepelster.myadmin.client.base/src/de/pellepelster/myadmin/client/base/modules/dictionary/model/DictionaryModelProvider.java +++ b/de.pellepelster.myadmin.client.base/src/de/pellepelster/myadmin/client/base/modules/dictionary/model/DictionaryModelProvider.java @@ -11,8 +11,10 @@ */ package de.pellepelster.myadmin.client.base.modules.dictionary.model; +import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; +import java.util.List; import java.util.Map; import de.pellepelster.myadmin.client.base.db.vos.IBaseVO; @@ -34,6 +36,18 @@ public static IDictionaryModel getDictionary(String dictionaryName) } } + public static List getDictionaries(List dictionaryNames) + { + List dictionaryModels = new ArrayList(); + + for (String dictionaryName : dictionaryNames) + { + dictionaryModels.add(getDictionary(dictionaryName)); + } + + return dictionaryModels; + } + @Deprecated public static IDictionaryModel getDictionaryModelForClass(Class voClass) { diff --git a/de.pellepelster.myadmin.client.web/src/de/pellepelster/myadmin/client/web/modules/hierarchical/HierarchicalTreeModule.java b/de.pellepelster.myadmin.client.web/src/de/pellepelster/myadmin/client/web/modules/hierarchical/HierarchicalTreeModule.java index ea7521ac..8a8da698 100644 --- a/de.pellepelster.myadmin.client.web/src/de/pellepelster/myadmin/client/web/modules/hierarchical/HierarchicalTreeModule.java +++ b/de.pellepelster.myadmin.client.web/src/de/pellepelster/myadmin/client/web/modules/hierarchical/HierarchicalTreeModule.java @@ -19,8 +19,12 @@ import com.google.gwt.user.client.rpc.AsyncCallback; +import de.pellepelster.myadmin.client.base.db.vos.IBaseVO; import de.pellepelster.myadmin.client.base.db.vos.IHierarchicalVO; import de.pellepelster.myadmin.client.base.module.IModule; +import de.pellepelster.myadmin.client.base.modules.dictionary.hooks.DictionaryHookRegistry; +import de.pellepelster.myadmin.client.base.modules.dictionary.model.DictionaryModelProvider; +import de.pellepelster.myadmin.client.base.modules.dictionary.model.IDictionaryModel; import de.pellepelster.myadmin.client.base.modules.hierarchical.HierarchicalConfigurationVO; import de.pellepelster.myadmin.client.base.util.CollectionUtils; import de.pellepelster.myadmin.client.base.util.SimpleCallback; @@ -88,6 +92,17 @@ public void onSuccess(HierarchicalConfigurationVO result) } } + for (String dictionaryId : HierarchicalTreeModule.this.hierarchicalConfiguration.getDictionaryIds()) + { + List childDictionaryIds = HierarchicalTreeModule.this.hierarchicalConfiguration.getChildDictionaryIds(dictionaryId); + + if (!childDictionaryIds.isEmpty()) + { + List childDictionaries = DictionaryModelProvider.getDictionaries(childDictionaryIds); + DictionaryHookRegistry.getInstance().addEditorHook(dictionaryId, new HierarchicalEditorHook(childDictionaries)); + } + } + getModuleCallback().onSuccess(HierarchicalTreeModule.this); } });