X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.ui%2Fsrc%2Forg%2Fargeo%2Fcms%2Fui%2FAbstractCmsApp.java;h=77cd9838305b1c14dfc2ace95a06b887a4e2b27b;hb=c5d120d226b31b3d930fc3006c56ac9e4d29ed2a;hp=9a1e41fd17f238164088a1e7dd9cbe630af1725d;hpb=1233dcea2383bfe5c83e5ec33d0c502afff22601;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.ui/src/org/argeo/cms/ui/AbstractCmsApp.java b/org.argeo.cms.ui/src/org/argeo/cms/ui/AbstractCmsApp.java index 9a1e41fd1..77cd98383 100644 --- a/org.argeo.cms.ui/src/org/argeo/cms/ui/AbstractCmsApp.java +++ b/org.argeo.cms.ui/src/org/argeo/cms/ui/AbstractCmsApp.java @@ -2,23 +2,21 @@ package org.argeo.cms.ui; import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; -import java.util.TreeMap; + +import javax.jcr.Repository; import org.eclipse.rap.rwt.RWT; +/** Base class for {@link CmsApp}s. */ public abstract class AbstractCmsApp implements CmsApp { - private Map themes = Collections.synchronizedSortedMap(new TreeMap<>()); + private Map themes = Collections.synchronizedMap(new HashMap<>()); private List cmsAppListeners = new ArrayList<>(); - @Override - public Set getUiNames() { - // TODO Auto-generated method stub - return null; - } + private Repository repository; protected abstract String getThemeId(String uiName); @@ -27,10 +25,13 @@ public abstract class AbstractCmsApp implements CmsApp { String themeId = getThemeId(uiName); if (themeId == null) return null; + if (!themes.containsKey(themeId)) + throw new IllegalArgumentException("Theme " + themeId + " not found."); return themes.get(themeId); } - protected boolean allThemesAvailable() { + @Override + public boolean allThemesAvailable() { boolean themeMissing = false; uiNames: for (String uiName : getUiNames()) { String themeId = getThemeId(uiName); @@ -67,4 +68,12 @@ public abstract class AbstractCmsApp implements CmsApp { cmsAppListeners.remove(listener); } + protected Repository getRepository() { + return repository; + } + + public void setRepository(Repository repository) { + this.repository = repository; + } + }