I have seen that some people wanted to have animations in Graphiti and so did I, indeed I have stated to write a working animations framework for Graphiti.
Currently the supported animations are:
[*] Translation: a translation animation translates a shape following a delta_x and / or a delta_y variation
[*] Resize: a resize animation resizes a shape to the given size
[*] Transparency change: this animation modifies the transparency of a shape to the given transparency
[*] Compound: a compound animation is composed of one or several other animation(s) executed in sequence or in parallel
I have created a sample project for this animations framework and an enhancement bugzilla: https://bugs.eclipse.org/bugs/show_bug.cgi?id=469392
This could be a nice optional feature for the moment, any code review(s) or other contributions will be nicely welcome !
An improvement might be to code a generic animation which can take an EMF feature as parameter. This generic animation can then be declined to a BackgroundColor modification, ForegroundColor modification, Transparency modification, etc. I think this can be implemented the same way as the Transparency animation but I did not have the time to start the coding...
Do animations make diagram "dirty"? For my needs I would like to have some animations during launch process however after stop I want that everything is like it was before.
When I "debug" my diagram and there is a breakpoint stop on one port I would like that this port is slowly fickering. But user can still make some permanent change on diagram like moving objects.
I was thinking to do it via decorators - it requires working directly with GEF.
Animations do make diagrams "dirty" if you don't modify the basic function implementation that checks for dirtiness because they will execute several operations on the shapes as if the user was doing them with the mouse. You can override the basic "isDirty" implementation to change this behavior. I think your request would be possible by using quick animations of about 100 - 200 ms and by ignoring the moves realized when an animation is done in the "isDirty" implementation but I have not tested this behavior yet.
Let us know if you success in doing such a feature !