:) On 11/29/06, Johan Compagner <[EMAIL PROTECTED]> wrote:
what makes a formcomponent a formcomponent? If we can extract this info really easy in a interface then that is fine by me. But should that interface impl always be a wicket component? Because then component also must be an interface? johan On 11/29/06, Eelco Hillenius <[EMAIL PROTECTED]> 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? > > Eelco >