use of org.mycore.wcms2.datamodel.MCRNavigationItem in project mycore by MyCoRe-Org.
the class MCRWCMSNavigationManager method updateHref.
/**
* Runs recursive through the item tree and changes each href and hrefStartingPage attribute to the new href.
*
* @param item
* navigation item to change (and all its children)
* @param from
* which href to change
* @param to
* new value of href
* @return if something in the tree was changed
*/
public static boolean updateHref(MCRNavigationBaseItem item, String from, String to) {
boolean dirty = false;
if (item instanceof MCRNavigation) {
MCRNavigation navigation = (MCRNavigation) item;
if (navigation.getHrefStartingPage() != null && navigation.getHrefStartingPage().equals(from)) {
navigation.setHrefStartingPage(to);
dirty = true;
}
} else if (item instanceof MCRNavigationItem) {
MCRNavigationItem navItem = (MCRNavigationItem) item;
if (navItem.getHref().equals(from)) {
navItem.setHref(to);
dirty = true;
}
}
if (item instanceof MCRNavigationItemContainer) {
MCRNavigationItemContainer container = (MCRNavigationItemContainer) item;
for (MCRNavigationBaseItem child : container.getChildren()) {
if (updateHref(child, from, to)) {
dirty = true;
}
}
}
return dirty;
}
use of org.mycore.wcms2.datamodel.MCRNavigationItem 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