[ http://issues.apache.org/jira/browse/TAPESTRY-243?page=all ]
Howard M. Lewis Ship resolved TAPESTRY-243:
-------------------------------------------
Resolution: Won't Fix
This suggestion goes against the basic structure of Tapestry. Rendering order
in Tapestry is highly dynamic and advanced solutions using Tapestry depend on
that level a dynamic behavior. This is an attempt to "pin" static structure to
a dynamic world.
> Add getParent() method to IComponent
> ------------------------------------
>
> Key: TAPESTRY-243
> URL: http://issues.apache.org/jira/browse/TAPESTRY-243
> Project: Tapestry
> Type: Improvement
> Components: Framework
> Versions: 3.0.1
> Reporter: Naeem Malik
> Priority: Minor
>
> Tapestry does not allow you to retrieve the parent of a component. If you
> have a component C nested in a component P, there is no method to retrieve
> the parent P from C. What is needed is a getParent() method.
> There is no logical reason for not including a getParent method as methods
> exist to retrieve the children of a component. The getParent method is
> extremely useful if you wish to change the rendering behavior of a component
> based on whether it is nested inside a particular component. The JSP taglib
> API supports this with the TagSupport.findAncestorWithClass(Tag, Class)
> method. Without the getParent method, it is difficult to convert some JSP
> tags to Tapestry components.
> Fortunately, this improvement is not difficult to implement. I have
> successfully implemented this by adding a private variable _parent of type
> IComponent to AbstractComponent and adding getParent/setParent methods to
> get/set the variable: the getter should look like this:
> return _parent != null ? _parent : getContainer();
> Finally, add the following line to
> BaseComponentTemplateLoader.process(OpenToken) method (line 268 under version
> 3.0.1)
> component.setParent(_activeComponent);
> (Note that Tapestry does allow you to retrieve the IComponent a particular
> component is embedded in via the IComponent.getContainer() call. This call
> will retrieve the component whose template C was defined in. This method does
> not address the issue.)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]