| Summary: | Compute initial label positions after performing a layout pass. | ||
|---|---|---|---|
| Product: | [Tools] GEF | Reporter: | Matthias Wienand <matthias.wienand> |
| Component: | GEF Zest | Assignee: | gef-inbox <gef-inbox> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | ||
| Version: | 0.2.0 | ||
| Target Milestone: | 4.0.0 (Neon) M6 | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
|
Description
Matthias Wienand
I refactored (un-)scheduling of pre-/post-layout runnables to be done within GraphLayoutBehavior. There are now two types of post-layout runnables: 1) The post-layout runnables that are used to adapt the visualization to the result of a recent layout pass, and 2) post-layout runnables that are used to update the label positions. Consequently, an AbstractLayoutBehavior uses the GraphLayoutBehavior to schedule a "provide layout data" runnable, a "adapt to layout" runnable, and a "update labels" runnable. Updating the label positions is implemented in the AbstractLayoutBehavior and not overwritten by subclasses. In order to be able to update the label positions, I added methods to AbstractLabelPart that can be used to compute the label position (computeLabelPosition()) and to set the stored label position (setStoredLabelPosition(Point)). The code is published on the master branch, therefore, I resolve this ticket as fixed for 4.0.0 M6. |