Hopefully these files will get you started.  It is a MultipleSelect
just as you want, with the MultiplePropertySelectionRenderer declared
as an inner class within MultipleSelection component, giving it access
to protected methods inherited from AbstractComponent.  I do have to
cast the component reference to the MultipleSelection class in order
to be given access by the compiler, but that's a safe cast in this
context, since I know that the containing component must be a
MultipleSelection component.  Sorry about the lack of comments.  The
component is from a quick hack I did to try out tap 4.1 so it is
lacking in polish.  Also, I have no idea why, but doing an ajax update
of this component in IE results in an empty select box.  I never tried
to debug the problem.  If you use it that way, you'll have to.

--sam

On 11/20/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
-->  Hence the lack of extensibility, at least in the direction you want
to go.

So far, I think using the MultiplePropertySelection with a custom
renderer has been relatively straight forward.  I just wanted to see
what other avenues others have explored.

-->  Come to think of it, wouldn't it be easier to extend the Select
component
so you can bind an IPropertySelectionModel to it and have it
automagically
render options? (Or, putting the horse before the cart, just use Select
and Option?) :)

With the select component I would essentially recreate the logic in
PropertySelection/MultiplePropertySelection.  Validation, HTML
rendering, param extraction etc.  So far this seems simpler . . . So
far.  I know there is a MultiSelect available from tassel . . . But I
prefer using something a bit more mainstream and likely to keep up to
date with the framework.

Carlos

-----Original Message-----
From: Stephanos Piperoglou [mailto:[EMAIL PROTECTED]
Sent: Monday, November 20, 2006 1:21 PM
To: Tapestry users
Subject: RE: MultiplePropertySelection - informal params - best practice


<[EMAIL PROTECTED]> wrote on 20/11/2006 17:57:38:

> OPTION 1 - SUBCLASS MultiplePropertySelection WITHOUT USING A
> IMultiplePropertySelectionRenderer
> OPTION 2 - SUBCLASS MultiplePropertySelection AND USE A
> IMultiplePropertySelectionRenderer
> OPTION 3 - HAVE IMultiplePropertySelectionRenderer SUBCLASS
> AbstractFormComponent
>
> #1 & #2 seem too convoluted/too coupled/duplicate too much code to
seem
> like good candidates.  #3 is moot, because you still can't call
> AbstractForm.renderInformalParameters(). (details of all three below
my
> signature)

From the framework doc for MultiplePropertySelection:

        A component which uses <input type=checkbox> to set a property
of
some object

So using the same component to display a <select multiple="multiple">
list
would be a bit of a stretch as from the doc I envisage that the original

author didn't expect it to have such functionality. Hence the lack of
extensibility, at least in the direction you want to go.

I understand your admirable reluctance to duplicate code already written

for MultiplePropertySelection, but trying to shoehorn abstraction in
where
there is none might be the wrong approach. If you're dead set on sharing

code then why not write an abstract superclass? This is, after all, an
open source project, and Eclipse's "Source > Pull up..." works wonders
:)

Come to think of it, wouldn't it be easier to extend the Select
component
so you can bind an IPropertySelectionModel to it and have it
automagically
render options? (Or, putting the horse before the cart, just use Select
and Option?) :)

---

This e-mail may contain confidential and/or privileged information. If
you
are not the intended recipient (or have received this e-mail in error)
please notify the sender immediately and destroy this e-mail. Any
unauthorized copying, disclosure or distribution of the material in this

e-mail is strictly forbidden.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to