incubator-adffaces-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matthias Wessendorf" <mat...@apache.org>
Subject Re: Trinidad table - remove a row
Date Tue, 13 Feb 2007 13:25:01 GMT
Henk,

the mentioned example uses that, when the update dialog returns.
I'll add some more goodies soon, but it already lot's of ;)

-M

On 2/13/07, Simon Lessard <simon.lessard.3@gmail.com> wrote:
> Oh, sorry, but it's still possible!!! With a bit more work though.
>
> In the page:
>
> <tr:table binding="#{myBean.table}" ...>
>   ...
> </tr:table>
>
> In the bean:
>
> private UIComponent table;
>
> public UIComponent getTable()
> {
>   return table;
> }
>
> public void setTable(UIComponent table)
> {
>   this.table = table;
> }
>
> public String myAction()
> {
>   RequestContext.getCurrentInstance().addPartialTarget(table);
>   // ...
> }
>
> On 2/13/07, Henk Vanhoe <Henk.Vanhoe@kava.be> wrote:
> >
> > Henk Vanhoe wrote:
> >
> > > Thank you for your answer!
> > >
> > > I have done some more tests and I noticed that when I push the
> > > "delete"-button the correct "contact" is removed from the model (the
> > > "smallTable"-list), but these changes are not correctly translated in
> > > the HTML-page... But when I replace my actionListener by an action
> > > method (as you do in your code), the changes are correctly displayed
> > > (as if with an actionlistener the view were not synchronized with the
> > > model??)
> > > Unfortunately with an actionListener it is impossible to use partial
> > > page rendering...
> >
> > I meant : Unfortunately with an *** action method *** it is impossible
> > to use partial page rendering...
> >
> > >
> > > Is there a way to force the view to be redisplayed with the correct
> > > data without losing the possibility to use partial page rendering?
> > >
> > > Regards,
> > > Henk
> > >
> > > Matthias Wessendorf wrote:
> > >
> > >> What I do is:
> > >>
> > >> <tr:column>
> > >>  <f:facet name="header">
> > >>    <tr:outputText value="-Delete-"/>
> > >>  </f:facet>
> > >>  <tr:commandLink id="delete" text="Delete" action="#{all.deleteUser}">
> > >>    <tr:setActionListener from="#{user}" to="#{all.toDelete}"/>
> > >>  </tr:commandLink>
> > >> </tr:column>
> > >>
> > >>
> > >> in the #{all} bean:
> > >> private User toDelete = null; (+set/get)
> > >>
> > >> and
> > >> public String deleteUser()
> > >> {
> > >>  this.getUserService().removeUser(toDelete);
> > >>  return ("all");
> > >> }
> > >>
> > >> the user service here is injected w/ spring.
> > >>
> > >> The demo is available here:
> > >>
> > >> http://code.google.com/p/facesgoodies/
> > >>
> > >>
> > >>
> > >>
> > >> On 2/13/07, Henk Vanhoe <Henk.Vanhoe@kava.be> wrote:
> > >>
> > >>> Hi,
> > >>>
> > >>> I'm trying to create a (trinidad) table in which it is possible to
> > >>> remove a row. Next to each row, a "delete"-button is displayed.
> > >>> However,
> > >>> each time I push the delete button, a wrong row is deleted (for
> > >>> instance, when I push the delete button next to the first row, the
> > >>> third
> > >>> row is removed)! Does anyone have an idea why this may be happening???
> > >>>
> > >>> Regards,
> > >>> Henk
> > >>>
> > >>> JSF-code:
> > >>>
> > >>>                 <tr:table var="row" value="#{tableBean.smallTable}"
> > >>> rowBandingInterval="1"
> > >>>                     binding="#{tableBean.smallTableBinding}">
> > >>>                     <tr:column sortProperty="naam" sortable="true">
> > >>>                         <f:facet name="header">
> > >>>                             <tr:outputText value="Naam" />
> > >>>                         </f:facet>
> > >>>                         <tr:inputText id="voornaam"
> > >>> value="#{row.naam}"/>
> > >>>                     </tr:column>
> > >>>                     <tr:column sortProperty="voornaam"
> > sortable="true">
> > >>>                         <f:facet name="header">
> > >>>                             <tr:outputText value="Voornaam" />
> > >>>                         </f:facet>
> > >>>                         <tr:inputText value="#{row.voornaam}" />
> > >>>                     </tr:column>
> > >>>                     <tr:column sortProperty="leeftijd"
> > sortable="true">
> > >>>                         <f:facet name="header">
> > >>>                             <tr:outputText value="Leeftijd" />
> > >>>                         </f:facet>
> > >>>                         <tr:inputText value="#{row.leeftijd}" />
> > >>>                     </tr:column>
> > >>>                     <tr:column>
> > >>>                       <tr:commandLink id="removeContact"
> > >>>                         text="Remove"
> > >>>                         actionListener="#{tableBean.removeContact}"
> > >>>                         immediate="true" />
> > >>>                     </tr:column>
> > >>>                 </tr:table>
> > >>>
> > >>> Managed bean:
> > >>>
> > >>> public class TableBean {
> > >>>     private List<Contact> smallTable;
> > >>>     private UIXTable smallTableBinding;
> > >>>
> > >>>     public TableBean() {
> > >>>         this.smallTable =  new ArrayList<Contact>();
> > >>>
> > >>>         Contact c1 = new Contact();
> > >>>         c1.setNaam("Vandam");
> > >>>         c1.setVoornaam("Alain");
> > >>>         c1.setLeeftijd("33");
> > >>>         smallTable.add(c1);
> > >>>
> > >>>         Contact c2 = new Contact();
> > >>>         c2.setNaam("Tanghe");
> > >>>         c2.setVoornaam("Sammy");
> > >>>         c2.setLeeftijd("36");
> > >>>         smallTable.add(c2);
> > >>>
> > >>>         Contact c3 = new Contact();
> > >>>         c3.setNaam("Laplasse");
> > >>>         c3.setVoornaam("Bucky");
> > >>>         c3.setLeeftijd("42");
> > >>>         smallTable.add(c3);
> > >>>     }
> > >>>
> > >>>     public void removeContact(ActionEvent event) throws Exception {
> > >>>         logger.info("Inside TableBean.removeContact()");
> > >>>
> > >>>         Contact contact = (Contact) smallTableBinding.getRowData();
> > >>>         Collection contacten = (Collection)
> > >>> smallTableBinding.getValue();
> > >>>         contacten.remove(contact);
> > >>>     }
> > >>>
> > >>>     //Getters, setters and other methods...
> > >>> }
> > >>>
> > >>> faces-config:
> > >>>
> > >>>   <managed-bean>
> > >>>     <managed-bean-name>tableBean</managed-bean-name>
> > >>>
> > >>> <managed-bean-class>be.kava.jsfdemo.table.TableBean
> > </managed-bean-class>
> > >>>
> > >>>     <managed-bean-scope>session</managed-bean-scope>
> > >>>   </managed-bean>
> > >>>
> > >>>
> > >>
> > >>
> > >
> >
> >
>


-- 
Matthias Wessendorf
http://tinyurl.com/fmywh

further stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com

Mime
View raw message