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 Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs