cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ron van de Ven" <>
Subject RE: [Cforms] Java Selection List
Date Fri, 17 Jun 2005 10:15:19 GMT
Hi Bruno,

Your last suggestion resembles how I basically have overwritten the
setSelectionListBox(SelectionList) method in the source.
However, I have to admit that for my problem, your first solution would have
been a lot easier!




-----Original Message-----
From: Bruno Dumon [] 
Sent: Thursday, June 16, 2005 8:33 PM
Subject: Re: [Cforms] Java Selection List

On Thu, 2005-06-16 at 11:05 -0400, Vadim Gritsenko wrote:
> Bruno Dumon wrote:
> > On Thu, 2005-06-16 at 10:51 +0200, Ron van de Ven wrote:
> > 
> >>I have to set a selection list on a field, based on success or 
> >>failure of a validation.
> >> 
> >>When I use the following fragment:
> >> 
> >>  TntCformsJavaSelectionList mySelectionList = new 
> >>TntCformsJavaSelectionList(true);
> >>  mySelectionList.setDatatype(new StringType());
> >>  myField.setSelectionList(mySelectionList);
> >> 
> >>I get an error: Tried to assign a SelectionList that is not 
> >>associated with this widget's datatype.
> > 
> > 
> > then why not do:
> > 
> > mySelectionList.setDatatype(myField.getDatatype());
> > 
> > ?
> I think I had similar situation, with this answer to the question 
> above: you may want to share potentially large selection list(s) 
> between multiple widgets, here widgets might be on the same form, or even
on multiple forms for multiple users.
> It could be quite substantial memory savings... In this scenario, you 
> need either multiple widgets have same instance of datatype on 
> multiple widgets (is it even possible?), or use equals() instead of '=='
as was suggested.

I see. But is it feasible to implement equals? Testing the equality of a
datatype includes testing the equality of its contained convertor, which
could be configurable in all sorts of ways.

Another possibility would be to change the contract of the SelectionList,
letting the field pass its datatype (or even just its
convertor) to the SelectionList.generateSaxFragment method. To check the
type-compatibility, a SelectionList.getTypeClass() method could be added
(cfr. Datatype.getTypeClass()).

Bruno Dumon                   
Outerthought - Open Source, Java & XML Competence Support Center                

View raw message