Sean Parent wrote in mail to adobe-source-devel regarding his thoughts on a visual editor for Eve files:
I have some thoughts - Foster may have some also - he implemented the original Expresso -
- The basic UI that I envision is a two view editor - a tree view showing the UI elements and a preview.
The tree view should be fairly simple - showing an icon for the view type and the name property (after localize is executed) for the item - if no name property then the view type is displayed
 My Dialog -- row () OK () Cancel
Drag and drop (including multiple items) - should be allowed within the tree view as well as between the tree view and preview windows.
The preview window should be live - meaning you can select elements directly in it and drag items around. Items can be dropped into containers (containers should highlight to show you where the item will be dropped.
An inspector palette should be present to show you the properties of the view selected. I would only show the editable properties and possibly organize them into panels - you might want a debugging palette or panel which shows the calculated properties. This palette should be fairly easy to create with Eve (and Adam) - I’ve been meaning to construct this part with the current system just to show the properties of each of the widgets types.
Shortcuts for typical properties should be provided - ctrl-[ - ] for align left, center, right, etc…
A palette of the available widgets that can be dropped onto either the tree view or the preview would be great.
Within the inspector palette I would allow expressions - not just values - for the properties.
From an implementation standpoint - the Eve (and Adam) languages have been designed to support roundtrip editing - this is why the comments are in the syntax - so they can be associated with particular elements and carried through an editor. The way to build such a beast is to replace the eve_evaluate file that captures the information from the parser and populate a structure for the editor (possibly using the forest library).
One implementation hole that I know of at the moment is that there is no way way to erase an item from a layout - but I believe that could be easily added.
- Bonus points for a live source view
- Double bonus points for alternative syntaxes (especially an XML based one)
- Triple bonus points for a property model view (a table of cells and expressions) - and drag-drop to connect
- 50 bonus points for a property model visualizer (likely using GrafViz)