Re: Question about IChoiceRenderer

2018-10-30 Thread Martin Terra
I would definitely recommend leveraging the class hierarcy
of DropDownChoice/AbstractSingleSelectChoice in case you are using a single
select, and if it is multi select then respective ListMultipleChoice.

This way you can leverage the existing implementation of isSelected etc.

**
Martin

ti 30. lokak. 2018 klo 20.54 Claudia Hirt (hirt-clau...@gmx.de) kirjoitti:

> Thanks for the tip Martin Terra!
>
> And thank you for the example code Martin Grigorov! Good to know I'm on
> the right track.
>
> I still have one proplem left, I know it really is a minor thing. I
> developed a framework component for a group selectbox which takes a
> HashMap containing the optgroups and their corresponding
> options. Working with generic option objects I use a ChoiceRenderer to
> give the user the possiblity to map the id- and display-value from the
> object. This works fine so far, until you get to
> isSelected(IModel model)
> In AbstractChoice you can set an object as selected which does not have
> to be the same object as the one in the choices. It compares the objects
> id using the given choice renderer.
> But Select only does an object equals compare. And there's no way to use
> the choice renderer in isSelected correctly because there is no index in
> the method signature.
> As I said this is really a minor thing, but the inconsistency with
> AbstractChoice annoys me ;)
> How would you suggest to solve this?
>
> Best regards,
> Claudia Hirt
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>


Re: Question about IChoiceRenderer

2018-10-30 Thread Claudia Hirt

Thanks for the tip Martin Terra!

And thank you for the example code Martin Grigorov! Good to know I'm on 
the right track.


I still have one proplem left, I know it really is a minor thing. I 
developed a framework component for a group selectbox which takes a 
HashMap containing the optgroups and their corresponding 
options. Working with generic option objects I use a ChoiceRenderer to 
give the user the possiblity to map the id- and display-value from the 
object. This works fine so far, until you get to

isSelected(IModel model)
In AbstractChoice you can set an object as selected which does not have 
to be the same object as the one in the choices. It compares the objects 
id using the given choice renderer.
But Select only does an object equals compare. And there's no way to use 
the choice renderer in isSelected correctly because there is no index in 
the method signature.
As I said this is really a minor thing, but the inconsistency with 
AbstractChoice annoys me ;)

How would you suggest to solve this?

Best regards,
Claudia Hirt

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: Question about IChoiceRenderer

2018-10-30 Thread Martin Terra
Also, if you need optrgoups and styling while needing to keep it simple,
you can implement IStyledChoiceRenderer

and
extend DropDownChoice with some subtle changes.

**
Martin

ti 30. lokak. 2018 klo 17.04 Martin Grigorov (mgrigo...@apache.org)
kirjoitti:

> Hi,
>
> DropDownChoice component should be used when you have a list of objects
> which you want to render in an HTML select element without fancy things
> like option grouping and styling.
> If you need to do grouping and/or styling then you need to use Select and
> add SelectOption for each of your objects.
> See
>
> https://github.com/apache/wicket/blob/master/wicket-examples/src/main/java/org/apache/wicket/examples/compref/SelectPage.java
> for an example.
> The grouping is only in the HTML in this example (
>
> https://github.com/apache/wicket/blob/master/wicket-examples/src/main/java/org/apache/wicket/examples/compref/SelectPage.html#L23
> )
> but you can use WebMarkupContainer on the optgroup elements to set its
> attributes dynamically.
>
> On Tue, Oct 30, 2018 at 4:49 PM Claudia Hirt  wrote:
>
> > Hi,
> > I use select to create a selectbox containing optgroups which is not
> > possible with abstractchoice as far as i know. And i want to also use
> > choice renderer for this “groupselectbox component” to have the same
> > behaviour as in abstract choice.
> > Maybe I’m wrong with the whole concept. What is your recommendation for
> > how to create a group selectbox?
> >
> > Best regards,
> > Claudia
> >
> > > Am 30.10.2018 um 12:02 schrieb Martin Grigorov :
> > >
> > > Hi Claudia,
> > >
> > > I do not quite understand your question/suggestion.
> > >
> > > IChoiceRenderer is used by AbstractChoice and its specializations.
> > > "T object" is your type, so you should decide how to construct a stable
> > id
> > > out of it. In case you cannot get such id then you may use the passed
> > > index, but in this case you have to make sure that the same index is
> > always
> > > used for this object instance (as the javadoc explains).
> > >
> > > Wicket-Extensions' Select doesn't use IChoiceRenderer at all, so I
> don't
> > > see what is the relation to the first part of your question.
> > >
> > >> On Fri, Oct 26, 2018 at 2:54 PM Claudia Hirt 
> > wrote:
> > >>
> > >> Hi all,
> > >>
> > >> i have a question about IChoiceRenderer used for Selectboxes.
> > >>
> > >> There is a method String getIdValue(Tobject, int index) to get the
> > unique
> > >> id value of an option object.
> > >> The javadoc says the following:
> > >>
> > >> "This method is called to get the id value of an object (used as the
> > value
> > >> attribute of a choice element) The id can be extracted from the object
> > like
> > >> a primary key, or if the list is stable you could just return a
> > toString of
> > >> the index."
> > >>
> > >> I wonder if it's a good idea to have the object and the index as
> > >> parameters in this method. If the id value should be kind of a primary
> > key
> > >> of the object, it should not depend on the index, which has nothing to
> > do
> > >> with the object.
> > >> I cannot use this method in my case to check if an object which is not
> > in
> > >> the choices list has the same id value than the selected one in my
> > >> selectbox. I tried to do this with wicket-extensions Select, which
> does
> > not
> > >> have a choice renderer by default and I only have the object in
> > >> isSelectedmethod of Select, but not the index.
> > >>
> > >> Best regards,
> > >> Claudia
> > >>
> >
> >
> > -
> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> > For additional commands, e-mail: users-h...@wicket.apache.org
> >
> >
>


