Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 437095

Summary: Move only the edge closest segment when moving one of its extremity
Product: [Modeling] Sirius Reporter: Laurent Redor <laurent.redor>
Component: DiagramAssignee: Steve Monnier <steve.monnier>
Status: CLOSED FIXED QA Contact:
Severity: enhancement    
Priority: P3 CC: florian.barbin, maxime.porhel, steve.monnier
Version: 1.0.0Keywords: triaged
Target Milestone: 2.0.0   
Hardware: All   
OS: All   
Whiteboard:
Bug Depends on: 444057    
Bug Blocks:    
Attachments:
Description Flags
Current behavior - Original state
none
Current behavior - After move
none
Test case Edge Feedback bug
none
Edge jump problem
none
Test case Edge Feedback bug
none
BendpointsStability_Manhattan none

Description Laurent Redor CLA 2014-06-11 03:28:30 EDT
This evolution is an ergonomics feature. The main goal is to keep, as much as possible, the edges appearance when one of its extremity is moved. A move of an extremity should move only the closest segment of the edge.

Currently, when moving an edge extremity, all its bendpoints are moved. This is annoying for the end-user, because this can potentially break his manual layout done before. These bendpoints are recomputed according to :
* the source and the target of the edge
* two vectors from source and from target
* a ponderation for each bendpoints.
Comment 1 Laurent Redor CLA 2014-06-11 03:29:16 EDT
Created attachment 244127 [details]
Current behavior - Original state
Comment 2 Laurent Redor CLA 2014-06-11 03:29:47 EDT
Created attachment 244128 [details]
Current behavior - After move
Comment 3 Laurent Redor CLA 2014-08-14 03:01:19 EDT
A spec is available for review since a long time but has not been pushed on master. This is now done: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=56f34d9448ab54cfedc9fa31ead941f78bc3c220
Comment 5 Florian Barbin CLA 2014-09-05 03:49:18 EDT
Created attachment 246761 [details]
Test case Edge Feedback bug
Comment 6 Florian Barbin CLA 2014-09-05 03:49:50 EDT
Created attachment 246762 [details]
Edge jump problem
Comment 7 Florian Barbin CLA 2014-09-05 03:49:56 EDT
This commit http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=a5a939dfbe69c07ac1b2fc5b6bb5422b9b30adbf causes a regression on edge feedback. 

* Import and open the use case unique diagram.
* Try to reconnect the "edge2" target from "border2" to "border8" center. 
** The feedback cross the "edge3" and let a "jump" appears. (see badFeedback.png)
Comment 8 Florian Barbin CLA 2014-09-05 03:50:58 EDT
The attached use case needs org.eclipse.sirius.tests.sample.migration plugin.
Comment 9 Florian Barbin CLA 2014-09-08 10:52:58 EDT
Created attachment 246835 [details]
Test case Edge Feedback bug
Comment 10 Steve Monnier CLA 2014-09-11 11:52:09 EDT
The issue of feedback on reconnection has been fixed. It was using the new calculation (to only move the closest segment) but the command was not, hence the "wrong" feedback compare to the result. As the reconnection is out of scope, the feedback on reconnection does not use the new calculation anymore.
Comment 11 Florian Barbin CLA 2014-09-18 09:52:05 EDT
We still have an issue: https://bugs.eclipse.org/bugs/show_bug.cgi?id=444057
Comment 12 Maxime Porhel CLA 2014-09-22 04:02:24 EDT
Created attachment 247266 [details]
BendpointsStability_Manhattan
Comment 13 Steve Monnier CLA 2014-10-16 09:27:39 EDT
https://bugs.eclipse.org/bugs/show_bug.cgi?id=444057 has been fixed
Comment 14 Laurent Redor CLA 2014-10-23 12:18:16 EDT
A minor regression has been detected. A new bug as been created for that (bug 445179).
Comment 15 Pierre-Charles David CLA 2014-10-27 06:52:48 EDT
Available in Sirius 2.0.0.