Re: T5 component parameter binding not updated

2007-07-25 Thread Howard Lewis Ship

You've bound the parameter _currentPage to the value obtained from
${currentPage}.

Expansions are always read-only.  prop:currentPage is read/write, but
${currentPage} is read-only.

The instance variable in the component is always reading or updating the
binding.  So if you update _currentPage its going to try to update the
binding to match the new value; for ${currentPage} this fails (as it is a
read-only binding).

There may be a bug here, however.  It looks like Tapestry may be overly
aggressive in terms of caching the value of ${currentPage}, as if it were a
literal value and not a dynamic expression.  Again, prop:currentPage will do
the right thing.


On 7/20/07, Martin Grotzke [EMAIL PROTECTED] wrote:


Anybody out there?

What should I check for analysing this issue?

Thanx  cheers,
Martin


On Fri, 2007-07-13 at 18:17 +0200, Martin Grotzke wrote:
 I suppose that what I'm expecting is not the way it should work.

 Can I do anything to see what's the reason for this?

 Any help appreciated,
 thx,
 Martin


 On Thu, 2007-07-12 at 09:43 +0200, Martin Grotzke wrote:
  On Thu, 2007-07-12 at 08:45 +0200, Kristian Marinkovic wrote:
  
   hi martin,
  
   try to set the cache attribute of your  @Parameter
   annotation of your currentPage component parameter
   to false
  I tried that, but it didn't solve the issue - same behavior. Debugging
  showed that _$currentPage_cached is still true...
 
 
  Then I tried to reset the currentPage property manually and added
 
  _currentPage = 0;
 
  to the start of the beginRender method, which produced the following
  error:
 
  Failure writing parameter currentPage of component Search:pager:
Binding
  [EMAIL PROTECTED]
  is read-only.
 
  Is there another way of resetting a parameter binding?
 
  How is it intended to work, when is a cached parameter reset?
 
  Thanx  cheers,
  Martin
 
 
  
  
   @Parameter(cache=false,...)
  
   g,
   kris
  
  
  
   Martin Grotzke
   [EMAIL PROTECTED]
  
   11.07.2007 22:20
   Bitte antworten an
Tapestry users
   users@tapestry.apache.org
  
  
  
  
  An
   Tapestry users
   users@tapestry.apache.org
   Kopie
  
   Thema
   T5 component
   parameter binding
   not updated
  
  
  
  
  
  
  
  
   Hi,
  
   I wrote a simple pager component but one parameter (currentPage)
   is not updated in a second request.
  
   In the template I have the following:
  
  t:pager t:numberOfPages=${numberOfPages}
  t:currentPage=${currentPage}
  ... some other attributes ... /
  
   In the page class this currentPage accessor:
  
  public int getCurrentPage() {
  return _currentPage;
  }
  
   which is an int and has the correct values in all requests.
  
   The pager component contains this currentPage property
  
  @Parameter(required = true, defaultPrefix=prop)
  private Integer _currentPage;
  
   which is used in
  
  @BeginRender
  boolean beginRender( MarkupWriter writer )
  
   which returns false (no other render methods, no template).
  
   When I debug the code I see, that the first time, the _currentPage
is
   accessed, the pages getCurrentPage method is invoked.
   In all subsequent page requests, the value of the first request is
   still stored and not updated.
  
   What am I doing wrong, or should T5 behave differently?
  
   Do I have to take any action to unbind/uncache/reset the currentPage
   property in the pager component?
  
   Thanx  cheers,
   Martin
  
  
  
  
-
   To unsubscribe, e-mail: [EMAIL PROTECTED]
   For additional commands, e-mail: [EMAIL PROTECTED]
--
Martin Grotzke
http://www.javakaffee.de/blog/





--
Howard M. Lewis Ship
TWD Consulting, Inc.
Independent J2EE / Open-Source Java Consultant
Creator and PMC Chair, Apache Tapestry
Creator, Apache HiveMind

