[Yanel-commits] rev 23253 -
public/yanel/trunk/src/core/java/org/wyona/yanel/servlet
simon at wyona.com
simon at wyona.com
Tue Mar 13 23:21:27 CET 2007
Author: simon
Date: 2007-03-13 23:21:26 +0100 (Tue, 13 Mar 2007)
New Revision: 23253
Modified:
public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
add middlewrap div see bug #5205 thanks to josias!
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-03-13 21:50:03 UTC (rev 23252)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java 2007-03-13 22:21:26 UTC (rev 23253)
@@ -1746,19 +1746,19 @@
String backToRealm = org.wyona.yanel.core.util.PathUtil.backToRealm(resource.getPath());
StringBuffer sb= new StringBuffer();
sb.append("<ul><li>");
- sb.append("<h2>File</h2><ul>");
+ sb.append("<div id=\"menutitle\">File</div><ul>");
sb.append("<li><a href=\"" + backToRealm + "create-new-page.html\">New</a></li>");
sb.append("<li><a href=\"?yanel.toolbar=off\">Turn off toolbar</a></li>");
sb.append("<li><a href=\"?yanel.usecase=logout\">Logout</a></li>");
sb.append("</ul></li></ul>");
sb.append("<ul><li>");
- sb.append("<h2>Edit</h2><ul>");
+ sb.append("<div id=\"menutitle\">Edit</div><ul>");
sb.append("<li>Open<ul><li>test</li></ul></li>");
sb.append("</ul></li></ul>");
sb.append("<ul><li>");
- sb.append("<h2>Help</h2><ul>");
+ sb.append("<div id=\"menutitle\">Help</div><ul>");
sb.append("<li>About</li>");
sb.append("</ul></li></ul>");
return sb.toString();
@@ -1805,13 +1805,14 @@
}
/**
- * Gets the part of the toolbar which has to be inserted into the html body.
+ * Gets the part of the toolbar which has to be inserted into the html body
+ * right after the opening body tag.
* @param resource
* @param request
* @return
* @throws Exception
*/
- private String getToolbarBody(Resource resource, HttpServletRequest request) throws Exception {
+ private String getToolbarBodyStart(Resource resource, HttpServletRequest request) throws Exception {
String backToRealm = org.wyona.yanel.core.util.PathUtil.backToRealm(resource.getPath());
StringBuffer buf = new StringBuffer();
buf.append("<div id=\"headerwrap\">");
@@ -1827,10 +1828,23 @@
buf.append("  <img src=\"" + backToRealm + reservedPrefix + "/yanel_toolbar_logo.gif\" id=\"toolbar_logo\"/>");
buf.append("</div>");
+ buf.append("<div id=\"middlewrap\">");
return buf.toString();
}
/**
+ * Gets the part of the toolbar which has to be inserted into the html body
+ * right before the closing body tag.
+ * @param resource
+ * @param request
+ * @return
+ * @throws Exception
+ */
+ private String getToolbarBodyEnd(Resource resource, HttpServletRequest request) throws Exception {
+ return "</div>";
+ }
+
+ /**
* Merges the toolbar and the page content. This will parse the html stream and add
* the toolbar.
* @param request
@@ -1849,31 +1863,40 @@
OutputStreamWriter writer = new OutputStreamWriter(response.getOutputStream(), encoding);
int c;
int state = OUTSIDE_TAG;
- StringBuffer tagNameBuf = null;
+ StringBuffer tagBuf = null;
while ((c = reader.read()) != -1) {
switch (state) {
case OUTSIDE_TAG:
if (c == '<') {
- tagNameBuf = new StringBuffer();
+ tagBuf = new StringBuffer("<");
state = INSIDE_TAG;
+ } else {
+ writer.write(c);
}
- writer.write(c);
break;
case INSIDE_TAG:
- writer.write(c);
+ //writer.write(c);
if (c == '>') {
state = OUTSIDE_TAG;
- String tagName = tagNameBuf.toString();
- if (tagName.startsWith("head")) {
+ tagBuf.append((char)c);
+ String tag = tagBuf.toString();
+ if (tag.startsWith("<head")) {
+ writer.write(tag, 0, tag.length());
String toolbarString = getToolbarHeader(resource, request);
writer.write(toolbarString, 0, toolbarString.length());
- }
- if (tagName.startsWith("body")) {
- String toolbarString = getToolbarBody(resource, request);
+ } else if (tag.startsWith("<body")) {
+ writer.write(tag, 0, tag.length());
+ String toolbarString = getToolbarBodyStart(resource, request);
writer.write(toolbarString, 0, toolbarString.length());
+ } else if (tag.equals("</body>")) {
+ String toolbarString = getToolbarBodyEnd(resource, request);
+ writer.write(toolbarString, 0, toolbarString.length());
+ writer.write(tag, 0, tag.length());
+ } else {
+ writer.write(tag, 0, tag.length());
}
} else {
- tagNameBuf.append((char)c);
+ tagBuf.append((char)c);
}
break;
}
More information about the Yanel-commits
mailing list