Demo
I'm pretty happy with how the drag and drop is turning out. I have a demo that you can play with, dragging dijit names to create real form objects. The basic functionality is in place, and I can iterate on this for the rest of the summer to turn it into something usable. If you're interested, you can check out the code with:
svn co http://svn.dojotoolkit.org/soc/2008/dndforms_jbalogh soc
Put the soc directory at the same level as dojo and dijit.
Duplicate source items
The sitepen blog was really helpful in working out my final dnd troubles. I was suffering from the problem outlined in the "Avoiding Duplicate Items" section: copyOnly is great for preventing item removal from a dojo.dnd.Source, but if you drop an item from that source onto itself, you get multiple copies of that item.
The fix for me was to create an around method that blocks a drop from the same source, along with setting the dnd manager's canDrop flag to false after every drop event.
Don't reinvent dojo
When I started creating dijits on the fly, I had a big array of objects, with the class, node type, and any extra parameters. For example, the object to create a TextBox with an input node:
First I would create the right type of dom node, add the correct attributes, and then pass in the node to create a new dijit. It was a lot of work, and completely unnecessary.
It turns out that each dijit does the right thing just given a div. The dijit._Templated classes disregard what you pass in, creating a new node according to the template. Other widgets apply their transformations to the div.
I'm learning to step back from the code, think about what I'm doing, and figure out which part of Dojo I'm trying to reimplement.
Where do we go from here?
I've had a bunch of encouraging comments so far (thanks!), and I was wondering how people are planning to use this project. What kind of app do you have, who will be creating the forms, how will the generated forms be used, etc.? I'll keep your comments in mind while I'm working on the rest of the project.

Great work! Hope it can be
Great work!
Hope it can be an visual IDE some day!
Haven you seen the WaveMaker? It should be a help to you!
http://www.wavemaker.com/
GridContainer
Hey Jeff,
looking good! The mini-widgets as avatars is a great visual touch. Have you seen the new GridContainer that recently landed in dojox?
Rob :)
re: GridContainer
Wow, that is fantastic! Thanks Rob! The GridContainer is *perfect* for multi-column layouts. I was wondering how I was going to pull that off.
How I would use this
This is looking great!
I already have a backend that reads in xml and creates a form from a simple xml document. It works well and sends the form values via email and stores them in a database as well. But, we have to write the xml that defines the form by hand at the moment.
What would be great would be the ability to create these forms via you tool and then store them as xml in a simple format. Later, the backend could read the xml and create the form, then on the formsubmit read the xml again store it in the database, and send an email of the form values to whoever needs it.
What you are working on is the part we never had time to do and always wanted.
Thanks for the great work ( :
Re: How I would use this
Great, thanks Tom! We'll definitely be able to support your use case, though it's something I hadn't considered before. I get too wrapped up thinking about big frameworks and forget about the little things.