Let me give an example of something that I do. I have the user select a file after which I, using dynamic_options, extract the column names and present those to the user with a select input parameter. With the selected column name I then present a new select input parameter with all the unique values of the selected column.
To get this to work I am now using three pages since it is really dynamic, thus after each parameter (that uses dynamic_options) I need to make a new page to use the selected item, thus:
<page> <param name="input_dataset" type="data" format="tabular, txt" label="Input dataset" /> </page> <page> <param name="colfilter" type="select" multiple="False" label="Select Filtering Column" dynamic_options="get_columns( input_dataset )" /> </page> <page> <param name="filter_values" type="select" multiple="True" label="Select Filtering Values" dynamic_options="get_filter( input_dataset, colfilter, 2 )" /> </page> ....
This works fine, however it requires three pages which is deprecated. The documentation says 'use refresh_on_change' which is an undocumented feature (please (please!!) fix this!) with no examples anywhere on how to replace common <page> usage.
refresh_on_change is not meant to be used explicitly in a tool's config file; it is an internal feature used by Galaxy to refresh pages as necessary, such as for conditionals. Also, dynamic_options has been deprecated in favor of the <options> tag.
So given above example (which is similar to what the original requester asked), where to place the refresh_on_change option to get it working?
If I'm reading your code right, this should be possible using the <options> tag only. First, select the dataset and then use something like for subsequent parameters: <options from_dataset="input_dataset"> <column name="name" index="0"/> <column name="value" index="0"/> <filter type="unique_value" name="unique" column="0"/> </options> Best, J.