| Summary: | Support orthogonal connection routing within FXBendConnectionPolicy | ||
|---|---|---|---|
| Product: | [Tools] GEF | Reporter: | Alexander Nyßen <nyssen> |
| Component: | GEF MVC | Assignee: | Matthias Wienand <matthias.wienand> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | matthias.wienand |
| Version: | 0.2.0 | ||
| Target Milestone: | 4.0.0 (Neon) M6 | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
| Bug Depends on: | 488355, 488356 | ||
| Bug Blocks: | 488360 | ||
|
Description
Alexander Nyßen
I pushed the following changes to origin/master: - Determine if a Connection is point-based or segment-based depending on its IRouter, i.e. a Connection that uses an OrthogonalRouter is considered to be segment-based, all other Connections are considered to be point-based. - Enable multiple point selection & manipulation. - Fix overlay removal for multiple points. - Constrain movement of orthogonal segments in their respective direction. - Make control points explicit upon interaction and normalize them before commit. - Open Connection API by changing the visibility of many IAnchor- & AnchorKey-related methods to public. - Allow registering an IComputationStrategy per AnchorKey, so that one IAnchor can use different computation strategies for its anchoreds (so that the computation strategy can be exchanged for a Connection without changing it for other Connections). - Generate selection handles for segment based connections: 1) mid-segment handles for moving a segment; 2) quarter-segment handles for creating a new segment/splitting a segment. - Update feedback and handles during interaction so that it stays in sync with the Connection. Remove code that re-assigns segment indices to the existing handle parts. - Add method to test if an anchor was inserted by a router (IRouter#isImplicitAnchor()) so that explicit anchors (set by the user) can be differentiated from implicit anchors (set by the router). - Normalize connection when translating its anchorages (FXNormalizeOnDragPolicy). - Ensure FXBendOperation is only changing explicit anchors. - Add tests for the FXBendConnectionPolicy. Therefore, orthogonal Connections can now be manipulated by the FXBendConnectionPolicy. However, there seems to be an issue with vertical segments that I still have to track down (they get disconnected sometimes). Moreover, no selection handles should be visible for small segments, because otherwise, the handles are placed above each other. I will resolve this ticket when these issues have been resolved. I fixed errors within the normalization (infinite recursion) and within the segment overlay detection (unconnected end points/strange behavior). Moreover, I prevented the generation of creation handles for small segments. The code is published on the master branch, therefore, I resolve this ticket as fixed for 4.0.0 M6. |