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.