From 31e8cdb1b0831ac18323a849dae123b3d979309a Mon Sep 17 00:00:00 2001 From: Simon Barner <barner@fortiss.org> Date: Wed, 17 May 2017 15:08:55 +0000 Subject: [PATCH] - Tweak some parameters (port height, ...) refs 2898 --- .../ui/layout/auto/KielerAutoLayouter.java | 45 ++++++++++++++----- 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/layout/auto/KielerAutoLayouter.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/layout/auto/KielerAutoLayouter.java index 72205d4a6..669a9a3ae 100644 --- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/layout/auto/KielerAutoLayouter.java +++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/layout/auto/KielerAutoLayouter.java @@ -76,7 +76,7 @@ import de.cau.cs.kieler.klay.layered.LayeredLayoutProvider; * @author offtermatt, barner * @author $Author$ * @version $Rev$ - * @ConQAT.Rating YELLOW Hash: 16F143B594364B7086DDC34B46E25EA6 + * @ConQAT.Rating YELLOW Hash: 1A25EB9AE5984C3C687BEF6B4566F949 */ public class KielerAutoLayouter implements IAutoLayouter { @@ -84,7 +84,7 @@ public class KielerAutoLayouter implements IAutoLayouter { private static final int NODE_MIN_WIDTH = 150; /** Height per port (used to derive minimum height of layouted element. */ - private static final int PORT_HEIGHT = 15; + private static final int PORT_HEIGHT = 20; /** Mapping from {@link IHierarchicElement}s to {@link KNode}s. */ private EMap<IHierarchicElement, KNode> modelElementsToKNodes; @@ -215,7 +215,7 @@ public class KielerAutoLayouter implements IAutoLayouter { break; } LayoutDataUtils.setStickyConnectorLayoutData((ILayoutedModelElement)port, orientation, - (int)portLayout.getYpos()); + (int)(portLayout.getYpos())); } } @@ -286,23 +286,19 @@ public class KielerAutoLayouter implements IAutoLayouter { Dimension dimension = getNodeSize((ILayoutedModelElement)curElement); int portNmbr = Math.max(inputPorts.size(), outputPorts.size()); - curLayout.setHeight(Math.max(portNmbr * PORT_HEIGHT, dimension.getHeight())); + curLayout.setHeight(Math.max((1 + 2 * portNmbr) * PORT_HEIGHT, dimension.getHeight())); curLayout.setWidth(Math.max(NODE_MIN_WIDTH, dimension.getWidth())); curKNode.setParent(parentNode); modelElementsToKNodes.put(curElement, curKNode); for(IConnector curPort : outputPorts) { - KPort k = KimlUtil.createInitializedPort(); - k.setNode(curKNode); - outboundConnectorsToKPorts.put(curPort, k); + KPort k = createKPortFromIConnector(curPort, curKNode, outboundConnectorsToKPorts); if(genericPorts.contains(curPort)) { undirectedConnectorsToKPorts.put(curPort, k); } } for(IConnector curPort : inputPorts) { - KPort k = KimlUtil.createInitializedPort(); - k.setNode(curKNode); - inboundConnectorsToKPorts.put(curPort, k); + createKPortFromIConnector(curPort, curKNode, inboundConnectorsToKPorts); } } @@ -313,8 +309,8 @@ public class KielerAutoLayouter implements IAutoLayouter { for(IConnector curPort : hierarchicElement.getConnectors()) { KNode virtual = KimlUtil.createInitializedNode(); KShapeLayout virtualLayout = virtual.getData(KShapeLayout.class); - virtualLayout.setHeight(50); - virtualLayout.setWidth(50); + virtualLayout.setHeight(PORT_HEIGHT); + virtualLayout.setWidth(2 * PORT_HEIGHT); virtual.setParent(parentNode); KPort k = KimlUtil.createInitializedPort(); @@ -351,4 +347,29 @@ public class KielerAutoLayouter implements IAutoLayouter { } return parentNode; } + + /** + * Converts a given {@link IConnection} into a {@link KPort}, and registers it with the given + * {@link KNode} (representing the {@link IHierarchicElement} containing the {@link IConnector} + * ) and a {@link IConnector}-to- {@link KPort} map. + * + * @param connector + * {@link IConnector} to be converted to {@link KPort} + * @param knode + * {@link KNode} that will contain the newly created {@link KPort} + * @param connectorsToKPorts + * Map between {@link IConnector}s and {@link KPort}s. + * + * @return {@link KNode} represeting the given {@link IConnector}. + */ + private KPort createKPortFromIConnector(IConnector connector, KNode knode, + EMap<IConnector, KPort> connectorsToKPorts) { + KPort k = KimlUtil.createInitializedPort(); + k.setNode(knode); + KShapeLayout portLayout = k.getData(KShapeLayout.class); + portLayout.setHeight(PORT_HEIGHT); + + connectorsToKPorts.put(connector, k); + return k; + } } -- GitLab