You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Glen Stampoultzis <gs...@iinet.net.au> on 2003/11/18 03:35:01 UTC
Getting access to the visit from within the Taco's tree model.
I'm using taco-tree at the moment and I'm struggling with one issue
regarding accessing the visit object from within the tree.
I would like to know if this is possible? From what I can see the visit is
being passed correctly all the way up during the rendering stage but it
doesn't get passed on to the model at all. I assume this is a problem with
other components that have models also?
Regards,
Glen Stampoultzis
gstamp@iinet.net.au
http://members.iinet.net.au/~gstamp/glen/
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
Re: Getting access to the visit from within the Taco's tree
model.
Posted by Glen Stampoultzis <gs...@iinet.net.au>.
(Non-static) Inner classes have (hidden) references to the enclosing
class. I believe this is the cause of the problem.
At 04:14 PM 18/11/2003, you wrote:
>I am sorry, please bear with me, but isn't the model a local class? Are
>you storing the model in the page?
>
>-Harish
>
>Glen Stampoultzis wrote:
>
>>I traced through this pretty carefully. What is actually happening is
>>that the model is holding a reference to an old instance of the page
>>(because it's an inner class) that is no longer part of the current cycle.
>>The _engine variable gets set and cleared on the attach and detach so old
>>instances will no longer have any way to refer back to the engine.
>>-- Glen
>>At 03:43 PM 18/11/2003, you wrote:
>>
>>>That doesn't sound right, may be there is another problem, 'cause the
>>>engine should be attached to the page as soon as it is instantiated or
>>>retrieved from the pool. The rewind/render happens after the page is loaded.
>>>
>>>-Harish
>>>
>>>Glen Stampoultzis wrote:
>>>
>>>>Yes. I thought of that one. Unfortunately is appears that calling
>>>>getPage() at that point in the render will return a page object that
>>>>hasn't had the _engine attached which causes an error during the call
>>>>to getVisit().
>>>>Regards,
>>>>Glen
>>>>
>>>>At 02:38 PM 18/11/2003, you wrote:
>>>>
>>>>>How are you specifying the model for your tree? Can you define it as
>>>>>a nested or anonymous class from within your component/page?
>>>>>Something like this?
>>>>>
>>>>>public class MyComponent extends BaseComponent
>>>>>{
>>>>> public ITreeDataModel getTreeDataModel()
>>>>> {
>>>>> return new ITreeDataModel()
>>>>> {
>>>>> private MyVisit visit = (MyVisit)
>>>>> MyComponent.this.getPage().getVisit();
>>>>>
>>>>> // Insert tree model implementation here...
>>>>> };
>>>>> }
>>>>>}
>>>>>
>>>>>Paul Ferraro
>>>>>
>>>>>Glen Stampoultzis wrote:
>>>>>
>>>>>>
>>>>>>I'm using taco-tree at the moment and I'm struggling with one issue
>>>>>>regarding accessing the visit object from within the tree.
>>>>>>
>>>>>>I would like to know if this is possible? From what I can see the
>>>>>>visit is being passed correctly all the way up during the rendering
>>>>>>stage but it doesn't get passed on to the model at all. I assume
>>>>>>this is a problem with other components that have models also?
>>>>>>
>>>>>>Regards,
>>>>>>
>>>>>>
>>>>>>Glen Stampoultzis
>>>>>>gstamp@iinet.net.au
>>>>>>http://members.iinet.net.au/~gstamp/glen/
>>>>>>
>>>>>>
>>>>>>---------------------------------------------------------------------
>>>>>>To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>>>>For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>---------------------------------------------------------------------
>>>>>To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>>>For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>>>
>>>>
>>>>Glen Stampoultzis
>>>>gstamp@iinet.net.au
>>>>http://members.iinet.net.au/~gstamp/glen/
>>>
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>
>>Glen Stampoultzis
>>gstamp@iinet.net.au
>>http://members.iinet.net.au/~gstamp/glen/
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>
Glen Stampoultzis
gstamp@iinet.net.au
http://members.iinet.net.au/~gstamp/glen/
Re: Getting access to the visit from within the Taco's tree model.
Posted by Harish Krishnaswamy <hk...@comcast.net>.
I am sorry, please bear with me, but isn't the model a local class? Are you storing the model in the
page?
-Harish
Glen Stampoultzis wrote:
>
> I traced through this pretty carefully. What is actually happening is
> that the model is holding a reference to an old instance of the page
> (because it's an inner class) that is no longer part of the current cycle.
>
> The _engine variable gets set and cleared on the attach and detach so
> old instances will no longer have any way to refer back to the engine.
>
> -- Glen
>
> At 03:43 PM 18/11/2003, you wrote:
>
>> That doesn't sound right, may be there is another problem, 'cause the
>> engine should be attached to the page as soon as it is instantiated or
>> retrieved from the pool. The rewind/render happens after the page is
>> loaded.
>>
>> -Harish
>>
>> Glen Stampoultzis wrote:
>>
>>> Yes. I thought of that one. Unfortunately is appears that calling
>>> getPage() at that point in the render will return a page object that
>>> hasn't had the _engine attached which causes an error during the call
>>> to getVisit().
>>> Regards,
>>> Glen
>>>
>>> At 02:38 PM 18/11/2003, you wrote:
>>>
>>>> How are you specifying the model for your tree? Can you define it
>>>> as a nested or anonymous class from within your component/page?
>>>> Something like this?
>>>>
>>>> public class MyComponent extends BaseComponent
>>>> {
>>>> public ITreeDataModel getTreeDataModel()
>>>> {
>>>> return new ITreeDataModel()
>>>> {
>>>> private MyVisit visit = (MyVisit)
>>>> MyComponent.this.getPage().getVisit();
>>>>
>>>> // Insert tree model implementation here...
>>>> };
>>>> }
>>>> }
>>>>
>>>> Paul Ferraro
>>>>
>>>> Glen Stampoultzis wrote:
>>>>
>>>>>
>>>>> I'm using taco-tree at the moment and I'm struggling with one issue
>>>>> regarding accessing the visit object from within the tree.
>>>>>
>>>>> I would like to know if this is possible? From what I can see the
>>>>> visit is being passed correctly all the way up during the rendering
>>>>> stage but it doesn't get passed on to the model at all. I assume
>>>>> this is a problem with other components that have models also?
>>>>>
>>>>> Regards,
>>>>>
>>>>>
>>>>> Glen Stampoultzis
>>>>> gstamp@iinet.net.au
>>>>> http://members.iinet.net.au/~gstamp/glen/
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>>> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>>
>>>
>>> Glen Stampoultzis
>>> gstamp@iinet.net.au
>>> http://members.iinet.net.au/~gstamp/glen/
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>
>
>
> Glen Stampoultzis
> gstamp@iinet.net.au
> http://members.iinet.net.au/~gstamp/glen/
>
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
Re: Getting access to the visit from within the Taco's tree
model.
Posted by Glen Stampoultzis <gs...@iinet.net.au>.
I traced through this pretty carefully. What is actually happening is that
the model is holding a reference to an old instance of the page (because
it's an inner class) that is no longer part of the current cycle.
The _engine variable gets set and cleared on the attach and detach so old
instances will no longer have any way to refer back to the engine.
-- Glen
At 03:43 PM 18/11/2003, you wrote:
>That doesn't sound right, may be there is another problem, 'cause the
>engine should be attached to the page as soon as it is instantiated or
>retrieved from the pool. The rewind/render happens after the page is loaded.
>
>-Harish
>
>Glen Stampoultzis wrote:
>>Yes. I thought of that one. Unfortunately is appears that calling
>>getPage() at that point in the render will return a page object that
>>hasn't had the _engine attached which causes an error during the call to
>>getVisit().
>>Regards,
>>Glen
>>
>>At 02:38 PM 18/11/2003, you wrote:
>>
>>>How are you specifying the model for your tree? Can you define it as a
>>>nested or anonymous class from within your component/page?
>>>Something like this?
>>>
>>>public class MyComponent extends BaseComponent
>>>{
>>> public ITreeDataModel getTreeDataModel()
>>> {
>>> return new ITreeDataModel()
>>> {
>>> private MyVisit visit = (MyVisit)
>>> MyComponent.this.getPage().getVisit();
>>>
>>> // Insert tree model implementation here...
>>> };
>>> }
>>>}
>>>
>>>Paul Ferraro
>>>
>>>Glen Stampoultzis wrote:
>>>
>>>>
>>>>I'm using taco-tree at the moment and I'm struggling with one issue
>>>>regarding accessing the visit object from within the tree.
>>>>
>>>>I would like to know if this is possible? From what I can see the
>>>>visit is being passed correctly all the way up during the rendering
>>>>stage but it doesn't get passed on to the model at all. I assume this
>>>>is a problem with other components that have models also?
>>>>
>>>>Regards,
>>>>
>>>>
>>>>Glen Stampoultzis
>>>>gstamp@iinet.net.au
>>>>http://members.iinet.net.au/~gstamp/glen/
>>>>
>>>>
>>>>---------------------------------------------------------------------
>>>>To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>>For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>>
>>>
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>
>>Glen Stampoultzis
>>gstamp@iinet.net.au
>>http://members.iinet.net.au/~gstamp/glen/
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>
Glen Stampoultzis
gstamp@iinet.net.au
http://members.iinet.net.au/~gstamp/glen/
Re: Getting access to the visit from within the Taco's tree model.
Posted by Harish Krishnaswamy <hk...@comcast.net>.
That doesn't sound right, may be there is another problem, 'cause the engine should be attached to
the page as soon as it is instantiated or retrieved from the pool. The rewind/render happens after
the page is loaded.
-Harish
Glen Stampoultzis wrote:
>
> Yes. I thought of that one. Unfortunately is appears that calling
> getPage() at that point in the render will return a page object that
> hasn't had the _engine attached which causes an error during the call to
> getVisit().
>
> Regards,
>
> Glen
>
>
> At 02:38 PM 18/11/2003, you wrote:
>
>> How are you specifying the model for your tree? Can you define it as
>> a nested or anonymous class from within your component/page?
>> Something like this?
>>
>> public class MyComponent extends BaseComponent
>> {
>> public ITreeDataModel getTreeDataModel()
>> {
>> return new ITreeDataModel()
>> {
>> private MyVisit visit = (MyVisit)
>> MyComponent.this.getPage().getVisit();
>>
>> // Insert tree model implementation here...
>> };
>> }
>> }
>>
>> Paul Ferraro
>>
>> Glen Stampoultzis wrote:
>>
>>>
>>> I'm using taco-tree at the moment and I'm struggling with one issue
>>> regarding accessing the visit object from within the tree.
>>>
>>> I would like to know if this is possible? From what I can see the
>>> visit is being passed correctly all the way up during the rendering
>>> stage but it doesn't get passed on to the model at all. I assume
>>> this is a problem with other components that have models also?
>>>
>>> Regards,
>>>
>>>
>>> Glen Stampoultzis
>>> gstamp@iinet.net.au
>>> http://members.iinet.net.au/~gstamp/glen/
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>
>
>
> Glen Stampoultzis
> gstamp@iinet.net.au
> http://members.iinet.net.au/~gstamp/glen/
>
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
Re: Getting access to the visit from within the Taco's tree
model.
Posted by Glen Stampoultzis <gs...@iinet.net.au>.
Yes. I thought of that one. Unfortunately is appears that calling
getPage() at that point in the render will return a page object that hasn't
had the _engine attached which causes an error during the call to getVisit().
Regards,
Glen
At 02:38 PM 18/11/2003, you wrote:
>How are you specifying the model for your tree? Can you define it as a
>nested or anonymous class from within your component/page? Something like
>this?
>
>public class MyComponent extends BaseComponent
>{
> public ITreeDataModel getTreeDataModel()
> {
> return new ITreeDataModel()
> {
> private MyVisit visit = (MyVisit)
> MyComponent.this.getPage().getVisit();
>
> // Insert tree model implementation here...
> };
> }
>}
>
>Paul Ferraro
>
>Glen Stampoultzis wrote:
>
>>
>>I'm using taco-tree at the moment and I'm struggling with one issue
>>regarding accessing the visit object from within the tree.
>>
>>I would like to know if this is possible? From what I can see the visit
>>is being passed correctly all the way up during the rendering stage but
>>it doesn't get passed on to the model at all. I assume this is a problem
>>with other components that have models also?
>>
>>Regards,
>>
>>
>>Glen Stampoultzis
>>gstamp@iinet.net.au
>>http://members.iinet.net.au/~gstamp/glen/
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>
Glen Stampoultzis
gstamp@iinet.net.au
http://members.iinet.net.au/~gstamp/glen/
Re: Getting access to the visit from within the Taco's tree model.
Posted by Paul Ferraro <pm...@columbia.edu>.
How are you specifying the model for your tree? Can you define it as a
nested or anonymous class from within your component/page? Something
like this?
public class MyComponent extends BaseComponent
{
public ITreeDataModel getTreeDataModel()
{
return new ITreeDataModel()
{
private MyVisit visit = (MyVisit)
MyComponent.this.getPage().getVisit();
// Insert tree model implementation here...
};
}
}
Paul Ferraro
Glen Stampoultzis wrote:
>
> I'm using taco-tree at the moment and I'm struggling with one issue
> regarding accessing the visit object from within the tree.
>
> I would like to know if this is possible? From what I can see the
> visit is being passed correctly all the way up during the rendering
> stage but it doesn't get passed on to the model at all. I assume this
> is a problem with other components that have models also?
>
> Regards,
>
>
> Glen Stampoultzis
> gstamp@iinet.net.au
> http://members.iinet.net.au/~gstamp/glen/
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org