X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.app.ui%2Fsrc%2Forg%2Fargeo%2Fapp%2Fui%2FSuiteApp.java;fp=org.argeo.app.ui%2Fsrc%2Forg%2Fargeo%2Fapp%2Fui%2FSuiteApp.java;h=ef4aaff9545953eb3530bf09f52a964f00c22f81;hb=b32a7ed960be8dbaa50e605a409c14402db5b489;hp=9ad2673fc1216d79746a5de580c2a6b7f56dc359;hpb=84dffc3e1e2b16317533d13bf30d160f25ec7ced;p=gpl%2Fargeo-suite.git diff --git a/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java b/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java index 9ad2673..ef4aaff 100644 --- a/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java +++ b/org.argeo.app.ui/src/org/argeo/app/ui/SuiteApp.java @@ -2,7 +2,6 @@ package org.argeo.app.ui; import static org.argeo.api.cms.ux.CmsView.CMS_VIEW_UID_PROPERTY; -import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -659,27 +658,39 @@ public class SuiteApp extends AbstractCmsApp implements CmsEventSubscriber { } } +// public void addLayer(SuiteLayer layer, Map properties) { +// if (!properties.containsKey(Constants.SERVICE_PID)) +// throw new IllegalArgumentException("A layer must have an ID"); +// String pid = (String) properties.get(Constants.SERVICE_PID); +// List types = properties.containsKey(EntityConstants.TYPE) +// ? LangUtils.toStringList(properties.get(EntityConstants.TYPE)) +// : new ArrayList<>(); +// if (types.isEmpty()) { +// RankedObject.putIfHigherRank(layersByPid, pid, layer, properties); +// } else { +// if (layersByPid.containsKey(pid)) { +// RankedObject current = layersByPid.get(pid); +// List currentTypes = current.getProperties().containsKey(EntityConstants.TYPE) +// ? LangUtils.toStringList(current.getProperties().get(EntityConstants.TYPE)) +// : new ArrayList<>(); +// if (!types.containsAll(currentTypes)) { +// throw new IllegalArgumentException("Higher-ranked layer " + pid + " contains only types " + types +// + ", while it must override all " + currentTypes); +// } +// } +// RankedObject.putIfHigherRank(layersByPid, pid, layer, properties); +// for (String type : types) +// RankedObject.putIfHigherRank(layersByType, type, layer, properties); +// } +// } + public void addLayer(SuiteLayer layer, Map properties) { - if (!properties.containsKey(Constants.SERVICE_PID)) - throw new IllegalArgumentException("A layer must have an ID"); - String pid = (String) properties.get(Constants.SERVICE_PID); - List types = properties.containsKey(EntityConstants.TYPE) - ? LangUtils.toStringList(properties.get(EntityConstants.TYPE)) - : new ArrayList<>(); - if (types.isEmpty()) { - RankedObject.putIfHigherRank(layersByPid, pid, layer, properties); - } else { - if (layersByPid.containsKey(pid)) { - RankedObject current = layersByPid.get(pid); - List currentTypes = current.getProperties().containsKey(EntityConstants.TYPE) - ? LangUtils.toStringList(current.getProperties().get(EntityConstants.TYPE)) - : new ArrayList<>(); - if (!types.containsAll(currentTypes)) { - throw new IllegalArgumentException("Higher-ranked layer " + pid + " contains only types " + types - + ", while it must override all " + currentTypes); - } - } + if (properties.containsKey(Constants.SERVICE_PID)) { + String pid = (String) properties.get(Constants.SERVICE_PID); RankedObject.putIfHigherRank(layersByPid, pid, layer, properties); + } + if (properties.containsKey(EntityConstants.TYPE)) { + List types = LangUtils.toStringList(properties.get(EntityConstants.TYPE)); for (String type : types) RankedObject.putIfHigherRank(layersByType, type, layer, properties); }