use of org.mycore.wcms2.datamodel.MCRNavigationMenuItem in project mycore by MyCoRe-Org.
the class MCRWCMSDefaultNavigationProvider method add.
private JsonObject add(MCRNavigationBaseItem item, JsonArray hierarchy, JsonArray items) {
int id = items.size();
JsonObject jsonItem = gson.toJsonTree(item).getAsJsonObject();
jsonItem.addProperty(JSON_WCMS_ID, id);
jsonItem.remove(JSON_CHILDREN);
WCMSType type = null;
String href = null;
if (item instanceof MCRNavigation) {
type = WCMSType.root;
href = ((MCRNavigation) item).getHrefStartingPage();
} else if (item instanceof MCRNavigationMenuItem) {
type = WCMSType.menu;
href = ((MCRNavigationMenuItem) item).getDir();
} else if (item instanceof MCRNavigationItem) {
type = WCMSType.item;
href = ((MCRNavigationItem) item).getHref();
} else if (item instanceof MCRNavigationInsertItem) {
type = WCMSType.insert;
} else if (item instanceof MCRNavigationGroup) {
type = WCMSType.group;
} else {
LOGGER.warn("Unable to set type for item {}", id);
}
jsonItem.addProperty(JSON_WCMS_TYPE, type.name());
if (href != null) {
jsonItem.add("access", getAccess(href));
}
items.add(jsonItem);
// create hierarchy for root
JsonObject hierarchyObject = new JsonObject();
hierarchyObject.addProperty(JSON_WCMS_ID, id);
hierarchy.add(hierarchyObject);
return hierarchyObject;
}
Aggregations