Skip to content
Snippets Groups Projects
Commit dd975554 authored by Ulrich Schöpp's avatar Ulrich Schöpp Committed by Ulrich Schöpp
Browse files

Fix auto-layout of hierarchical elements


When applying auto-layout inside a hierarchical component, the layout
would also affect the position of the component's port at the outer
level.

Example: File > Open AF3 Example > Load ACC Example, open component
"AdaptiveCruiseControl" and perform automatic layout inside it. Open the
containing component "ACC System". The input ports of
"AdaptiveCruiseControl" will have shifted.

Signed-off-by: default avatarUlrich Schöpp <schoepp@fortiss.org>
Issue-Ref: 4184
parent 7125ba21
No related branches found
No related tags found
1 merge request!166Polish diagram appearance
Pipeline #32279 failed
......@@ -2,4 +2,4 @@ AutoLayoutMenu.java 67dc2d04a6f39ec72ea640b745997baa8ff63a49 GREEN
DiagramTapeMeasure.java d607529c055a9f0f8857c4f7923e244a7e2199cd GREEN
IAutoLayouter.java de1b11d9e202c7e23352ad85684dbf8a3fd17c7d GREEN
IAutoLayouterTapeMeasure.java 9781aedaab3a85370542aacee9c49475ad7586c5 GREEN
KielerAutoLayouter.java 5167afee2f65bb298873fe8c8db51906d3b02098 GREEN
KielerAutoLayouter.java be19c05c98ff036a6d9552523b7f490a3029bbfc YELLOW
......@@ -353,12 +353,15 @@ public class KielerAutoLayouter implements IAutoLayouter {
globalOutboundConnectorsToElkPorts.put(connector, elkPort);
} else {
globalInboundConnectorsToElkPorts.put(connector, elkPort);
outboundConnectorsToElkPorts.put(connector, elkPort);
}
}
EMap<IConnector, ElkPort> sourceConnectors = new BasicEMap<>();
sourceConnectors.putAll(outboundConnectorsToElkPorts);
sourceConnectors.putAll(globalInboundConnectorsToElkPorts);
// Create edges
for(Entry<IConnector, ElkPort> entry : outboundConnectorsToElkPorts) {
for(Entry<IConnector, ElkPort> entry : sourceConnectors) {
for(IConnection connection : entry.getKey().getOutgoing()) {
ElkPort kSourcePort = entry.getValue();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment