You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Paolo <ir...@gmail.com> on 2011/04/11 12:47:18 UTC

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 Checkout() { 
add(new FeedbackPanel("feedback"));	
add(new ListView("cart", new PropertyModel(this, "cart.cheeses")) { 
	public Model quantitaMOD;
    String cat,articolo;
	@Override
	protected void populateItem(ListItem item) {
	    final C cheese = (C) item.getModelObject();

	    cat = cheese.getCat1();
	    articolo = (cat+cheese.getArt());
	    NumberFormat nf = NumberFormat.getCurrencyInstance();
	    String prezzopubSTR=cheese.getPrezzopub();
	    double prezzopubNUM=Double.parseDouble(prezzopubSTR);

	    // immagine piccola dell'oggetto
	    ExternalLink elink = new ExternalLink("OggettoLink", "http://sacredspirit.dyndns.org/"+cat.toLowerCase()+"/"+articolo.toLowerCase()+"_1.jpg" ); 
	    final String imageUrl = "http://sacredspirit.dyndns.org/"+cat.toLowerCase()+"/"+articolo.toLowerCase()+"_1_piccola.jpg";  // partnerIconUrl; 
	    WebMarkupContainer srcTag = new WebMarkupContainer("OggettoIcon"); 
	    IModel mediaSrc = new AbstractReadOnlyModel() { 
	    	@Override 
	    	public String getObject() { return imageUrl; } 
	    	}; 
	    srcTag.add(new AttributeModifier("src", mediaSrc));
	    elink.add(srcTag); item.add(elink); 

        item.add(new Label("articolo", articolo));
        item.add(new Label("descrizione",cheese.getDescr_it()));
	    item.add(new Label("prezzo", nf.format(Double.parseDouble(cheese.getPrezzopub()))));
	    quantitaMOD = new Model(cheese.getQuantita());
	    final String quantitaSTR = (String) quantitaMOD.getObject();
  		System.out.println ("QuantFUORI="+quantitaSTR);
	    Form fquantita = new Form("fquantita") {
	    	protected void onSubmit() {
	    		String quantitaFORM = (String) quantitaMOD.getObject();
	    		//Aggiorna quantita
	          	//String quantitaSTR = (String) quantitaMOD.getObject();
	          	System.out.println ("QuantSTR="+quantitaSTR);
	          	System.out.println ("QuantFORM="+quantitaFORM);
	          	//C selected = (C) item.getModelObject();
	          	//selected.setQuantita(quantitaFORM);
	          	cheese.setQuantita(quantitaFORM);
	          	System.out.println ("Quantity Value changed");
	          	setResponsePage(Checkout.class);
	    		} // OnSubmit
	    };  // form
		TextField quantita = new TextField("quantita", quantitaMOD);
	    fquantita.add(quantita.setRequired(true));
	    item.add(fquantita);	

	    item.add(new Label("subtotale", nf.format(Double.parseDouble(cheese.getPrezzopub())*Double.parseDouble(cheese.getQuantita())) ));	    	
	    item.add(new Label("disp", cheese.getDisp()));
	    item.add(removeLink("rimuovi", item));
	    }  // populate item
	}); // ListView
	add(new Label("total", new Model() {
		@Override
	    public Serializable getObject() { //era  public Object getObject() {
	        NumberFormat nf = NumberFormat.getCurrencyInstance();
	        return nf.format(getCart().getTotal()+6.98);
			}
	   }));

Form form = new Form("form");
	Address address = getCart().getBillingAddress();
	form.add(new TextField("name", new PropertyModel(address, "name")).setRequired(true));
	form.add(new TextField("street", new PropertyModel(address,"street")).setRequired(true));
    form.add(new TextField("zipcode", new PropertyModel(address,"zipcode")).setRequired(true));
    form.add(new TextField("city", new PropertyModel(address, "city")).setRequired(true));
    form.add(new TextField("email", new PropertyModel(address, "email")).setRequired(true));
    form.add(new TextField("telefono", new PropertyModel(address, "telefono")) );
    form.add(new TextField("data", new PropertyModel(address, "data")) );
    form.add(new TextField("note", new PropertyModel(address, "note")) );

    final Pagamento bean=new Pagamento();
    RadioGroup myInt = new RadioGroup("pagamento", new PropertyModel(bean, "myInt"));
    myInt.add(new Radio("1", new Model(1)));
    myInt.add(new Radio("2", new Model(2)));
    myInt.add(new Radio("3", new Model(3)));
    myInt.add(new Radio("4", new Model(4)));
    myInt.add(new Radio("5", new Model(5)));
    form.add(myInt.setRequired(true));
	
form.add(new Button("order") {
	@Override
    public void onSubmit() {
		String pagamentoSTR="Non è stato scelto il pagamento";
        int pagamentoINT=bean.getMyInt();
    	System.out.println ("Tipo pagamento:"+pagamentoINT);
    	if (pagamentoINT==1) pagamentoSTR="Solo richiesta informazioni";
       	if (pagamentoINT==2) pagamentoSTR="Ritiro e pagamento di persona";
       	if (pagamentoINT==3) pagamentoSTR="Ricarica Postepay";
       	if (pagamentoINT==4) pagamentoSTR="Bonifico Bancario";
       	if (pagamentoINT==5) pagamentoSTR="Paypal e carte di credito";    	
    	System.out.println ("ORDINE:"+getCart().getOrdine());
        // charge customers� credit card
        // ship cheeses to our customer
        // clean out shopping cart
		Cart cart = getCart();
		try  {
    	     Properties props = System.getProperties ();
             props.put ("mail.smtp.host", "smtp.tiscali.it");
             Session session = Session.getDefaultInstance (props, null);
             MimeMessage message = new MimeMessage (session);
             message.setFrom (new InternetAddress (getCart().getBillingAddress().getEmail()));
             message.addRecipient (Message.RecipientType.TO, new InternetAddress ("xxxx@xxxdspirit.it"));
             message.addRecipient (Message.RecipientType.BCC, new InternetAddress ("xxxxx@gmail.com"));
             message.setSubject ("ORDINE DIRETTO dal sito SacredSpirit.it");
             message.setText (getCart().getOrdine()+"\n\nNOME: "+getCart().getBillingAddress().getName()+"\nINDIRIZZO: "+getCart().getBillingAddress().getStreet()+"\nCAP: "+getCart().getBillingAddress().getZipcode()+"\nCITTA': "+getCart().getBillingAddress().getCity()+"\nEMAIL: "+getCart().getBillingAddress().getEmail()+"\nTELEFONO: "+getCart().getBillingAddress().getTelefono()+"\nDATA: "+getCart().getBillingAddress().getData()+"\nPAGAMENTO: "+pagamentoSTR+"\nNOTE: "+getCart().getBillingAddress().getNote() );
             Transport.send (message);
             setResponsePage(Ok.class);
             }
             catch (Exception e)
             {
                 System.out.println ("ERRORE INVIO MAIL ORDINE: "+e);
                 setResponsePage(Error.class);
             }
	} // Submit
});
add(form);

add(new Link("shop") {
      @Override
      public void onClick() {
		setResponsePage(Home.class);
		}
	}); // add new link

} // public checkout	
} // public class Checkout extends CheesrPage
--------------------------------------------------------

