You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Delange <de...@telfort.nl> on 2012/08/13 14:33:52 UTC

Checkbox in DataTable is not reflecting its sts in checkbox

Hi, in this program i use a datatable with selections. In the column  beneath
the filtercolum i added a checkbox.
The user must select wich records the program must add to another file (at
the end)

In this example the table is shown correctly, it has a checkbox.
But whatever I do I'll never see any  status change reflecting the checkbox.

(The checkbox is part of the KostenOV record that is shown)

I can'figure out what is wrong. I read a lot of articles but none could
help.

My source is:



package com.vdr.logistiek.gui.kosten.regels.opbouw;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import
org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
import
org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder;
import
org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
import
org.apache.wicket.extensions.markup.html.repeater.data.table.HeadersToolbar;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import
org.apache.wicket.extensions.markup.html.repeater.data.table.NavigationToolbar;
import
org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
import
org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilterForm;
import
org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilterToolbar;
import
org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilteredAbstractColumn;
import
org.apache.wicket.extensions.markup.html.repeater.data.table.filter.GoAndClearFilter;
import
org.apache.wicket.extensions.markup.html.repeater.data.table.filter.IFilterStateLocator;
import
org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.CheckBox;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.spring.injection.annot.SpringBean;
 
import com.vdr.logistiek.bo.view.KostenOV;
import com.vdr.logistiek.gui.kosten.header.HeaderPage;
import com.vdr.logistiek.gui.kosten.overzicht.KostenfacturenOverzichtPage;  
import com.vdr.logistiek.gui.template.MyFilterColumn;
import com.vdr.logistiek.service.KostenService;
import com.vdr.logistiek.service.view.KostenOVService;
 

public class RegelPage   extends WebPage{
	private RegelInput input;
	private List<KostenOV> kostenOVList = new ArrayList<KostenOV>();
	
	@SpringBean(name = "kostenService") private KostenService kostenService;
	@SpringBean(name = "kostenOVService") private KostenOVService
kostenOVService;
	
	public RegelPage(){
		input = new RegelInput();
		setDefaultModel(new CompoundPropertyModel<RegelInput>(input));
		KostenOVProvider kostenOVProvider = new KostenOVProvider();
		FilterForm form = new FilterForm("inputForm", kostenOVProvider);
		 
		add(form);	
		
		addTable(form, kostenOVProvider);	
		
		form.add(getSaveButton());
		form.add(getCancelButton());
		form.add(new FeedbackPanel("feedback"));		
	}

	private Form getForm(){
		Form form = new Form("inputForm"){
			private static final long serialVersionUID = 1L;
			protected void onSubmit() {
                info("the form was submitted!");
                
            }			
		};
		return form;
	}

	private Button getSaveButton(){
		Button saveButton = new Button("saveButton"){
            public void onSubmit(){            	
            	System.out.println("savebutton clicked");
//            	PageParameters parameters = new PageParameters();
//            	setResponsePage(OverzichtPage.class,parameters);d
            	for (KostenOV kostenOV:kostenOVList){
            		System.out.println(kostenOV.isSelect());
            	}
             }
		};
		return saveButton;
	}

	/**
	 * 
	 * @return
	 */
	private Button getCancelButton(){
		Button cancelButton = new Button("cancelButton"){
            @Override
            public void onSubmit(){
            	setResponsePage(KostenfacturenOverzichtPage.class);
            }
		};
		cancelButton.setDefaultFormProcessing(false);
		return cancelButton;
	}
	
	@SuppressWarnings({ "rawtypes" })
	class KostenOVProvider extends SortableDataProvider<KostenOV> implements
IFilterStateLocator, Serializable {
		private KostenOV kostenSelectie = new KostenOV();

		public KostenOVProvider() {
			setSort("vm.partijnummer", SortOrder.ASCENDING);
		}

		@Override
		public Iterator<KostenOV> iterator(int first, int count) {
			kostenOVList = kostenOVService.findAll(first, count, kostenSelectie,
getSort());
			return kostenOVList.iterator();
		}

		@Override
		public int size() {
			return kostenOVService.countFindAll(kostenSelectie);
		}

		@Override
		public IModel<KostenOV> model(KostenOV kostenSelectie) {
			return new DetachableKostenOVModel(kostenSelectie);
		}

		@Override
		public Object getFilterState() {
			return kostenSelectie;
		}

		@Override
		public void setFilterState(Object kostenSelectie) {
			this.kostenSelectie = (KostenOV) kostenSelectie;
		}
	}
	