Re: Question about IChoiceRenderer

2018-10-30 Thread Martin Grigorov
Hi,

DropDownChoice component should be used when you have a list of objects
which you want to render in an HTML select element without fancy things
like option grouping and styling.
If you need to do grouping and/or styling then you need to use Select and
add SelectOption for each of your objects.
See
https://github.com/apache/wicket/blob/master/wicket-examples/src/main/java/org/apache/wicket/examples/compref/SelectPage.java
for an example.
The grouping is only in the HTML in this example (
https://github.com/apache/wicket/blob/master/wicket-examples/src/main/java/org/apache/wicket/examples/compref/SelectPage.html#L23)
but you can use WebMarkupContainer on the optgroup elements to set its
attributes dynamically.

On Tue, Oct 30, 2018 at 4:49 PM Claudia Hirt  wrote:

> Hi,
> I use select to create a selectbox containing optgroups which is not
> possible with abstractchoice as far as i know. And i want to also use
> choice renderer for this “groupselectbox component” to have the same
> behaviour as in abstract choice.
> Maybe I’m wrong with the whole concept. What is your recommendation for
> how to create a group selectbox?
>
> Best regards,
> Claudia
>
> > Am 30.10.2018 um 12:02 schrieb Martin Grigorov :
> >
> > Hi Claudia,
> >
> > I do not quite understand your question/suggestion.
> >
> > IChoiceRenderer is used by AbstractChoice and its specializations.
> > "T object" is your type, so you should decide how to construct a stable
> id
> > out of it. In case you cannot get such id then you may use the passed
> > index, but in this case you have to make sure that the same index is
> always
> > used for this object instance (as the javadoc explains).
> >
> > Wicket-Extensions' Select doesn't use IChoiceRenderer at all, so I don't
> > see what is the relation to the first part of your question.
> >
> >> On Fri, Oct 26, 2018 at 2:54 PM Claudia Hirt 
> wrote:
> >>
> >> Hi all,
> >>
> >> i have a question about IChoiceRenderer used for Selectboxes.
> >>
> >> There is a method String getIdValue(Tobject, int index) to get the
> unique
> >> id value of an option object.
> >> The javadoc says the following:
> >>
> >> "This method is called to get the id value of an object (used as the
> value
> >> attribute of a choice element) The id can be extracted from the object
> like
> >> a primary key, or if the list is stable you could just return a
> toString of
> >> the index."
> >>
> >> I wonder if it's a good idea to have the object and the index as
> >> parameters in this method. If the id value should be kind of a primary
> key
> >> of the object, it should not depend on the index, which has nothing to
> do
> >> with the object.
> >> I cannot use this method in my case to check if an object which is not
> in
> >> the choices list has the same id value than the selected one in my
> >> selectbox. I tried to do this with wicket-extensions Select, which does
> not
> >> have a choice renderer by default and I only have the object in
> >> isSelectedmethod of Select, but not the index.
> >>
> >> Best regards,
> >> Claudia
> >>
>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>


Re: Question about IChoiceRenderer

2018-10-30 Thread Claudia Hirt
Hi,
I use select to create a selectbox containing optgroups which is not possible 
with abstractchoice as far as i know. And i want to also use choice renderer 
for this “groupselectbox component” to have the same behaviour as in abstract 
choice. 
Maybe I’m wrong with the whole concept. What is your recommendation for how to 
create a group selectbox?

