This walk through is based on Netbeans 6.0 IDE with Visual Web Pack. Download it from here
Follow Step in walk through at Binding Database Table to a Table Component Using JPA
Follow Step in walk through at Binding Database Table to a Table Component Using JPA
Follow Step in walk through at Binding Database Table to a Table Component Using JPA
public boolean addUser(User user) {
EntityManager em = getEntityManager();
try{
em.getTransaction().begin();
em.persist(user);
em.getTransaction().commit();
} finally {
em.close();
return false;
}
}
public boolean removeUser(Users user) {
EntityManager em = getEntityManager();
try{
em.getTransaction().begin();
Users userx = em.find(Users.class, user.getUserId());
em.remove(userx);
em.getTransaction().commit();
} finally {
em.close();
return false;
}
}
public boolean updateUser(User user) {
EntityManager em = getEntityManager();
try{
em.getTransaction().begin();
User userx = em.find(User.class, user.getUserId());
userx.setUserName(user.getUserName());
userx.setPasswd(user.getPasswd());
userx.setEmailAddress(user.getEmailAddress());
em.getTransaction().commit();
} finally {
em.close();
return false;
}
}
Modify the web page to add the following
The designer should like like

private TableSelectPhaseListener tablePhaseListener =
new TableSelectPhaseListener();
public void setSelected(Object object) {
RowKey rowKey = (RowKey)getValue("#{currentRow.tableRow}");
if (rowKey != null) {
tablePhaseListener.setSelected(rowKey, object);
}
}
public Object getSelected(){
RowKey rowKey = (RowKey)getValue("#{currentRow.tableRow}");
return tablePhaseListener.getSelected(rowKey);
}
public Object getSelectedValue() {
RowKey rowKey = (RowKey)getValue("#{currentRow.tableRow}");
return (rowKey != null) ? rowKey.getRowId() : null;
}
public boolean getSelectedState() {
RowKey rowKey = (RowKey)getValue("#{currentRow.tableRow}");
return tablePhaseListener.isSelected(rowKey);
}
<script>
function initAllRows() {
var table = document.getElementById("form1:table1");
table.initAllRows();
}
</script>
<webuijsf:radioButton binding="#{Page1.radioButton1}" id="radioButton1"
name="#{Page1.radioButton1.id}" selected="#{Page1.selected}"
selectedValue="#{Page1.selectedValue}"/>
<webuijsf:tableColumn binding="#{Page1.tableColumn5}" id="tableColumn5"
onClick="setTimeout('initAllRows()', 0)" selectId="#{Page1.radioButton1.id}">
<webuijsf:tableRowGroup binding="#{Page1.tableRowGroup1}"
id="tableRowGroup1" rows="10" selected="#{Page1.selectedState}"
sourceData="#{Page1.usersDataProvider}"
sourceVar="currentRow">
private boolean addRequest = false;
public String addButton_action() {
addRequest = true;
return null;
}
private boolean updateRequest = false;
public String updateButton_action() {
updateRequest = true;
return null;
}
public String deleteButton_action() { if (getTableRowGroup1().getSelectedRowsCount() > 0){ RowKey[] selectedRowKeys = getTableRowGroup1().getSelectedRowKeys(); Users[] users = getSessionBean1().getUsers(); int rowId = Integer.parseInt(selectedRowKeys[0].getRowId()); Users user = users[rowId]; // Remove the Entity from the database using UserController UserController userController = new UsersController(); userController.removeUser(user); } return null; }
public String addRecordButton_action() {
// Create a new User Entity
User newUser = new User();
newUser.setUserName((String) userNameField.getText());
newUser.setPasswd((String) passwordField.getText());
newUser.setEmailAddress((String) emailAddressField.getText());
// Add the new Entity to the database using UserController
UserController userController = new UserController();
userController.addUser(newUser);
showAddPanel = false;
return null;
}
public String updateRecordButton_action() {
// Create a new Users Entity
RowKey[] selectedRowKeys = getTableRowGroup1().getSelectedRowKeys();
Users[] users = getSessionBean1().getUsers();
int rowId = Integer.parseInt(selectedRowKeys[0].getRowId());
Users user = users[rowId];
user.setUserName((String) userNameField.getText());
user.setPasswd((String) passwordField.getText());
user.setEmailAddress((String) emailAddressField.getText());
// Update the database table data using UserController
UserController userController = new UserController();
userController.updateUser(newUser);
addRequest = false;
return null;
}
public void prerender() {
if(addRequest){
addUpdatePanel.setRendered(true);
addRecordButton.setRendered(true);
updateRecordButton.setRendered(false);
userNameField.setText("");
passwordField.setText("");
emailAddressField.setText("");
}else if (updateRequest){
if (getTableRowGroup1().getSelectedRowsCount() > 0){
// Get the data from the selected Entity and update the fields
RowKey[] selectedRowKeys = getTableRowGroup1().getSelectedRowKeys();
User[] users = (User[]) getSessionBean1().getUsers();
int rowId = Integer.parseInt(selectedRowKeys[0].getRowId());
Users user = users[rowId];
userNameField.setText(user.getUserName());
passwordField.setText(user.getPasswd());
emailAddressField.setText(user.getEmailAddress());
addUpdatePanel.setRendered(true);
addRecordButton.setRendered(false);
updateRecordButton.setRendered(true);
}
}else{
addUpdatePanel.setRendered(false);
}
// Refresh the users data array in the session bean to to show
// the newly added data or modified data in the Table Component
getSessionBean1().updateUsers()
}





