1 15 package org.apache.tapestry.components; 16 17 import org.apache.hivemind.HiveMind; 18 import org.apache.tapestry.AbstractComponent; 19 import org.apache.tapestry.IMarkupWriter; 20 import org.apache.tapestry.IRequestCycle; 21 22 28 29 public abstract class Conditional extends AbstractComponent 30 { 31 36 37 protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle) 38 { 39 if (evaluateCondition()) 40 { 41 String element = getElement(); 42 43 boolean render = !cycle.isRewinding() && HiveMind.isNonBlank(element); 44 45 if (render) 46 { 47 writer.begin(element); 48 renderInformalParameters(writer, cycle); 49 } 50 51 renderBody(writer, cycle); 52 53 if (render) 54 writer.end(element); 55 } 56 } 57 58 protected boolean evaluateCondition() 59 { 60 return getCondition() != getInvert(); 61 } 62 63 public abstract boolean getCondition(); 64 65 public abstract boolean getInvert(); 66 67 public abstract String getElement(); 68 } | Popular Tags |