Re: Accessing parameter of container from mixin

2009-07-02 Thread DH
One way is using the internal API, which is not recommended. I don't know 
whether there is a better one.

@Inject
 private ComponentResources componentResources;

public String getZone() {
   InternalComponentResourcesImpl containerResources = 
(InternalComponentResourcesImpl)componentResources.getContainerResources();
   String zone= (String)containerResources.getBinding("zone").get();
   return zone;
}


DH
http://www.gaonline.com.cn

- Original Message - 
From: "Alfie Kirkpatrick" 
To: "Tapestry users" 
Sent: Thursday, July 02, 2009 4:08 PM
Subject: Accessing parameter of container from mixin


Hi, I am writing a mixin that can be used with submit, actionlink,
linksubmit and other things that support a zone parameter.

 

I need to know the zone name from the container. I can add a zone
parameter to my mixin but it's 'namespaced', ie. doesn't pick up the
zone parameter of the container.

 

I would like to write a defaultZone method but cannot see an obvious way
to get the parameter from the container. I am injecting the container
fine but the zone field is private with annotation rather than exposed
with a getter.

 

The workaround is to duplicate the attribute, eg:

 

...

 

This works fine but is not quite as elegant as I'd like!

 

Any ideas?

Thanks, Alfie.



Re: Accessing parameter of container from mixin

2009-07-02 Thread Kristian Marinkovic
there is no way to do so right now. see 
https://issues.apache.org/jira/browse/TAP5-103 

there has been some comments on this matter recently (see 
http://tapestry-dev.markmail.org/search/?q=TAP5-103)

g,
kris




"Alfie Kirkpatrick"  
02.07.2009 10:08
Bitte antworten an
"Tapestry users" 


An
"Tapestry users" 
Kopie

Thema
Accessing parameter of container from mixin






Hi, I am writing a mixin that can be used with submit, actionlink,
linksubmit and other things that support a zone parameter.

 

I need to know the zone name from the container. I can add a zone
parameter to my mixin but it's 'namespaced', ie. doesn't pick up the
zone parameter of the container.

 

I would like to write a defaultZone method but cannot see an obvious way
to get the parameter from the container. I am injecting the container
fine but the zone field is private with annotation rather than exposed
with a getter.

 

The workaround is to duplicate the attribute, eg:

 

...

 

This works fine but is not quite as elegant as I'd like!

 

Any ideas?

Thanks, Alfie.