Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Interactions] Improve multi-selection interactions #40

Open
CamilleLetavernier opened this issue May 22, 2019 · 0 comments
Open

[Interactions] Improve multi-selection interactions #40

CamilleLetavernier opened this issue May 22, 2019 · 0 comments
Labels
bug Something isn't working

Comments

@CamilleLetavernier
Copy link
Collaborator

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

@CamilleLetavernier CamilleLetavernier added the bug Something isn't working label May 22, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant