From cfccbf465a599933f914dbdf7580135221913043 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20ROU=C3=8BN=C3=89?= Date: Fri, 18 Aug 2023 16:31:41 +0200 Subject: [PATCH] [doc] Contribute a shape for precondition support for tools. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Florian ROUËNÉ --- CHANGELOG.adoc | 1 + .../shapes/add_precondition_on_tool.adoc | 41 ++++++++++++++++++ .../images/add_precondition_on_tool_01.png | Bin 0 -> 10449 bytes 3 files changed, 42 insertions(+) create mode 100644 doc/iterations/2023.10/shapes/add_precondition_on_tool.adoc create mode 100644 doc/iterations/2023.10/shapes/images/add_precondition_on_tool_01.png diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 3211b3281b..4715ec2245 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -5,6 +5,7 @@ === Shapes - Add tool sections in the View DSL +- Add support for Precondition Expressions in Tools === Architectural decision records diff --git a/doc/iterations/2023.10/shapes/add_precondition_on_tool.adoc b/doc/iterations/2023.10/shapes/add_precondition_on_tool.adoc new file mode 100644 index 0000000000..7bae7b1c64 --- /dev/null +++ b/doc/iterations/2023.10/shapes/add_precondition_on_tool.adoc @@ -0,0 +1,41 @@ += (S) Add precondition on tool + +== Problem + +Today a specifier can add tools to the palette of a diagram description, but it's not possible to determine when the tool should be available or not. + +== Key Result + +Offers a specifier the ability to declare precondition on tools. +Tools are only accessible if their preconditions are interpreted as true. + +== Solution + +Add in the view DSL, a precondition expression to the tool EClass. +Before retrieve the list of tools in `GetToolSectionsEventHandler`, interpret this expression to determine if the tool must be added to the palette. +If there is no precondition set, the tool is always added to the palette. +The only variables given for the precondition interpretation are: + +* _self_: the target object +* _selectedNode_: the diagram element if it's a node +* _selectedEdge_: the diagram element if it's an edge + +=== Scenario + +* The specifier adds a new tool to a palette and sets a precondition expression. +* When users open the diagram representation, they only have access to the tool if its precondition is evaluated to true. + +=== Breadboarding + +Example of the `Precondition Expression` for a Tool + +image::images/add_precondition_on_tool_01.png[precondition_expression_properties] + +=== Cutting backs + +== Rabbit holes + +* This feature only impacts backend, thus it will be available for both diagram representations (legacy and react_flow). + +== No-gos + diff --git a/doc/iterations/2023.10/shapes/images/add_precondition_on_tool_01.png b/doc/iterations/2023.10/shapes/images/add_precondition_on_tool_01.png new file mode 100644 index 0000000000000000000000000000000000000000..c4f9c1fa978415bfc3a3eccec5afddac6a419331 GIT binary patch literal 10449 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 literal 0 HcmV?d00001