Igor,

This was great.  Exactly what I needed.  I applied this to my TextField and
DropDownChoice with a few tweaks and it's perfect.  But when I went to do
the same to TextArea, I am told that onComponentTagBody is final and cannot
be overridden.

So i tired without that method overidden like so:

        public void onComponentTag(ComponentTag tag) { 
                super.onComponentTag(tag); 
                if (!isEnabledInHierarchy()) { 
                        tag.setName("label"); 
                        tag.remove("type"); 
                        tag.remove("value"); 
                        tag.remove("disabled");
                        tag.setType(TagType.OPEN); 
                } 
        } 

//      public void onComponentTagBody(final MarkupStream markupStream, final
ComponentTag openTag) { 
//              if (!isEnabledInHierarchy()) { 
//                      replaceComponentTagBody(markupStream, openTag,
getDefaultModelObjectAsString()); 
//              }
//      } 

And that produced the following exception:
org.apache.wicket.markup.MarkupException: Component [narrative] (path =
[4:oagForm:narrative]) must be applied to a tag of type [textarea], not: 
'<label wicket:id="narrative" name="narrative">' (line 0, column 0)
        at
org.apache.wicket.markup.MarkupStream.throwMarkupException(MarkupStream.java:526)
~[wicket-core-6.12.0.jar:6.12.0]
        at org.apache.wicket.Component.checkComponentTag(Component.java:3550)
~[wicket-core-6.12.0.jar:6.12.0]
        at
org.apache.wicket.markup.html.form.TextArea.onComponentTagBody(TextArea.java:65)
~[wicket-core-6.12.0.jar:6.12.0]
        at
org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:71)
~[wicket-core-6.12.0.jar:6.12.0]
        at 
org.apache.wicket.Component.internalRenderComponent(Component.java:2549)
~[wicket-core-6.12.0.jar:6.12.0]
        at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1493)
~[wicket-core-6.12.0.jar:6.12.0]
        at org.apache.wicket.Component.internalRender(Component.java:2379)
~[wicket-core-6.12.0.jar:6.12.0]
        at org.apache.wicket.Component.render(Component.java:2307)
~[wicket-core-6.12.0.jar:6.12.0]
        at 
org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1390)
~[wicket-core-6.12.0.jar:6.12.0]
        at 
org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1554)
~[wicket-core-6.12.0.jar:6.12.0]
        at
org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1529)
~[wicket-core-6.12.0.jar:6.12.0]
        at
org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1484)
~[wicket-core-6.12.0.jar:6.12.0]
        at
org.apache.wicket.markup.html.form.Form.onComponentTagBody(Form.java:1683)
~[wicket-core-6.12.0.jar:6.12.0]
        at
org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:71)
~[wicket-core-6.12.0.jar:6.12.0]
        at 
org.apache.wicket.Component.internalRenderComponent(Component.java:2549)
~[wicket-core-6.12.0.jar:6.12.0]
        at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1493)
~[wicket-core-6.12.0.jar:6.12.0]
        at org.apache.wicket.Component.internalRender(Component.java:2379)
~[wicket-core-6.12.0.jar:6.12.0]
        at org.apache.wicket.Component.render(Component.java:2307)
~[wicket-core-6.12.0.jar:6.12.0]
        at 
org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1390)
~[wicket-core-6.12.0.jar:6.12.0]
        at 
org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1554)
~[wicket-core-6.12.0.jar:6.12.0]
        at org.apache.wicket.Page.onRender(Page.java:876)
~[wicket-core-6.12.0.jar:6.12.0]
        at org.apache.wicket.markup.html.WebPage.onRender(WebPage.java:142)
~[wicket-core-6.12.0.jar:6.12.0]
        at org.apache.wicket.Component.internalRender(Component.java:2379)
~[wicket-core-6.12.0.jar:6.12.0]
        at org.apache.wicket.Component.render(Component.java:2307)
~[wicket-core-6.12.0.jar:6.12.0]
        at org.apache.wicket.Page.renderPage(Page.java:1010)
~[wicket-core-6.12.0.jar:6.12.0]
        at
org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:121)
~[wicket-core-6.12.0.jar:6.12.0]
        at
org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:274)
~[wicket-core-6.12.0.jar:6.12.0]
        at
org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:165)
~[wicket-core-6.12.0.jar:6.12.0]
        at
org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:861)
~[wicket-core-6.12.0.jar:6.12.0]
        at
org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
~[wicket-request-6.12.0.jar:6.12.0]
        at
org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:261)
[wicket-core-6.12.0.jar:6.12.0]
        at
org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:218)
[wicket-core-6.12.0.jar:6.12.0]
        at
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:289)
[wicket-core-6.12.0.jar:6.12.0]
        at
org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259)
[wicket-core-6.12.0.jar:6.12.0]
        at
org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201)
[wicket-core-6.12.0.jar:6.12.0]
        at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282)
[wicket-core-6.12.0.jar:6.12.0]


I love this technique as it is so clean and direct to the problem.  How can
I make it work for TextArea?

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/Show-textfield-as-plaintext-when-disabled-tp4664723p4664868.html
Sent from the Users forum mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to