I have some problems in using the datamodel.
I have two Tables on my page and i add entries from one table to the 2nd, which 
works fine.
After adding i should have the possibility to remove entries again from the 2nd 
table, which works, but only with the first entry..
If i alway delete the first entry until the table is empty this is again no 
problem, but if i like to delete an entry in the middle or at the end, I get an 
exception saying the row is unavailable.. 

 

My Bean:

  | @Stateful
  | @Scope(ScopeType.CONVERSATION)
  | @Name("caseAction")
  | public class CaseAction implements ICase,Serializable{
  | 
  |     
  |     @PersistenceContext
  |     private EntityManager em;
  |     
  |     @In
  |     private User authUser;
  |     
  |     @Logger
  |     private Log log;
  |     
  |     @In
  |     private FacesMessages facesMessages;
  |     
  |     private PersistentFacesState state;
  |     
  |     @In(create=true)
  |     @Out(required=false)
  |     private Patient patient;
  |     
  |     @Out(value="selectedMedCase",required=false)
  |     MedCase mcase;
  |     
  |     @In(create=true)
  |     @Out(required=false)
  |     private CaseType caseType;
  |     
  |     
  |     @DataModel(value="professionals")
  |     private List<HealthProfessional> professionals;
  |     @DataModelSelection(value="professionals")
  |     @Out(required=false)
  |     private HealthProfessional selectedProfessional;
  |     
  |     @DataModel(value="searchProfessionals")
  |     private List<HealthProfessional> searchProfessionals;
  |     @DataModelSelection(value="searchProfessionals")
  |     @Out(required=false)
  |     private HealthProfessional selectedSearchedProfessionals;
  | 
  |     private String description;
  |     
  |     
  |     
  |     public CaseAction(){
  |             
  |     }
  | 
  |     @Begin(join=true)
  |     @Factory("searchProfessionals")
  |     public void initSearchProfessionals(){
  |             searchProfessionals = em.createQuery("FROM HealthProfessional 
hp " +
  |                             "order by hp.lastname").getResultList();
  |             professionals = new ArrayList<HealthProfessional>();
  |     }
  | 
  |     
  |     @End
  |     public String create(){
  |             
  |             log.info("create")
  |             
  |             return "/protected/prof/profMyCases.seam";
  |     }
  |             
  |     
  |     
  |     public void deleteProf(){
  |             professionals.remove(selectedProfessional);
  |             state = PersistentFacesState.getInstance();
  |             
  |             log.info("delete Health Professional");
  |             
  |     }
  |     
  |     public void addProf(){
  |             
  |             if(!professionals.contains(selectedSearchedProfessionals)){
  |                     professionals.add(selectedSearchedProfessionals);
  |             }
  |             
  |             log.info("added Health Professional: 
#{selectedSearchedProfessionals}");
  |     }
  |     
  |     public void patientChanged(ValueChangeEvent event){
  |             log.info("patient change event");
  |     }
  |     
  |     public List<Patient> getMyPatients(){
  |             HealthProfessional prof = (HealthProfessional)authUser;
  |             
  |             List<Patient> patients;
  |             
  |             
  |             patients = em.createNamedQuery("findAllPatientOfProfessional")
  |                                     .setParameter("prof", 
prof).getResultList();
  |             
  |             return patients;
  |     }
  |     
  |     public List<CaseType> getCaseTypes(){
  |             
  |             List<CaseType> types;
  |             
  |             types = em.createNamedQuery("findAllCaseTypes").getResultList();
  |             
  |             return types;
  |     }
  |     
  |     public String getDescription(){
  |             return description;
  |     }
  |     
  |     public void setDescription(String description){
  |             this.description = description;
  |     }
  |     
  | 
  | 
  |     @Destroy @Remove
  |     public void destroy(){
  |             
  |     }
  | 
  | }
  | 

My website:

  | <?xml version="1.0" encoding="ISO-8859-1" ?>
  | <ui:composition xmlns:ui="http://java.sun.com/jsf/facelets";
  |     xmlns:jsp="http://java.sun.com/JSP/Page";
  |     xmlns:f="http://java.sun.com/jsf/core";
  |     xmlns:h="http://java.sun.com/jsf/html";
  |     xmlns:ice="http://www.icesoft.com/icefaces/component";
  |     xmlns:s="http://jboss.com/products/seam/taglib";
  |     template="../../layout/template.jsp">
  | 
  |     <ui:define name="content">
  |                             
  |                             
  |                             <ice:panelAccordion expanded="true" 
styleClass="accordion">
  |                             <f:facet name="header">
  |                                     <ice:outputText 
value="#{messages['profNewCase.title']}" />
  |                             </f:facet>
  | 
  |                                     <ice:form id="form">
  | 
  | 
  |                                     <ice:panelGrid columns="3">
  | 
  |                                             <ice:outputText 
value="#{messages['profNewCase.patient']}" />
  |                                             <ice:outputText 
value="#{messages['profNewCase.description']}" />
  |                                             <ice:outputText 
value="#{messages['profNewCase.type']}" />
  |                                             
  |                                             <h:selectOneMenu 
id="patientListbox" required="true"
  |                                             value="#{patient}" >
  |                                                     
  |                                                     
  |                                                     <s:selectItems 
value="#{caseAction.myPatients}" var="patient" 
  |                                                     
label="#{patient.firstname} #{patient.lastname}" 
  |                                                     
noSelectionLabel="#{messages['profNewCase.noSelection']}"/>
  |                                                     <s:convertEntity />
  | 
  |                                             </h:selectOneMenu>
  |                                             
  |                                             <ice:inputText required="true" 
value="#{caseAction.description}" />
  | 
  | 
  |                                             
  |                                             <h:selectOneMenu 
id="typeListbox" required="true"
  |                                             value="#{caseType}">
  |                                                     
  |                                                     
  |                                                     <s:selectItems 
value="#{caseAction.caseTypes}" var="caseType" 
  |                                                     
label="#{caseType.type}" 
  |                                                     
noSelectionLabel="#{messages['profNewCase.noSelection']}"/>
  |                                                     <s:convertEntity />
  | 
  |                                             </h:selectOneMenu>
  | 
  | 
  |                                     </ice:panelGrid>
  | 
  |                                     <ice:outputText 
value="#{messages['profNewCase.notAdded']}" 
  |                                     rendered="#{professionals != null and 
professionals.rowCount==0}"/>
  |                                     
  |                                     <ice:dataTable var="prof" 
