package org.fenixedu.bennu.portal.api.json; import org.fenixedu.bennu.core.annotation.DefaultJsonAdapter; import org.fenixedu.bennu.core.json.JsonBuilder; import org.fenixedu.bennu.core.json.JsonViewer; import org.fenixedu.bennu.portal.domain.MenuContainer; import org.fenixedu.bennu.portal.domain.MenuItem; import org.fenixedu.bennu.portal.domain.PortalConfiguration; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @DefaultJsonAdapter(MenuItem.class) public class UserMenuViewer implements JsonViewer<MenuItem> { @Override public JsonElement view(MenuItem obj, JsonBuilder ctx) { JsonObject json = new JsonObject(); json.addProperty("id", obj.getExternalId()); json.addProperty("path", obj.getPath()); json.addProperty("fullPath", obj.getFullPath()); json.add("description", ctx.view(obj.getDescription())); json.add("title", ctx.view(obj.getTitle())); if (obj.isMenuContainer()) { MenuContainer container = obj.getAsMenuContainer(); if (container.isRoot()) { json.add("title", ctx.view(PortalConfiguration.getInstance().getApplicationTitle())); } json.add("menu", ctx.view(container.getUserMenuStream())); } return json; } }