Specialization plugin

Started by Hervé, June 28, 2017, 14:32:58 PM

Previous topic - Next topic

Hervé

Hi JB,

As to remind you, I started a specialization plugin last year, but was stuck because I failed to updated the objects icons in the diagrams.

But thanks to Thijs's plugin which shown me the path, I'm now unstuck  ;D

My aim is to be able to change the rendering ofgraphical objects in Archi diagrams in order to indicates if is represents a physical server, a virtual server, a storage node, a web service, etc ... For my personal usage, the Node and Device objects are mainly concerned.

A preference page will allow to setup a set of rules like :

  • and/or the element class is "xxxx"
  • and/or its name is like "xxxx"
  • and/or it has got a property "xxxx"
  • and/or its property "xxx"'s value is "xxxx"
  • (same for model's and diagram's properties)
  • then

    • set the icon to xxxx
    • set the background color to xxxx
    • set the foreground color to xxxx
    • set the font to xxxx

My plugin will provide few icons, like Font Awesome (http://fontawesome.io/icons/), Material design (https://material.io/icons/) or even allow the user to choose any jpg/png/svg from its hard drive.

The fact that no new metadata will be created, the archimate files will be untouched. People who do not have the plugin activated will just see the standard icon.

We've been discussing this last year but I've been stuck for quite a long time. Now that I succedded to do it, I would like to put my project back on track.

At the same time, I know that you are thinking about a solution on your side (https://github.com/archimatetool/archi/wiki/Ideas-for-a-nice-and-elegant-way-to-implement-profiles-and-concepts-customization) so I would not like we both do the same thing at the same time. I beleive I shall be able to provide a beta version by the end of july.

My only requirement is to change the com.archimatetool.editor.ui.factory.ObjectUIFactory.registerProvider() method from private to public (or at least protected).

What is your opinion ?

Best regards
Hervé

Phil Beauvoir

com.archimatetool.editor.ui.factory.ObjectUIFactory.registerProvider() is private for a good reason. It does the work of registerProviders() which registers providers declared in the extension point. So a IObjectUIProvider class must be registered by the extension point, not in code.
If you value and use Archi, please consider making a donation!
Ask your ArchiMate related questions to the ArchiMate Community's Discussion Board.

Hervé

Thanks for your answer. I will have to find another way I believe  :D

Nevertheless, my question was more about a plugin vs your code update. Do you think this plugin makes sense or shall I wait for your specialization code in the core of archi ? And if yes, do you have a date to provide (I mean is it something planned soon or next year ?) ?

Thanks and regards
Hervé

Jean-Baptiste Sarrodie

Hi Hervé,

I think you can continue working on your plugin, and at some point in time we might stole your code ;-)

Regards,

JB
If you value and use Archi, please consider making a donation!
Ask your ArchiMate related questions to the ArchiMate Community's Discussion Board.

Hervé

Hi JB,

You won't steel anything because I'll be happy to give it to you. In fact, I'm happy to give it to anyone who want it. This is open source principle, rigth ?  ;D

Could you please create a org.archicontribs.specialization repository ?

I will put a proof of concept version quickly.

Thanks and regards
Hervé


Jean-Baptiste Sarrodie

If you value and use Archi, please consider making a donation!
Ask your ArchiMate related questions to the ArchiMate Community's Discussion Board.

steen.jensen

Hi Hervé

Looks like someting that IML (Infrastructure Modeling Language) as Cognitesolution was trying to sell.
https://www.cognitsolutions.co.uk%2Fiml.pdf&usg=AFQjCNEnGzcwfWbfHe6Mg-zNLvipKAhvOQ

That exact what I would like to have, a way to have alternate symbols, so ouer technical people can understand my models  ;D but still have an Archimate standard repository and exchange format.


Hervé

Hi Steen,

I know about IML and this is exactly this kind of behaviour that I'm trying to achieve.

Nevertheless, I need to ensure that the icons I embed in my plugin are free and the ones used in IML pictures look very much like Visio pictures. So I do not know if I'm allowed to provide them ...

Best rgards
Hervé

Hervé

Hi,

Just to show you what the "proof of concept" version looks like. I shall deploy it on GitHub tonight or tomorrow.

At the moment, it implements the fontAwesome icons through the "icon" property but, of course, the final version will manage more icons and will provide more complex rules to determine the icon.

Best regards
Hervé