The primary purpose of the diagrams rendered by LemonTree is the visualization of diagram changes. As LemonTree renders the diagrams completely on its own, only the data stored in the EA repository can be used. Unfortunately the stored data is not always sufficient for the generation of a precise diagram copy. The goal of LemonTree in this context is to provide semantically correct and readable diagrams, not to be absolutely accurate in the graphical representation.
Regardless, we are thankful for any feedback about possible issues and we will consider them for further improvements.
Depending on the mode of LemonTree the Diagram Viewer visualizes two (in diff mode) or three (in merge mode) diagrams:
(A) Left diagram
...represents the changes from A diagram respective to the Base diagram.
(B )Middle diagram
...represents the changes from B diagram respective to the Base diagram. (For example: The green connector "DisplayInfo" tells us that this connector is new in B)
(Merge Preview) Right diagram (only in merge mode)
...presents the "merge preview" which shows the diagram which will be written by LemonTree according to the changes selected from A/B.
When the changes are overwritten the merge diagram will be re-rendered according to the new decision.
Configuration of the Diagram Viewer
- By Selected Element: Whenever you select an element visible on the diagram, the 3 diagrams will be synchronized and the element will be presented in the middle of the pan.
- By Pan and Zoom: When moving a diagram the other diagrams will follow this movement according pan & zoom.
With the buttons visible in the diagram it is possible to:
- Zoom in/out (as it is via the mouse scrolling)
- Reset the diagram
- Center the selected element
- Synchronize zoom and pan
- Diagram Popout Window Create a
When selecting elements in the diagram LemonTree will
- Show properties in the Property Viewer (if visible)
Select the element in the Tree Browser (if visible)
Only the changed elements (and their grouping elements) are available in the Tree Browser and for displaying properties in the Property Viewer. The diagrams show ALL elements on the diagram for completeness.
In addition LemonTree marks changed elements depending on the kind of change:
- new: elements border color is green
- changed: elements border color is orange
- deleted: element is not rendered. (This is in discussion: maybe we draw that element in red in the future, but then we have the problem if another element has moved to this position)
Fontsizes and Font types are not taken into account.
LemonTree visualizes connectors as close to EA as possible. However, LemonTree cannot visualize all connectors properly as in EA.
Exceptions (and explanations) for LineStyle:
- AutoRoute: corners are lost (the reason is that EA does have an own algorithm and calculates the autorouting every time the diagram is drawn. This algorithm is not accessible and rewriting it wouln't lead to the exact same result)
- OrthogonalRounded: corners are not rounded
- TreeStyleHorizontal: in some cases the lines are not drawn as in EA (doesn't always look great in EA though)
Exceptions for Connector Types
- Extension: triangle is missing
- Instantiation dashed line in LemonTree, full line in EA
- InterruptFlow "lightning" form in EA, straight line in LemonTree
- Sequence Messages: EA can be configured to display a (hierarchical) numbering for sequence messages. However, EA does have its own special algorithm for determining these numbers. This algorithm is not accessible and rewriting it wouln't lead to the exact same result. Furthermore the setting is stored in the registry and it is an installation-specific setting, which is not stored within an EA project file.
- Substitution stereotype <<substitute>> is displayed in EA, but not in LemonTree