This is the complete source code of Cart.java if you need more, please tell me:

package org.wicket.example;

// package wicket.in.action.chapter03.section_3_1;

import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.List;

public class Cart implements java.io.Serializable {
  private static final long serialVersionUID = 1L;

  private List<C> cheeses = new ArrayList<C>();

  private Address billingAddress = new Address();

  public List<C> getCheeses() {
    return cheeses;
  }
  
  public void setCheeses(List<C> other) {
    cheeses = other;
  }

  public Address getBillingAddress() {
    return billingAddress;
  }

  public void setBillingAddress(Address other) {
    billingAddress = other;
  }
  public double getTotal() {
    double total = 0;
    for (C cheese : cheeses) {
      total += Double.parseDouble(cheese.getPrezzopub())*Double.parseDouble(cheese.getQuantita());
    }
    return total;
  }
  public String getOrdine() {
	    double total = 0;
	    String ordine="ORDINE DIRETTO DAL SITO:\n";
        NumberFormat nf = NumberFormat.getCurrencyInstance();
	    for (C cheese : cheeses) {
	      ordine = ordine + "ARTICOLO: "+cheese.getCat1()+cheese.getArt()+"  DESCRIZIONE: "+cheese.getDescr_it()+"  PREZZO: "+cheese.getPrezzopub()+"  QUANTITA': "+cheese.getQuantita()+"  SUBTOT: "+nf.format(Double.parseDouble(cheese.getPrezzopub())*Double.parseDouble(cheese.getQuantita())) +"  DISP: "+cheese.getDisp()+"\n";
	      total += Double.parseDouble(cheese.getPrezzopub())*Double.parseDouble(cheese.getQuantita());
	      	    }
	    ordine = ordine + "Totale: "+ nf.format(total+6.98);
	    return ordine;
	  }

}

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


Re: Repetitive TextField Form into ListView?

