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&eacute; 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&eacute; 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

Reply via email to