Community
Participate
Working Groups
If you move a node into the path of an edge that has the avoid-obstructions flag set, the bendpoints of that edge are not automatically updated.
This problem will be fixed when we migrate to the GEF 3.1 avoid obstructions router instead of own implementation.
Changing component to "Runtime Diagram"
Created attachment 35574 [details] Patch with avoid obstructions... Modified original patch from Tom to accommodate Rectilinear routing. There's still an issue with this implementation in that it won't work inside any container. It only works at a root level. It would need some work to accommodate containers at any level.
Not containable in M5. Moving to M6.
Removed target milestone. This could depend on 141762 which requires the obstruction detection to be more efficient assuming we don't migrate to the GEF avoid obstructions algorithm.
*** Bug 145467 has been marked as a duplicate of this bug. ***
Moving to the next release, GMF 2.1.
Created attachment 106869 [details] Avoid obstructions patch Incorporating use of GEF’s ShortestPathConnectionRouter into GMF’s ObliqueRouter in order to enable instant re-routing when an obstacle is placed on or removed from a connection which has Avoid Obstacles property set. The rules for routing: If the connection is completely within one container (doesn’t matter if the container is nested), then GEF’s router is used, meaning that the connection will be appropriately re-routed in case when an obstacle is being placed on the way. If the connection spans between two containers, then this method returns null and the old GMF algorithm for avoiding obstructions is used (meaning that re-routing will not happen right away when an object is placed on the connection). Self connections and connections whose source and target intersect are dealt separately and avoid obstructions is irrelevant (just like when non-GEF avoid obstructions router is used). Known issue: if an obstacle contains a connection start or end point, that obstacle is ignored, meaning that the connection can be routed through it.
I'll take a look at Lidija's patch in a near future and provide feedback.
Created attachment 112238 [details] Avoid obstructions patch
Hi Lidija, We need to create a GEF Bugzilla and attach the ShortestPathConnectionRouter contribution there. Once the GEF fix is in we can do the GMF part. Comments on ShortestPathConnectionRouter: 1) new public methods need JavaDoc, 2) getConsiderGivenBendpoints() should be isConsiderGivenBendpoints() or even better shouldConsiderGivenBendpoints(); 3) getIgnoreInvalidate() should be isIgnoreInvalidate() or even better shouldIgnoreInvalidate(); 4) getIsDirty() should be just isDirty();
Created attachment 115973 [details] Patch without GEF part Attached the patch that excludes ShortestPathConnectionRouter. This class (including changes as a result of the comments) is separetd into another patch attached to the newly created GEF bug [251896].
Created attachment 116116 [details] Patch without GEF part Just a small change to the previous patch to pass null constraint to ShortestPathConnectionRouter.setConstraint
Anthony and Alex B to review.
I've sent my comments directly to Lidija via email. Nothing major though.
Created attachment 118200 [details] Patch Latest patch - uses PrecisionPoint and adds cleaning up in ConnectionEditPart
Quickly looked through the patch... looks good to me... I'll apply the patch and test it later as well.
Committed to HEAD
[target cleanup] 2.2 M4 was the original target milestone for this bug
[GMF Restructure] Bug 319140 : product GMF and component Runtime was the original product and component for this bug