Posted by Martin Grigorov <mg...@apache.org>.
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 <ir...@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 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 Checkout() {
> add(new FeedbackPanel("feedback"));
> add(new ListView("cart", new PropertyModel(this, "cart.cheeses")) {
>        public Model quantitaMOD;
>    String cat,articolo;
>        @Override
>        protected void populateItem(ListItem item) {
>            final C cheese = (C) item.getModelObject();
>
>            cat = cheese.getCat1();
>            articolo = (cat+cheese.getArt());
>            NumberFormat nf = NumberFormat.getCurrencyInstance();
>            String prezzopubSTR=cheese.getPrezzopub();
>            double prezzopubNUM=Double.parseDouble(prezzopubSTR);
>
>            // immagine piccola dell'oggetto
>            ExternalLink elink = new ExternalLink("OggettoLink", "
> http://sacredspirit.dyndns.org/"+cat.toLowerCase()+"/"+articolo.toLowerCase()+"_1.jpg"
> );
>            final String imageUrl = "http://sacredspirit.dyndns.org/"+cat.toLowerCase()+"/"+articolo.toLowerCase()+"_1_piccola.jpg";
>  // partnerIconUrl;
>            WebMarkupContainer srcTag = new
> WebMarkupContainer("OggettoIcon");
>            IModel mediaSrc = new AbstractReadOnlyModel() {
>                @Override
>                public String getObject() { return imageUrl; }
>                };
>            srcTag.add(new AttributeModifier("src", mediaSrc));
>            elink.add(srcTag); item.add(elink);
>
>        item.add(new Label("articolo", articolo));
>        item.add(new Label("descrizione",cheese.getDescr_it()));
>            item.add(new Label("prezzo",
> nf.format(Double.parseDouble(cheese.getPrezzopub()))));
>            quantitaMOD = new Model(cheese.getQuantita());
>            final String quantitaSTR = (String) quantitaMOD.getObject();
>                System.out.println ("QuantFUORI="+quantitaSTR);
>            Form fquantita = new Form("fquantita") {
>                protected void onSubmit() {
>                        String quantitaFORM = (String)
> quantitaMOD.getObject();
>                        //Aggiorna quantita
>                        //String quantitaSTR = (String)
> quantitaMOD.getObject();
>                        System.out.println ("QuantSTR="+quantitaSTR);
>                        System.out.println ("QuantFORM="+quantitaFORM);
>                        //C selected = (C) item.getModelObject();
>                        //selected.setQuantita(quantitaFORM);
>                        cheese.setQuantita(quantitaFORM);
>                        System.out.println ("Quantity Value changed");
>                        setResponsePage(Checkout.class);
>                        } // OnSubmit
>            };  // form
>                TextField quantita = new TextField("quantita", quantitaMOD);
>            fquantita.add(quantita.setRequired(true));
>            item.add(fquantita);
>
>            item.add(new Label("subtotale",
> nf.format(Double.parseDouble(cheese.getPrezzopub())*Double.parseDouble(cheese.getQuantita()))
> ));
>            item.add(new Label("disp", cheese.getDisp()));
>            item.add(removeLink("rimuovi", item));
>            }  // populate item
>        }); // ListView
>        add(new Label("total", new Model() {
>                @Override
>            public Serializable getObject() { //era  public Object
> getObject() {
>                NumberFormat nf = NumberFormat.getCurrencyInstance();
>                return nf.format(getCart().getTotal()+6.98);
>                        }
>           }));
>
> Form form = new Form("form");
>        Address address = getCart().getBillingAddress();
>        form.add(new TextField("name", new PropertyModel(address,
> "name")).setRequired(true));
>        form.add(new TextField("street", new
> PropertyModel(address,"street")).setRequired(true));
>    form.add(new TextField("zipcode", new
> PropertyModel(address,"zipcode")).setRequired(true));
>    form.add(new TextField("city", new PropertyModel(address,
> "city")).setRequired(true));
>    form.add(new TextField("email", new PropertyModel(address,
> "email")).setRequired(true));
>    form.add(new TextField("telefono", new PropertyModel(address,
> "telefono")) );
>    form.add(new TextField("data", new PropertyModel(address, "data")) );
>    form.add(new TextField("note", new PropertyModel(address, "note")) );
>
>    final Pagamento bean=new Pagamento();
>    RadioGroup myInt = new RadioGroup("pagamento", new PropertyModel(bean,
> "myInt"));
>    myInt.add(new Radio("1", new Model(1)));
>    myInt.add(new Radio("2", new Model(2)));
>    myInt.add(new Radio("3", new Model(3)));
>    myInt.add(new Radio("4", new Model(4)));
>    myInt.add(new Radio("5", new Model(5)));
>    form.add(myInt.setRequired(true));
>
> form.add(new Button("order") {
>        @Override
>    public void onSubmit() {
>                String pagamentoSTR="Non è stato scelto il pagamento";
>        int pagamentoINT=bean.getMyInt();
>        System.out.println ("Tipo pagamento:"+pagamentoINT);
>        if (pagamentoINT==1) pagamentoSTR="Solo richiesta informazioni";
>        if (pagamentoINT==2) pagamentoSTR="Ritiro e pagamento di persona";
>        if (pagamentoINT==3) pagamentoSTR="Ricarica Postepay";
>        if (pagamentoINT==4) pagamentoSTR="Bonifico Bancario";
>        if (pagamentoINT==5) pagamentoSTR="Paypal e carte di credito";
>        System.out.println ("ORDINE:"+getCart().getOrdine());
>        // charge customers� credit card
>        // ship cheeses to our customer
>        // clean out shopping cart
>                Cart cart = getCart();
>                try  {
>             Properties props = System.getProperties ();
>             props.put ("mail.smtp.host", "smtp.tiscali.it");
>             Session session = Session.getDefaultInstance (props, null);
>             MimeMessage message = new MimeMessage (session);
>             message.setFrom (new InternetAddress
> (getCart().getBillingAddress().getEmail()));
>             message.addRecipient (Message.RecipientType.TO, new
> InternetAddress ("xxxx@xxxdspirit.it"));
>             message.addRecipient (Message.RecipientType.BCC, new
> InternetAddress ("xxxxx@gmail.com"));
>             message.setSubject ("ORDINE DIRETTO dal sito SacredSpirit.it");
>             message.setText (getCart().getOrdine()+"\n\nNOME:
> "+getCart().getBillingAddress().getName()+"\nINDIRIZZO:
> "+getCart().getBillingAddress().getStreet()+"\nCAP:
> "+getCart().getBillingAddress().getZipcode()+"\nCITTA':
> "+getCart().getBillingAddress().getCity()+"\nEMAIL:
> "+getCart().getBillingAddress().getEmail()+"\nTELEFONO:
> "+getCart().getBillingAddress().getTelefono()+"\nDATA:
> "+getCart().getBillingAddress().getData()+"\nPAGAMENTO:
> "+pagamentoSTR+"\nNOTE: "+getCart().getBillingAddress().getNote() );
>             Transport.send (message);
>             setResponsePage(Ok.class);
>             }
>             catch (Exception e)
>             {
>                 System.out.println ("ERRORE INVIO MAIL ORDINE: "+e);
>                 setResponsePage(Error.class);
>             }
>        } // Submit
> });
> add(form);
>
> add(new Link("shop") {
>      @Override
>      public void onClick() {
>                setResponsePage(Home.class);
>                }
>        }); // add new link
>
> } // public checkout
> } // public class Checkout extends CheesrPage
> --------------------------------------------------------
>
> This is the complete source code of Cart.java if you need more, please tell
> me:
>
> package org.wicket.example;
>
> // package wicket.in.action.chapter03.section_3_1;
>
> import java.text.NumberFormat;
> import java.util.ArrayList;
> import java.util.List;
>
> public class Cart implements java.io.Serializable {
>  private static final long serialVersionUID = 1L;
>
>  private List<C> cheeses = new ArrayList<C>();
>
>  private Address billingAddress = new Address();
>
>  public List<C> getCheeses() {
>    return cheeses;
>  }
>
>  public void setCheeses(List<C> other) {
>    cheeses = other;
>  }
>
>  public Address getBillingAddress() {
>    return billingAddress;
>  }
>
>  public void setBillingAddress(Address other) {
>    billingAddress = other;
>  }
>  public double getTotal() {
>    double total = 0;
>    for (C cheese : cheeses) {
>      total +=
> Double.parseDouble(cheese.getPrezzopub())*Double.parseDouble(cheese.getQuantita());
>    }
>    return total;
>  }
>  public String getOrdine() {
>            double total = 0;
>            String ordine="ORDINE DIRETTO DAL SITO:\n";
>        NumberFormat nf = NumberFormat.getCurrencyInstance();
>            for (C cheese : cheeses) {
>              ordine = ordine + "ARTICOLO:
> "+cheese.getCat1()+cheese.getArt()+"  DESCRIZIONE: "+cheese.getDescr_it()+"
>  PREZZO: "+cheese.getPrezzopub()+"  QUANTITA': "+cheese.getQuantita()+"
>  SUBTOT:
> "+nf.format(Double.parseDouble(cheese.getPrezzopub())*Double.parseDouble(cheese.getQuantita()))
> +"  DISP: "+cheese.getDisp()+"\n";
>              total +=
> Double.parseDouble(cheese.getPrezzopub())*Double.parseDouble(cheese.getQuantita());
>                    }
>            ordine = ordine + "Totale: "+ nf.format(total+6.98);
>            return ordine;
>          }
>
> }
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>


-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com <http://jweekend.com/>