Ok, this patch addresses
GROOVY-328, GROOVY-329, GROOVY-333, GROOVY-391. I did some enhancements before I realized there was such fine grained bugs against SwingBuilder.
For this bug... a new node type widget().
Passing in just a value will instert that value literally.
Passing in just a map will take the value of widget: as the widget. All other values are set as bean properties
Passing in dictionary values, then an unlabeld item will use the unlabeld item as the value, and the rest of the dictionary will be the bean properties. Useful in the corner case of a property named widget, but you are still out of luck for a property named constraints.
datepicker1 = new BizzareDatePickerWidget()
datepicker2 = new BizzareDatePickerWidget()
datepicker3 = new BizzareDatePickerWidget()
widget(widget:datepicker2, timezone: "GMT-2")
widget(timezone: "GMT-2", format="yy:MM-hh/dd", datepicker3)