View Javadoc
1 /* 2 * Angkor Web Framework 3 * 4 * Distributable under LGPL license. 5 * See terms of license at gnu.org. 6 */ 7 8 package com.tirsen.angkor.process; 9 10 import com.tirsen.angkor.Debug; 11 import com.tirsen.angkor.RenderContext; 12 import com.tirsen.angkor.View; 13 import com.tirsen.angkor.ViewFactory; 14 import org.apache.log4j.Category; 15 16 /*** 17 * <!-- $Id: RenderValve.java,v 1.3 2002/10/09 21:37:37 tirsen Exp $ --> 18 * <!-- $Author: tirsen $ --> 19 * 20 * @author Jon Tirs´n (tirsen@users.sourceforge.net) 21 * @version $Revision: 1.3 $ 22 */ 23 public abstract class RenderValve implements Valve 24 { 25 public static final ExecuteContext.Attribute ViewFactoryAttribute = new ExecuteContext.Attribute("ViewFactory"); 26 27 /*** 28 * Create a sub-pipeline which is executed for each view factory to render. 29 * In this abstract class no actual render valve is added but subclasses must add it's own variety to the end. 30 */ 31 protected Pipeline createRenderPipeline() 32 { 33 Pipeline pipeline = new DefaultPipeline(); 34 pipeline.addValve(new CreateViewValve()); 35 return pipeline; 36 } 37 38 public static class CreateViewValve implements Valve 39 { 40 private static final Category logger = Debug.getCategory(); 41 42 public void execute(ExecuteContext exec) throws Exception 43 { 44 ViewFactory factory = (ViewFactory) exec.getAttribute(ViewFactoryAttribute); 45 if (factory != null) 46 { 47 //logger.debug("NOT preparing " + factory + " for render"); 48 //factory.prepare(); 49 logger.debug("creating view for " + factory); 50 View view = factory.getView(); 51 exec.setAttribute(ExecuteContext.CurrentViewAttribute, view); 52 } 53 exec.executeNext(); 54 } 55 } 56 57 public static class DoRenderValve implements Valve 58 { 59 public void execute(ExecuteContext exec) throws Exception 60 { 61 View view = (View) exec.getAttribute(ExecuteContext.CurrentViewAttribute); 62 RenderContext renderContext = (RenderContext) exec.getAttribute(ExecuteContext.RenderContextAttribute); 63 view.render(renderContext); 64 exec.executeNext(); 65 } 66 } 67 68 public abstract void execute(ExecuteContext exec) throws Exception; 69 }

This page was automatically generated by Maven