	class DetachableKostenOVModel extends LoadableDetachableModel<KostenOV> {
		// @SuppressWarnings("unused")
		// private List<Magazijn> magazijnList ;
		private KostenOV kosten;		 

		public DetachableKostenOVModel(KostenOV c) {
			//this(c.getId());
			this.kosten = c;
			System.out.println("select in model="+kosten.isSelect());
		}

		public DetachableKostenOVModel(long id) {
			if (id == 0) {
				throw new IllegalArgumentException();
			}			 
		}

		protected KostenOV load() {
			return kosten;
		}
	}
	
	@SuppressWarnings({ "unchecked", "rawtypes" })
	private void addTable(FilterForm form, KostenOVProvider kostenOVProvider) {
		MyFilterColumn myFilterColumn = new MyFilterColumn();
		List<IColumn&lt;?>> columns = new ArrayList<IColumn&lt;?>>();

		columns.add(addActionsColumn());
		 
		columns.add(myFilterColumn.getString ("Trans."	, "vm.transportkode"	,
"transportkode",4));
		columns.add(myFilterColumn.getInteger("Partij"	, "vm.partijnummer"		,
"partijnummer",6));// gui, dbo, getset
		columns.add(myFilterColumn.getInteger("vlg"		, "vm.partijvolgnr"		,
"partijvolgnr",3));
		columns.add(myFilterColumn.getInteger("Order"	, "vm.ordernummer"		,
"ordernummer",6));
		columns.add(myFilterColumn.getInteger("vlg"		, "vm.ordervolgnummer"	,
"ordervolgnummer",3));
		columns.add(myFilterColumn.getString ("Mag"		, "vm.eindlokatie"		,
"eindlokatie",5));
		columns.add(myFilterColumn.getString ("Artikel"	, "vm.artikelkode"		,
"artikelkode",7));
		columns.add(myFilterColumn.getString ("Zoekveld", "vm.zoekveld"			,
"zoekveldArtikel",8));
		columns.add(myFilterColumn.getInteger("Aantal"	, "vm.aantal"			,
"aantal",6));
		columns.add(myFilterColumn.getInteger("Transp"	, "vm.transporteur"		,
"transporteur",6));
		columns.add(myFilterColumn.getString ("Naam"	, "r.naam"				,
"naamTransporteur",10));
		columns.add(myFilterColumn.getString ("Mutcde"	, "vm.mutatiekode"		,
"mutatiekode",5));
 
		DataTable table = new DataTable("datatable", columns, kostenOVProvider,
10){
			protected Item newRowItem(String id, int index, IModel model) { 
                Item item = super.newRowItem(id, index, model); 
                item.add(new AttributeModifier("class",  new Model( 
                                index % 2 == 0 ? "even" : "odd"))); 
                return item; 
        } 
		};
		FilterToolbar filterToolbar = new FilterToolbar(table, form,
kostenOVProvider);
		table.addTopToolbar(new HeadersToolbar(table, kostenOVProvider));
		table.addTopToolbar(filterToolbar);
		table.addBottomToolbar(new NavigationToolbar(table));
		form.add(table);
	}
	private FilteredAbstractColumn<KostenOV> addActionsColumn() {
		return new FilteredAbstractColumn<KostenOV>( 
				new ResourceModel( getString("Actie"))) {

			@Override
			public Component getFilter(String componentId, FilterForm<?> form) {
				return new GoAndClearFilter(componentId, form,
						new ResourceModel("filter"), new ResourceModel("clear"));
			}

			@Override
			public void populateItem(Item<ICellPopulator&lt;KostenOV>>
cellItem,String componentId, IModel<KostenOV> rowModel) {
				cellItem.add(new UserActionsPanel(componentId, rowModel,cellItem));
				;
			}
		};
	}
	private static class UserActionsPanel extends Panel {
		public UserActionsPanel(String id, IModel<KostenOV> kostenModel,Item item)
{
			super(id);
			//addEditButton(kostenModel);
 
			add(new CheckBox("select", item.getModel()));
		}

		private void addEditButton(final IModel<KostenOV> kostenModel) {
			Button editButton = new Button("editButton"){
	            public void onSubmit(){            	
	            	
	            	KostenOV kostenOV =  kostenModel.getObject(); 
	            	PageParameters parameters = new PageParameters();
	            	//parameters.add("id", kostenOV.getKostenId() );
	            	setResponsePage(HeaderPage.class,parameters);
	             }
			};
			add(editButton);
		} 
	}	
}




