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

Bug 450495

Summary: Ensure that all transactions resulting from an interaction are executed as an atomic operation.
Product: [Tools] GEF Reporter: Alexander Nyßen <nyssen>
Component: GEF MVCAssignee: Alexander Nyßen <nyssen>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: unspecified   
Target Milestone: 3.10.0 (Mars) M3   
Hardware: All   
OS: All   
Whiteboard:

Description Alexander Nyßen CLA 2014-11-07 07:05:52 EST
We need to ensure that the transactional operations resulting from a single interaction are committed as an atomic operation, so that they can be undone in one single step.

Currently this is not the case. When dragging the F-shape within the MVC.FX.UI example, the related "dot"-shape is moved with it. This is achieved by a second "relocate-on-drag" policy, which takes care of the linked "dot"-shape. To undo the change, two operations have to be undone (as both policies commit their changes individually). 

In general, we need to ensure that the transactional operations resulting from an interaction are all committed in a single composite operation.
Comment 1 Alexander Nyßen CLA 2014-11-07 10:12:44 EST
Changed that tools can now take responsibility of committing operations. Refactored click/drag and key type tools to combine the transactions of all related policies and to commit them. Refactored the concrete policies to return operations instead of executing them themselves. 

Pushed changes to origin/master. Resolving as fixed in 3.10.0.M3.