Update: I've added a proper github project here.

In classic UI, it was easy to specify the options property on a selection xtype. 

This made getting dynamic data into a dropdown very easy. Simply point the options property to /path/to/resource.infinity.json and you were done. In Granite, things don't work this easy.

There are two approaches that I found. 1) Use a listener. 2) Use ACS Commons GenericList / Datasource solution.

The ACS commons solution works great, but it's a bit rigid on the data structure. I used it as my starting point for the solution below. 

My solution is a 3 step process, requires no JS and no external dependencies.

Step 1

Make a datasource component. It only needs to have one jsp file in it...

Step 2

Add a datasource node to your dialog property. Read the gist for pertinent info.

Step 3