WICKET-5177 (Simple)FormComponentLabel could output "required", "disabled" and 
"error" classes when its form component has the same


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/bc2fa6a0
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/bc2fa6a0
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/bc2fa6a0

Branch: refs/heads/wicket-4774
Commit: bc2fa6a05f531c21c677cbf839cfbf8815e9a1b1
Parents: e6f539d
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Fri May 3 09:27:33 2013 +0200
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Fri May 3 09:27:33 2013 +0200

----------------------------------------------------------------------
 .../markup/html/form/FormComponentLabel.java       |   26 ++++++++++++++-
 .../markup/html/form/SimpleFormComponentLabel.java |    3 +-
 2 files changed, 27 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/bc2fa6a0/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentLabel.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentLabel.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentLabel.java
index e0ff76c..59d34d9 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentLabel.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentLabel.java
@@ -58,8 +58,32 @@ public class FormComponentLabel extends WebMarkupContainer
        protected void onComponentTag(ComponentTag tag)
        {
                super.onComponentTag(tag);
+
                checkComponentTag(tag, "label");
-               tag.put("for", component.getMarkupId());
+
+               LabeledWebMarkupContainer formComponent = getFormComponent();
+
+               tag.put("for", formComponent.getMarkupId());
+
+               if (formComponent instanceof FormComponent<?>)
+               {
+                       FormComponent<?> fc = (FormComponent<?>) formComponent;
+
+                       if (fc.isRequired())
+                       {
+                               tag.append("class", "required", " ");
+                       }
+                       if (fc.isValid() == false)
+                       {
+                               tag.append("class", "error", " ");
+                       }
+               }
+
+               if (formComponent.isEnabledInHierarchy() == false)
+               {
+                       tag.append("class", "disabled", " ");
+               }
+
                // always transform the tag to <span></span> so even labels 
defined as <span/> render
                tag.setType(TagType.OPEN);
        }

http://git-wip-us.apache.org/repos/asf/wicket/blob/bc2fa6a0/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SimpleFormComponentLabel.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SimpleFormComponentLabel.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SimpleFormComponentLabel.java
index a2165aa..0155788 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SimpleFormComponentLabel.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SimpleFormComponentLabel.java
@@ -21,7 +21,7 @@ import org.apache.wicket.markup.MarkupStream;
 
 /**
  * A form component label that replaces its body with the contents of
- * {@link FormComponent#getLabel()}
+ * {@link LabeledWebMarkupContainer#getLabel() labelProvider's label}
  * 
  * @author Igor Vaynberg (ivaynberg)
  */
@@ -58,4 +58,5 @@ public class SimpleFormComponentLabel extends 
FormComponentLabel
        {
                replaceComponentTagBody(markupStream, openTag, 
getDefaultModelObjectAsString());
        }
+
 }
\ No newline at end of file

Reply via email to