1 package org.appfuse.webapp.tapestry; 2 3 import org.apache.tapestry.BindingException; 4 import org.apache.tapestry.IForm; 5 import org.apache.tapestry.IMarkupWriter; 6 import org.apache.tapestry.IRequestCycle; 7 import org.apache.tapestry.Tapestry; 8 import org.apache.tapestry.TapestryUtils; 9 import org.apache.tapestry.form.IFormComponent; 10 import org.apache.tapestry.valid.IValidationDelegate; 11 12 17 public abstract class FieldLabel extends org.apache.tapestry.valid.FieldLabel { 18 19 protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle) { 20 IForm form = TapestryUtils.getForm(cycle, this); 21 IFormComponent field = getField(); 22 23 if (field != null && isPrerender()) 24 form.prerenderField(writer, field, getLocation()); 25 26 if (cycle.isRewinding()) 27 return; 28 29 String displayName = getDisplayName(); 30 31 if (displayName == null) { 32 if (field == null) 33 throw Tapestry.createRequiredParameterException(this, "field"); 34 35 displayName = field.getDisplayName(); 36 37 if (displayName == null) 38 throw new BindingException(ValidMessages.noDisplayName(this, field), this, null, 39 getBinding("field"), null); 40 } 41 42 IValidationDelegate delegate = form.getDelegate(); 43 String id = field == null ? null : field.getClientId(); 44 45 47 writer.begin("label"); 48 delegate.writeLabelPrefix(field, writer, cycle); 49 50 if (id != null) { 51 writer.attribute("for", id); 52 } 53 54 delegate.writeLabelAttributes(writer, cycle, field); 55 renderInformalParameters(writer, cycle); 56 writer.print(displayName, getRaw()); 57 58 delegate.writeLabelSuffix(field, writer, cycle); 59 60 writer.end(); 61 62 } 64 } | Popular Tags |