[
https://issues.apache.org/jira/browse/WICKET-1134?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13070484#comment-13070484
]
Abul Fayes commented on WICKET-1134:
------------------------------------
It is sad so see that the resolution is set to "Won't Fix" which I understand
to mean it won't be implemented. The ability to reuse the same parent html
markup in multiple child pages and have the ability to override one to many
sections is a basic functionality in templating technologies. You can do this
in Django, Apache tiles, and I am sure there are other countless examples that
I am not aware of.
@igor: the abstract method technique where each child class provides the custom
components is not a complete solution to the problem. if there are 100 child
pages where the only difference is two content areas, each child page will also
have to reconstitute/duplicate the common markup areas such as nav, footer etc.
whereas child pages should only provide markup for overridden areas. In the
case where you want to restyle/reposition div elements, if the functionality in
question was implemented this would mean mainly changing the base markup rather
than a 100 html files! unless of course I have misunderstood something
> Multiple abstract/implement tags instead of child/extend
> --------------------------------------------------------
>
> Key: WICKET-1134
> URL: https://issues.apache.org/jira/browse/WICKET-1134
> Project: Wicket
> Issue Type: New Feature
> Components: wicket-core
> Affects Versions: 1.3.0-rc1
> Reporter: Stefan Fussenegger
> Assignee: Igor Vaynberg
> Priority: Minor
> Fix For: 1.5-M2.1
>
> Attachments: wicket-1134.patch, wicket-abstract-implement.patch
>
>
> The current implementation of wicket:child and wicket:extend only allows for
> a single extension per subpage. However, this restriction is neither mandated
> by java class hierarchy nor by any other reason. Therefore, it should be
> possible to extend the current implementation to support multiple 'abstract'
> sections, just like abstract methods in java classes. This could be done by
> replacing
> <wicket:child>
> <wicket:extend>
> some content
> </wicket:extend>
> </wicket:child>
> with
> <wicket:abstract id="foo">
> <wicket:implement id="foo">
> some content
> </wicket:extend>
> </wicket:child>
> (new names have been suggested in
> http://www.nabble.com/Multiple-%3Cwicket%3Achild--%3E-tags-on-a-single-base-page--tf4738673.html)
> A possible application is a layout with two columns, e.g. a header with
> navigation, a left column with sub-navigation and a right column with content
> (where the sub-navigation may change depending on the section. In deed, this
> is already possible using panels or similar means. However, it would allow to
> take advantage of markup inheritance only:
> BasePage extens WebPage:
> <div wicket:id="links>[some nav links here]</div>
> <div><wicket:abstract id="subNavigation">[left navigation goes
> here]</wicket:abstract></div>
> <div><wicket:abstract id="content">[content goes here]</wicket:abstract</div>
> SectionPage extends BasePage:
> <wicket:implement id="subNavigation">[sub navigation links
> here]</wicket:implement>
> FooPage extends SectionPage:
> <wicket:implement id="content">[content goes here]</wicket:implement>
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira