Thanks for the quick response Stephen! It wasn't completely accurate, but it 
got me headed in the right direction.

The solution was to add a '@RelativePath("..")' decorator to each argument that 
should receive data from the parent scope's form fields. Also, it was important 
to *not* include the trailing slash, as if it is included the resulting DOM 
paths in the generated page contain two slashes and don't work properly.

----- Original Message -----
From: [email protected]
To: [email protected]
At: Jul 12 2013 18:24:52

You need to put ../ in the @QueryParam on the doFill... Methods

On Friday, 12 July 2013, Kevin Fleming (BLOOMBERG/ 731 LEXIN)  wrote:

Continuing my development of a replacement AWS plugin...

I've got a class that extends Cloud (called EC2), so it can be added and 
configured from the global config page (it appears in an f:hetero-list). I have 
another class which is Describable, that EC2 keeps a list of in a 
DescribableList, and this also appears in an f:hetero-list (in EC2's 
config.jelly). This class is called SlaveTemplate.

There is a third class, called InstanceLaunchDetails, which is also 
Describable. SlaveTemplate holds a single instance of this class in a field, 
and has an f:property in its config.jelly to allow it to be configured. So far, 
all of this works as expected.

Two of the fields in config.jelly for InstanceLaunchDetails, though, are 
ListBox fields; there are functions in the descriptor to populate them. They 
require some form fields from the EC2 instance, though, since that provides the 
credentials to access AWS. These functions (doFillAvailabilityZoneItems is one) 
accept these form fields as QueryParameters, as they should. When the form is 
first displayed, the user has not filled in these fields in the EC2 instance, 
so the listbox-filling function is called with null parameters; this too is 
fine.

The problem comes in when the user *does* fill in these form fields (part of 
the grandparent scope for InstanceLaunchDetails); apparently Jelly has not 
figured out that these fields are dependent on the grandparent's fields, so the 
listbox-fill functions don't get called. Is there some way I can make Jelly 
aware of this dependency, or should it have been inferred automatically?

As a test, by the way, I added an f:validateButton in config.jelly for 
InstanceLaunchDetails, configured to receive these same form fields (from the 
EC2 instance). When I press the button, the form fields *are* passed to the 
method.-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
 For more options, visit https://groups.google.com/groups/opt_out.
 
 


-- 
Sent from my phone
 -- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.
 
 

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to