eclipsesource / eclipsesource/papyrus-gefx

[Interactions] Improve multi-selection interactions

Open
#40 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
0
Forks
2
PR merge metrics
No merged PRs in 30d

Description

Currently, interactions in multi-selection are handled with a naive iteration. This works fine when the selected elements don't depend on each other, but causes inconsistencies when e.g. moving elements nested in each other.

For example, moving a Package and one of its contained Classes will move the class twice as far. Similar inconsistencies happen for anchored elements (e.g. moving an Association Label together with the Class to which the Association is connected)

The top-level policy (MoveOnDragHandler) should pre-filter selected elements to remove dependents. The actual individual policy (e.g. MoveNodeHandler, MoveConnectionLabelHandler) should probably still be responsible for the final decision, i.e. whether the element needs to be moved at all or if it should be ignored.

We may need to pass additional parameters to the Handlers (Similar to GEF 3 Requests?) to handle this case: the handlers need access to the full selection (even if they are expected to work on a single element), and potentially additional (arbitrary) parameters

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.