[Yanel-commits] rev 23744 -
public/yanel/trunk/src/core/java/org/wyona/yanel/servlet
michi at wyona.com
michi at wyona.com
Sat Apr 14 09:34:11 CEST 2007
Author: michi
Date: 2007-04-14 09:34:08 +0200 (Sat, 14 Apr 2007)
New Revision: 23744
Added:
public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/DefaultMenu.java
Log:
refactoring the yanel toolbar menu started
Added: public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/DefaultMenu.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/DefaultMenu.java 2007-04-13 21:46:30 UTC (rev 23743)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/DefaultMenu.java 2007-04-14 07:34:08 UTC (rev 23744)
@@ -0,0 +1,75 @@
+package org.wyona.yanel.servlet;
+
+import org.wyona.yanel.core.Resource;
+import org.wyona.yanel.core.map.Map;
+import org.wyona.yanel.core.map.Realm;
+
+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;
+
+/**
+ *
+ */
+public class DefaultMenu {
+
+ /**
+ * Get toolbar menus
+ */
+ private String getToolbarMenus(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>");
+
+ sb.append("<div id=\"yaneltoolbar_menutitle\">File</div><ul>");
+ sb.append("<li class=\"haschild\"><a href=\"" + backToRealm + "create-new-page.html\">New</a><ul><li><a href=\"" + backToRealm + "create-new-page.html?resource-type=http%3A%2F%2Fwww.wyona.org%2Fyanel%2Fresource%2F1.0%3A%3Axml\">Standard page (XHTML)</a></li><li><a href=\"" + backToRealm + "create-new-page.html?resource-type=http%3A%2F%2Fwww.wyona.org%2Fyanel%2Fresource%2F1.0%3A%3Awiki\">Wiki page</a></li></ul></li>");
+ sb.append("<li class=\"haschild\">New language<ul><li>German</li><li>Mandarin</li></ul></li>");
+ sb.append("<li>Publish</li>");
+ sb.append("</ul></li></ul>");
+
+ sb.append("<ul><li>");
+ sb.append("<div id=\"yaneltoolbar_menutitle\">Edit</div><ul>");
+ sb.append("<li class=\"haschild\">Open with<ul><li>Source editor</li><li>WYSIWYG editor</li></ul></li>");
+ sb.append("<li class=\"haschild\">Revisions<ul><li class=\"haschild\">53534<ul><li>Show diff</li><li>Revert to</li></ul></li><li class=\"haschild\">52108<ul><li>Show diff</li><li>Revert to</li></ul></li></ul></li>");
+ sb.append("</ul></li></ul>");
+
+ 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();
+ }
+
+ /**
+ * 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
+ */
+ private 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