You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Kevin Liu <mr...@yahoo.com> on 2007/09/24 05:19:59 UTC
Session Time out after Adding RadioGroup column to DataTable
After I succeed in adding RadioGroup column to DataTable, something causes session
time out. But it haven't happend when I used CheckBox instead of Radio. Thank you for your help.
<wicket:panel>
<span wicket:id="radioGroup">
<table class="dataview" cellspacing="0" wicket:id="dataview">[table]</table>
</span>
</wicket:panel>
public class RadioChoiceTablePanel extends Panel {
private static final long serialVersionUID = -7634745013490186318L;
private Object object = new Object();
private RadioGroup radioGroup = new RadioGroup("radioGroup", new PropertyModel(this, "object"));
protected List<AbstractColumn> tableColumns = new ArrayList<AbstractColumn>();
public RadioChoiceTablePanel(String id, List<AbstractColumn> columns,
ISortableDataProvider dataProvider, Form form,
List<AbstractAction> actions, int pageSize) {
super(id);
if (form != null) {
tableColumns.add(makeChoiceColumns());
}
tableColumns.addAll(columns);
if (actions != null) {
tableColumns.add(makeActionsColumn(actions));
}
this.addComponenets(dataProvider, pageSize);
}
/*
* @see com.cmip.web.components.AbstractTablePanel#makeActionsColumn(java.util.List)
*/
protected AbstractColumn makeActionsColumn(final List<AbstractAction> actions) {
return new AbstractColumn(new Model("Choices")) {
private static final long serialVersionUID = -8344906560719618815L;
public void populateItem(Item cellItem, String componentId, final IModel model) {
cellItem.add(new ActionsPanel(componentId, actions, model
.getObject()));
}
};
}
protected void onBeforeRender() {
super.onBeforeRender();
}
/*
* @see com.cmip.web.components.AbstractTablePanel#makeChoiceColumns()
*/
protected AbstractColumn makeChoiceColumns() {
return new AbstractColumn(new Model("Actions")) {
private static final long serialVersionUID = -8344906560719618814L;
public void populateItem(Item cellItem, String componentId, IModel model) {
RadioPanel radio = new RadioPanel(componentId, model);
radioGroup.add(radio);
cellItem.add(radio);
}
};
}
/*
* @see com.cmip.web.components.AbstractTablePanel#addComponenets(org.apache.wicket.extensions.markup.html.repeater.data.table.ISortableDataProvider, int)
*/
protected void addComponenets(ISortableDataProvider dataProvider, int pageSize) {
radioGroup.add(new DefaultDataTable("dataview", tableColumns,
dataProvider, pageSize));
this.add(radioGroup);
}
/*
* @see com.cmip.web.components.AbstractTablePanel#getSelectedItem()
*/
public Object getSelectedItem(){
// Object returnValue = this.radioGroup.getModelObject();
return getObject();
}
/**
* @return object
*/
public Object getObject() {
return object;
}
/**
* @param object
*/
public void setObject(Object object) {
this.object = object;
}
}
-Kevin Liu
---------------------------------
Take the Internet to Go: Yahoo!Go puts the Internet in your pocket: mail, news, photos & more.