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()))
{