that's the idea. In 2.0 because it happens in the constructor you
wouldn't need any check it is attached just once.

Juergen

On 9/24/06, Igor Vaynberg <[EMAIL PROTECTED]> wrote:
> so how exactly does your solution work?
>
> we add IBehavior[] slot to ComponentTag
>
> allow markup tag handlers to populate it
>
> then on _first_ render the component checks its tag and transfers the
> behaviors over to itself in 1.2 and in the construction process in 2.0?
>
>
> -Igor
>
>
> On 9/23/06, Juergen Donnerstag <[EMAIL PROTECTED] > wrote:
> > The problem that resolvers are currently only called if the component
> > can not be found might be a problem. The fix seems simple, but I can
> > imagine quite a lot of side effects. To Johans point, the resolver
> > would be called for every component, and that is exactly what we try
> > to avoid.
> >
> > Juergen
> >
> > On 9/24/06, Igor Vaynberg <[EMAIL PROTECTED]> wrote:
> > > i guess what i dont like is having yet another way to do something here
> -
> > > and that is keeping special attribute modifiers in componenttag and
> > > attaching them to the component.
> > >
> > > why cant we do this with a resolver, and using normal attribute
> modifiers?
> > >
> > > WicketMessageResolver:74
> > >         if (tag.getAttributes ().containsKey("wicket:message
> > > ")&&tag.getId().startsWith("wicket-message"))
> > >         {
> > >             final String id = "_message_" +
> > > container.getPage().getAutoIndex();
> > >             container.autoAdd(new WebMarkupContainer(id)
> > >             {
> > >
> > >                 public boolean isTransparentResolver()
> > >                 {
> > >                     return true;
> > >                 }
> > >
> > >             });
> > >
> > >
> > > container.add(WicketMessageAttributeModifier.INSTANCE);
> > >             return true;
> > >         }
> > > and then below do the same for components that had wicket:message and
> > > wicket:id attrs in the markup.
> > >
> > > doesnt this solve the problem without introducing anything new into the
> > > framework? or is this less elegant then what you had in mind?
> > >
> > > -Igor
> > >
> > >
> > >
> > > On 9/23/06, Juergen Donnerstag <[EMAIL PROTECTED]> wrote:
> > > > (cont)  Because of Johan's performance concerns we came up with a
> > > > solution which doesn't have that penality. If the wicket message
> > > > handler detects a wicket:message attribute, it could add an attribute
> > > > modifier to the component tag, and the render process make sure they
> > > > get attached to the components associated with these tags, hence no
> > > > performance penalty.
> > > >
> > > > Juergen
> > > >
> > > > On 9/23/06, Juergen Donnerstag < [EMAIL PROTECTED] > wrote:
> > > > > We are going in circles, the solution already was laid out. Why are
> we
> > > > > starting at the beginning again?
> > > > >
> > > > > <wicket:message> already creates a container (not exactly, it
> creates
> > > > > a label) to replace the text.
> > > > >
> > > > > Changing wicket tag identifier IMO would the completely wrong way of
> > > > > doing it. If we do that we'll end up with discussions like "my
> > > > > attribute should create a compent tag as well.". IMO the rule is
> very
> > > > > simple: every tag which has a wicket:id becomes a component tag.
> > > > > Handlers, like WicketMessageHandler need to set the wicket:id with
> an
> > > > > automatically generated id, and we have several examples for that
> > > > > already.
> > > > >
> > > > > For the render process you now must register a resolver to handle
> tags
> > > > > with wicket:message where the id has been generated automaticaly,
> > > > > because you must automatically create a very simple container for
> > > > > that. This 5 lines of code, very simple.
> > > > >
> > > > > The real issue is that wicket:message attributes might appear in
> *any*
> > > > > component. Now you call it IComponentTagHandler, when I outlined the
> > > > > solution before I called it IOnComponentRenderListener and the
> methods
> > > > > are slightly different, but it essentially the same. The reason why
> we
> > > > > were looking for another solution is because Johan was complaining
> > > > > about the performance. Every component when rendered iterates over
> the
> > > > > list of application level handlers, and in case of wicket:message
> > > > > checks the attributes if an wicket:message attribute exists or not.
> > > > > Johan is worried about the penality it takes for all the components
> > > > > which don't have wicket:message tags, besides that he think
> > > > > wicket:message doesn't need to be extended at all.
> > > > >
> > > > > Juergen
> > > > >
> > > > > On 9/23/06, Igor Vaynberg < [EMAIL PROTECTED]> wrote:
> > > > > > i guess part 1 can be done in a tag handler...
> > > > > >
> > > > > > -Igor
> > > > > >
> > > > > >
> > > > > >
> > > > > > On 9/22/06, Igor Vaynberg < [EMAIL PROTECTED] > wrote:
> > > > > > > well, i looked into it and here is what you have to do. i dont
> have
> > > the
> > > > > > time this weeend (jewish new year) so maybe someone who does can
> > > implement
> > > > > > the full func.
> > > > > > >
> > > > > > > 1) you have to let wicket resolvers handle markup that has
> > > wicket:message
> > > > > > attr and no wicket:id, for this you need to make wicket think this
> tag
> > > is
> > > > > > not raw markup - so an id needs to be set
> > > > > > >
> > > > > > > WicketTagIdentifier:126
> > > > > > >
> > > > > > > // Identify wicket:message attr tags
> > > > > > >             if
> > > > > >
> > > (
> xmlTag.getAttributes().containsKey("wicket:message")&&tag.getId()==null)
> > > > > > >             {
> > > > > > >                    // replace random with some counter - but you
> get
> > > the
> > > > > > idea...
> > > > > > >                    tag.setId("wicket-message" + Math.random());
> > > > > > >             }
> > > > > > >
> > > > > > > now we need to autoadd a webmarkupcontainer for any of these
> tags
> > > > > > >
> > > > > > > WicketMessageResolver:74
> > > > > > >         if (tag.getAttributes
> > > > > >
> > >
> ().containsKey("wicket:message")&&tag.getId().startsWith("wicket-message"))
> > > > > > >         {
> > > > > > >             final String id = "_message_" +
> > > > > > container.getPage().getAutoIndex();
> > > > > > >             container.autoAdd (new WebMarkupContainer(id)
> > > > > > >             {
> > > > > > >
> > > > > > >                 public boolean isTransparentResolver()
> > > > > > >                 {
> > > > > > >                     return true;
> > > > > > >                 }
> > > > > > >
> > > > > > >             });
> > > > > > >             return true;
> > > > > > >         }
> > > > > > >
> > > > > > > and thats the meat of it, now you need that IComponentTagHandler
> {
> > > > > > oncomponenttag() } deal, a way to register it in settings and
> > > something like
> > > > > > >
> > > > > > > Component:1666 <=== wow
> > > > > > >
> > > > > > > Iterator handlers =
> > > > > >
> > >
> getApplicationSettings().getComponentTagHandlers().iterator();
> > > > > > >         while (handlers.hasNext())
> > > > > > >         {
> > > > > > >
> > > > > >
> > >
> ((IComponentTagHandler)handlers.next()).onComponentTag(this,
> > > > > > tag);
> > > > > > >         }
> > > > > > >
> > > > > > > and oh yeah...the taghandler that does the actual resource
> lookup
> > > > > > >
> > > > > > >
> > > > > > > -Igor
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > On 9/22/06, Eelco Hillenius < [EMAIL PROTECTED]> wrote:
> > > > > > >
> > > > > > > > On 9/22/06, Igor Vaynberg < [EMAIL PROTECTED] > wrote:
> > > > > > > > > but you DO want it to sync with your component tree because
> you
> > > want
> > > > > > the
> > > > > > > > > localization lookup to be synced to the component tree.
> > > > > > > >
> > > > > > > > Yep. I want it to work the same as <wicket:message>.
> > > > > > > >
> > > > > > > > Eelco
> > > > > > > >
> > > > > > > >
> > > > > >
> > >
> -------------------------------------------------------------------------
> > > > > > > > Take Surveys. Earn Cash. Influence the Future of IT
> > > > > > > > Join SourceForge.net's Techsay panel and you'll get the chance
> to
> > > share
> > > > > > your
> > > > > > > > opinions on IT & business topics through brief surveys -- and
> earn
> > > cash
> > > > > > > >
> > > > > >
> > >
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> > > > > > > >
> _______________________________________________
> > > > > > > > Wicket-develop mailing list
> > > > > > > > Wicket-develop@lists.sourceforge.net
> > > > > > > >
> > > > > >
> > >
> https://lists.sourceforge.net/lists/listinfo/wicket-develop
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > >
> -------------------------------------------------------------------------
> > > > > > Take Surveys. Earn Cash. Influence the Future of IT
> > > > > > Join SourceForge.net's Techsay panel and you'll get the chance to
> > > share your
> > > > > > opinions on IT & business topics through brief surveys -- and earn
> > > cash
> > > > > >
> > >
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> > > > > >
> > > > > > _______________________________________________
> > > > > > Wicket-develop mailing list
> > > > > > Wicket-develop@lists.sourceforge.net
> > > > > >
> > >
> https://lists.sourceforge.net/lists/listinfo/wicket-develop
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > >
> > > >
> > >
> -------------------------------------------------------------------------
> > > > Take Surveys. Earn Cash. Influence the Future of IT
> > > > Join SourceForge.net's Techsay panel and you'll get the chance to
> share
> > > your
> > > > opinions on IT & business topics through brief surveys -- and earn
> cash
> > > >
> > >
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> > > > _______________________________________________
> > > > Wicket-develop mailing list
> > > > Wicket-develop@lists.sourceforge.net
> > > >
> > >
> https://lists.sourceforge.net/lists/listinfo/wicket-develop
> > > >
> > >
> > >
> > >
> -------------------------------------------------------------------------
> > > Take Surveys. Earn Cash. Influence the Future of IT
> > > Join SourceForge.net's Techsay panel and you'll get the chance to share
> your
> > > opinions on IT & business topics through brief surveys -- and earn cash
> > >
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> > >
> > > _______________________________________________
> > > Wicket-develop mailing list
> > > Wicket-develop@lists.sourceforge.net
> > >
> https://lists.sourceforge.net/lists/listinfo/wicket-develop
> > >
> > >
> > >
> >
> >
> -------------------------------------------------------------------------
> > Take Surveys. Earn Cash. Influence the Future of IT
> > Join SourceForge.net's Techsay panel and you'll get the chance to share
> your
> > opinions on IT & business topics through brief surveys -- and earn cash
> >
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> > _______________________________________________
> > Wicket-develop mailing list
> > Wicket-develop@lists.sourceforge.net
> >
> https://lists.sourceforge.net/lists/listinfo/wicket-develop
> >
>
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys -- and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>
> _______________________________________________
> Wicket-develop mailing list
> Wicket-develop@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-develop
>
>
>

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Wicket-develop mailing list
Wicket-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-develop

Reply via email to