value="#{professionals}"
  |                                             sortColumn="#{list.sort}" 
sortAscending="#{list.ascending}"
  |                                             scrollable="#{table.scrollable}"
  |                                             
scrollHeight="#{table.scrollableHeight}"
  |                                             
columnWidths="150px,150px,150px,150px"
  |                                             
rendered="#{professionals.rowCount>0}">
  | 
  |                                             <f:facet name="header">
  |                                                     <ice:outputText 
value="#{messages['profNewCase.responsibleProf']}" />
  |                                             </f:facet>
  | 
  | 
  |                                             <ice:column>
  |                                                     <f:facet name="header">
  |                                                             <ice:outputText 
value="#{messages['profNewCase.firstname']}" />
  |                                                     </f:facet>
  |                                                     <ice:outputText 
value="#{prof.firstname}" />
  | 
  |                                             </ice:column>
  | 
  |                                             <ice:column>
  |                                                     <f:facet name="header">
  |                                                             <ice:outputText 
value="#{messages['profNewCase.lastname']}" />
  |                                                     </f:facet>
  |                                                     <ice:outputText 
value="#{prof.lastname}" />
  | 
  |                                             </ice:column>
  |                                             
  |                                             <ice:column>
  |                                                     <f:facet name="header">
  |                                                             <ice:outputText 
value="#{messages['profNewCase.state']}" />
  |                                                     </f:facet>
  |                                                     <ice:outputText 
value="#{prof.state}" />
  | 
  |                                             </ice:column>
  |                                             
  |                                             <ice:column>
  |                                                     <f:facet name="header">
  |                                                             <ice:outputText 
value="#{messages['profNewCase.edit']}" />
  |                                                     </f:facet>
  |                                                     <s:link 
value="[delete]" action="#{caseAction.deleteProf}" />
  | 
  |                                             </ice:column>
  | 
  |                                     </ice:dataTable>
  |                                     
  |                                                                     
  |                             <br />
  |                             <ice:commandButton type="submit" 
value="#{messages['profNewCase.create']}"
  |                                                     
action="#{caseAction.create}" />
  |                             </ice:form>
  |                             
  |                             <ice:form id="searchForm">
  |                                     
  |                             
  |                             <ice:panelAccordion expanded="true" 
styleClass="accordion">
  |                             <f:facet name="header">
  |                                     <ice:outputText 
value="#{messages['profNewCase.search']}" />
  |                             </f:facet>
  | 
  | 
  |                                     <ice:outputText value="No Health 
Professionals Found" 
  |                                     rendered="#{searchProfessionals != null 
and searchProfessionals.rowCount==0}"/>
  |                                     
  |                                     <ice:dataTable var="sProfs" 
value="#{searchProfessionals}"
  |                                             sortColumn="#{list.sort}" 
sortAscending="#{list.ascending}"
  |                                             scrollable="#{table.scrollable}"
  |                                             
scrollHeight="#{table.scrollableHeight}"
  |                                             
columnWidths="150px,150px,150px,150px"
  |                                             
rendered="#{searchProfessionals.rowCount>0}">
  | 
  | 
  | 
  | 
  | 
  |                                             <ice:column>
  |                                                     <f:facet name="header">
  |                                                             <ice:outputText 
value="#{messages['profNewCase.firstname']}" />
  |                                                     </f:facet>
  |                                                     <ice:outputText 
value="#{sProfs.firstname}" />
  | 
  |                                             </ice:column>
  | 
  |                                             <ice:column>
  |                                                     <f:facet name="header">
  |                                                             <ice:outputText 
value="#{messages['profNewCase.lastname']}" />
  |                                                     </f:facet>
  |                                                     <ice:outputText 
value="#{sProfs.lastname}" />
  | 
  |                                             </ice:column>
  |                                             
  |                                             <ice:column>
  |                                                     <f:facet name="header">
  |                                                             <ice:outputText 
value="#{messages['profNewCase.edit']}" />
  |                                                     </f:facet>
  |                                                     <s:link value="[add]" 
action="#{caseAction.addProf}" />
  | 
  |                                             </ice:column>
  | 
  |                                     </ice:dataTable>
  | 
  |                                     </ice:panelAccordion>
  |                                     </ice:form>
  | 
  | 
  |                             </ice:panelAccordion>
  |                             
  | 
  |     </ui:define>
  | </ui:composition>
  | 

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4058585#4058585

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4058585
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to