Professional Tapestry training, mentoring, support
and project work.  http://howardlewisship.com


Re: T5 component parameter binding not updated

2007-07-25 Thread Howard Lewis Ship

https://issues.apache.org/jira/browse/TAPESTRY-1667

And, yes, it's a bug.  Expansions were treated as invariant when they are,
in fact, variant.

On 7/25/07, Howard Lewis Ship [EMAIL PROTECTED] wrote:


You've bound the parameter _currentPage to the value obtained from
${currentPage}.

Expansions are always read-only.  prop:currentPage is read/write, but
${currentPage} is read-only.

The instance variable in the component is always reading or updating the
binding.  So if you update _currentPage its going to try to update the
binding to match the new value; for ${currentPage} this fails (as it is a
read-only binding).

There may be a bug here, however.  It looks like Tapestry may be overly
aggressive in terms of caching the value of ${currentPage}, as if it were a
literal value and not a dynamic expression.  Again, prop:currentPage will do
the right thing.


On 7/20/07, Martin Grotzke [EMAIL PROTECTED] wrote:

 Anybody out there?

 What should I check for analysing this issue?

 Thanx  cheers,
 Martin


 On Fri, 2007-07-13 at 18:17 +0200, Martin Grotzke wrote:
  I suppose that what I'm expecting is not the way it should work.
 
  Can I do anything to see what's the reason for this?
 
  Any help appreciated,
  thx,
  Martin
 
 
  On Thu, 2007-07-12 at 09:43 +0200, Martin Grotzke wrote:
   On Thu, 2007-07-12 at 08:45 +0200, Kristian Marinkovic wrote:
   
hi martin,
   
try to set the cache attribute of your  @Parameter
annotation of your currentPage component parameter
to false
   I tried that, but it didn't solve the issue - same behavior.
 Debugging
   showed that _$currentPage_cached is still true...
  
  
   Then I tried to reset the currentPage property manually and added
  
   _currentPage = 0;
  
   to the start of the beginRender method, which produced the following

   error:
  
   Failure writing parameter currentPage of component Search:pager:
 Binding
  
 [EMAIL PROTECTED]
   is read-only.
  
   Is there another way of resetting a parameter binding?
  
   How is it intended to work, when is a cached parameter reset?
  
   Thanx  cheers,
   Martin
  
  
   
   
@Parameter(cache=false,...)
   
g,
kris
   
   
   
Martin Grotzke
[EMAIL PROTECTED]
   
11.07.2007 22:20
Bitte antworten an
 Tapestry users
users@tapestry.apache.org
   
   
   
   
   An
Tapestry users
users@tapestry.apache.org
Kopie
   
Thema
T5 component
parameter binding
not updated
   
   
   
   
   
   
   
   
Hi,
   
I wrote a simple pager component but one parameter (currentPage)
is not updated in a second request.
   
In the template I have the following:
   
   t:pager t:numberOfPages=${numberOfPages}
   t:currentPage=${currentPage}
   ... some other attributes ... /
   
In the page class this currentPage accessor:
   
   public int getCurrentPage() {
   return _currentPage;
   }
   
which is an int and has the correct values in all requests.
   
The pager component contains this currentPage property
   
   @Parameter(required = true, defaultPrefix=prop)
   private Integer _currentPage;
   
which is used in
   
   @BeginRender
   boolean beginRender( MarkupWriter writer )
   
which returns false (no other render methods, no template).
   
When I debug the code I see, that the first time, the _currentPage
 is
accessed, the pages getCurrentPage method is invoked.
In all subsequent page requests, the value of the first request is
still stored and not updated.
   
What am I doing wrong, or should T5 behave differently?
   
Do I have to take any action to unbind/uncache/reset the
 currentPage
property in the pager component?
   
Thanx  cheers,
Martin
   
   
   
   
 -
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
 --
 Martin Grotzke
 http://www.javakaffee.de/blog/




