page:
Code: Select all
<f:view
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<html xmlns="http://www.w3.org/1999/xhtml">
<h:head>
</h:head>
<h:body>
<h:form id="itemform">
<p:dataTable value="#{tbean.table}" var="row"
selectionMode="single" selection="#{tbean.selectedItem}" style="width: 500px">
<p:ajax event="rowSelect" update="itemform:rowdetails"/>
<p:column headerText="column 1">
<h:outputText value="#{row.text1}"/>
</p:column>
<p:column headerText="column 2">
<h:outputText value="#{row.text2}"/>
</p:column>
</p:dataTable>
<h:panelGrid id="rowdetails" columns="2">
<h:outputLabel value="text1 of selected row:"/>
<h:outputText value="#{tbean.selectedItem.text1}"/>
<h:outputLabel value="text2 of selected row:"/>
<h:outputText value="#{tbean.selectedItem.text2}"/>
</h:panelGrid>
</h:form>
</h:body>
</html>
</f:view>
Code: Select all
package nl.timeware.vrtsim.beans;
import java.io.Serializable;
import java.util.*;
import javax.faces.model.ListDataModel;
import org.primefaces.model.SelectableDataModel;
public class TableBean implements Serializable
{
private Table table = null;
private Item selectedItem = null;
public TableBean()
{ table = new Table();
}
public Table getTable()
{ return table;
}
public Item getSelectedItem()
{ return selectedItem;
}
public void setSelectedItem(Item it)
{ selectedItem = it;
}
public class Table extends ListDataModel<Item> implements SelectableDataModel<Item>, Serializable
{
private List<Item> itemList = new ArrayList<Item>(5);
public Table()
{ setWrappedData(itemList);
for (short it = 0; it < 5; it++)
itemList.add(new Item(it));
}
public Object getRowKey(Item it)
{ return it.getID();
}
public Item getRowData(String key)
{ for (Item it: itemList)
if (Integer.toString(it.getID()).equals(key)) return it;
return null;
}
}
public class Item implements Serializable
{
private int id;
public Item(short it)
{ id = it;
}
public int getID()
{ return id;
}
public String getText1()
{ return "Item " + id + ", first column";
}
public String getText2()
{ return "Item " + id + ", second column";
}
}
}