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