Hi,

It is up to the component on how to interpreted the disabled property. 
In your case you could make a new form component (use TextArea as 
template) that shows a div with scroll bars instead of an input element. 
If you still need the input element, simply add it, but make it hidden.

Regards,
      Erik.


ChuckDeal schreef:
> I'm not sure about other browsers, but IE6 doesn't allow scrolling of a
> disabled TextArea.  TextArea extends FormComponent and form component has an
> internal Behavior that adds the disabled attribute when the field is set to
> disabled (setEnabled(false)).  This causes my project grief because we need
> to add the READONLY attribute instead.  But, as far as I can see there is no
> way to remove a Behavior because they are not "named (ala a Map) and the
> getBehaviors returns an unmodifiable List.  I see that the
> DisabledAttributeModifier extends AttributeModifer that supports an enabled
> flag, but this internal class is private and it makes working with it
> difficult.
>
> Does this non-scrolling behavior happen with other browsers or just IE?  If
> it happens elsewhere, might I suggest that Wicket change it's default
> behavior to put a readonly attribute instead of disabled?
>
> What is the recommended way of working with behaviors that are already added
> to a Component?  
>
> Here is what I came up with for disabling the behavior for a TextArea. 
> Notice that I had to use the FQN instead of the Class object because the
> behavior is private to FormComponent.
>
> public class TextAreaFixer {
>       /**
>        * Constructor for TextAreaFixer
>        */
>       private TextAreaFixer() {
>               super();
>       }
>
>       /**
>        * Find the FormComponent$DisabledAttributeModifier and disable it!
>        * 
>        * @param textArea
>        */
>       public static void updateTextArea(TextArea textArea) {
>               for (IBehavior behavior : 
> (List<IBehavior>)textArea.getBehaviors()) {
>                       if
> (behavior.getClass().getName().equals("wicket.markup.html.form.FormComponent$DisabledAttributeModifier"))
> {
>                               ((AttributeModifier)behavior).setEnabled(false);
>                               break;
>                       }
>               }
>       }
> }
>
> Then to use it, in my code:
>
> TextArea description = new TextArea("description");
> add(description);
> TextAreaFixer.updateTextArea(description);
>
> Is ther a better way to do what I am trying to accomplish?
>
> Thanks!
>   

-- 
Erik van Oosten
http://www.day-to-day-stuff.blogspot.com/


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to