You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Catherine Rocchio <cr...@comcast.net> on 2011/04/26 20:31:43 UTC

Do Trinidad Tables update with new rows in PartialSubmit if a CommandButton outside table does the adding of rows?

Hi there,

 

I am trying to achieve a Partial Submit update of a Trinidad Table upon
submit of a Command Button (called "Add Row").  The bean behind the table is
definitely getting updated because when I do an overall page refresh, I see
my new rows getting added - but I can't seem to get the table to refresh on
its own with the partialTriggers on it.

 

So.. I guess my question is - should something like this work?  Or.. do
tables need to be programmatically poked for partial submits?  This seems
pretty basic - but - it just isn't working for me.  I guess I will feel
better if I know it SHOULD work - and I will keep trying.

 

I am using Trinidad 2 and Myfaces 2.

 

Sorry!!!!

 

Thanks for help!

Catherine

 

<tr:commandButton text="Add" partialSubmit="true" id="test"
actionListener="#{createworkplan.addAction}"  />

 

My addAction is just boring - but adds a row to a vector which is behind the
table.

 

      public void addAction(ActionEvent event) {

      

                  wprolelist.add(new RoleList("test person", "True",
"True", "True"));

}

 

And my table has the specification of the partialTrigger.

<tr:table id="workplanroleprivs" rowSelection="single"
value="#{createworkplan.wprolelist}" var="row" width = "800"  

styleClass="order-table"

partialTriggers="::test"

headerClass="order-table-header"

rowClasses="order-table-odd-row,order-table-even-row"

> 

 

 

 


Re: Do Trinidad Tables update with new rows in PartialSubmit if a CommandButton outside table does the adding of rows?

Posted by Max Starets <ma...@oracle.com>.
Catherine,

If the table has partialTriggers pointing to the command button, it 
should work just fine. I would check two things: 1) is your partial 
trigger Id set correctly, i.e do you need to do something like stepping 
out of the naming container, etc.?; 2) do you see table's HTML included 
in partial response when you use HTTP sniffing tools like Firebug?

Max

On 4/26/2011 2:31 PM, Catherine Rocchio wrote:
> Hi there,
>
>
>
> I am trying to achieve a Partial Submit update of a Trinidad Table upon
> submit of a Command Button (called "Add Row").  The bean behind the table is
> definitely getting updated because when I do an overall page refresh, I see
> my new rows getting added - but I can't seem to get the table to refresh on
> its own with the partialTriggers on it.
>
>
>
> So.. I guess my question is - should something like this work?  Or.. do
> tables need to be programmatically poked for partial submits?  This seems
> pretty basic - but - it just isn't working for me.  I guess I will feel
> better if I know it SHOULD work - and I will keep trying.
>
>
>
> I am using Trinidad 2 and Myfaces 2.
>
>
>
> Sorry!!!!
>
>
>
> Thanks for help!
>
> Catherine
>
>
>
> <tr:commandButton text="Add" partialSubmit="true" id="test"
> actionListener="#{createworkplan.addAction}"  />
>
>
>
> My addAction is just boring - but adds a row to a vector which is behind the
> table.
>
>
>
>        public void addAction(ActionEvent event) {
>
>
>
>                    wprolelist.add(new RoleList("test person", "True",
> "True", "True"));
>
> }
>
>
>
> And my table has the specification of the partialTrigger.
>
> <tr:table id="workplanroleprivs" rowSelection="single"
> value="#{createworkplan.wprolelist}" var="row" width = "800"
>
> styleClass="order-table"
>
> partialTriggers="::test"
>
> headerClass="order-table-header"
>
> rowClasses="order-table-odd-row,order-table-even-row"
>
>
>
>
>
>
>
>

Re: Do Trinidad Tables update with new rows in PartialSubmit if a CommandButton outside table does the adding of rows?

Posted by Walter Mourão <wa...@gmail.com>.
>
> I would imagine that this should work - people must have inline tables that
> need to get updated without a full page update.
>

It works. I have lots of tables being updated with PPR. I will send you a
sample later (not with me right now).

Walter Mourão
http://waltermourao.com.br
http://arcadian.com.br
http://oriens.com.br



On Thu, Apr 28, 2011 at 9:37 AM, Catherine Rocchio <
crocchio@gp-informatics.com> wrote:

> Hi there,
>
> Thanks for writing back - both you and Sandeep.
> First off - I do believe the partial trigger is being found - because if I
> use the notation "triggername" - I get a warning that I am using deprecated
> syntax - (I am using Myfaces 2.0, Trinidad 2.0) - but it is only a WARNING.
>  I also get "Trigger not found" if I use something wrong like
> ::::triggername.  But.. I get no warnings with "::triggername" - but in all
> of the combinations I have used, I haven't gotten the table to update.
>
> My wprolelist is a vector - and is Session scoped I believe.
>
> I have tried going after this programmatically - binding the table object
> (I THINK!).. and having this code:
>
>                public void addAction(ActionEvent event) {
>
>                        wprolelist.add(new RoleList("test person", "True",
>  "True", "True"));
>                         UIXTable table = getTable();
>
>
>  RequestContext.getCurrentInstance().addPartialTarget(table);
>
>  RequestContext.getCurrentInstance().partialUpdateNotify(table);
>                        FacesContext.getCurrentInstance().renderResponse();
>
>
>                }
>                public void setTable(UIXTable table) { _table = table; }
>                public UIXTable getTable() { return _table; }
>                private UIXTable _table;
>
>
> But it hasn't worked either.  I can try the hack you mentioned Walter - and
> part of me wonders if I somehow need to be updating a different layer?  I
> know that Trinidad tables use a model - and maybe somehow I am just updating
> the raw data behind the model - but - to get a PPR/AJAX type update - I have
> to poke the MODEL itself?
>
> Anyway.. I am still working on it.
>
> Latest page snippet is this:
>
> 1.  TABLEDEF (I hope I am doing this binding right...)
>
> <tr:table id="workplanroleprivs" rowSelection="single"
> value="#{createworkplan.wprolelist}" var="row" width = "800"
> styleClass="order-table"
> partialTriggers="addbutton"
> binding="#{createworkplan.table}"
> headerClass="order-table-header"
> rowClasses="order-table-odd-row,order-table-even-row"
>
> 2.  Button to update Table (not part of table tag...)
>
> <tr:commandButton text="Add" id="addbutton" partialSubmit="true"
> actionListener="#{createworkplan.addAction}"  />
>
> 3.  Latest addAction is above...
>
>
> Status:  No errors that I can see - but still the add button does nothing
> :)... though when I do a full page refresh, of course things are fine
> because my vector gets updated...
>
> 4.  Oh.. and I am using a session page - @SessionScoped in the beginning of
> the Java.
>
> Thanks for any hints...I am willing to believe that the table needs to be
> nudged to update programmatically, because the Trinidad documentation DOES
> say that if you are trying to do a PPR update of a table row from any place
> OTHER than "that row" (i.e. not calling something while IN that row) - you
> need to force the update programmatically.  BUT..  I would imagine that this
> should work - people must have inline tables that need to get updated
> without a full page update.
>
> It must just be me!!!
>
> THANKS!
>
> Catherine
>
> -----Original Message-----
> From: Walter Mourão [mailto:walter.mourao@gmail.com]
> Sent: Thursday, April 28, 2011 7:02 AM
> To: MyFaces Discussion
> Subject: Re: Do Trinidad Tables update with new rows in PartialSubmit if a
> CommandButton outside table does the adding of rows?
>
> It should work but... I had some issues regarding the table updates.
>
> What is the scope of 'wprolelist' ?
>
> In some cases I had to use the following method to 'force' the update,
> since
> the value attribute hasn't changed really changed (the list continues the
> same).
>
>
>    private void updateTableValue(RequestContext requestContext, UIComponent
> viewRoot, String id, Object value)
>    {
>        UIComponent component =
> ComponentUtils.findRelativeComponent(viewRoot, id);
>        if(component instanceof UIXIterator)//just in case the view was
> changed
>        {
>            ((UIXIterator) component).setValue(value);
>        }
>    }
>
> But I think it is a hack... :-)
>
> Cheers,
>
> Walter Mourão
> http://waltermourao.com.br
> http://arcadian.com.br
> http://oriens.com.br
>
>
>
> On Tue, Apr 26, 2011 at 3:31 PM, Catherine Rocchio <crocchio@comcast.net
> >wrote:
>
> > Hi there,
> >
> >
> >
> > I am trying to achieve a Partial Submit update of a Trinidad Table upon
> > submit of a Command Button (called "Add Row").  The bean behind the table
> > is
> > definitely getting updated because when I do an overall page refresh, I
> see
> > my new rows getting added - but I can't seem to get the table to refresh
> on
> > its own with the partialTriggers on it.
> >
> >
> >
> > So.. I guess my question is - should something like this work?  Or.. do
> > tables need to be programmatically poked for partial submits?  This seems
> > pretty basic - but - it just isn't working for me.  I guess I will feel
> > better if I know it SHOULD work - and I will keep trying.
> >
> >
> >
> > I am using Trinidad 2 and Myfaces 2.
> >
> >
> >
> > Sorry!!!!
> >
> >
> >
> > Thanks for help!
> >
> > Catherine
> >
> >
> >
> > <tr:commandButton text="Add" partialSubmit="true" id="test"
> > actionListener="#{createworkplan.addAction}"  />
> >
> >
> >
> > My addAction is just boring - but adds a row to a vector which is behind
> > the
> > table.
> >
> >
> >
> >      public void addAction(ActionEvent event) {
> >
> >
> >
> >                  wprolelist.add(new RoleList("test person", "True",
> > "True", "True"));
> >
> > }
> >
> >
> >
> > And my table has the specification of the partialTrigger.
> >
> > <tr:table id="workplanroleprivs" rowSelection="single"
> > value="#{createworkplan.wprolelist}" var="row" width = "800"
> >
> > styleClass="order-table"
> >
> > partialTriggers="::test"
> >
> > headerClass="order-table-header"
> >
> > rowClasses="order-table-odd-row,order-table-even-row"
> >
> > >
> >
> >
> >
> >
> >
> >
> >
> >
>
>

RE: Do Trinidad Tables update with new rows in PartialSubmit if a CommandButton outside table does the adding of rows?

Posted by Catherine Rocchio <cr...@gp-informatics.com>.
Hi there,

Thanks for writing back - both you and Sandeep.
First off - I do believe the partial trigger is being found - because if I use the notation "triggername" - I get a warning that I am using deprecated syntax - (I am using Myfaces 2.0, Trinidad 2.0) - but it is only a WARNING.  I also get "Trigger not found" if I use something wrong like ::::triggername.  But.. I get no warnings with "::triggername" - but in all of the combinations I have used, I haven't gotten the table to update.

My wprolelist is a vector - and is Session scoped I believe.

I have tried going after this programmatically - binding the table object (I THINK!).. and having this code:

		public void addAction(ActionEvent event) {
	
			wprolelist.add(new RoleList("test person", "True",  "True", "True"));
			UIXTable table = getTable();

			RequestContext.getCurrentInstance().addPartialTarget(table);
			RequestContext.getCurrentInstance().partialUpdateNotify(table);
			FacesContext.getCurrentInstance().renderResponse();

					
		} 
		public void setTable(UIXTable table) { _table = table; }
		public UIXTable getTable() { return _table; }
		private UIXTable _table;
		        

But it hasn't worked either.  I can try the hack you mentioned Walter - and part of me wonders if I somehow need to be updating a different layer?  I know that Trinidad tables use a model - and maybe somehow I am just updating the raw data behind the model - but - to get a PPR/AJAX type update - I have to poke the MODEL itself?  

Anyway.. I am still working on it.

Latest page snippet is this:

1.  TABLEDEF (I hope I am doing this binding right...)

<tr:table id="workplanroleprivs" rowSelection="single" value="#{createworkplan.wprolelist}" var="row" width = "800"  
styleClass="order-table"
partialTriggers="addbutton"
binding="#{createworkplan.table}"
headerClass="order-table-header"
rowClasses="order-table-odd-row,order-table-even-row"

2.  Button to update Table (not part of table tag...)

<tr:commandButton text="Add" id="addbutton" partialSubmit="true" actionListener="#{createworkplan.addAction}"  />

3.  Latest addAction is above... 


Status:  No errors that I can see - but still the add button does nothing :)... though when I do a full page refresh, of course things are fine because my vector gets updated...

4.  Oh.. and I am using a session page - @SessionScoped in the beginning of the Java.

Thanks for any hints...I am willing to believe that the table needs to be nudged to update programmatically, because the Trinidad documentation DOES say that if you are trying to do a PPR update of a table row from any place OTHER than "that row" (i.e. not calling something while IN that row) - you need to force the update programmatically.  BUT..  I would imagine that this should work - people must have inline tables that need to get updated without a full page update.

It must just be me!!!

THANKS!

Catherine

-----Original Message-----
From: Walter Mourão [mailto:walter.mourao@gmail.com] 
Sent: Thursday, April 28, 2011 7:02 AM
To: MyFaces Discussion
Subject: Re: Do Trinidad Tables update with new rows in PartialSubmit if a CommandButton outside table does the adding of rows?

It should work but... I had some issues regarding the table updates.

What is the scope of 'wprolelist' ?

In some cases I had to use the following method to 'force' the update, since
the value attribute hasn't changed really changed (the list continues the
same).


    private void updateTableValue(RequestContext requestContext, UIComponent
viewRoot, String id, Object value)
    {
        UIComponent component =
ComponentUtils.findRelativeComponent(viewRoot, id);
        if(component instanceof UIXIterator)//just in case the view was
changed
        {
            ((UIXIterator) component).setValue(value);
        }
    }