--
Howard M. Lewis Ship
TWD Consulting, Inc.
Independent J2EE / Open-Source Java Consultant
Creator and PMC Chair, Apache Tapestry
Creator, Apache HiveMind

Professional Tapestry training, mentoring, support
and project work.   http://howardlewisship.com





--
Howard M. Lewis Ship
TWD Consulting, Inc.
Independent J2EE / Open-Source Java Consultant
Creator and PMC Chair, Apache Tapestry
Creator, Apache HiveMind

Professional Tapestry training, mentoring, support
and project work.  http://howardlewisship.com


Re: T5 component parameter binding not updated

2007-07-25 Thread Martin Grotzke
On Wed, 2007-07-25 at 09:09 -0700, Howard Lewis Ship wrote:
 https://issues.apache.org/jira/browse/TAPESTRY-1667
 
 And, yes, it's a bug.  Expansions were treated as invariant when they are,
 in fact, variant.
Wow, very fast in fixing this!

Respect :)
cheers,
Martin


 
 On 7/25/07, Howard Lewis Ship [EMAIL PROTECTED] wrote:
 
  You've bound the parameter _currentPage to the value obtained from
  ${currentPage}.
 
  Expansions are always read-only.  prop:currentPage is read/write, but
  ${currentPage} is read-only.
 
  The instance variable in the component is always reading or updating the
  binding.  So if you update _currentPage its going to try to update the
  binding to match the new value; for ${currentPage} this fails (as it is a
  read-only binding).
 
  There may be a bug here, however.  It looks like Tapestry may be overly
  aggressive in terms of caching the value of ${currentPage}, as if it were a
  literal value and not a dynamic expression.  Again, prop:currentPage will do
  the right thing.
 
 
  On 7/20/07, Martin Grotzke [EMAIL PROTECTED] wrote:
  
   Anybody out there?
  
   What should I check for analysing this issue?
  
   Thanx  cheers,
   Martin
  
  
   On Fri, 2007-07-13 at 18:17 +0200, Martin Grotzke wrote:
I suppose that what I'm expecting is not the way it should work.
   
Can I do anything to see what's the reason for this?
   
Any help appreciated,
thx,
Martin
   
   
On Thu, 2007-07-12 at 09:43 +0200, Martin Grotzke wrote:
 On Thu, 2007-07-12 at 08:45 +0200, Kristian Marinkovic wrote:
 
  hi martin,
 
  try to set the cache attribute of your  @Parameter
  annotation of your currentPage component parameter
  to false
 I tried that, but it didn't solve the issue - same behavior.
   Debugging
 showed that _$currentPage_cached is still true...


 Then I tried to reset the currentPage property manually and added

 _currentPage = 0;

 to the start of the beginRender method, which produced the following
  
 error:

 Failure writing parameter currentPage of component Search:pager:
   Binding

   [EMAIL PROTECTED]
 is read-only.

 Is there another way of resetting a parameter binding?

 How is it intended to work, when is a cached parameter reset?

 Thanx  cheers,
 Martin


 
 
  @Parameter(cache=false,...)
 
  g,
  kris
 
 
 
  Martin Grotzke
  [EMAIL PROTECTED]
 
  11.07.2007 22:20
  Bitte antworten an
   Tapestry users
  users@tapestry.apache.org
 
 
 
 
 An
  Tapestry users
  users@tapestry.apache.org
  Kopie
 
  Thema
  T5 component
  parameter binding
  not updated
 
 
 
 
 
 
 
 
  Hi,
 
  I wrote a simple pager component but one parameter (currentPage)
  is not updated in a second request.
 
  In the template I have the following:
 
 t:pager t:numberOfPages=${numberOfPages}
 t:currentPage=${currentPage}
 ... some other attributes ... /
 
  In the page class this currentPage accessor:
 
 public int getCurrentPage() {
 return _currentPage;
 }
 
  which is an int and has the correct values in all requests.
 
  The pager component contains this currentPage property
 
 @Parameter(required = true, defaultPrefix=prop)
 private Integer _currentPage;
 
  which is used in
 
 @BeginRender
 boolean beginRender( MarkupWriter writer )
 
  which returns false (no other render methods, no template).
 
  When I debug the code I see, that the first time, the _currentPage
   is
  accessed, the pages getCurrentPage method is invoked.
  In all subsequent page requests, the value of the first request is
  still stored and not updated.
 
  What am I doing wrong, or should T5 behave differently?
 
  Do I have to take any action to unbind/uncache/reset the
   currentPage
  property in the pager component?
 
  Thanx  cheers,
  Martin
 
 
 
 
   -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
   --
   Martin Grotzke
   http://www.javakaffee.de/blog/
  
  
 
 
  --
  Howard M. Lewis Ship
  TWD Consulting, Inc.
  Independent J2EE / Open-Source Java Consultant
  Creator and PMC Chair, Apache Tapestry
  Creator, Apache HiveMind
 
  Professional Tapestry training, mentoring, support
  and project work.   http://howardlewisship.com
 
 
 
 
-- 
Martin Grotzke
http://www.javakaffee.de/blog/


signature.asc
Description: This is a digitally signed message part


Re: T5 component parameter binding not updated

2007-07-25 Thread Martin Grotzke
Hi Howard,

thanx a lot for this explanation, again I learned s.th. about T5 :)

Indeed, prop:currentPage works, unfortunately my eyes were blind
these days to tell me that there's the ${expansions} stuff - or my
brain didn't tell my eyes that this is s.th. special ;)

Thanx a lot,
cheers,
Martin


On Wed, 2007-07-25 at 09:00 -0700, Howard Lewis Ship wrote:
 You've bound the parameter _currentPage to the value obtained from
 ${currentPage}.
 
 Expansions are always read-only.  prop:currentPage is read/write, but
 ${currentPage} is read-only.
 
 The instance variable in the component is always reading or updating the
 binding.  So if you update _currentPage its going to try to update the
 binding to match the new value; for ${currentPage} this fails (as it is a
 read-only binding).
 
 There may be a bug here, however.  It looks like Tapestry may be overly
 aggressive in terms of caching the value of ${currentPage}, as if it were a
 literal value and not a dynamic expression.  Again, prop:currentPage will do
 the right thing.
 
 
 On 7/20/07, Martin Grotzke [EMAIL PROTECTED] wrote:
 
  Anybody out there?
 
  What should I check for analysing this issue?
 
  Thanx  cheers,
  Martin
 
 
  On Fri, 2007-07-13 at 18:17 +0200, Martin Grotzke wrote:
   I suppose that what I'm expecting is not the way it should work.
  
   Can I do anything to see what's the reason for this?
  
   Any help appreciated,
   thx,
   Martin
  
  
   On Thu, 2007-07-12 at 09:43 +0200, Martin Grotzke wrote:
On Thu, 2007-07-12 at 08:45 +0200, Kristian Marinkovic wrote:

 hi martin,

 try to set the cache attribute of your  @Parameter
 annotation of your currentPage component parameter
 to false
I tried that, but it didn't solve the issue - same behavior. Debugging
showed that _$currentPage_cached is still true...
   
   
Then I tried to reset the currentPage property manually and added
   
_currentPage = 0;
   
to the start of the beginRender method, which produced the following
error:
   
Failure writing parameter currentPage of component Search:pager:
  Binding
[EMAIL PROTECTED]
is read-only.
   
Is there another way of resetting a parameter binding?
   
How is it intended to work, when is a cached parameter reset?
   
Thanx  cheers,
Martin
   
   


 @Parameter(cache=false,...)

 g,
 kris



 Martin Grotzke
 [EMAIL PROTECTED]

 11.07.2007 22:20
 Bitte antworten an
  Tapestry users
 users@tapestry.apache.org




An
 Tapestry users
 users@tapestry.apache.org
 Kopie

 Thema
 T5 component
 parameter binding
 not updated








 Hi,

 I wrote a simple pager component but one parameter (currentPage)
 is not updated in a second request.

 In the template I have the following:

