Bug 521449 - Wrong border node GMF coordinates after "Arrange All" action and conflict with label
Summary: Wrong border node GMF coordinates after "Arrange All" action and conflict wit...
Status: NEW
Alias: None
Product: Sirius
Classification: Modeling
Component: Diagram (show other bugs)
Version: 5.0.0   Edit
Hardware: PC All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2017-08-28 03:38 EDT by Florian Barbin CLA
Modified: 2017-09-05 03:38 EDT (History)
1 user (show)

See Also:


Attachments
Use case to reproduce this issue (79.83 KB, application/zip)
2017-08-28 03:38 EDT, Florian Barbin CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Florian Barbin CLA 2017-08-28 03:38:33 EDT
Created attachment 269993 [details]
Use case to reproduce this issue

Steps to reproduce:
* Import the attached project
* Open the UseCase1 diagram (make sure there is no Snap activated)
* Perform an Arrange All
* Check the C52 and C53 coordinates with the SiriusDebugView.
* KO -> they have the same GMF coordinates

Analysis:

During an arrange all, the ChangeBoundsRequest move delta is constructed with absolute coordinates. The org.eclipse.sirius.diagram.ui.graphical.edit.policies.SpecificBorderItemSelectionEditPolicy.getMoveCommand(ChangeBoundsRequest) compute the new GMF coordinates by applying the delta on the current border node figure absolute bounds. But if one or several parents moved during the arrange all, the delta will be applied in the same way without considering that parent figure bounds will be different once the arrange all is over.

We should compute the new border node GMF coordinates by using the parent GMF bounds and not the parents figure bounds that could have been modified.
Comment 1 Florian Barbin CLA 2017-08-28 04:12:20 EDT
Edit:
The problem seems to come from the label of p5 which is not considered by the DBorderItemLocator
Comment 2 Laurent Fasani CLA 2017-08-28 10:37:24 EDT
HOMOLOGATION
For homologation, you will have to import org.eclipse.sirius.ui.debug plug-in and deploy it in your runtime. (for information you can get it from repo http://git.eclipse.org/gitroot/sirius/org.eclipse.sirius.git)