[Yanel-commits] rev 23758 - in
public/yanel/trunk/src/core/java/org/wyona/yanel/servlet: . menu
michi at wyona.com
michi at wyona.com
Sun Apr 15 13:48:04 CEST 2007
Author: michi
Date: 2007-04-15 13:48:02 +0200 (Sun, 15 Apr 2007)
New Revision: 23758
Added:
public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/menu/
public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/menu/Menu.java
public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/menu/impl/
Log:
menu made ready for extensibility
Added: public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/menu/Menu.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/menu/Menu.java 2007-04-15 11:21:52 UTC (rev 23757)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/menu/Menu.java 2007-04-15 11:48:02 UTC (rev 23758)
@@ -0,0 +1,80 @@
+package org.wyona.yanel.servlet.menu;
+
+import org.wyona.yanel.core.Resource;
+import org.wyona.yanel.core.map.Map;
+import org.wyona.yanel.core.map.Realm;
+import org.wyona.yanel.servlet.YanelServlet;
+
+import org.wyona.security.core.api.Identity;
+import org.wyona.security.core.api.IdentityMap;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+
+import java.io.IOException;
+
+/**
+ *
+ */
+abstract public class Menu {
+
+ /**
+ * Get yanel menu
+ */
+ public String getYanelMenu(Resource resource, HttpServletRequest request, Map map, String reservedPrefix) throws ServletException, IOException, Exception {
+ String backToRealm = org.wyona.yanel.core.util.PathUtil.backToRealm(resource.getPath());
+ StringBuffer sb= new StringBuffer();
+
+ sb.append("<ul><li>");
+ sb.append("<div id=\"yaneltoolbar_menutitle\">Yanel</div><ul>");
+ sb.append("<li><a href=\"?yanel.resource.meta\">View page info</a></li>");
+ sb.append("<li><a href=\"?yanel.toolbar=off\">Turn off toolbar</a></li>");
+ Identity identity = getIdentity(request, map);
+ if (identity != null) {
+ sb.append("<li><a href=\"" + backToRealm + reservedPrefix + "/users/" + identity.getUsername() + ".html\">My profile</a></li>");
+ sb.append("<li><a href=\"?yanel.usecase=logout\"><img class=\"yaneltoolbar_menuicon\" src=\"" + backToRealm + reservedPrefix + "/yanel-img/icons/system-log-out.png\" border=\"0\"/>Logout</a></li>");
+ }
+ sb.append("</ul></li></ul>");
+ sb.append("<ul><li>");
+
+ return sb.toString();
+ }
+
+ /**
+ * Get help menu
+ * Get toolbar menus
+ */
+ public String getHelpMenu(Resource resource, HttpServletRequest request, Map map, String reservedPrefix) throws ServletException, IOException, Exception {
+ StringBuffer sb= new StringBuffer();
+
+ sb.append("<ul><li>");
+ sb.append("<div id=\"yaneltoolbar_menutitle\">Help</div><ul>");
+ sb.append("<li>About</li>");
+ sb.append("</ul></li></ul>");
+ return sb.toString();
+ }
+
+ /**
+ * Get custom menus
+ */
+ abstract public String getMenus(Resource resource, HttpServletRequest request, Map map, String reservedPrefix) throws ServletException, IOException, Exception;
+
+ /**
+ * Gets the identity from the session associated with the given request.
+ * @param request
+ * @return identity or null if there is no identity in the session for the current
+ * realm or if there is no session at all
+ */
+ public Identity getIdentity(HttpServletRequest request, Map map) throws Exception {
+ Realm realm = map.getRealm(request.getServletPath());
+ HttpSession session = request.getSession(false);
+ if (session != null) {
+ IdentityMap identityMap = (IdentityMap)session.getAttribute(YanelServlet.IDENTITY_MAP_KEY);
+ if (identityMap != null) {
+ return (Identity)identityMap.get(realm.getID());
+ }
+ }
+ return null;
+ }
+}
More information about the Yanel-commits
mailing list