[Yanel-commits] rev 22759 -
public/yanel/trunk/src/core/java/org/wyona/yanel/servlet
michi at wyona.com
michi at wyona.com
Sat Feb 17 21:30:16 CET 2007
Author: michi
Date: 2007-02-17 21:30:15 +0100 (Sat, 17 Feb 2007)
New Revision: 22759
Modified:
public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
prototype of toolbar added
Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java 2007-02-17 20:29:23 UTC (rev 22758)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java 2007-02-17 20:30:15 UTC (rev 22759)
@@ -96,6 +96,8 @@
public static final String DEFAULT_ENCODING = "UTF-8";
+ public static final String VIEW_ID_PARAM_NAME = "yanel.resource.viewid";
+
/**
*
*/
@@ -193,17 +195,66 @@
}
String toolbar = (String) session.getAttribute(TOOLBAR_KEY);
+ // TODO: Check mime-type and yanel.no-toolbar parameter
if (toolbar != null && toolbar.equals("on")) {
+ String mimeType = null;
+ Resource resource = getResource(request, response);
+ if (ResourceAttributeHelper.hasAttributeImplemented(resource, "Viewable", "2")) {
+ try {
+ mimeType = ((ViewableV2) resource).getMimeType(request.getParameter(VIEW_ID_PARAM_NAME));
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ }
+ }
+ if (mimeType != null && mimeType.indexOf("html") > 0) {
if (toolbarMasterSwitch.equals("on")) {
- log.warn("TODO: Embed toolbar ...");
- getContent(request, response);
+ String noToolbar = request.getParameter("yanel.no-toolbar");
+ // TODO: Check on the referer with getHeader("Referer") and check if the referer used the yanel.no-toolbar parameter ...
+ log.error("DEBUG: Referer: " + request.getHeader("Referer"));
+ if (noToolbar == null) {
+ log.warn("TODO: Embed toolbar ...");
+ StringBuffer tb = new StringBuffer("<html>");
+ tb.append("<body style=\"padding: 0; margin: 0; overflow: hidden;\">");
+ tb.append("<table>");
+ tb.append("<tr>");
+ tb.append("<td><a href=\"create-new-page.html\">New Page</a></td>");
+ tb.append("<td> | </td>");
+ tb.append("<td><a href=\"?yanel.toolbar=off\">Turn of toolbar</a></td>");
+ tb.append("<td> | </td>");
+ tb.append("<td><a href=\"?yanel.usecase=logout\">Logout</a></td>");
+ Identity identity = (Identity) session.getAttribute(IDENTITY_KEY);
+ if (identity != null) {
+ tb.append("<td>    User: " + identity.getUsername() + "</td>");
+ } else {
+ tb.append("<td>    Not signed in!</td>");
+ }
+ tb.append("</tr>");
+ tb.append("</table>");
+ // TODO: Enhance/Patch all hypertext links with target="top"
+ // TODO: Consider proxy and query-string ...
+ //tb.append("<iframe src=\"http://127.0.0.1:8080/\" width=\"100%\" height=\"100%\"/>");
+ tb.append("<iframe src=\"" + request.getRequestURI() + "?yanel.no-toolbar\" width=\"100%\" height=\"100%\"/>");
+ tb.append("</body>");
+ tb.append("</html>");
+ response.getWriter().print(tb);
+ return;
+ } else {
+ // TODO: Enhance/Patch all hypertext links with yanel.no-toolbar
+ log.error("DEBUG: Requested by iframe src ...");
+ getContent(request, response);
+ return;
+ }
} else {
log.info("Toolbar has been disabled. Please check web.xml!");
- getContent(request, response);
}
+ } else {
+ log.error("DEBUG: No HTML related mime type: " + mimeType);
+ }
} else {
- getContent(request, response);
+ log.error("DEBUG: Toolbar is turned off.");
}
+ getContent(request, response);
+ return;
}
/**
@@ -284,7 +335,7 @@
viewElement.appendChild(doc.createTextNode("No View Descriptors!"));
}
- String viewId = request.getParameter("yanel.resource.viewid");
+ String viewId = request.getParameter(VIEW_ID_PARAM_NAME);
try {
view = ((ViewableV1) res).getView(request, viewId);
} catch(org.wyona.yarep.core.NoSuchNodeException e) {
@@ -311,7 +362,7 @@
}
} else if (ResourceAttributeHelper.hasAttributeImplemented(res, "Viewable", "2")) {
log.debug("Resource is viewable V2");
- String viewId = request.getParameter("yanel.resource.viewid");
+ String viewId = request.getParameter(VIEW_ID_PARAM_NAME);
Element viewElement = (Element) resourceElement.appendChild(doc.createElement("view"));
viewElement.setAttributeNS(NAMESPACE, "version", "2");
ViewDescriptor[] vd = ((ViewableV2) res).getViewDescriptors();
More information about the Yanel-commits
mailing list