-
-
Notifications
You must be signed in to change notification settings - Fork 278
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature Request] Add auto-layout capability to Archi : integrate Eclipse ELK framework ? #1123
Comments
Hi, the Elk framework can't just be integrated into Archi out of the box. It would be better to get some algorithms and then apply these using a jArchi script. I think someone already wrote some scripts to do this. I'll look for them. |
Hi Phil, That's indeed my current approach : a jArchi script to generate some 'basic' views and laying it out (mainly catalog or hierarchical-embedded views : juste boxes and no connections, but even there it rapidly becomes complex when boxes are not all the same size and the ELK Box layout algorithm is exactly what I'm trying to code here..). I see ELK has a javascript "transpile" package : ELK-JS, I'll give it a try 1st or maybe try to PoC an Eclipse plugin integration by myself to see how difficult it could be... I will post back here if I have any success with it.. Regards, |
Thanks. But a word of warning regarding Eclipse frameworks that seem to promise "magical"solutions. They are usually under-documented and half-baked. Also, even though Archi uses the Eclipse RCP it doesn't mean that another Eclipse framework can easily just be "plugged in". I've tried these things before and they turn out to be too generic, or too heavyweight. Another consideration is to be careful about adding more dependencies on a framework that might in the future turn out to be unsupported. |
Hi Phil, I've invested a couple of days on the Archi/ELK integration, here are my findings so far :
With all that said, I have a starting point of ELK integration into Archi I could share to let you consider it, it's only a proof-of-concept at this stage and I haven't reach a stage where I can layout complex diagram but I can now see the effort needed to go that road.. To see the potential of ELK, one can use their 'demonstrator' : ELK interactive demo, you can feed the graph examples on the left by one of their complex real-word (partially-annotated with layout constraint) graph-model, eg : CarTrackingAttackModelingAllAttacksInOneModel . I think the best approach would be to go ahead with an external-plugin to Archi (like other org.archicontribs plugins.. ?), yet I'm not sure it's that easy considering I had to change the archi.target so I could need your help to figure this out. I'm a 'retired' java developer (being now en Ent. Architect, aka ppt-arhcitect ;) ), and didn't code for almost a decade.. so I struggled a bit to catch the RCP/GEF/ELK complexity but in the end loved this 'retour au source', and might invest more of my spare time in this project.. but would like to have your (and maybe JB Sarrodie) feedback on this : do you think such an auto-layout feature could be a nice addition to Archi ? |
Hi Alexis, thanks for taking this further. :-)
This is standard procedure for Eclipse projects, I'm afraid. I'm currently doing the same for the EMF Compare framework for coArchi 2 ;-(
If we do try any integration it is best to provide it as an optional plug-in, as you suggest in case it doesn't work out. Perhaps you can create a POC repo here in your account on GitHub for such a plug-in? That means we can continue the conversation there.
Yes, you'd need to change that for development work. And the dependencies also need to be added to the runtime configuration (or added to your copy of the
Well, it's worth a try to see what it's capable of. /cc @jbsarrodie |
Hi Phil, Just a quick update on my recent progress in ELK/Archi integration (PoC). and created 3 projects to host my 3 contribs plugins : https://github.com/AlexisHFr/archi-contribs
Here is a 1st demo of the layout 'out of the box' of a generated view from ArchiSurance model : There's still a lot of work and debugging to be done, but the foundation is there .. Next steps : complete and debug the integration, then make ELK 'aware' of Archimate's specific 'constraints' : for example the Layered ELK layout could match with Archimate classic 'Layered' viewpoint with business objects above applications above technology .. At this stage there is almost no impact on Archi code, but it will be needed I think when I'll need to persist the layout options/parameters within each views to be able to reload them for an iterative view-modification / re-layout round trip. Stay tuned. |
Congratulations on getting ELK working in a plug-in, this Eclipse stuff is not easy! ;-) I'd be interested to know what @jbsarrodie thinks about how to layout ArchiMate views. Is the layout of a View based on a personal style, an organisational style and what, if any are best practices?
It's important to maintain this as a separate Archi plug-in so that it remains optional (and experimental). Specific plug-in information shouldn't really be stored in the |
Description
Hello,
Laying out a complex diagram with many box and connections rapidely becomes very time-consuming : moving manualy each box and having each conection with the best path .. and redoing this again at each and every change of layout.
That's where a solution like Eclipse ELK seems a perfect fit : it propose many layout alogrithms from Tree-based to Box etc.. and should nicely integrate with Archi, isnt'it ?
https://eclipse.dev/elk/
Have you ever consider integrating this framework within Archi ?
The text was updated successfully, but these errors were encountered: