Update of /var/cvs/src/org/mmbase/framework
In directory james.mmbase.org:/tmp/cvs-serv24887
Modified Files:
AbstractRenderer.java ChainedRenderer.java
ConnectionRenderer.java DeniedRenderer.java
EditwizardRenderer.java ErrorRenderer.java Framework.java
JspRenderer.java Renderer.java ResourceRenderer.java
StringRenderer.java Utils.java
Added Files:
RenderHints.java WindowState.java
Log Message:
ConnectionRenderer needing a REQUEST parameter was IMHO an indication that
something was wrong in the desing. Refactered a bit so that it is not needing
it any more. Renderers are now rendered with a 'RenderHints' object (which
wraps the previous WindowState argument)
See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/framework
RenderHints.java is new
WindowState.java is new
Index: AbstractRenderer.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/AbstractRenderer.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- AbstractRenderer.java 25 Aug 2008 21:45:19 -0000 1.13
+++ AbstractRenderer.java 26 Aug 2008 06:45:36 -0000 1.14
@@ -9,11 +9,11 @@
*/
package org.mmbase.framework;
-import javax.servlet.http.HttpServletRequest;
import java.io.Writer;
import java.io.IOException;
import org.mmbase.util.functions.Parameters;
+import org.mmbase.util.functions.Parameter;
import org.mmbase.util.logging.Logger;
import org.mmbase.util.logging.Logging;
@@ -21,7 +21,7 @@
* Abstract renderer implementation which implements getType and getBlock.
*
* @author Michiel Meeuwissen
- * @version $Id: AbstractRenderer.java,v 1.13 2008/08/25 21:45:19 michiel Exp $
+ * @version $Id: AbstractRenderer.java,v 1.14 2008/08/26 06:45:36 michiel Exp $
* @since MMBase-1.9
*/
abstract public class AbstractRenderer implements Renderer {
@@ -52,11 +52,8 @@
return null;
}
- protected void decorateIntro(HttpServletRequest request, Writer w, String
extraClass) throws IOException {
- if (request == null) {
- log.warn("No request found, could not set ID, CLASS", new
Exception());
- }
- w.write("<div id=\"" + (request == null ? "" :
request.getAttribute(Framework.COMPONENT_ID_KEY) )+ "\"");
+ protected void decorateIntro(RenderHints hints, Writer w, String
extraClass) throws IOException {
+ w.write("<div id=\"" + hints.getId() + "\"");
w.write(" class=\"");
if (extraClass != null) {
w.write(extraClass);
@@ -66,12 +63,15 @@
w.write(getBlock().getComponent().getName());
w.write(" b_");
w.write(getBlock().getName());
- w.write(" " + (request == null ? "" :
request.getAttribute(Framework.COMPONENT_CLASS_KEY)));
+ w.write(" " + hints.getStyleClass());
w.write("\">");
}
- protected void decorateOutro(HttpServletRequest request, Writer w) throws
IOException {
+ protected void decorateOutro(RenderHints hints, Writer w) throws
IOException {
w.write("</div>");
}
- public abstract void render(Parameters blockParameters, Parameters
frameworkParameters, Writer w, WindowState state) throws FrameworkException;
+ public Parameter[] getParameters() {
+ return new Parameter[] {};
+ }
+ public abstract void render(Parameters blockParameters, Parameters
frameworkParameters, Writer w, RenderHints hints) throws FrameworkException;
}
Index: ChainedRenderer.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/ChainedRenderer.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- ChainedRenderer.java 25 Mar 2008 21:00:24 -0000 1.5
+++ ChainedRenderer.java 26 Aug 2008 06:45:36 -0000 1.6
@@ -19,7 +19,7 @@
* block.
*
* @author Michiel Meeuwissen
- * @version $Id: ChainedRenderer.java,v 1.5 2008/03/25 21:00:24 nklasens Exp $
+ * @version $Id: ChainedRenderer.java,v 1.6 2008/08/26 06:45:36 michiel Exp $
* @since MMBase-1.9
*/
@@ -39,14 +39,16 @@
parameters = params.toArray(Parameter.EMPTY);
}
+ @Override
public Parameter[] getParameters() {
return parameters;
}
- public void render(Parameters blockParameters, Parameters
frameworkParameters, Writer w, WindowState state) throws FrameworkException {
+ @Override
+ public void render(Parameters blockParameters, Parameters
frameworkParameters, Writer w, RenderHints hints) throws FrameworkException {
for (Renderer renderer : chain) {
- renderer.render(blockParameters, frameworkParameters, w, state);
+ renderer.render(blockParameters, frameworkParameters, w, hints);
}
}
Index: ConnectionRenderer.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/ConnectionRenderer.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- ConnectionRenderer.java 25 Aug 2008 21:45:19 -0000 1.7
+++ ConnectionRenderer.java 26 Aug 2008 06:45:36 -0000 1.8
@@ -12,7 +12,7 @@
import java.util.*;
import java.net.*;
import java.io.*;
-import javax.servlet.http.*;
+
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.Source;
@@ -45,7 +45,7 @@
*
*
* @author Michiel Meeuwissen
- * @version $Id: ConnectionRenderer.java,v 1.7 2008/08/25 21:45:19 michiel Exp
$
+ * @version $Id: ConnectionRenderer.java,v 1.8 2008/08/26 06:45:36 michiel Exp
$
* @since MMBase-1.9
*/
public class ConnectionRenderer extends AbstractRenderer {
@@ -75,14 +75,15 @@
decorate = d;
}
+ @Override
public Parameter[] getParameters() {
- return new Parameter[] {Parameter.REQUEST}; // hmm.
+ return new Parameter[] {};
}
@Override
public void render(Parameters blockParameters, Parameters
frameworkParameters,
- Writer w, WindowState state) throws FrameworkException {
+ Writer w, RenderHints hints) throws FrameworkException {
if (w == null) throw new NullPointerException();
@@ -91,8 +92,7 @@
log.debug("Rendering with " + blockParameters);
}
if (decorate) {
- HttpServletRequest request =
blockParameters.get(Parameter.REQUEST);
- decorateIntro(request, w, null);
+ decorateIntro(hints, w, null);
}
HttpURLConnection connection = (HttpURLConnection)
url.openConnection();
connection.setConnectTimeout(timeOut);
@@ -142,8 +142,7 @@
if (decorate) {
log.debug("Decorating");
try {
- HttpServletRequest request =
blockParameters.get(Parameter.REQUEST);
- decorateOutro(request, w);
+ decorateOutro(hints, w);
} catch (Exception e) {
}
} else {
Index: DeniedRenderer.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/DeniedRenderer.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- DeniedRenderer.java 25 Apr 2008 14:31:39 -0000 1.6
+++ DeniedRenderer.java 26 Aug 2008 06:45:36 -0000 1.7
@@ -28,7 +28,7 @@
*
* @author Michiel Meeuwissen
* @author André van Toly
- * @version $Id: DeniedRenderer.java,v 1.6 2008/04/25 14:31:39 andre Exp $
+ * @version $Id: DeniedRenderer.java,v 1.7 2008/08/26 06:45:36 michiel Exp $
* @since MMBase-1.9
*/
@@ -44,7 +44,7 @@
return new Parameter[] {Parameter.RESPONSE, Parameter.REQUEST,
Parameter.LOCALE};
}
- public void render(Parameters blockParameters, Parameters
frameworkParameters, Writer w, Renderer.WindowState state) throws
FrameworkException {
+ public void render(Parameters blockParameters, Parameters
frameworkParameters, Writer w, RenderHints hints) throws FrameworkException {
switch(getType()) {
case BODY:
try {
Index: EditwizardRenderer.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/EditwizardRenderer.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- EditwizardRenderer.java 6 Aug 2007 16:56:44 -0000 1.13
+++ EditwizardRenderer.java 26 Aug 2008 06:45:36 -0000 1.14
@@ -22,7 +22,7 @@
* @todo Needs to produce a div, not an url.
*
* @author Michiel Meeuwissen
- * @version $Id: EditwizardRenderer.java,v 1.13 2007/08/06 16:56:44 michiel
Exp $
+ * @version $Id: EditwizardRenderer.java,v 1.14 2008/08/26 06:45:36 michiel
Exp $
* @since MMBase-1.9
*/
public class EditwizardRenderer extends AbstractRenderer {
@@ -48,7 +48,7 @@
/**
*/
- public void render(Parameters blockParameters, Parameters
frameworkParameters, Writer w, Renderer.WindowState state) throws
FrameworkException {
+ public void render(Parameters blockParameters, Parameters
frameworkParameters, Writer w, RenderHints hints) throws FrameworkException {
try {
HttpServletRequest request =
blockParameters.get(Parameter.REQUEST);
HttpServletResponse response =
blockParameters.get(Parameter.RESPONSE);
Index: ErrorRenderer.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/ErrorRenderer.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- ErrorRenderer.java 25 Aug 2008 21:45:19 -0000 1.13
+++ ErrorRenderer.java 26 Aug 2008 06:45:36 -0000 1.14
@@ -28,7 +28,7 @@
* share code.
*
* @author Michiel Meeuwissen
- * @version $Id: ErrorRenderer.java,v 1.13 2008/08/25 21:45:19 michiel Exp $
+ * @version $Id: ErrorRenderer.java,v 1.14 2008/08/26 06:45:36 michiel Exp $
* @since MMBase-1.9
*/
@@ -50,19 +50,19 @@
url = u;
}
+ @Override
public Parameter[] getParameters() {
- return new Parameter[] {Parameter.RESPONSE, Parameter.REQUEST,
Parameter.LOCALE};
+ return new Parameter[] {Parameter.RESPONSE};
}
- public void render(Parameters blockParameters, Parameters
frameworkParameters, Writer w, Renderer.WindowState state) throws
FrameworkException {
+
+ @Override
+ public void render(Parameters blockParameters, Parameters
frameworkParameters, Writer w, RenderHints hints) throws FrameworkException {
log.debug("Error rendering " + blockParameters + " " +
frameworkParameters);
switch(getType()) {
case BODY:
try {
- HttpServletRequest request =
blockParameters.get(Parameter.REQUEST);
- HttpServletResponse response =
blockParameters.get(Parameter.RESPONSE);
- Locale locale = blockParameters.get(Parameter.LOCALE);
- decorateIntro(request, w, "error");
+ decorateIntro(hints, w, "error");
w.write("<h1>" + error.status );
w.write(": ");
CharTransformer escape = new Xml(Xml.ESCAPE);
@@ -71,9 +71,10 @@
w.write(escape.transform(url));
w.write("</h1>");
w.write("<pre>");
+ HttpServletRequest request =
blockParameters.get(Parameter.REQUEST);
error.getErrorReport(w, request, escape);
w.write("</pre>");
- decorateOutro(request, w);
+ decorateOutro(hints, w);
} catch (IOException eio) {
throw new FrameworkException(eio.getMessage(), eio);
}
@@ -121,6 +122,7 @@
}
}
+ if (request != null) {
msg.append("Headers\n----------\n");
// request properties
Enumeration en = request.getHeaderNames();
@@ -135,23 +137,29 @@
String name = (String) en2.nextElement();
msg.append(escape.transform(name+":
"+request.getAttribute(name)+"\n"));
}
+ }
msg.append("\n");
msg.append("Misc. properties\n----------\n");
+ if (request != null) {
msg.append("method:
").append(escape.transform(request.getMethod())).append("\n");
msg.append("querystring:
").append(escape.transform(request.getQueryString())).append("\n");
msg.append("requesturl:
").append(escape.transform(request.getRequestURL().toString())).append("\n");
+ }
+
msg.append("mmbase version:
").append(org.mmbase.Version.get()).append("\n");
msg.append("status: ").append("" + status).append("\n\n");
+ if (request != null) {
msg.append("Parameters\n----------\n");
// request parameters
- en = request.getParameterNames();
+ Enumeration en = request.getParameterNames();
while (en.hasMoreElements()) {
String name = (String) en.nextElement();
msg.append(name).append(":
").append(escape.transform(request.getParameter(name))).append("\n");
}
+ }
msg.append("\nException\n----------\n\n" + (exception != null ?
(escape.transform(exception.getClass().getName())) : "NO EXCEPTION") + ": ");
Index: Framework.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/Framework.java,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -b -r1.57 -r1.58
--- Framework.java 8 Aug 2008 13:39:52 -0000 1.57
+++ Framework.java 26 Aug 2008 06:45:36 -0000 1.58
@@ -29,7 +29,7 @@
* @author Michiel Meeuwissen
* @author Nico Klasens
* @author André van Toly
- * @version $Id: Framework.java,v 1.57 2008/08/08 13:39:52 michiel Exp $
+ * @version $Id: Framework.java,v 1.58 2008/08/26 06:45:36 michiel Exp $
* @since MMBase-1.9
*/
public abstract class Framework {
@@ -166,7 +166,7 @@
* @param state the window state in which the content should be rendered
* @throws FrameworkException when the renderer failed to create content
or could not write data to the writer
*/
- public abstract void render(Renderer renderer, Parameters blockParameters,
Parameters frameworkParameters, Writer w, Renderer.WindowState state) throws
FrameworkException;
+ public abstract void render(Renderer renderer, Parameters blockParameters,
Parameters frameworkParameters, Writer w, WindowState state) throws
FrameworkException;
/**
* Processes a block. This method can change or se state information and
should be called prior to rendering a component's block.
Index: JspRenderer.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/JspRenderer.java,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- JspRenderer.java 25 Jan 2008 09:32:23 -0000 1.27
+++ JspRenderer.java 26 Aug 2008 06:45:36 -0000 1.28
@@ -23,7 +23,7 @@
* A Renderer implementation based on a jsp.
*
* @author Michiel Meeuwissen
- * @version $Id: JspRenderer.java,v 1.27 2008/01/25 09:32:23 michiel Exp $
+ * @version $Id: JspRenderer.java,v 1.28 2008/08/26 06:45:36 michiel Exp $
* @since MMBase-1.9
*/
public class JspRenderer extends AbstractRenderer {
@@ -42,6 +42,7 @@
return path.charAt(0) == '/' ? path : JSP_ROOT +
getBlock().getComponent().getName() + '/' + path;
}
+ @Override
public Parameter[] getParameters() {
return new Parameter[] {Parameter.RESPONSE, Parameter.REQUEST};
}
@@ -50,7 +51,8 @@
public int code = 200;
public String mesg = null;
}
- public void render(Parameters blockParameters, Parameters
frameworkParameters, Writer w, WindowState state) throws FrameworkException {
+ @Override
+ public void render(Parameters blockParameters, Parameters
frameworkParameters, Writer w, RenderHints hints) throws FrameworkException {
try {
HttpServletResponse response =
blockParameters.get(Parameter.RESPONSE);
HttpServletRequest request =
blockParameters.get(Parameter.REQUEST);
@@ -83,10 +85,10 @@
log.debug("Status " + status.code);
if (status.code == 401) {
DeniedRenderer denied = new DeniedRenderer(getType(),
getBlock());
- denied.render(blockParameters, frameworkParameters, w, state);
+ denied.render(blockParameters, frameworkParameters, w, hints);
} else if (status.code != 200) {
ErrorRenderer error = new ErrorRenderer(getType(), getBlock(),
url, status.code, status.mesg);
- error.render(blockParameters, frameworkParameters, w, state);
+ error.render(blockParameters, frameworkParameters, w, hints);
} else {
w.write(respw.toString());
}
@@ -102,6 +104,7 @@
return getPath() + (wrapper == null ? "" : "?" + wrapper);
}
+ @Override
public java.net.URI getUri() {
try {
return
org.mmbase.util.ResourceLoader.getWebRoot().getResource(getPath()).toURI();
Index: Renderer.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/Renderer.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- Renderer.java 1 Aug 2008 16:30:01 -0000 1.20
+++ Renderer.java 26 Aug 2008 06:45:36 -0000 1.21
@@ -21,31 +21,11 @@
* A Renderer is stateless.
*
* @author Michiel Meeuwissen
- * @version $Id: Renderer.java,v 1.20 2008/08/01 16:30:01 michiel Exp $
+ * @version $Id: Renderer.java,v 1.21 2008/08/26 06:45:36 michiel Exp $
* @since MMBase-1.9
*/
public interface Renderer {
- /**
- * Every block can be in a certain window state, which could be considered
during rendering.
- */
-
- enum WindowState {
- /**
- * Rendering may suppose a full browser window
- */
- MAXIMIZED,
- /**
- * Rendering should suppose only a 'link' version from the component.
- */
- MINIMIZED,
- /**
- * Rendering may suppose quite a large area, but should be aware that
other blocks are in a
- * similar state.
- */
- NORMAL;
- }
-
enum Type {
/**
* Not yet rendering
@@ -67,7 +47,7 @@
public Renderer getEmpty(final Block block) {
return new Renderer() {
public Type getType() { return Type.this; }
- public void render(Parameters parameters, Parameters
urlparameters, Writer w, WindowState state) { };
+ public void render(Parameters parameters, Parameters
urlparameters, Writer w, RenderHints hints) { };
public Parameter[] getParameters() { return
Parameter.emptyArray(); };
public Block getBlock() { return block ; };
public String toString() { return "EMPTY Renderer"; }
@@ -104,7 +84,7 @@
* Renders to a writer. In case of e.g. a JSPView, the parameters must
also contain
* the Http Servlet response and request, besided specific parameters for
this component.
*/
- void render(Parameters blockParameters, Parameters frameworkParameters,
Writer w, WindowState state) throws FrameworkException;
+ void render(Parameters blockParameters, Parameters frameworkParameters,
Writer w, RenderHints hints) throws FrameworkException;
/**
Index: ResourceRenderer.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/ResourceRenderer.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- ResourceRenderer.java 6 Aug 2008 15:48:57 -0000 1.6
+++ ResourceRenderer.java 26 Aug 2008 06:45:36 -0000 1.7
@@ -29,7 +29,7 @@
*
* @author Michiel Meeuwissen
- * @version $Id: ResourceRenderer.java,v 1.6 2008/08/06 15:48:57 michiel Exp $
+ * @version $Id: ResourceRenderer.java,v 1.7 2008/08/26 06:45:36 michiel Exp $
* @since MMBase-1.9
*/
public class ResourceRenderer extends AbstractRenderer {
@@ -44,10 +44,6 @@
super(t, parent);
}
- public Parameter[] getParameters() {
- return new Parameter[] {};
- }
-
public void setResource(String r) {
resource = r;
}
@@ -64,11 +60,9 @@
}
}
-
-
-
+ @Override
public void render(Parameters blockParameters, Parameters
frameworkParameters,
- Writer w, WindowState state) throws FrameworkException {
+ Writer w, RenderHints hints) throws FrameworkException {
try {
Index: StringRenderer.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/StringRenderer.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- StringRenderer.java 25 Mar 2008 21:00:24 -0000 1.11
+++ StringRenderer.java 26 Aug 2008 06:45:36 -0000 1.12
@@ -22,7 +22,7 @@
* file. Based on [EMAIL PROTECTED] PatternNodeFunctionProvider} so several
parameters can be present.
*
* @author Michiel Meeuwissen
- * @version $Id: StringRenderer.java,v 1.11 2008/03/25 21:00:24 nklasens Exp $
+ * @version $Id: StringRenderer.java,v 1.12 2008/08/26 06:45:36 michiel Exp $
* @since MMBase-1.9
*/
public class StringRenderer extends AbstractRenderer {
@@ -43,15 +43,16 @@
/**
* @todo should consider the string
*/
+ @Override
public Parameter[] getParameters() {
return new Parameter[] {Parameter.REQUEST};
}
- public void render(Parameters blockParameters, Parameters
frameworkParameters, Writer w, Renderer.WindowState state) throws
FrameworkException {
+ public void render(Parameters blockParameters, Parameters
frameworkParameters, Writer w, RenderHints hints) throws FrameworkException {
log.debug("Rendering " + string);
try {
HttpServletRequest request =
blockParameters.get(Parameter.REQUEST);
- if (request == null) throw new RuntimeException("No request
parameter in " + blockParameters);
+ if (request == null) throw new RuntimeException("No request
parameter in " + blockParameters); // hmm, not be essential
StringBuffer sb = new StringBuffer(string);
PatternNodeFunctionProvider.handleRequest(sb, blockParameters,
requestMethods);
w.write(sb.toString());
Index: Utils.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/Utils.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- Utils.java 1 Aug 2008 16:29:07 -0000 1.2
+++ Utils.java 26 Aug 2008 06:45:36 -0000 1.3
@@ -21,7 +21,7 @@
/**
* @author Michiel Meeuwissen
- * @version $Id: Utils.java,v 1.2 2008/08/01 16:29:07 michiel Exp $
+ * @version $Id: Utils.java,v 1.3 2008/08/26 06:45:36 michiel Exp $
* @since MMBase-1.9
*/
public abstract class Utils {
@@ -31,7 +31,7 @@
// this class has no instances
}
- public static Document renderToXml(Framework fw, Renderer renderer,
Parameters blockParameters, Parameters frameworkParameters,
Renderer.WindowState state,
+ public static Document renderToXml(Framework fw, Renderer renderer,
Parameters blockParameters, Parameters frameworkParameters, WindowState state,
Class<?> baseClass) throws
FrameworkException {
boolean validation = true;
boolean xsd = false;
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs