Repetitive TextField Form into ListView?
Hi, It is my first experience with Wicket. I try to do a e-commerce site, based on cheese shop from Wicket in Action Book. I have problem to implement shopping cart to set the quantity of each item that the user choose. As you can see in this screenshot, I put a TextField for quantity in a ListView of all items that the user put in the shopping cart. At beginning all quantity value are set to 1. The problem is that it works correctly only if I have only one item. If I have two or more items, I can set correctly only the last quantity. Foe example, If I try to set quantity of the first item, the value that will be assigned to it will be the value of the last item. Thank you for help! http://sacredspirit.altervista.org/images/screenshot.jpg QuantFUORI=1 QuantFUORI=1 QuantSTR=1 QuantFORM=2 Quantity Value changed QuantFUORI=1 QuantFUORI=2 QuantSTR=1 QuantFORM=2 Quantity Value changed QuantFUORI=2 QuantFUORI=2 This is the complete source code of Checkout.java package org.wicket.example.pages; import au.com.bytecode.opencsv.CSVReader; import au.com.bytecode.opencsv.CSVWriter; import java.io.IOException; import java.io.Serializable; import java.text.NumberFormat; import java.io.Serializable; import java.text.NumberFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Properties; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import org.apache.wicket.AttributeModifier; import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.link.ExternalLink; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.markup.html.list.PageableListView; import org.apache.wicket.markup.html.navigation.paging.PagingNavigator; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.Model; import org.apache.wicket.model.PropertyModel; import org.apache.wicket.ResourceReference; import org.apache.wicket.behavior.SimpleAttributeModifier; import org.apache.wicket.behavior.AbstractBehavior; import org.apache.wicket.extensions.yui.calendar.DateField; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.RequiredTextField; import org.apache.wicket.markup.html.image.Image; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.markup.repeater.RefreshingView; import org.apache.wicket.markup.repeater.ReuseIfModelsEqualStrategy; import org.apache.wicket.markup.repeater.util.ModelIteratorAdapter; import org.apache.wicket.model.CompoundPropertyModel; import org.apache.wicket.model.IModel; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.Button; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.Radio; import org.apache.wicket.markup.html.form.RadioChoice; import org.apache.wicket.markup.html.form.RadioGroup; import org.apache.wicket.markup.html.form.TextArea; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.markup.html.link.ExternalLink; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.Model; import org.apache.wicket.model.PropertyModel; import org.apache.wicket.ResourceReference; import org.apache.wicket.behavior.SimpleAttributeModifier; import org.apache.wicket.behavior.AbstractBehavior; import org.apache.wicket.extensions.yui.calendar.DateField; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.RequiredTextField; import org.apache.wicket.markup.html.image.Image; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.markup.repeater.RefreshingView; import org.apache.wicket.markup.repeater.ReuseIfModelsEqualStrategy; import org.apache.wicket.markup.repeater.util.ModelIteratorAdapter; import org.apache.wicket.model.CompoundPropertyModel; import org.apache.wicket.model.IModel; import org.apache.wicket.validation.validator.EmailAddressValidator; import org.wicket.example.Address; import org.wicket.example.Pagamento; import org.wicket.example.Cart; import org.wicket.example.C; import org.wicket.example.pages.CheesrPage; import org.wicket.example.MainApplication; public class Checkout extends CheesrPage { private Cart cart; public
Re: Repetitive TextField Form into ListView?
The problem is in : TextField quantita = new TextField(quantita, quantitaMOD); replace quantitaMOD with something that is associated somehow with the currently iterated cheese object e.g. new PropertyModel(cheese, quantity) On Mon, Apr 11, 2011 at 12:47 PM, Paolo irresistible...@gmail.com wrote: Hi, It is my first experience with Wicket. I try to do a e-commerce site, based on cheese shop from Wicket in Action Book. I have problem to implement shopping cart to set the quantity of each item that the user choose. As you can see in this screenshot, I put a TextField for quantity in a ListView of all items that the user put in the shopping cart. At beginning all quantity value are set to 1. The problem is that it works correctly only if I have only one item. If I have two or more items, I can set correctly only the last quantity. Foe example, If I try to set quantity of the first item, the value that will be assigned to it will be the value of the last item. Thank you for help! http://sacredspirit.altervista.org/images/screenshot.jpg QuantFUORI=1 QuantFUORI=1 QuantSTR=1 QuantFORM=2 Quantity Value changed QuantFUORI=1 QuantFUORI=2 QuantSTR=1 QuantFORM=2 Quantity Value changed QuantFUORI=2 QuantFUORI=2 This is the complete source code of Checkout.java package org.wicket.example.pages; import au.com.bytecode.opencsv.CSVReader; import au.com.bytecode.opencsv.CSVWriter; import java.io.IOException; import java.io.Serializable; import java.text.NumberFormat; import java.io.Serializable; import java.text.NumberFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Properties; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import org.apache.wicket.AttributeModifier; import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.link.ExternalLink; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.markup.html.list.PageableListView; import org.apache.wicket.markup.html.navigation.paging.PagingNavigator; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.Model; import org.apache.wicket.model.PropertyModel; import org.apache.wicket.ResourceReference; import org.apache.wicket.behavior.SimpleAttributeModifier; import org.apache.wicket.behavior.AbstractBehavior; import org.apache.wicket.extensions.yui.calendar.DateField; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.RequiredTextField; import org.apache.wicket.markup.html.image.Image; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.markup.repeater.RefreshingView; import org.apache.wicket.markup.repeater.ReuseIfModelsEqualStrategy; import org.apache.wicket.markup.repeater.util.ModelIteratorAdapter; import org.apache.wicket.model.CompoundPropertyModel; import org.apache.wicket.model.IModel; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.Button; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.Radio; import org.apache.wicket.markup.html.form.RadioChoice; import org.apache.wicket.markup.html.form.RadioGroup; import org.apache.wicket.markup.html.form.TextArea; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.markup.html.link.ExternalLink; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.Model; import org.apache.wicket.model.PropertyModel; import org.apache.wicket.ResourceReference; import org.apache.wicket.behavior.SimpleAttributeModifier; import org.apache.wicket.behavior.AbstractBehavior; import org.apache.wicket.extensions.yui.calendar.DateField; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.RequiredTextField; import org.apache.wicket.markup.html.image.Image; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.markup.repeater.RefreshingView; import org.apache.wicket.markup.repeater.ReuseIfModelsEqualStrategy; import org.apache.wicket.markup.repeater.util.ModelIteratorAdapter; import org.apache.wicket.model.CompoundPropertyModel; import