--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/Checkbox-in-DataTable-is-not-reflecting-its-sts-in-checkbox-tp4651174.html
Sent from the Users forum mailing list archive at Nabble.com.

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


Re: Checkbox in DataTable is not reflecting its sts in checkbox

Posted by Bertrand Guay-Paquet <be...@step.polymtl.ca>.
You have 2 choices:

1) put the boolean as a property of your KostenOV and reference it with 
a model (e.g. propertyModel)

2) Use a CheckGroup and multiple checkboxes which use the id of KostenOV 
as their value. Have a look at:
-http://www.wicket-library.com/wicket-examples/compref/wicket/bookmarkable/org.apache.wicket.examples.compref.CheckGroupPage
-http://www.wicket-library.com/wicket-examples/compref/wicket/bookmarkable/org.apache.wicket.examples.compref.CheckGroupPage

I would probably go for option 2.

On 14/08/2012 7:09 AM, Delange wrote:
> I agree, but how should the code be? At the end it has to be placed in the
> model.
> Do you have any suggestion?
>
>
>
>
>
> --
> View this message in context: http://apache-wicket.1842946.n4.nabble.com/Checkbox-in-DataTable-is-not-reflecting-its-sts-in-checkbox-tp4651174p4651225.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>


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


Re: Checkbox in DataTable is not reflecting its sts in checkbox

Posted by Delange <de...@telfort.nl>.
I agree, but how should the code be? At the end it has to be placed in the
model. 
Do you have any suggestion?





--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/Checkbox-in-DataTable-is-not-reflecting-its-sts-in-checkbox-tp4651174p4651225.html
Sent from the Users forum mailing list archive at Nabble.com.

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


Re: Checkbox in DataTable is not reflecting its sts in checkbox

Posted by Bertrand Guay-Paquet <be...@step.polymtl.ca>.
Hi,

In the constructor of UserActionsPanel, the checkbox is created like so:

add(new CheckBox("select", item.getModel()));

However, I think item.getModel() returns an 
IModel<ICellPopulator<KostenOV>> type. This can't work in a CheckBox 
which requires a Boolean model.

On 13/08/2012 8:33 AM, Delange wrote:
> Hi, in this program i use a datatable with selections. In the column  beneath
> the filtercolum i added a checkbox.
> The user must select wich records the program must add to another file (at
> the end)
>
> In this example the table is shown correctly, it has a checkbox.
> But whatever I do I'll never see any  status change reflecting the checkbox.
>
> (The checkbox is part of the KostenOV record that is shown)
>
> I can'figure out what is wrong. I read a lot of articles but none could
> help.
>
> My source is:
>
>
>
> package com.vdr.logistiek.gui.kosten.regels.opbouw;
>
> import java.io.Serializable;
> import java.util.ArrayList;
> import java.util.Iterator;
> import java.util.List;
>
> import org.apache.wicket.AttributeModifier;
> import org.apache.wicket.Component;
> import
> org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
> import
> org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder;
> import
> org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
> import
> org.apache.wicket.extensions.markup.html.repeater.data.table.HeadersToolbar;
> import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
> import
> org.apache.wicket.extensions.markup.html.repeater.data.table.NavigationToolbar;
> import
> org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
> import
> org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilterForm;
> import
> org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilterToolbar;
> import
> org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilteredAbstractColumn;
> import
> org.apache.wicket.extensions.markup.html.repeater.data.table.filter.GoAndClearFilter;
> import
> org.apache.wicket.extensions.markup.html.repeater.data.table.filter.IFilterStateLocator;
> import
> org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
> import org.apache.wicket.markup.html.WebPage;
> import org.apache.wicket.markup.html.form.Button;
> import org.apache.wicket.markup.html.form.CheckBox;
> import org.apache.wicket.markup.html.form.Form;
> import org.apache.wicket.markup.html.panel.FeedbackPanel;
> import org.apache.wicket.markup.html.panel.Panel;
> import org.apache.wicket.markup.repeater.Item;
> import org.apache.wicket.model.CompoundPropertyModel;
> import org.apache.wicket.model.IModel;
> import org.apache.wicket.model.LoadableDetachableModel;
> import org.apache.wicket.model.Model;
> import org.apache.wicket.model.ResourceModel;
> import org.apache.wicket.request.mapper.parameter.PageParameters;
> import org.apache.wicket.spring.injection.annot.SpringBean;
>   
> import com.vdr.logistiek.bo.view.KostenOV;
> import com.vdr.logistiek.gui.kosten.header.HeaderPage;
> import com.vdr.logistiek.gui.kosten.overzicht.KostenfacturenOverzichtPage;
> import com.vdr.logistiek.gui.template.MyFilterColumn;
> import com.vdr.logistiek.service.KostenService;
> import com.vdr.logistiek.service.view.KostenOVService;
>   
>
> public class RegelPage   extends WebPage{
> 	private RegelInput input;
> 	private List<KostenOV> kostenOVList = new ArrayList<KostenOV>();
> 	
> 	@SpringBean(name = "kostenService") private KostenService kostenService;
> 	@SpringBean(name = "kostenOVService") private KostenOVService
> kostenOVService;
> 	
> 	public RegelPage(){
> 		input = new RegelInput();
> 		setDefaultModel(new CompoundPropertyModel<RegelInput>(input));
> 		KostenOVProvider kostenOVProvider = new KostenOVProvider();
> 		FilterForm form = new FilterForm("inputForm", kostenOVProvider);
> 		
> 		add(form);	
> 		
> 		addTable(form, kostenOVProvider);	
> 		
> 		form.add(getSaveButton());
> 		form.add(getCancelButton());
> 		form.add(new FeedbackPanel("feedback"));		
> 	}
>
> 	private Form getForm(){
> 		Form form = new Form("inputForm"){
> 			private static final long serialVersionUID = 1L;
> 			protected void onSubmit() {
>                  info("the form was submitted!");
>                  
>              }			
> 		};
> 		return form;
> 	}
>
> 	private Button getSaveButton(){
> 		Button saveButton = new Button("saveButton"){
>              public void onSubmit(){            	
>              	System.out.println("savebutton clicked");
> //            	PageParameters parameters = new PageParameters();
> //            	setResponsePage(OverzichtPage.class,parameters);d
>              	for (KostenOV kostenOV:kostenOVList){
>              		System.out.println(kostenOV.isSelect());
>              	}
>               }
> 		};
> 		return saveButton;
> 	}
>
> 	/**
> 	 *
> 	 * @return
> 	 */
> 	private Button getCancelButton(){
> 		Button cancelButton = new Button("cancelButton"){
>              @Override
>              public void onSubmit(){
>              	setResponsePage(KostenfacturenOverzichtPage.class);
>              }
> 		};
> 		cancelButton.setDefaultFormProcessing(false);
> 		return cancelButton;
> 	}
> 	
> 	@SuppressWarnings({ "rawtypes" })
> 	class KostenOVProvider extends SortableDataProvider<KostenOV> implements
> IFilterStateLocator, Serializable {
> 		private KostenOV kostenSelectie = new KostenOV();
>
> 		public KostenOVProvider() {
> 			setSort("vm.partijnummer", SortOrder.ASCENDING);
> 		}
>
> 		@Override
> 		public Iterator<KostenOV> iterator(int first, int count) {
> 			kostenOVList = kostenOVService.findAll(first, count, kostenSelectie,
> getSort());
> 			return kostenOVList.iterator();
> 		}
>
> 		@Override
> 		public int size() {
> 			return kostenOVService.countFindAll(kostenSelectie);
> 		}
>
> 		@Override
> 		public IModel<KostenOV> model(KostenOV kostenSelectie) {
> 			return new DetachableKostenOVModel(kostenSelectie);
> 		}
>
> 		@Override
> 		public Object getFilterState() {
> 			return kostenSelectie;
> 		}
>
> 		@Override
> 		public void setFilterState(Object kostenSelectie) {
> 			this.kostenSelectie = (KostenOV) kostenSelectie;
> 		}
> 	}
> 	
> 	class DetachableKostenOVModel extends LoadableDetachableModel<KostenOV> {
> 		// @SuppressWarnings("unused")
> 		// private List<Magazijn> magazijnList ;
> 		private KostenOV kosten;		
>
> 		public DetachableKostenOVModel(KostenOV c) {
> 			//this(c.getId());
> 			this.kosten = c;
> 			System.out.println("select in model="+kosten.isSelect());
> 		}
>
> 		public DetachableKostenOVModel(long id) {
> 			if (id == 0) {
> 				throw new IllegalArgumentException();
> 			}			
> 		}
>
> 		protected KostenOV load() {
> 			return kosten;
> 		}
> 	}
> 	
> 	@SuppressWarnings({ "unchecked", "rawtypes" })
> 	private void addTable(FilterForm form, KostenOVProvider kostenOVProvider) {
> 		MyFilterColumn myFilterColumn = new MyFilterColumn();
> 		List<IColumn&lt;?>> columns = new ArrayList<IColumn&lt;?>>();
>
> 		columns.add(addActionsColumn());
> 		
> 		columns.add(myFilterColumn.getString ("Trans."	, "vm.transportkode"	,
> "transportkode",4));
> 		columns.add(myFilterColumn.getInteger("Partij"	, "vm.partijnummer"		,
> "partijnummer",6));// gui, dbo, getset
> 		columns.add(myFilterColumn.getInteger("vlg"		, "vm.partijvolgnr"		,
> "partijvolgnr",3));
> 		columns.add(myFilterColumn.getInteger("Order"	, "vm.ordernummer"		,
> "ordernummer",6));
> 		columns.add(myFilterColumn.getInteger("vlg"		, "vm.ordervolgnummer"	,
> "ordervolgnummer",3));
> 		columns.add(myFilterColumn.getString ("Mag"		, "vm.eindlokatie"		,
> "eindlokatie",5));
> 		columns.add(myFilterColumn.getString ("Artikel"	, "vm.artikelkode"		,
> "artikelkode",7));
> 		columns.add(myFilterColumn.getString ("Zoekveld", "vm.zoekveld"			,
> "zoekveldArtikel",8));
> 		columns.add(myFilterColumn.getInteger("Aantal"	, "vm.aantal"			,
> "aantal",6));
> 		columns.add(myFilterColumn.getInteger("Transp"	, "vm.transporteur"		,
> "transporteur",6));
> 		columns.add(myFilterColumn.getString ("Naam"	, "r.naam"				,
> "naamTransporteur",10));
> 		columns.add(myFilterColumn.getString ("Mutcde"	, "vm.mutatiekode"		,
> "mutatiekode",5));
>   
> 		DataTable table = new DataTable("datatable", columns, kostenOVProvider,
> 10){
> 			protected Item newRowItem(String id, int index, IModel model) {
>                  Item item = super.newRowItem(id, index, model);
>                  item.add(new AttributeModifier("class",  new Model(
>                                  index % 2 == 0 ? "even" : "odd")));
>                  return item;
>          }
> 		};
> 		FilterToolbar filterToolbar = new FilterToolbar(table, form,
> kostenOVProvider);
> 		table.addTopToolbar(new HeadersToolbar(table, kostenOVProvider));
> 		table.addTopToolbar(filterToolbar);
> 		table.addBottomToolbar(new NavigationToolbar(table));
> 		form.add(table);
> 	}
> 	private FilteredAbstractColumn<KostenOV> addActionsColumn() {
> 		return new FilteredAbstractColumn<KostenOV>(
> 				new ResourceModel( getString("Actie"))) {
>
> 			@Override
> 			public Component getFilter(String componentId, FilterForm<?> form) {
> 				return new GoAndClearFilter(componentId, form,
> 						new ResourceModel("filter"), new ResourceModel("clear"));
> 			}
>
> 			@Override
> 			public void populateItem(Item<ICellPopulator&lt;KostenOV>>
> cellItem,String componentId, IModel<KostenOV> rowModel) {
> 				cellItem.add(new UserActionsPanel(componentId, rowModel,cellItem));
> 				;
> 			}
> 		};
> 	}
> 	private static class UserActionsPanel extends Panel {
> 		public UserActionsPanel(String id, IModel<KostenOV> kostenModel,Item item)
> {
> 			super(id);
> 			//addEditButton(kostenModel);
>   
> 			add(new CheckBox("select", item.getModel()));
> 		}
>
> 		private void addEditButton(final IModel<KostenOV> kostenModel) {
> 			Button editButton = new Button("editButton"){
> 	            public void onSubmit(){            	
> 	            	
> 	            	KostenOV kostenOV =  kostenModel.getObject();
> 	            	PageParameters parameters = new PageParameters();
> 	            	//parameters.add("id", kostenOV.getKostenId() );
> 	            	setResponsePage(HeaderPage.class,parameters);
> 	             }
> 			};
> 			add(editButton);
> 		}
> 	}	
> }
>
>
>
>
> --
> View this message in context: http://apache-wicket.1842946.n4.nabble.com/Checkbox-in-DataTable-is-not-reflecting-its-sts-in-checkbox-tp4651174.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>


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