ExtendedDataTable select
ibstmt Nov 16, 2010 3:18 PMI am using an ExtendedDataTableBean class to manage my table. After loading the table, how can I programatically select the first row by default?
Here is my class.
package com.ibi.widgets;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.richfaces.model.DataProvider;
import org.richfaces.model.ExtendedTableDataModel;
import org.richfaces.model.selection.SimpleSelection;
public class ExtendedDataTableBean {
private String sortMode = "single";
private String selectionMode = "multi";
private SimpleSelection selection;
private List selectedItems = new ArrayList();
private ExtendedTableDataModel dataModel;
private List items = new ArrayList();
public SimpleSelection getSelection() {
return selection;
}
public List getSelectedItems() {
return selectedItems;
}
public void setSelectedItems(List selectedItems) {
this.selectedItems = selectedItems;
}
public void setSelection(SimpleSelection selection) {
this.selection = selection;
}
public Object getSelectedObject() {
Iterator<Object> iterator = getSelection().getKeys();
while (iterator.hasNext()) {
Object key = iterator.next();
dataModel.setRowKey(key);
return dataModel.getRowData();
}
return null;
}
public String getSortMode() {
return sortMode;
}
public void setSortMode(String sortMode) {
this.sortMode = sortMode;
}
public String getSelectionMode() {
return selectionMode;
}
public void setSelectionMode(String selectionMode) {
this.selectionMode = selectionMode;
}
public ExtendedDataTableBean() {
}
public ExtendedTableDataModel getDataModel() {
dataModel = new ExtendedTableDataModel(new DataProvider() {
private static final long serialVersionUID = 5054087821033164847L;
public Object getItemByKey(Object key) {
for (Object c : items) {
if (key.equals(getKey(c))) {
return c;
}
}
return null;
}
public List getItemsByRange(int firstRow, int endRow) {
return items.subList(firstRow, endRow);
}
public Object getKey(Object item) {
return item.hashCode();
}
public int getRowCount() {
return items.size();
}
});
return dataModel;
}
public void takeSelection() {
clearSelection();
Iterator<Object> iterator = getSelection().getKeys();
while (iterator.hasNext()) {
Object key = iterator.next();
getDataModel().setRowKey(key);
getSelectedItems().add(getDataModel().getRowData());
}
}
public void clearSelection() {
getSelectedItems().clear();
}
public void setItems(List items) {
this.items = items;
}
}