You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by arkadyz111 <az...@gmail.com> on 2012/08/13 15:41:04 UTC
Is there a way to search component by its wicket ID ?
Hello, team.
I am looking for a way to locate component by its wicket id in markup
container. But I see only option to search by "path" is supported.
Do I miss something ?
Thank you.
--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/Is-there-a-way-to-search-component-by-its-wicket-ID-tp4651175.html
Sent from the Users forum mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
Re: Is there a way to search component by its wicket ID ?
Posted by James Eliyezar <ja...@mcruncher.com>.
Thanks Paul for this nice tip.
On Tue, Aug 14, 2012 at 11:04 PM, Paul Bors <pa...@bors.ws> wrote:
> If you use wicket-component-expressions from com.googlecode.londonwicket
> you
> can get to the list of all the components on the page that have that
> "username" id via a regexp of "**:username", but as James mentioned
> earlier,
> the ID is not unique and your wicket component tree might have such
> multiple
> nodes (hence why wicket-component-expressions gives you a list of them).
>
> I normally know that my panel has only one such component by the ID since I
> developed it, so if I attach it to my page inside a panel with an ID like
> "myPanel" then I use "**:myPanel:**:username" and I also filter by the
> component type such as TextField.class to narrow down the search.
>
> That's not production code, is unit test and I'm assuming that's the
> context
> of your question. By using such regexp, I found myself refactoring the unit
> test code less when shuffling panels on a page.
>
> ~ Thank you,
> Paul Bors
>
> -----Original Message-----
> From: James Eliyezar [mailto:james@mcruncher.com]
> Sent: Tuesday, August 14, 2012 4:12 AM
> To: users@wicket.apache.org
> Subject: Re: Is there a way to search component by its wicket ID ?
>
> Because the id is unique only within the markup container of a component.
> It need not be unique in a page. This is by design.
> For more details refer:
> https://cwiki.apache.org/WICKET/component-hierarchy.html
>
>
> On Tue, Aug 14, 2012 at 3:42 PM, arkadyz111 <az...@gmail.com> wrote:
>
> > But why we have to write "userForm" ? What is an idea behind of this ?
> >
> > Why get("username") is not enough ?
> >
> >
> >
> > --
> > View this message in context:
> >
>
> http://apache-wicket.1842946.n4.nabble.com/Is-there-a-way-to-search-componen
> t-by-its-wicket-ID-tp4651175p4651217.html
> > Sent from the Users forum mailing list archive at Nabble.com.
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > For additional commands, e-mail: users-help@wicket.apache.org
> >
> >
>
>
> --
> Thanks & regards
> James Selvakumar
> mcruncher.com
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>
--
Thanks & regards
James Selvakumar
mcruncher.com
RE: Is there a way to search component by its wicket ID ?
Posted by Paul Bors <pa...@bors.ws>.
If you use wicket-component-expressions from com.googlecode.londonwicket you
can get to the list of all the components on the page that have that
"username" id via a regexp of "**:username", but as James mentioned earlier,
the ID is not unique and your wicket component tree might have such multiple
nodes (hence why wicket-component-expressions gives you a list of them).
I normally know that my panel has only one such component by the ID since I
developed it, so if I attach it to my page inside a panel with an ID like
"myPanel" then I use "**:myPanel:**:username" and I also filter by the
component type such as TextField.class to narrow down the search.
That's not production code, is unit test and I'm assuming that's the context
of your question. By using such regexp, I found myself refactoring the unit
test code less when shuffling panels on a page.
~ Thank you,
Paul Bors
-----Original Message-----
From: James Eliyezar [mailto:james@mcruncher.com]
Sent: Tuesday, August 14, 2012 4:12 AM
To: users@wicket.apache.org
Subject: Re: Is there a way to search component by its wicket ID ?
Because the id is unique only within the markup container of a component.
It need not be unique in a page. This is by design.
For more details refer:
https://cwiki.apache.org/WICKET/component-hierarchy.html
On Tue, Aug 14, 2012 at 3:42 PM, arkadyz111 <az...@gmail.com> wrote:
> But why we have to write "userForm" ? What is an idea behind of this ?
>
> Why get("username") is not enough ?
>
>
>
> --
> View this message in context:
>
http://apache-wicket.1842946.n4.nabble.com/Is-there-a-way-to-search-componen
t-by-its-wicket-ID-tp4651175p4651217.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>
--
Thanks & regards
James Selvakumar
mcruncher.com
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
Re: Is there a way to search component by its wicket ID ?
Posted by James Eliyezar <ja...@mcruncher.com>.
Because the id is unique only within the markup container of a component.
It need not be unique in a page. This is by design.
For more details refer:
https://cwiki.apache.org/WICKET/component-hierarchy.html
On Tue, Aug 14, 2012 at 3:42 PM, arkadyz111 <az...@gmail.com> wrote:
> But why we have to write "userForm" ? What is an idea behind of this ?
>
> Why get("username") is not enough ?
>
>
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/Is-there-a-way-to-search-component-by-its-wicket-ID-tp4651175p4651217.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>
--
Thanks & regards
James Selvakumar
mcruncher.com
Re: Is there a way to search component by its wicket ID ?
Posted by arkadyz111 <az...@gmail.com>.
But why we have to write "userForm" ? What is an idea behind of this ?
Why get("username") is not enough ?
--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/Is-there-a-way-to-search-component-by-its-wicket-ID-tp4651175p4651217.html
Sent from the Users forum mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
Re: Is there a way to search component by its wicket ID ?
Posted by James Eliyezar <ja...@mcruncher.com>.
You can definitely search by wicket id but you may have to specify the
hierarchy as well.
Something like this,
TextField usernameField = (TextField) get("userForm:username");
>
to get the text field component with the wicket id "username" inside the
form whose wicket id is "userForm".
Hope this helps you.
DISCLAIMER: I'm no wicket expert but these are my humble opinions and this
is what I do to locate components when they are loosely coupled.
On Mon, Aug 13, 2012 at 9:41 PM, arkadyz111 <az...@gmail.com> wrote:
> Hello, team.
>
> I am looking for a way to locate component by its wicket id in markup
> container. But I see only option to search by "path" is supported.
>
> Do I miss something ?
>
> Thank you.
>
>
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/Is-there-a-way-to-search-component-by-its-wicket-ID-tp4651175.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>
--
Thanks & regards
James Selvakumar
mcruncher.com
RE: Is there a way to search component by its wicket ID ?
Posted by Paul Bors <pa...@bors.ws>.
In my unit test code I use:
<dependency>
<groupId>com.googlecode.londonwicket</groupId>
<artifactId>wicket-component-expressions</artifactId>
<version>0.2.0</version>
<scope>test</scope>
<exclusions>
<exclusion>
<artifactId>org.apache.wicket</artifactId>
<groupId>wicket</groupId>
</exclusion>
</exclusions>
</dependency>
Or see:
http://code.google.com/p/londonwicket/source/browse/repo/com/googlecode/lond
onwicket/wicket-component-expressions/?r=61#wicket-component-expressions%2F0
.2.0
They are a group of Wicket users from London and their two static method
tool allows you to use regexp in the component path as well as filtering by
a component type such as a TextBox and its model such as
Model<String>("Hello World").
I don't think the new version of Wicket has this flexibility build in
WicketTester, but looking over the code of
BaseWicketTester#getComponentFromLastRenderedPage() and
BaseWicketTester#debugComponentTrees() you can implement your own method to
iterate through the component tree and return a reference to the component
you want.
~ Thank you,
Paul Bors
-----Original Message-----
From: arkadyz111 [mailto:azelekman@gmail.com]
Sent: Monday, August 13, 2012 9:41 AM
To: users@wicket.apache.org
Subject: Is there a way to search component by its wicket ID ?
Hello, team.
I am looking for a way to locate component by its wicket id in markup
container. But I see only option to search by "path" is supported.
Do I miss something ?
Thank you.
--
View this message in context:
http://apache-wicket.1842946.n4.nabble.com/Is-there-a-way-to-search-componen
t-by-its-wicket-ID-tp4651175.html
Sent from the Users forum mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
Re: Is there a way to search component by its wicket ID ?
Posted by nunofaria11 <nu...@gmail.com>.
Hi there,
I'm not really sure if searching a component by its ID is a good idea - It
kinda' breaks modularity and goes against the OO approach.
I have never searched a component by its ID but assuming you need the full
path (hierarchy) to it, such component will be hard to use in any other
context because you harcoded the path to that component.
Whenever I need to get access to a component I simply store it in a Map or
component List for later search and/or use.
Best regards
nuno
--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/Is-there-a-way-to-search-component-by-its-wicket-ID-tp4651175p4651221.html
Sent from the Users forum mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org