t:pager t:numberOfPages=${numberOfPages}
t:currentPage=${currentPage}
... some other attributes ... /

 In the page class this currentPage accessor:

public int getCurrentPage() {
return _currentPage;
}

 which is an int and has the correct values in all requests.

 The pager component contains this currentPage property

@Parameter(required = true, defaultPrefix=prop)
private Integer _currentPage;

 which is used in

@BeginRender
boolean beginRender( MarkupWriter writer )

 which returns false (no other render methods, no template).

 When I debug the code I see, that the first time, the _currentPage
  is
 accessed, the pages getCurrentPage method is invoked.
 In all subsequent page requests, the value of the first request is
 still stored and not updated.

 What am I doing wrong, or should T5 behave differently?

 Do I have to take any action to unbind/uncache/reset the currentPage
 property in the pager component?

 Thanx  cheers,
 Martin




  -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
  --
  Martin Grotzke
  http://www.javakaffee.de/blog/
 
 
 
 
-- 
Martin Grotzke
http://www.javakaffee.de/blog/


signature.asc
Description: This is a digitally signed message part


RE: T5 component parameter binding not updated

2007-07-13 Thread Martin Grotzke
I suppose that what I'm expecting is not the way it should work.

Can I do anything to see what's the reason for this?

Any help appreciated,
thx,
Martin


On Thu, 2007-07-12 at 09:43 +0200, Martin Grotzke wrote:
 On Thu, 2007-07-12 at 08:45 +0200, Kristian Marinkovic wrote:
  
  hi martin, 
  
  try to set the cache attribute of your  @Parameter  
  annotation of your currentPage component parameter  
  to false 
 I tried that, but it didn't solve the issue - same behavior. Debugging
 showed that _$currentPage_cached is still true...
 
 
 Then I tried to reset the currentPage property manually and added
 
 _currentPage = 0;
 
 to the start of the beginRender method, which produced the following
 error:
 
 Failure writing parameter currentPage of component Search:pager: Binding
 [EMAIL PROTECTED]
 is read-only.
 
 Is there another way of resetting a parameter binding?
 
 How is it intended to work, when is a cached parameter reset?
 
 Thanx  cheers,
 Martin
 
 
  
  
  @Parameter(cache=false,...) 
  
  g, 
  kris
  
  
  
  Martin Grotzke
  [EMAIL PROTECTED] 
  
  11.07.2007 22:20 
  Bitte antworten an
   Tapestry users
  users@tapestry.apache.org
  
  
  
  
 An
  Tapestry users
  users@tapestry.apache.org 
  Kopie
  
  Thema
  T5 component
  parameter binding
  not updated
  
  
  
  
  
  
  
  
  Hi,
  
  I wrote a simple pager component but one parameter (currentPage)
  is not updated in a second request.
  
  In the template I have the following:
  
 t:pager t:numberOfPages=${numberOfPages}
 t:currentPage=${currentPage}
 ... some other attributes ... /
  
  In the page class this currentPage accessor:
  
 public int getCurrentPage() {
 return _currentPage;
 }
  
  which is an int and has the correct values in all requests.
  
  The pager component contains this currentPage property
  
 @Parameter(required = true, defaultPrefix=prop)
 private Integer _currentPage;
  
  which is used in 
  
 @BeginRender
 boolean beginRender( MarkupWriter writer )
  
  which returns false (no other render methods, no template).
  
  When I debug the code I see, that the first time, the _currentPage is
  accessed, the pages getCurrentPage method is invoked.
  In all subsequent page requests, the value of the first request is
  still stored and not updated.
  
  What am I doing wrong, or should T5 behave differently?
  
  Do I have to take any action to unbind/uncache/reset the currentPage
  property in the pager component?
  
  Thanx  cheers,
  Martin
  
  
  
  -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
-- 
Martin Grotzke
http://www.javakaffee.de/blog/


