[
https://issues.apache.org/jira/browse/WICKET-1134?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12896734#action_12896734
]
Igor Vaynberg commented on WICKET-1134:
---------------------------------------
alternatives to this have been discussed and show many times
class basepage extends webpage {
protected abstract Component newArea1(String id);
protected abstract Component newArea2(String id);
protected void onInitialize() {
add(newArea1("a1"));
add(newArea2("a2"));
}
}
<html><div wicket:id="a1"></div><div wicket:id="a2"></div>
newArea1 can return a panel or a fragment or anything else you wish that can be
attached to the tag it is assigned in the base page.
it is a simple and elegant solution. i am not sure that implementing it using
these tags is a better idea ias it would still require that each are of webpage
is populated by a separate method in order to maintain any kind of
extensibility.
> 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
> Affects Versions: 1.3.0-rc1
> Reporter: Stefan Fussenegger
> Assignee: Johan Compagner
> Priority: Minor
> Fix For: 1.5-M2
>
> 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.
-
You can reply to this email to add a comment to the issue online.