Author: drobiazko
Date: Mon Nov  7 09:06:23 2011
New Revision: 1198655

URL: http://svn.apache.org/viewvc?rev=1198655&view=rev
Log:
TAP5-1747: Make labels generated by Checklist component clickable

Modified:
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.java

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.java?rev=1198655&r1=1198654&r2=1198655&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Checklist.java
 Mon Nov  7 09:06:23 2011
@@ -24,6 +24,7 @@ import org.apache.tapestry5.ioc.annotati
 import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
 import org.apache.tapestry5.services.ComponentDefaultProvider;
 import org.apache.tapestry5.services.Request;
+import org.apache.tapestry5.services.javascript.JavaScriptSupport;
 
 import java.util.Collections;
 import java.util.List;
@@ -92,6 +93,9 @@ public class Checklist extends AbstractF
     @Inject
     private ComponentDefaultProvider defaultProvider;
 
+    @Inject
+    private JavaScriptSupport javaScriptSupport;
+
     @Property
     private List<Renderable> availableOptions;
 
@@ -108,13 +112,15 @@ public class Checklist extends AbstractF
 
         public void render(MarkupWriter writer)
         {
-            writer.element("label");
+            final String clientId = 
javaScriptSupport.allocateClientId(componentResources);
+
+            writer.element("label", "for", clientId);
             writer.write(model.getLabel());
             writer.end();
 
             final String clientValue = encoder.toClient(model.getValue());
 
-            final Element checkbox = writer.element("input", "type", 
"checkbox", "name", getControlName(), "value", clientValue);
+            final Element checkbox = writer.element("input", "type", 
"checkbox", "id", clientId, "name", getControlName(), "value", clientValue);
 
             if (getSelected().contains(model.getValue()))
             {


Reply via email to