Refinement: Restore and polish functionality
#3598 was a first step to improve this plugin by fixing some exceptions.
However, there are remain several problems in the usability of this plugin that should be addressed in this issue.
The following is a (probably not exhaustive) list of problems (see https://download.fortiss.org/public/projects/af3/help/refinement.html regarding the intended functionality):
- Adding any refinement rule and saving the project creates this warning on missing IDs (example below is for rule groups): Please report this incident since it indicates a programming error that could result in corrupted model files. Missing ID added to element "org.fortiss.af3.refinement.model.impl.CompositeRuleImpl@b8d8fb7 (id: 0, name: Rule Group, comment: null)"
- It should be checked if mapping and value rules may only be added to rule groups. Currently, a mapping or value rule can also be added at the top level. However, if this is the case, then no further rule can be added (because the “root group” is invisible and can not be selected, and hence the “Add” button is disabled"
- Value rule
- The source or target value cannot be selected using the “…” button since the corresponding list is empty.
- It should be check if the source value / target value field (and the “…” button) should be disabled if no type has been selected yet
- Mapping rule
-
Source: The “…” button shows all artifacts in the project. This should be limited to a meaning full, supported sub-set. The empty lines seem to corresponding to model element specifications / annotations. As a consequence of the missing filter, the console displays messages about missing model element handlers: !ENTRY org.fortiss.tooling.kernel 4 0 2019-01-24 14:11:28.429 !MESSAGE ERROR: org.fortiss.af3.project.model.configuration.impl.TypeSystemConfigurationImpl does not have a registered handler!
!ENTRY org.fortiss.tooling.kernel 4 0 2019-01-24 14:11:31.101 !MESSAGE ERROR: org.fortiss.af3.safety.model.annotation.impl.SafetyIntegrityLevelImpl does not have a registered handler!
-
Target Class: The “…” button shows all known artifact types. This should be limited to a meaning full, supported sub-set.
-
Target: The “…” button shows an empty list / tree. Also here, only a meaningful subset should be displayed, e.g. using the selected target class as filter.
-
(from redmine: issue id 3624, created on 2019-01-24, closed on 2020-02-04)