Specialization Plugin: Proper use of the "view" prefix

Started by audreykoz, May 14, 2019, 16:36:51 PM

Previous topic - Next topic

audreykoz

Hey Herve,
I was wondering the correct way to use the "view" prefix. I've tried it a variety of ways in my config file, such as creating a new column in a tab that should display the view that an element is contained in (if it is contained in a view), however, this results in errors that the "${view}" variable does not exist.
What's the intended usage/syntax for this prefix?
Thanks!

Hervé

Hi Audrey,

Basically, the key thing to understand is that the variables always correspond to the Archimate concept. So the variables of the form ${prop} (like ${id}, ${name}, ${description}, ...) refer to the corresponding property of the selected Archimate concept.

But is some cases, accessing properties of this specific Archimate concept is not sufficient, so I introduced the ability to change the scope of the variable, using the form ${scope:prop}, where the scope can be:

  • view: the property of the view where the Archimate concept stands (when the selected concept is a graphical object in a view of course)
  • model: the property of the model
  • source: the property of the source concept (when the selected concept is a relationship of course)
  • target: the property of the target concept (when the selected concept is a relationship of course)

So if your variable is ${view:name}, then you'll get the name of the view where the selected graphical object stands.

Hope this helps :-)

Best regards
Hervé

ps: please note that this is exactly the same mechanism in the specialization plugin and the form plugin.


audreykoz

Hey, quick follow up (although unrelated) question.
Is there any way to delete a property, and not just it's value using the plugin?

Hervé

Indeed  ;)

For every editable widget (text, richtext, combo, checkbox), there is a field called "when empty" on the graphical editor ("whenEmpty" in the configuration file). The values can be:

  • create: if the property does not exist, it is created with an empty value
  • ignore: the property is left untouched (if it exists, it is not deleted, if not, it is not created)
  • delete: if the property does exist, it is deleted

Please note this works even inside tables.

Best regards
Hervé


Hervé

My apologies, my explanation was incomplete !!!

This behaviour is when the variable value is empty only.

If there is a value if the variable, then the property is always created/updated and never deleted.

Hope this is clear, else please do not hesitate to ask again  ;)