signature.asc
Description: This is a digitally signed message part


RE: T5 component parameter binding not updated

2007-07-12 Thread Kristian Marinkovic
hi martin,

try to set the cache attribute of your  @Parameter 
annotation of your currentPage component parameter 
to false


@Parameter(cache=false,...)

g,
kris




Martin Grotzke [EMAIL PROTECTED] 
11.07.2007 22:20
Bitte antworten an
Tapestry users users@tapestry.apache.org


An
Tapestry users users@tapestry.apache.org
Kopie

Thema
T5 component parameter binding not updated






Hi,

I wrote a simple pager component but one parameter (currentPage)
is not updated in a second request.

In the template I have the following:

t:pager t:numberOfPages=${numberOfPages}
t:currentPage=${currentPage}
... some other attributes ... /

In the page class this currentPage accessor:

public int getCurrentPage() {
return _currentPage;
}

which is an int and has the correct values in all requests.

The pager component contains this currentPage property

@Parameter(required = true, defaultPrefix=prop)
private Integer _currentPage;

which is used in 

@BeginRender
boolean beginRender( MarkupWriter writer )

which returns false (no other render methods, no template).

When I debug the code I see, that the first time, the _currentPage is
accessed, the pages getCurrentPage method is invoked.
In all subsequent page requests, the value of the first request is
still stored and not updated.

What am I doing wrong, or should T5 behave differently?

Do I have to take any action to unbind/uncache/reset the currentPage
property in the pager component?

Thanx  cheers,
Martin



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

RE: T5 component parameter binding not updated

2007-07-12 Thread Martin Grotzke
On Thu, 2007-07-12 at 08:45 +0200, Kristian Marinkovic wrote:
 
 hi martin, 
 
 try to set the cache attribute of your  @Parameter  
 annotation of your currentPage component parameter  
 to false 
I tried that, but it didn't solve the issue - same behavior. Debugging
showed that _$currentPage_cached is still true...


Then I tried to reset the currentPage property manually and added

_currentPage = 0;

to the start of the beginRender method, which produced the following
error:

Failure writing parameter currentPage of component Search:pager: Binding
[EMAIL PROTECTED]
is read-only.

Is there another way of resetting a parameter binding?

How is it intended to work, when is a cached parameter reset?

Thanx  cheers,
Martin


 
 
 @Parameter(cache=false,...) 
 
 g, 
 kris
 
 
 
 Martin Grotzke
 [EMAIL PROTECTED] 
 
 11.07.2007 22:20 
 Bitte antworten an
  Tapestry users
 users@tapestry.apache.org
 
 
 
 
An
 Tapestry users
 users@tapestry.apache.org 
 Kopie
 
 Thema
 T5 component
 parameter binding
 not updated
 
 
 
 
 
 
 
 
 Hi,
 
 I wrote a simple pager component but one parameter (currentPage)
 is not updated in a second request.
 
 In the template I have the following:
 
t:pager t:numberOfPages=${numberOfPages}
t:currentPage=${currentPage}
... some other attributes ... /
 
 In the page class this currentPage accessor:
 
public int getCurrentPage() {
return _currentPage;
}
 
 which is an int and has the correct values in all requests.
 
 The pager component contains this currentPage property
 
@Parameter(required = true, defaultPrefix=prop)
private Integer _currentPage;
 
 which is used in 
 
@BeginRender
boolean beginRender( MarkupWriter writer )
 
 which returns false (no other render methods, no template).
 
 When I debug the code I see, that the first time, the _currentPage is
 accessed, the pages getCurrentPage method is invoked.
 In all subsequent page requests, the value of the first request is
 still stored and not updated.
 
 What am I doing wrong, or should T5 behave differently?
 
 Do I have to take any action to unbind/uncache/reset the currentPage
 property in the pager component?
 
 Thanx  cheers,
 Martin
 
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
-- 
Martin Grotzke
http://www.javakaffee.de/blog/


signature.asc
Description: This is a digitally signed message part