DSL User Experience PowerToy!
If you are building DSL languages today, you may have experienced at least one of the following issues when figuring out how to represent your languages' domain model on a diagram surface:
- Representing most of the domain classes as shapes makes the diagram really complex and cluttered, and therefore arduous to navigate around for the user
- Box and lines are not always ideal for representing parent/child relationships
- You can use compartment shapes to describe one level of hierarchy on the diagram, but no more
- Representing some of the domain classes as connected shapes really does not provide much additional useful information to the user
- Configuring multiple similar shapes, with unique values by individually clicking each one and then changing their domain properties via the 'Properties Window', is pretty mouse intensive and arduous for the user
- It is hard to get a view of your language that focuses on one particular aspect of the domain
If any of the above are issues for your language, you might consider checking out the 'DSL Tree Grid Editor PowerToy' that we are building to resolve these and many other usability issues you may face designing your DSL today.
The PowerToy enhances your language by providing tree-grid-like editors (displayed in a tool-window exclusively for your language) that allows you to expose hierarchical domain relationships, and allow the user to navigate and configure the domain classes in the hierarchy with the keyboard.
The related domain classes are displayed in a grid which makes it easy - at a glance - to compare their important properties side-by-side, whilst configuring and creating new domain classes real easily within the editor.
The PowerToy allows you to add multiple of these editors; one for each 'aspect' that you wish to expose of your language. In effect, each editor acts as another view into your domain model.
As an example, see the DSL with editor below.