mercredi 13 mai 2009

The 20 minute Graphical Modeler based on Eclipse

My last post about the flow model simulation was really missing a demo so that you get the "live" aspect of the model construction. No problem, that's a good occasion to show you a secret product we've been building on top of the Eclipse Modeling projects since a few year now. In my dictator position on this product you can guess I'm quite excited to show you that, nothing public came out about it since now but the first public release is not so far...

Let's stop the teasing and watch the content, here are a few flash demos . If you're just interested in the resulting modeler, go directly to the last one showing the live model design. If you don't understand what's about that flow stuff or if you're wondering how all that load and capacities properties gets updated, have a look on my preceding post.


The first demos are showing the graphical modeler construction. In a few clicks, just defining the concepts you want to display, how you want to display them and how to retrieve them in the semantic model. You get your modeler in a matter of minutes, and you really should not need more than that as it's quite simple.

I really like the "specifying the modeler and using it side by side" feature even if you need a big display for that and here for the demo I have no choice than scrolling.

The next demo is focused on defining "conditional styles" so that the graphical shapes changes depending on the changes in the semantic model (node/edge sizes and colors), in this demo I also specify the fact that a CompositeProcessor reuse the graphical mappings define for the diagram and that I should be able to create a sub diagram on a CompositeProcessor.
The request langage I'm using is Acceleo, but you could also use OCL, I tend to prefer simplicity ;)


And at last, after a bit more tweaking off stage, the usage of this finished dynamic modeler.



So, to be fair, the final modeler is more a 25 minute modeler than 20, but that said, I get a first working modeler a the minute 10 of the first demo.

Be sure that's only a tiny portion of what we've been able to achieve leveraging the Eclipse Modeling components (EMF, GMF, Acceleo, Compare just naming a few...) and the Eclipse Platform : graphic modeler are one thing, but other representation matters and I'm not even speaking about the "full viewpoint support".

Stay tuned for more eye candy ;)

4 commentaires:

Jan Köhnlein a dit…

Wow, that looks awesome.

What I am most interested in is the "semantic candidates expression". Does that allow to navigate the model to collect what semantic elements are actually used to back the graphical element? That was something very tedious in GMF, which more or less requires the containment structure of the diagram to reflect the semantic containment structure. Would be fantastic if you solved the problem.

Cédric Brun a dit…

Thanks a lot Jan :)

The demos are quite speedy and have no annotation, but you manage to spot that ! You're right, the semantic candidate expression allows you to define how the elements are retrieved from the model, and then you're not bound at all to the model hierarchy for your modelers.

That's, indeed, the least you would expect : not having to change your domain model to get your modeler.

Bureck a dit…

This looks very promising! GMF is quite inflexible in the structure of the meta-model and the data to display in feature labels. In my Project I hat to change the Metamodel and still had to add several derived attributes. Does your product support model validation and is it possible to reuse a graphical definition for several nodes? I mean reference a style in different nodes, not copy and paste it.

Cédric Brun a dit…

@Bureck : needing to change your metamodel for your modeler is major issue, you should never ever have to do that.

Our product supports validation rules you can dynamically define too (the same way we define the graphical modeler) and you can even define "quickfixes" for the failling rules :)

We do not support "style reuse" yet but we are working on it, that said you can reuse Node/Container mappings and even "specialize" them depending on the current viewpoint. No doubt I'll provide another video demonstrating all that viewpoints stuff :)