Best regards,
Claudia 

> Am 30.10.2018 um 12:02 schrieb Martin Grigorov :
> 
> Hi Claudia,
> 
> I do not quite understand your question/suggestion.
> 
> IChoiceRenderer is used by AbstractChoice and its specializations.
> "T object" is your type, so you should decide how to construct a stable id
> out of it. In case you cannot get such id then you may use the passed
> index, but in this case you have to make sure that the same index is always
> used for this object instance (as the javadoc explains).
> 
> Wicket-Extensions' Select doesn't use IChoiceRenderer at all, so I don't
> see what is the relation to the first part of your question.
> 
>> On Fri, Oct 26, 2018 at 2:54 PM Claudia Hirt  wrote:
>> 
>> Hi all,
>> 
>> i have a question about IChoiceRenderer used for Selectboxes.
>> 
>> There is a method String getIdValue(Tobject, int index) to get the unique
>> id value of an option object.
>> The javadoc says the following:
>> 
>> "This method is called to get the id value of an object (used as the value
>> attribute of a choice element) The id can be extracted from the object like
>> a primary key, or if the list is stable you could just return a toString of
>> the index."
>> 
>> I wonder if it's a good idea to have the object and the index as
>> parameters in this method. If the id value should be kind of a primary key
>> of the object, it should not depend on the index, which has nothing to do
>> with the object.
>> I cannot use this method in my case to check if an object which is not in
>> the choices list has the same id value than the selected one in my
>> selectbox. I tried to do this with wicket-extensions Select, which does not
>> have a choice renderer by default and I only have the object in
>> isSelectedmethod of Select, but not the index.
>> 
>> Best regards,
>> Claudia
>> 


-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: Question about IChoiceRenderer

2018-10-30 Thread Martin Grigorov
Hi Claudia,

I do not quite understand your question/suggestion.

IChoiceRenderer is used by AbstractChoice and its specializations.
"T object" is your type, so you should decide how to construct a stable id
out of it. In case you cannot get such id then you may use the passed
index, but in this case you have to make sure that the same index is always
used for this object instance (as the javadoc explains).

Wicket-Extensions' Select doesn't use IChoiceRenderer at all, so I don't
see what is the relation to the first part of your question.

On Fri, Oct 26, 2018 at 2:54 PM Claudia Hirt  wrote:

> Hi all,
>
> i have a question about IChoiceRenderer used for Selectboxes.
>
> There is a method String getIdValue(Tobject, int index) to get the unique
> id value of an option object.
> The javadoc says the following:
>
> "This method is called to get the id value of an object (used as the value
> attribute of a choice element) The id can be extracted from the object like
> a primary key, or if the list is stable you could just return a toString of
> the index."
>
> I wonder if it's a good idea to have the object and the index as
> parameters in this method. If the id value should be kind of a primary key
> of the object, it should not depend on the index, which has nothing to do
> with the object.
> I cannot use this method in my case to check if an object which is not in
> the choices list has the same id value than the selected one in my
> selectbox. I tried to do this with wicket-extensions Select, which does not
> have a choice renderer by default and I only have the object in
> isSelectedmethod of Select, but not the index.
>
> Best regards,
> Claudia
>


Re: question about IChoiceRenderer#getIdValue

2009-06-08 Thread Igor Vaynberg
no its not really safe if the changes to locale resort the list.

-igor

On Mon, Jun 8, 2009 at 6:12 PM, Ian MacLartyian.macla...@gmail.com wrote:
 Hello,

 I wonder if someone could clarify when it is safe to use the index as
 the value for IChoiceRenderer#getIdValue.  The documentation says that
 you can use the index if the list is stable.  However I have a list
 that is sorted differently depending on the current locale and the
 user may change their locale at any time (the list is sorted in
 onBeforeRender).  I tried using the index for getIdValue and it all
 seemed to work fine.  If the user changed their locale the drop down
 list would update correctly.  Is this safe to do?  I would prefer to
 use the index if possible, since the real primary key would be quite
 long and would increase the size of the post data significantly.

 Cheers,
 Ian.

 -
 To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
 For additional commands, e-mail: users-h...@wicket.apache.org



-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: question about IChoiceRenderer#getIdValue

2009-06-08 Thread Ian MacLarty
On Tue, Jun 9, 2009 at 11:23 AM, Igor Vaynbergigor.vaynb...@gmail.com wrote:
 no its not really safe if the changes to locale resort the list.


Okay, thanks.

Ian.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org