-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Never mind,

there was a bug with Option, which I've now fixed...
It works.

Cheers!
Neil

On Wednesday 28 Aug 2002 5:31 pm, Neil Clayton wrote:
> Hi all,
>
> I've been experimenting with Selection and Option components, and am having
> just one difficulty. When I execute my example code, I get the required
> HTML, except that no labels are produced for each option.
>
> To example how I am going about this:
>
> 0) The example is a very simple form showing some set of colours, with
> multiple selection enabled.
> 1) there is a single HTML page, with form, select and option compoments.
> The option component is wrapped in a foreach.
> 2) The foreach accesses it's source values (a list) from the Visit object.
> 3) The foreach sets it's 'current value' on the visit object as well.
> 4) The Option statement takes its values (selected, label) from the
> 'current value' on the visit object.
> 5) The 'current value' is a very simple class, containing a boolean (for
> 'selected' and a String (for the label).
>
>
>
> Anyone got any hints for me?
>
>
> Cheers,
> Neil Clayton
>
> (see below for all related output and files)
>
>
>
> The HTML produced by Tapestry (2.2, CVS) is as follows:
> <body>
>       <h1>Example of Select and Option HTML element</h1>
> <form method="post" name="Form0" action="/componentref">
> <input type="hidden" name="service" value="direct">
> <input type="hidden" name="context" value="Selection/form">
> <input type="hidden" name="sp" value="S0">
>       Select a colour:
> <select name="selection" multiple>
>
> <option value="0">
>
>
> <option value="1">
>
>
> <option value="2">
>
>
> <option value="3">
>
>
> <option value="4">
>
>
> <option value="5">
>
>
> <option value="6">
>
>
> </select>
> <input type="hidden" name="Form0" value="1">
> </form>
> </body>
>
>
> For reference, here are the relevant Tapestry bits:
> ----------------------------------------------------------------
> The page specification is:
> ----------------------------------------------------------------
> <specification class="examples.componentref.Selection" allow-body="yes"
> allow-informal-parameters="yes" >
>     <bean name="validationDelegate"
> class="net.sf.tapestry.valid.ValidationDelegate" lifecycle="request"/>
>
>     <component id="form" type="Form">
>       <binding name="delegate" property-path="beans.validationDelegate"/>
>       <binding name="listener" property-path="listeners.formSubmit"/>
>     </component>
>
>     <component id="colours" type="Foreach">
>       <binding name="source" property-path="visit.colours"/>
>       <binding name="value" property-path="visit.currentColour"/>
>     </component>
>
>     <component id="selection" type="Select">
>       <field-binding name="multiple" field-name="Boolean.TRUE"/>
>     </component>
>
>     <component id="colour" type="Option">
>       <binding name="selected"
> property-path="visit.currentColour.selected"/> <binding name="label"
> property-path="visit.currentColour.label"/> </component>
> </specification>
>
>
> The HTML is:
> ----------------------------------------------------------------
> <body>
>       <h1>Example of Select and Option HTML element</h1>
>       <form jwcid="form">
>               Select a colour:
>               <input jwcid="selection">
>                       <span jwcid="colours">
>                               <option jwcid="colour"/>
>                       </span>
>               </input>
>       </form>
>
> </body>
>
>
> And the Visit object (well, part of it):
> ----------------------------------------------------------------
>       public Collection getColours() {
>               if(colours == null) {
>                       colours = new ArrayList();
>                       colours.add(new Colour("Green"));
>                       colours.add(new Colour("Blue"));
>                       colours.add(new Colour("Red"));
>                       colours.add(new Colour("White"));
>                       colours.add(new Colour("Purple"));
>                       colours.add(new Colour("Dark Black"));
>                       colours.add(new Colour("Fiji Blue"));
>               }
>               return colours;
>       }
>
>       /**
>        * Returns the currentColour.
>        * @return Colour
>        */
>       public Colour getCurrentColour() {
>               return currentColour;
>       }
>
>       /**
>        * Sets the currentColour.
>        * @param currentColour The currentColour to set
>        */
>       public void setCurrentColour(Colour currentColour) {
>               this.currentColour = currentColour;
>       }
>
>       private List colours;
>       private Colour currentColour;
>
>
> ----------------------------------------------------------------
> Finally, the Colour class:
> ----------------------------------------------------------------
> public class Colour {
>       public Colour(String label) {
>               setLabel(label);
>       }
>
>       public Colour(String label, boolean selected) {
>               setLabel(label);
>               setSelected(selected);
>       }
>
>       /**
>        * Returns the isSelected.
>        * @return boolean
>        */
>       public boolean getSelected() {
>               return selected;
>       }
>
>       /**
>        * Returns the label.
>        * @return String
>        */
>       public String getLabel() {
>               return label;
>       }
>
>       /**
>        * Sets the isSelected.
>        * @param isSelected The isSelected to set
>        */
>       public void setSelected(boolean isSelected) {
>               this.selected = isSelected;
>       }
>
>       /**
>        * Sets the label.
>        * @param label The label to set
>        */
>       public void setLabel(String label) {
>               this.label = label;
>       }
>
>       private String label;
>       private boolean selected;
> }

- -- 
Neil

(BTW: If you see weird text surrounding the message and you don't know what it 
is, don't worry, it's just my public PGP signature).
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)

iD8DBQE9bTYpLXcfQF3yrNoRAj3kAJ4xKWWqJRfnRXY7yeu97m6feojNbACgh4Uh
Fij4RBZFOAMqD3up+zDB50E=
=DNPg
-----END PGP SIGNATURE-----



-------------------------------------------------------
This sf.net email is sponsored by: Jabber - The world's fastest growing 
real-time communications platform! Don't just IM. Build it in! 
http://www.jabber.com/osdn/xim
_______________________________________________
Tapestry-developer mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/tapestry-developer

Reply via email to