1 15 package org.apache.tapestry.valid; 16 17 import org.apache.tapestry.AbstractComponent; 18 import org.apache.tapestry.BindingException; 19 import org.apache.tapestry.IForm; 20 import org.apache.tapestry.IMarkupWriter; 21 import org.apache.tapestry.IRequestCycle; 22 import org.apache.tapestry.Tapestry; 23 import org.apache.tapestry.TapestryUtils; 24 import org.apache.tapestry.form.IFormComponent; 25 26 34 35 public abstract class FieldLabel extends AbstractComponent 36 { 37 41 42 protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle) 43 { 44 if (cycle.isRewinding()) 45 return; 46 47 IForm form = TapestryUtils.getForm(cycle, this); 48 49 IFormComponent field = getField(); 50 51 if (field != null) 52 form.prerenderField(writer, field, getLocation()); 53 54 String displayName = getDisplayName(); 55 56 if (displayName == null) 57 { 58 if (field == null) 59 throw Tapestry.createRequiredParameterException(this, "field"); 60 61 displayName = field.getDisplayName(); 62 63 if (displayName == null) 64 throw new BindingException(ValidMessages.noDisplayName(this, field), this, null, 65 getBinding("field"), null); 66 } 67 68 IValidationDelegate delegate = form.getDelegate(); 69 70 String id = field == null ? null : field.getClientId(); 71 72 delegate.writeLabelPrefix(field, writer, cycle); 73 74 writer.begin("label"); 75 76 if (id != null) 77 writer.attribute("for", id); 78 79 82 renderInformalParameters(writer, cycle); 83 84 writer.print(displayName, getRaw()); 85 86 writer.end(); 87 88 delegate.writeLabelSuffix(field, writer, cycle); 89 } 90 91 92 public abstract String getDisplayName(); 93 94 95 public abstract IFormComponent getField(); 96 97 98 public abstract boolean getRaw(); 99 } | Popular Tags |