New specialization plugin

Started by Hervé, June 30, 2017, 21:18:01 PM

Previous topic - Next topic

Hervé

Dear all,

the version 0.3 of the specialization plugin has been released on github : https://github.com/archi-contribs/specialization-plugin

As Usually, you may install it by manually copy the JAR file to Archi's plugin folder, or click on the "check for update" button on the plugin's preference page if you've got a previous version installed.

The key updates are:

  • Add debug and trace messages
  • Add the ability to change the name of the property that contains the icon filename
  • Add the ability to change the name of the property that contains the label text
  • Add a context menu to refresh the model tree

The next devs are now:

  • alow to dinamically change the images size
  • add a file explorer to the preference page to manage the image files
  • automate the creation of symbolic links (linux/mac) and junctions (windows) to access image files outside Archi's editor folder

Best regards
Hervé

Hervé

Dear all,

I've been working very hard to release this new version before Christmas : https://github.com/archi-contribs/specialization-plugin

Even if a lot more need to be done, I decided to release it under version 1.0 because it becomes quite complete now

As usual, you may download and copy the JAR file into archi's plugin folder or click on the "check for update" on the preference page if a previous version of the plugin is already installed.

The key updates are:

  • Better integration into Archi (please see screenshot below)
  • The image files can now be located outside Archi's editor folder
  • The icon and label names can now contain variables (i.e. references to other properties)
  • Add the ability to change the images size
  • Add the ability to change the image location into the elements' rectangles
  • Rewrite debug and trace messages
  • Update inline help
  • Various Fixes:

           
    • Fix elements shape (square corners instead of round ones)
    • Fix junction shape
    • Do not replace the icon in the properties window anymore

Best regards
Hervé

Hervé

#32
Dear all,

I just released the version 1.0.1 of my specialization plugin, with 2 small updates:

  • Replace "\n" string by a newline in labels
  • Expand variables ${name}, ${id}, ${property:xxx}, ... the same way the form plugins does

Best regards
Hervé

jmariani

Hi!

How to completely hide/cancel the label?

Thanks!

Hervé

Hi,

You may replace the label by a space char.

Best regards
Hervé

jmariani

Quote from: Hervé on February 05, 2018, 20:03:48 PM
Hi,

You may replace the label by a space char.

Best regards
Hervé

Thanks! Maybe you can consider adding some checkboxes in the future, like "Hide label" and "Override original label".

"Hide label" will, obviously, hide the label.
"Override original label" will, when checked, use the label defined in the replace label tab. Otherwise, will use the original one.

Thanks!

Hervé

Hi,

Why not ... I'll think about it.

Best regards
Hervé

jmariani

Also, (at the risk of being a pain in the ass) maybe you can consider adding some controls to the icon section like:


  • Keep aspect ratio
  • Positioning as an absolite value or as a percentage of the coordinates (0,0 at the top left corner of the figure)

Hervé

The aspect ratio is qlready done (you may specify a width and leave "0" as height, or specify a height and leave "0" as width).

Regarding the percentage from top left corner, you already can specify coordinates. I'm not sure percentage will be that useful as I do not beleive you will resize your objects that often.

Best regards
Hervé

Hervé

Dear all,

I just released the version 1.0.2 of my specialization plugin : https://github.com/archi-contribs/specialization-plugin

The key updates are :

  • The undo/redo now works on the label editing tab
  • Updating a label now sets the model's dirty flag

Best regards
Hervé

Hervé

Dear all,

An issue has been discovered on the relationships labels in the version 1.0.2. I just released the version 1.0.3 that solves the issue.

Best regards
Hervé

Hervé

Dear all,

I'm pleased to announce the version 1.0.4 of my specialization plugin (https://github.com/archi-contribs/specialization-plugin).

To install it:

  • For a fresh install: download the org.archicontribs.specialization_v1.0.4.jar to the Archi plugins folder
  • To update from a previous version: go to the specialization preference page and click on the "check for update" button"

The key improvements are:

  • Implement ${model:purpose} variable
  • Implement ${sum:xxx} variable which is able to recursively sum numeric value (like ${view:sum:property:cost})
  • Replace exception by simple error messages in variable expansion to avoid generating Archi misbehavior
  • Fix ${view:xxx} variables

Best regards
Hervé

Hervé

#42
Dear all,

I just discovered an issue in the ${sum:xxx} variable recursion, so I just released the version 1.0.5 of the plugin:

  • the ${sum:xxx} variable includes the the selected object in the sum
  • the ${sumx:xxx} variable excludes the the selected object from the sum

