:)
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
>