private void updateCurrentItem() {
   int count = getFacade().count();
   if (selectedItemIndex >= count) {
     // selected index cannot be bigger than number of items:
     selectedItemIndex = count - 1;
     // go to previous page if last page disappeared:
     if (pagination.getPageFirstItem() >= count) {
       pagination.previousPage();
     }
   }
   if (selectedItemIndex >= 0) {
     current = getFacade().findRange(new int[] {selectedItemIndex, selectedItemIndex + 1}).get(0);
   }
 }
 public String destroy() {
   current = (Especialidade) getItems().getRowData();
   selectedItemIndex = pagination.getPageFirstItem() + getItems().getRowIndex();
   performDestroy();
   recreatePagination();
   recreateModel();
   return "List";
 }
 public String prepareEdit() {
   current = (Especialidade) getItems().getRowData();
   selectedItemIndex = pagination.getPageFirstItem() + getItems().getRowIndex();
   return "Edit";
 }