One may test the plugin with the following model that includes both of them:
<?xml version="1.0" encoding="UTF-8"?>
<archimate:model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:archimate="http://www.archimatetool.com/archimate" name="test sum" id="2c0f0b84-f918-4614-96e8-a558a30932b8" version="4.0.0">
  <metadata/>
  <folder name="Strategy" id="185309c3-e930-4d83-a347-d97506ac9636" type="strategy"/>
  <folder name="Business" id="cc455990-e1f4-42b1-889a-e838055b0bb9" type="business"/>
  <folder name="Application" id="e71470ce-ef3d-4bfe-8165-61ed815dd66a" type="application"/>
  <folder name="Technology &amp; Physical" id="78472b37-54e4-42d3-8c1b-4f5bc8268d74" type="technology">
    <folder name="folder 1" id="9c6fc6f0-c2d9-4c01-8f3c-dbc86d05ed39">
      <element xsi:type="archimate:Node" name="Cost node" id="29767061-378c-4832-aaed-4b839acf6766">
        <property key="label" value="The total cost is ${view:sum:property:cost} €."/>
      </element>
    </folder>
    <folder name="folder 2" id="bbbdfa3e-0636-4c92-8b03-ae1e7605b5ea">
      <element xsi:type="archimate:Node" name="Node 1" id="b2169f00-c0f0-4ac9-ade7-8ade4e40135c">
        <property key="cost" value="12"/>
        <property key="label" value="node 1\ncost is ${property:cost} €"/>
      </element>
      <element xsi:type="archimate:Node" name="Node 2" id="e4747193-f34b-4832-82bd-23373b3e8579">
        <property key="cost" value="24"/>
        <property key="label" value="node 2\ncost is ${property:cost} €"/>
      </element>
    </folder>
  </folder>
  <folder name="Motivation" id="6daded04-0965-41b0-aaa9-20797cc3f70c" type="motivation"/>
  <folder name="Implementation &amp; Migration" id="aef0104c-327c-4f13-8993-59d33b93bc7d" type="implementation_migration"/>
  <folder name="Other" id="129a22e0-cda9-4216-8537-fbc725d60f2a" type="other">
    <element xsi:type="archimate:Location" name="Datacenter" id="92d0eef4-16b1-49b6-b109-a2944395696b">
      <property key="label" value="datacenter\ncost is ${sumx:property:cost} €"/>
      <property key="cost" value="100"/>
    </element>
  </folder>
  <folder name="Relations" id="332551c8-28bc-4168-b123-5a084fbf65c4" type="relations">
    <element xsi:type="archimate:FlowRelationship" name="node1 to node2" id="25192a0f-cfed-4b0a-87e8-c10cb77dfa91" source="b2169f00-c0f0-4ac9-ade7-8ade4e40135c" target="e4747193-f34b-4832-82bd-23373b3e8579"/>
    <element xsi:type="archimate:CompositionRelationship" id="d782b240-737e-4353-9903-5f994dd6fe72" source="92d0eef4-16b1-49b6-b109-a2944395696b" target="b2169f00-c0f0-4ac9-ade7-8ade4e40135c"/>
    <element xsi:type="archimate:CompositionRelationship" id="b5f86a42-9eaf-4977-a7e7-5c19a6babd64" source="92d0eef4-16b1-49b6-b109-a2944395696b" target="e4747193-f34b-4832-82bd-23373b3e8579"/>
  </folder>
  <folder name="Views" id="f76d44bd-0cbe-433b-af50-24ea1667b60f" type="diagrams">
    <element xsi:type="archimate:ArchimateDiagramModel" name="Default View" id="d290d7fb-9375-408b-8343-98cd400b834e">
      <child xsi:type="archimate:DiagramObject" id="5973db03-198c-4155-a20f-01a6a77eed83" archimateElement="29767061-378c-4832-aaed-4b839acf6766">
        <bounds x="168" y="36" width="120" height="55"/>
      </child>
      <child xsi:type="archimate:DiagramObject" id="90fb515a-755d-4481-b5c4-a234b17a52a7" archimateElement="92d0eef4-16b1-49b6-b109-a2944395696b">
        <bounds x="24" y="108" width="397" height="145"/>
        <sourceConnection xsi:type="archimate:Connection" id="8d5b7fde-7327-4524-ab13-d261faeef41d" source="90fb515a-755d-4481-b5c4-a234b17a52a7" target="0d375ca2-0ad7-4933-8df9-363942585b92" archimateRelationship="d782b240-737e-4353-9903-5f994dd6fe72"/>
        <sourceConnection xsi:type="archimate:Connection" id="b83a97b5-f998-422d-a61b-ac967ac3324c" source="90fb515a-755d-4481-b5c4-a234b17a52a7" target="d2b60400-549e-484a-a359-e0c49f8004ad" archimateRelationship="b5f86a42-9eaf-4977-a7e7-5c19a6babd64"/>
        <child xsi:type="archimate:DiagramObject" id="0d375ca2-0ad7-4933-8df9-363942585b92" targetConnections="8d5b7fde-7327-4524-ab13-d261faeef41d" archimateElement="b2169f00-c0f0-4ac9-ade7-8ade4e40135c">
          <bounds x="24" y="60" width="120" height="55"/>
          <sourceConnection xsi:type="archimate:Connection" id="78c83e19-c034-4d17-bbcb-f1240b089198" source="0d375ca2-0ad7-4933-8df9-363942585b92" target="d2b60400-549e-484a-a359-e0c49f8004ad" archimateRelationship="25192a0f-cfed-4b0a-87e8-c10cb77dfa91"/>
        </child>
        <child xsi:type="archimate:DiagramObject" id="d2b60400-549e-484a-a359-e0c49f8004ad" targetConnections="78c83e19-c034-4d17-bbcb-f1240b089198 b83a97b5-f998-422d-a61b-ac967ac3324c" archimateElement="e4747193-f34b-4832-82bd-23373b3e8579">
          <bounds x="245" y="60" width="120" height="55"/>
        </child>
      </child>
    </element>
  </folder>
  <purpose>purpose</purpose>
</archimate:model>


Best regards
Hervé

jmariani

Hi.

Just downloaded and installed the 1.0.5 version, but the Preferences->specialization plugin pane says I have 1.0.4, and when I check for update, it says there's a new version available.

???


Hervé

My apologies, I had forgotten to increase the release number inside the jar file.

I just sent an update to GitHub.