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