But I think it is a hack... :-)

Cheers,

Walter Mourão
http://waltermourao.com.br
http://arcadian.com.br
http://oriens.com.br



On Tue, Apr 26, 2011 at 3:31 PM, Catherine Rocchio <cr...@comcast.net>wrote:

> Hi there,
>
>
>
> I am trying to achieve a Partial Submit update of a Trinidad Table upon
> submit of a Command Button (called "Add Row").  The bean behind the table
> is
> definitely getting updated because when I do an overall page refresh, I see
> my new rows getting added - but I can't seem to get the table to refresh on
> its own with the partialTriggers on it.
>
>
>
> So.. I guess my question is - should something like this work?  Or.. do
> tables need to be programmatically poked for partial submits?  This seems
> pretty basic - but - it just isn't working for me.  I guess I will feel
> better if I know it SHOULD work - and I will keep trying.
>
>
>
> I am using Trinidad 2 and Myfaces 2.
>
>
>
> Sorry!!!!
>
>
>
> Thanks for help!
>
> Catherine
>
>
>
> <tr:commandButton text="Add" partialSubmit="true" id="test"
> actionListener="#{createworkplan.addAction}"  />
>
>
>
> My addAction is just boring - but adds a row to a vector which is behind
> the
> table.
>
>
>
>      public void addAction(ActionEvent event) {
>
>
>
>                  wprolelist.add(new RoleList("test person", "True",
> "True", "True"));
>
> }
>
>
>
> And my table has the specification of the partialTrigger.
>
> <tr:table id="workplanroleprivs" rowSelection="single"
> value="#{createworkplan.wprolelist}" var="row" width = "800"
>
> styleClass="order-table"
>
> partialTriggers="::test"
>
> headerClass="order-table-header"
>
> rowClasses="order-table-odd-row,order-table-even-row"
>
> >
>
>
>
>
>
>
>
>


Re: Do Trinidad Tables update with new rows in PartialSubmit if a CommandButton outside table does the adding of rows?

Posted by Walter Mourão <wa...@gmail.com>.
It should work but... I had some issues regarding the table updates.

What is the scope of 'wprolelist' ?

In some cases I had to use the following method to 'force' the update, since
the value attribute hasn't changed really changed (the list continues the
same).


    private void updateTableValue(RequestContext requestContext, UIComponent
viewRoot, String id, Object value)
    {
        UIComponent component =
ComponentUtils.findRelativeComponent(viewRoot, id);
        if(component instanceof UIXIterator)//just in case the view was
changed
        {
            ((UIXIterator) component).setValue(value);
        }
    }

But I think it is a hack... :-)

Cheers,

Walter Mourão
http://waltermourao.com.br
http://arcadian.com.br
http://oriens.com.br



On Tue, Apr 26, 2011 at 3:31 PM, Catherine Rocchio <cr...@comcast.net>wrote:

> Hi there,
>
>
>
> I am trying to achieve a Partial Submit update of a Trinidad Table upon
> submit of a Command Button (called "Add Row").  The bean behind the table
> is
> definitely getting updated because when I do an overall page refresh, I see
> my new rows getting added - but I can't seem to get the table to refresh on
> its own with the partialTriggers on it.
>
>
>
> So.. I guess my question is - should something like this work?  Or.. do
> tables need to be programmatically poked for partial submits?  This seems
> pretty basic - but - it just isn't working for me.  I guess I will feel
> better if I know it SHOULD work - and I will keep trying.
>
>
>
> I am using Trinidad 2 and Myfaces 2.
>
>
>
> Sorry!!!!
>
>
>
> Thanks for help!
>
> Catherine
>
>
>
> <tr:commandButton text="Add" partialSubmit="true" id="test"
> actionListener="#{createworkplan.addAction}"  />
>
>
>
> My addAction is just boring - but adds a row to a vector which is behind
> the
> table.
>
>
>
>      public void addAction(ActionEvent event) {
>
>
>
>                  wprolelist.add(new RoleList("test person", "True",
> "True", "True"));
>
> }
>
>
>
> And my table has the specification of the partialTrigger.
>
> <tr:table id="workplanroleprivs" rowSelection="single"
> value="#{createworkplan.wprolelist}" var="row" width = "800"
>
> styleClass="order-table"
>
> partialTriggers="::test"
>
> headerClass="order-table-header"
>
> rowClasses="order-table-odd-row,order-table-even-row"
>
> >
>
>
>
>
>
>
>
>