I only recently put the logic back into
WebMarkupContainerWithAssociatedMarkup. It is easy to put it into a
utlity class.
Juergen
On 11/29/06, Joni Freeman <[EMAIL PROTECTED]> wrote:
On Tue, 2006-11-28 at 21:24 -0800, Eelco Hillenius wrote:
> I've got around the fact that I can't do multiple inheritance to
> combine a component that is both a panel and a form component (or at
> least acts as one) in many ways now, but I really think we need to
> have a ready-to-use component for this now.
>
> This would be the simplified version:
>
> public class FormComponentPanel extends FormComponent {
>
> private boolean wasOpenCloseTag = false;
>
> public FormComponentPanel(String id) {
> super(id);
> // ensure class is loaded and tags are registered
> Class c = Panel.class;
> }
>
> public FormComponentPanel(String id, IModel model) {
> super(id, model);
> }
>
> @Override
> protected void onComponentTag(final ComponentTag tag) {
> if (tag.isOpenClose()) {
> this.wasOpenCloseTag = true;
> tag.setType(XmlTag.OPEN);
> }
> super.onComponentTag(tag);
> }
>
> @Override
> protected void onComponentTagBody(final MarkupStream markupStream,
> final ComponentTag openTag) {
> renderAssociatedMarkup("panel", "Markup for a panel component
has to
> contain part '<wicket:panel>'");
>
> if (this.wasOpenCloseTag == false) {
> markupStream.skipRawMarkup();
> }
> }
> }
>
> But that missed the <wicket:head> stuff that is in
> WebMarkupContainerWithAssociatedMarkup.
>
> Anyone (Juergen?) suggestions on how to create such a component
> without ending up with a lot of duplicated code? Or maybe now is the
> time to extract a IFormComponent interface or a bunch of form related
> interfaces?
+1. We need this functionality too:
http://www.mail-archive.com/wicket-user%
40lists.sourceforge.net/msg18646.html
There's already IFormProcessingListener interface in wicket 2 which can
be used to intercept traversal of child components.
http://mail-archives.apache.org/mod_mbox/incubator-wicket-dev/200610.mbox/[EMAIL
PROTECTED]
Joni