Home > Java for Web, Programmazione > Riga di una tabella iceFaces

Riga di una tabella iceFaces

Spesso mi è stato chiesto come lanciare delle azioni specifiche per una riga di una tabella creata in JSF e IceFaces. Sa soluzione che io preferisco è l’uso dell’oggetto “com.icesoft.faces.component.ext.HtmlDataTable”.

In questo piccolo esempio ho una lista di stringhe riempita da diversi oggetti, che viene visualizzata sottoforma di tabella, ed in corrispondenza di ogni riga ho la possibilità di eliminare quel preciso oggetto dalla lista.

Codice del javaBean:

import com.icesoft.faces.component.ext.HtmlDataTable;
import java.util.ArrayList;
import javax.faces.event.ActionEvent;

public class NoteBean {

 private HtmlDataTable dataTableNoteBinding;
 private ArrayList<String> listaNote = null;

 public NoteBean(){
 listaNote = new ArrayList<String>();
 }

 public HtmlDataTable getDataTableNoteBinding() {
        return dataTableNoteBinding;
 }

 public void setDataTableNoteBinding(HtmlDataTable dataTableNoteBinding) {
        this.dataTableNoteBinding = dataTableNoteBinding;
 }

 public ArrayList<String> getListaNote() {
        //riempo la lista con qualche stringa di esempio
        if(listaNote==null){
           listaNote=new ArrayList<String>();
           listaNote.add("stringa 1");
           listaNote.add("stringa 2");
           listaNote.add("stringa 3");
        }
        return listaNote;
 }

 public void setListaNote(ArrayList<String> listaNote) {
        this.listaNote = listaNote;
 }

 public void rimuoviNotaInLista(ActionEvent ae) {
        int rigaNoteSelezionata = getDataTableNoteBinding().getRowIndex();
        //il metodo getRowData() invece restituisce l'oggetto della riga,
        //e non solo il suo indice di posizionamento nella collezione
        listaNote.remove(rigaNoteSelezionata);
 }

}

Codice della tabella nella pagina JSF:

<ice:dataTable id="tabellaNote" binding="#{NoteBean.dataTableNoteBinding}" value="#{NoteBean.listaNote}" var="nota">
 <f:facet name="header">
   <ice:columnGroup>
     <ice:headerRow>
       <ice:column colspan="2">
         <ice:outputText value="Tabella"/>
       </ice:column>
     </ice:headerRow>
     <ice:headerRow>
       <ice:column>
         <ice:outputText value="Stringa"/>
       </ice:column>
       <ice:column>
          <ice:outputText value="Cancella"/>
       </ice:column>
     </ice:headerRow>
   </ice:columnGroup>
 </f:facet>
 <ice:column>
    <ice:outputText value="#{nota}"/>
 </ice:column>
 <ice:column>
    <ice:commandLink actionListener="#{NoteBean.rimuoviNotaInLista}" title="elimina"><ice:graphicImage url="/images/icone/elimina.png" style="border: none;" alt="elimina"/></ice:commandLink>
 </ice:column>
</ice:dataTable>

Naturalmente, se la necessità invece è quella di selezionare più di una riga, conviene usare i metodi di IceFaces “RowSelector”.

Inserisci il post sul tuo social network:
  • Facebook
  • LinkedIn
  • Google Bookmarks
  • Twitter
  • MySpace
  • Technorati
  • del.icio.us

LoryX Java for Web, Programmazione

  1. Nessun commento ancora...
  1. Nessun trackback ancora...