Monday, January 14, 2008

Bunkai 0.1 - Working Proof of concept

OK, I really wanted to have a drag-and-drop editor with resizable widgets for dojo. However, that is a non-elementary target, it seems.

Because I'm constrained by the absolute need for source code editing, I'd have to scrub the generated tags for DnD and resizing on the way over, which is a mess (I've tried it the whole last week).

So, I've decided to drop the fancy stuff and just release a hopefully simple to grok proof of concept thingamajig.

What Bunkai is now is the following;

1) A source code editor for Dojofied HTML markup, meaning normal HTML with extra tags that the dojo parser uses to instantiate widgets, et.c. when necessary.

2) When pressing the 'save' icon in the EditArea editor, the source will be dropped in the 'screen' portion of Bunkai, which will try to resolve any dojo library requirements, so that for instance the Calendar widget gets loaded before it's used, et.c. This works moderately well, since there's no 1:1 relation between loadable files and widgets. I'll have to write some extra meta-stuff for that I suppose.

3) When you drag (Yes, I still have _some_ DnD :) a dijit name from the rightmost list, you can drop it onto any existing widget, and it will be appended to it - also all changes here are communicated to the source code.

I haven't fixed widget properties yet, but my next to-do item is to have a general dialog for filling in properties (that are critical to provide for certain widgets), like how wide a bar should be, or what ratio of the parent container this container should take, et.c.

But anyway, as a first PoC, it's almost usable. My goal is to make a visual Dojo editor that can be used by a Dojo novice, and has a shallow learning curve. As it is, I think it's hard to use if you haven't done dojo markup before.

Please tell me what you'd like to see, and I'll put it on my to-do- list (Yes, I know. I'll try to find time to make a widget of Cristophe Dolivet's EditArea).

Ah yes, the Url is here;

No comments: