Bläddra i källkod

changed default graphs

filtered some attributes
jascha Bohne 8 år sedan
förälder
incheckning
4d17e9ccd9

+ 8 - 17
scopviz/src/main/java/de/tu_darmstadt/informatik/tk/scopviz/debug/Debug.java

@@ -29,36 +29,27 @@ public final class Debug {
 	/**
 	 * Returns the Location of the File for the testing Graph.
 	 * 
-	 * @return a sample graph for the Program
+	 * @return a sample underlay graph for the Program
 	 */
-	public static String getDefaultGraph() {
+	public static String getDefaultUnderlayGraph() {
 		String fileName = null;
-		fileName = "/underlay_example.graphml";
+		fileName = "/underlay1.graphml";
 		return fileName;
 	}
 
 	/**
 	 * Returns the Location of the File for the testing Graph.
 	 * 
-	 * @return a sample graph for the Program
+	 * @return a sample operator graph for the Program
 	 */
-	public static String getDefaultGraph2() {
+	public static String getDefaultOperatorGraph() {
 		String fileName = null;
-		fileName = "/operator_example.graphml";
-		return fileName;
-	}
-
-	/**
-	 * Returns the Location of the File for the testing SymbolGraph.
-	 * 
-	 * @return a sample symbol graph for the Program
-	 */
-	public static String getDefaultSymbolGraph() {
-		String fileName = null;
-		fileName = "/ExampleSymbol.graphml";
+		
+		fileName = "/operatorgraph1.graphml";
 		return fileName;
 	}
 
+	
 	/**
 	 * Short form for System.out.println().
 	 * 

+ 2 - 2
scopviz/src/main/java/de/tu_darmstadt/informatik/tk/scopviz/main/MainApp.java

@@ -67,9 +67,9 @@ public class MainApp extends Application {
 		initRootLayout();
 		if (Debug.DEBUG_ENABLED) {
 			GraphDisplayManager.setCurrentLayer(Layer.OPERATOR);
-			GraphDisplayManager.addGraph(Debug.getDefaultGraph2(), true);
+			GraphDisplayManager.addGraph(Debug.getDefaultOperatorGraph(), true);
 			GraphDisplayManager.setCurrentLayer(Layer.UNDERLAY);
-			GraphDisplayManager.addGraph(Debug.getDefaultSymbolGraph(), true);
+			GraphDisplayManager.addGraph(Debug.getDefaultUnderlayGraph(), true);
 		}
 	}
 

+ 20 - 3
scopviz/src/main/java/de/tu_darmstadt/informatik/tk/scopviz/ui/PropertiesManager.java

@@ -10,6 +10,7 @@ import org.graphstream.graph.Node;
 
 import de.tu_darmstadt.informatik.tk.scopviz.debug.Debug;
 import de.tu_darmstadt.informatik.tk.scopviz.main.GraphManager;
+import de.tu_darmstadt.informatik.tk.scopviz.main.Layer;
 import de.tu_darmstadt.informatik.tk.scopviz.main.Main;
 import javafx.application.Platform;
 import javafx.beans.binding.Bindings;
@@ -219,7 +220,6 @@ public final class PropertiesManager {
 		//fix for concurrentModification exception
 		String[] temp = new String[0];
 		temp = selected.getAttributeKeySet().toArray(temp);
-		Debug.out(temp.length);
 		for (int i = 0; i<temp.length; i++) {
 			String key = temp[i];
 			switch (key) {
@@ -231,8 +231,6 @@ public final class PropertiesManager {
 					// replace UI Label with ID"
 					key = "ID";
 					newData.add(0, new KeyValuePair(key, String.valueOf(actualAttribute), actualAttribute.getClass()));
-				} else if (selected instanceof Edge) {
-
 				}
 				break;
 			case "layout.frozen":
@@ -245,6 +243,25 @@ public final class PropertiesManager {
 				break;
 			case "ui.map.selected":
 				break;
+			case "weight":
+				if(selected instanceof Edge && Layer.UNDERLAY == Main.getInstance().getGraphManager().getGraph().getAttribute("layer")){
+					newData.add(new KeyValuePair(key, selected.getAttribute(key).toString(), double.class));
+					break;
+				}
+				break;				
+			case "process-need":
+				if(selected instanceof Node && Layer.OPERATOR == Main.getInstance().getGraphManager().getGraph().getAttribute("layer")){
+					newData.add(new KeyValuePair(key, selected.getAttribute(key).toString(), double.class));
+					break;
+				}
+				break;
+			case "process-max":
+			case "typeOfDevice":
+				if(selected instanceof Node && Layer.UNDERLAY == Main.getInstance().getGraphManager().getGraph().getAttribute("layer")){
+					newData.add(new KeyValuePair(key, selected.getAttribute(key).toString(), double.class));
+					break;
+				}
+				
 			case "xyz":
 				double[] pos = Toolkit.nodePosition((Node) selected);
 				newData.add(new KeyValuePair("x", String.valueOf(pos[0]), double.class));

+ 0 - 59
scopviz/src/main/resources/Example.graphml

@@ -1,59 +0,0 @@
-
-<?xml version="1.0" encoding="UTF-8"?>
-<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
-	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
-	   http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
-   	<key id="attr0000" for="node" attr.name="ui.label" attr.type="string"/>
-	<key id="attr0001" for="node" attr.name="Eigenschaft" attr.type="string"/>
-	<key id="attr0002" for="node" attr.name="y" attr.type="double"/>
-	<key id="attr0003" for="node" attr.name="x" attr.type="double"/>
-	<key id="attr0004" for="node" attr.name="ui.class"  attr.type="string" />
-	<key id="attr0005" for="node" attr.name="process-max"  attr.type="double" />
-	<graph id="Example" edgedefault="undirected">
-		<node id="A">
-			<data key="attr0000">A</data>
-			<data key="attr0001">test</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">100</data>
-			<data key="attr0004">standard</data>
-		</node>
-		<node id="B">
-			<data key="attr0000">B</data>
-			<data key="attr0002">200</data>
-			<data key="attr0003">100</data>
-			<data key="attr0004">procEn</data>
-			<data key="attr0005">40</data>
-		</node>
-		<node id="C">
-			<data key="attr0000">C</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">procEn</data>
-			<data key="attr0005">30</data>
-		</node>
-		<node id="D">
-			<data key="attr0000">D</data>
-			<data key="attr0002">200</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">procEn</data>
-			<data key="attr0005">100</data>
-		</node>
-		<node id="E">
-			<data key="attr0000">E</data>
-			<data key="attr0002">185</data>
-			<data key="attr0003">135</data>
-			<data key="attr0004">standard</data>
-		</node>
-		<edge id="AB" source="A" target="B" directed="false">
-			<data key="attr0001">test</data>
-		</edge>
-		<edge id="BC" source="B" target="C" directed="false">
-			<data key="attr0001">test</data>
-		</edge>
-		<edge id="CD" source="C" target="D" directed="false">
-		</edge>
-		<edge id="DB" source="D" target="B" directed="false">
-		</edge>
-	</graph>
-</graphml>

+ 0 - 51
scopviz/src/main/resources/Example2.graphml

@@ -1,51 +0,0 @@
-
-<?xml version="1.0" encoding="UTF-8"?>
-<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
-	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
-	   http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
-   	<key id="attr0000" for="node" attr.name="ui.label" attr.type="string"/>
-	<key id="attr0001" for="node" attr.name="Eigenschaft" attr.type="string"/>
-	<key id="attr0002" for="node" attr.name="y" attr.type="double"/>
-	<key id="attr0003" for="node" attr.name="x" attr.type="double"/>
-	<key id="attr0004" for="node" attr.name="ui.class"  attr.type="string" />
-	<key id="attr0005" for="node" attr.name="process-need"  attr.type="double" />
-	<graph id="Example" edgedefault="undirected">
-		<node id="A">
-			<data key="attr0000">A</data>
-			<data key="attr0001">test</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">100</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">20</data>
-		</node>
-		<node id="B">
-			<data key="attr0000">B</data>
-			<data key="attr0002">200</data>
-			<data key="attr0003">100</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">25</data>
-		</node>
-		<node id="C">
-			<data key="attr0000">C</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">23</data>
-		</node>
-		<node id="D">
-			<data key="attr0000">D</data>
-			<data key="attr0002">200</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">22.34234</data>
-		</node>
-		<node id="E">
-			<data key="attr0000">E</data>
-			<data key="attr0002">185</data>
-			<data key="attr0003">135</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">50</data>
-		</node>
-	</graph>
-</graphml>

+ 0 - 199
scopviz/src/main/resources/ExampleSymbol.graphml

@@ -1,199 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
-	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
-	   http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
-   	<key id="attr0000" for="node" attr.name="ui.label" attr.type="string"/>
-	<key id="attr0001" for="node" attr.name="Eigenschaft" attr.type="string"/>
-	<key id="attr0002" for="node" attr.name="y" attr.type="double"/>
-	<key id="attr0003" for="node" attr.name="x" attr.type="double"/>
-	<key id="attr0004" for="node" attr.name="ui.class"  attr.type="string" />
-	<key id="attr0005" for="node" attr.name="lat"  attr.type="double" />
-	<key id="attr0006" for="node" attr.name="long"  attr.type="double" />
-	<key id="attr0007" for="node" attr.name="device.type" attr.type="string"/>
-	
-	<key id="attr0008" for="edge" attr.name="weight" attr.type="int"/>
-	
-	<graph id="Example" edgedefault="undirected">
-		<node id="A">
-			<data key="attr0000">A</data>
-			<data key="attr0001">test</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">100</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">49.8705556</data>
-			<data key="attr0006">8.6494444</data>
-			<data key="attr0007">router</data>
-		</node>
-		<node id="B">
-			<data key="attr0000">B</data>
-			<data key="attr0001">test</data>
-			<data key="attr0002">200</data>
-			<data key="attr0003">100</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">50</data>
-			<data key="attr0006">9</data>
-			<data key="attr0007">desktop</data>
-		</node>
-		<node id="C">
-			<data key="attr0000">C</data>
-			<data key="attr0001">test</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">50.1</data>
-			<data key="attr0006">8.5</data>
-			<data key="attr0007">3G_lte_basestation</data>
-		</node>
-		<node id="D">
-			<data key="attr0000">D</data>
-			<data key="attr0001">test</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">49.89</data>
-			<data key="attr0006">8.1</data>
-			<data key="attr0007">car</data>
-		</node>
-		<node id="E">
-			<data key="attr0000">E</data>
-			<data key="attr0001">test</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">49.723</data>
-			<data key="attr0006">8.6</data>
-			<data key="attr0007">cloud_computing_server</data>
-		</node>
-		<node id="F">
-			<data key="attr0000">F</data>
-			<data key="attr0001">test</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">49.87478</data>
-			<data key="attr0006">8.3</data>
-			<data key="attr0007">data_storage</data>
-		</node>
-		<node id="G">
-			<data key="attr0000">G</data>
-			<data key="attr0001">test</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">49.689</data>
-			<data key="attr0006">8.09</data>
-			<data key="attr0007">laptop</data>
-		</node>
-		<node id="H">
-			<data key="attr0000">H</data>
-			<data key="attr0001">test</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">49.792</data>
-			<data key="attr0006">8.9</data>
-			<data key="attr0007">network_middlebox</data>
-		</node>
-		<node id="I">
-			<data key="attr0000">I</data>
-			<data key="attr0001">test</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">49.7852</data>
-			<data key="attr0006">8.05</data>
-			<data key="attr0007">raspberry_pi</data>
-		</node>
-		<node id="J">
-			<data key="attr0000">J</data>
-			<data key="attr0001">test</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">49.8</data>
-			<data key="attr0006">8.3843</data>
-			<data key="attr0007">sensor</data>
-		</node>
-		<node id="K">
-			<data key="attr0000">K</data>
-			<data key="attr0001">test</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">49.6584</data>
-			<data key="attr0006">8.3172</data>
-			<data key="attr0007">smart_home</data>
-		</node>
-		<node id="L">
-			<data key="attr0000">L</data>
-			<data key="attr0001">test</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">49.6984</data>
-			<data key="attr0006">8.2872</data>
-			<data key="attr0007">smartband</data>
-		</node>
-		<node id="M">
-			<data key="attr0000">M</data>
-			<data key="attr0001">test</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">49.4887</data>
-			<data key="attr0006">8.39</data>
-			<data key="attr0007">smartphone</data>
-		</node>
-		<node id="N">
-			<data key="attr0000">N</data>
-			<data key="attr0001">test</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">49.578</data>
-			<data key="attr0006">8.62</data>
-			<data key="attr0007">smartwatch</data>
-		</node>
-		<node id="O">
-			<data key="attr0000">O</data>
-			<data key="attr0001">test</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">49.3953</data>
-			<data key="attr0006">8.606</data>
-			<data key="attr0007">switch</data>
-		</node>
-		<node id="P">
-			<data key="attr0000">P</data>
-			<data key="attr0001">test</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">49.652321</data>
-			<data key="attr0006">8.49995</data>
-			<data key="attr0007">tablet</data>
-		</node>
-		<node id="Q">
-			<data key="attr0000">Q</data>
-			<data key="attr0001">test</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0005">49.702</data>
-			<data key="attr0006">8.92</data>
-			<data key="attr0007">unknown</data>
-		</node>
-
-		
-		<edge id="AB" source="A" target="B" directed="false">
-			<data key="attr0001">test</data>
-			<data key="attr0008">100</data>
-		</edge>
-		<edge id="BC" source="B" target="C" directed="false">
-			<data key="attr0001">test</data>
-			<data key="attr0008">5</data>
-		</edge>
-	</graph>
-</graphml>

+ 0 - 62
scopviz/src/main/resources/operator_example.graphml

@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
-	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
-	   http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
-   	<key id="attr0000" for="node" attr.name="ui.label" attr.type="string"/>
-	<key id="attr0001" for="edge" attr.name="weight" attr.type="string"/>
-	<key id="attr0002" for="node" attr.name="y" attr.type="double"/>
-	<key id="attr0003" for="node" attr.name="x" attr.type="double"/>
-	<key id="attr0004" for="node" attr.name="typeofNode"  attr.type="string"/>
-	<key id="attr0005" for="node" attr.name="process-need"  attr.type="double"/>	
-
-	<graph id="OperatorExample" edgedefault="undirected">
-		<node id="A">
-			<data key="attr0000">A</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">100</data>
-			<data key="attr0004">source</data>
-			<data key="attr0005">20</data>
-		</node>
-		<node id="B">
-			<data key="attr0000">B</data>
-			<data key="attr0002">200</data>
-			<data key="attr0003">100</data>
-			<data key="attr0004">operator</data>
-			<data key="attr0005">25</data>
-		</node>
-		<node id="C">
-			<data key="attr0000">C</data>
-			<data key="attr0002">185</data>
-			<data key="attr0003">135</data>
-			<data key="attr0004">sink</data>
-			<data key="attr0005">50</data>
-		</node>
-		<node id="D">
-			<data key="attr0000">D</data>
-			<data key="attr0002">200</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">sink</data>
-			<data key="attr0005">22.34234</data>
-		</node>
-		<node id="E">
-			<data key="attr0000">E</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">operator</data>
-			<data key="attr0005">23</data>
-		</node>
-		<edge id="AB" source="A" target="B" directed="true">
-			<data key="attr0001">33</data>
-		</edge>
-		<edge id="BC" source="B" target="C" directed="true">
-			<data key="attr0001">50</data>
-		</edge>
-		<edge id="CD" source="C" target="D" directed="true">
-			<data key="attr0001">18</data>
-		</edge>
-		<edge id="CE" source="C" target="E" directed="true">
-			<data key="attr0001">6</data>
-		</edge>
-	</graph>
-</graphml>

+ 151 - 0
scopviz/src/main/resources/operatorgraph1.graphml

@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
+  <!--Created by yEd 3.16.2.1-->
+  <key attr.name="priority" attr.type="double" for="graph" id="d0"/>
+  <key attr.name="description" attr.type="string" for="graph" id="d1"/>
+  <key for="port" id="d2" yfiles.type="portgraphics"/>
+  <key for="port" id="d3" yfiles.type="portgeometry"/>
+  <key for="port" id="d4" yfiles.type="portuserdata"/>
+  <key attr.name="x" attr.type="double" for="node" id="d5"/>
+  <key attr.name="y" attr.type="double" for="node" id="d6"/>
+  <key attr.name="ui.label" attr.type="string" for="node" id="d7"/>
+  <key attr.name="ui.class" attr.type="string" for="node" id="d8"/>
+  <key attr.name="process-need" attr.type="double" for="node" id="d9"/>
+  <key attr.name="typeofNode" attr.type="string" for="node" id="d10"/>
+  <key attr.name="identifier" attr.type="string" for="node" id="d11"/>
+  <key attr.name="url" attr.type="string" for="node" id="d12"/>
+  <key attr.name="description" attr.type="string" for="node" id="d13"/>
+  <key for="node" id="d14" yfiles.type="nodegraphics"/>
+  <key for="graphml" id="d15" yfiles.type="resources"/>
+  <key attr.name="url" attr.type="string" for="edge" id="d16"/>
+  <key attr.name="description" attr.type="string" for="edge" id="d17"/>
+  <key for="edge" id="d18" yfiles.type="edgegraphics"/>
+  <graph edgedefault="directed" id="TESTGRAPH1">
+    <data key="d0">0.8</data>
+    <data key="d1"><![CDATA[Testgraph 1]]></data>
+    <node id="n0">
+      <data key="d7"/>
+      <data key="d8"><![CDATA[source]]></data>
+      <data key="d10"><![CDATA[source]]></data>
+      <data key="d11"><![CDATA[src1]]></data>
+      <data key="d13"><![CDATA[a sensor]]></data>
+      <data key="d14">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="317.0" y="347.0"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="29.3359375" x="0.33203125" y="5.6494140625">SRC<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="octagon"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n1">
+      <data key="d7"/>
+      <data key="d8"><![CDATA[operator]]></data>
+      <data key="d9">20.0</data>
+      <data key="d10"><![CDATA[operator]]></data>
+      <data key="d11"><![CDATA[o1]]></data>
+      <data key="d13"><![CDATA[a filter]]></data>
+      <data key="d14">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="469.0" y="347.0"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="17.34765625" x="6.326171875" y="5.6494140625">o1<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n2">
+      <data key="d7"/>
+      <data key="d8"/>
+      <data key="d9">25.0</data>
+      <data key="d10"><![CDATA[operator]]></data>
+      <data key="d11"><![CDATA[o2]]></data>
+      <data key="d13"><![CDATA[some processing logic]]></data>
+      <data key="d14">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="641.0" y="347.0"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="17.34765625" x="6.326171875" y="5.6494140625">o2<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n3">
+      <data key="d7"/>
+      <data key="d8"><![CDATA[sink]]></data>
+      <data key="d10"><![CDATA[sink]]></data>
+      <data key="d11"><![CDATA[snk2]]></data>
+      <data key="d12"/>
+      <data key="d13"><![CDATA[an actuator]]></data>
+      <data key="d14">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="821.0" y="347.0"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="28.673828125" x="0.6630859375" y="5.6494140625">SNK<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="rectangle"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <edge id="e0" source="n0" target="n1">
+      <data key="d18">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="standard"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e1" source="n1" target="n2">
+      <data key="d18">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="standard"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e2" source="n2" target="n3">
+      <data key="d18">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="standard"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+  </graph>
+  <data key="d15">
+    <y:Resources/>
+  </data>
+</graphml>

+ 686 - 0
scopviz/src/main/resources/underlay1.graphml

@@ -0,0 +1,686 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
+  <!--Created by yEd 3.16.2.1-->
+  <key attr.name="Description" attr.type="string" for="graph" id="d0"/>
+  <key for="port" id="d1" yfiles.type="portgraphics"/>
+  <key for="port" id="d2" yfiles.type="portgeometry"/>
+  <key for="port" id="d3" yfiles.type="portuserdata"/>
+  <key attr.name="process-max" attr.type="double" for="node" id="d4"/>
+  <key attr.name="typeofNode" attr.type="string" for="node" id="d5"/>
+  <key attr.name="typeofDevice" attr.type="string" for="node" id="d6"/>
+  <key attr.name="lat" attr.type="double" for="node" id="d7"/>
+  <key attr.name="long" attr.type="double" for="node" id="d8"/>
+  <key attr.name="identifier" attr.type="string" for="node" id="d9"/>
+  <key attr.name="url" attr.type="string" for="node" id="d10"/>
+  <key attr.name="description" attr.type="string" for="node" id="d11"/>
+  <key for="node" id="d12" yfiles.type="nodegraphics"/>
+  <key for="graphml" id="d13" yfiles.type="resources"/>
+  <key attr.name="weight" attr.type="double" for="edge" id="d14"/>
+  <key attr.name="url" attr.type="string" for="edge" id="d15"/>
+  <key attr.name="description" attr.type="string" for="edge" id="d16"/>
+  <key for="edge" id="d17" yfiles.type="edgegraphics"/>
+  <graph edgedefault="undirected" id="G">
+    <data key="d0"><![CDATA[Testunderlay 1]]></data>
+    <node id="n0">
+      <data key="d4"><![CDATA[5]]></data>
+      <data key="d5"><![CDATA[procEn]]></data>
+      <data key="d6"><![CDATA[switch]]></data>
+      <data key="d7">49.8739</data>
+      <data key="d8">8.6591</data>
+      <data key="d9"/>
+      <data key="d12">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="-203.83852719837705" y="354.44412589211447"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="42.021484375" x="-6.0107421875" y="5.649414062500057">procEn<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n1">
+      <data key="d4">0</data>
+      <data key="d5"><![CDATA[source]]></data>
+      <data key="d6"><![CDATA[sensor]]></data>
+      <data key="d7">49.8854</data>
+      <data key="d8">8.6627</data>
+      <data key="d9"><![CDATA[src2]]></data>
+      <data key="d10"/>
+      <data key="d12">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="-73.63975453306284" y="-31.503916071923754"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="36.009765625" x="-3.0048828125" y="5.6494140625">SRC2<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="octagon"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n2">
+      <data key="d4"><![CDATA[30]]></data>
+      <data key="d5"><![CDATA[procEn]]></data>
+      <data key="d6"><![CDATA[laptop]]></data>
+      <data key="d7">49.8843</data>
+      <data key="d8">8.6541</data>
+      <data key="d9"/>
+      <data key="d12">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="21.960245466937522" y="54.496083928076246"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="42.021484375" x="-6.0107421875" y="5.6494140625">procEn<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n3">
+      <data key="d4"><![CDATA[20]]></data>
+      <data key="d5"><![CDATA[procEn]]></data>
+      <data key="d6"><![CDATA[network_middlebox]]></data>
+      <data key="d7">49.8828</data>
+      <data key="d8">8.6601</data>
+      <data key="d9"/>
+      <data key="d12">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="146.94036820040628" y="54.496083928076246"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="42.021484375" x="-6.0107421875" y="5.6494140625">procEn<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n4">
+      <data key="d4"><![CDATA[50]]></data>
+      <data key="d5"><![CDATA[procEn]]></data>
+      <data key="d6"><![CDATA[data_storage]]></data>
+      <data key="d7">49.8738</data>
+      <data key="d8">8.6549</data>
+      <data key="d9"/>
+      <data key="d12">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="-90.83852719837705" y="236.96867142460997"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="42.021484375" x="-6.0107421875" y="5.6494140625">procEn<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n5">
+      <data key="d4">0</data>
+      <data key="d5"><![CDATA[standard]]></data>
+      <data key="d6"><![CDATA[router]]></data>
+      <data key="d7">49.8769</data>
+      <data key="d8">8.6603</data>
+      <data key="d9"/>
+      <data key="d12">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="191.9006136673429" y="354.44412589211447"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.0" y="13.0">
+            <y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n6">
+      <data key="d4">0</data>
+      <data key="d5"><![CDATA[standard]]></data>
+      <data key="d6"><![CDATA[3G_lte_basestation]]></data>
+      <data key="d7">49.8841</data>
+      <data key="d8">8.6611</data>
+      <data key="d9"/>
+      <data key="d12">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="21.960245466937522" y="-31.503916071923754"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.0" y="13.0">
+            <y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n7">
+      <data key="d4">0</data>
+      <data key="d5"><![CDATA[source]]></data>
+      <data key="d6"><![CDATA[sensor]]></data>
+      <data key="d7">49.8779</data>
+      <data key="d8">8.651</data>
+      <data key="d9"><![CDATA[src1]]></data>
+      <data key="d12">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="-412.1590181322499" y="236.96867142460997"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="29.3359375" x="0.33203125" y="5.6494140625">SRC<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="octagon"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n8">
+      <data key="d4"><![CDATA[35]]></data>
+      <data key="d5"><![CDATA[procEn]]></data>
+      <data key="d6"><![CDATA[car]]></data>
+      <data key="d7">49.877</data>
+      <data key="d8">8.6525</data>
+      <data key="d9"/>
+      <data key="d12">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="-324.01987726653124" y="236.96867142460997"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="42.021484375" x="-6.0107421875" y="5.6494140625">procEn<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n9">
+      <data key="d4">0</data>
+      <data key="d5"/>
+      <data key="d6"><![CDATA[raspberry_pi]]></data>
+      <data key="d7">49.8813</data>
+      <data key="d8">8.662</data>
+      <data key="d9"><![CDATA[snk2]]></data>
+      <data key="d12">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="492.9006136673429" y="213.1686714246107"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="28.673828125" x="0.6630859375" y="5.6494140625">SNK<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="rectangle"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n10">
+      <data key="d4"><![CDATA[28]]></data>
+      <data key="d5"><![CDATA[procEn]]></data>
+      <data key="d6"><![CDATA[desktop]]></data>
+      <data key="d7">49.8752</data>
+      <data key="d8">8.6616</data>
+      <data key="d9"/>
+      <data key="d12">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="62.080736400811475" y="354.44412589211447"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="42.021484375" x="-6.0107421875" y="5.6494140625">procEn<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n11">
+      <data key="d4"><![CDATA[35]]></data>
+      <data key="d5"><![CDATA[procEn]]></data>
+      <data key="d6"><![CDATA[smartphone]]></data>
+      <data key="d7">49.8765</data>
+      <data key="d8">8.6567</data>
+      <data key="d9"/>
+      <data key="d12">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="-203.83852719837705" y="236.96867142460997"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="42.021484375" x="-6.0107421875" y="5.6494140625">procEn<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n12">
+      <data key="d4">0</data>
+      <data key="d5"><![CDATA[standard]]></data>
+      <data key="d6"><![CDATA[router]]></data>
+      <data key="d7">49.8809</data>
+      <data key="d8">8.659049</data>
+      <data key="d9"/>
+      <data key="d12">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="391.8012273346858" y="213.1686714246107"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.0" y="13.0">
+            <y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n13">
+      <data key="d4">0</data>
+      <data key="d5"><![CDATA[standard]]></data>
+      <data key="d6"><![CDATA[router]]></data>
+      <data key="d7">49.8748</data>
+      <data key="d8">8.6587</data>
+      <data key="d9"/>
+      <data key="d12">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="-82.19877266531415" y="354.44412589211447"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.0" y="13.0">
+            <y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n14">
+      <data key="d4"><![CDATA[40]]></data>
+      <data key="d5"><![CDATA[procEn]]></data>
+      <data key="d6"><![CDATA[router]]></data>
+      <data key="d7">49.881</data>
+      <data key="d8">8.6532</data>
+      <data key="d9"/>
+      <data key="d12">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="342.16147280162295" y="54.496083928076246"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="42.021484375" x="-6.0107421875" y="5.6494140625">procEn<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n15">
+      <data key="d4">0</data>
+      <data key="d5"><![CDATA[standard]]></data>
+      <data key="d6"><![CDATA[router]]></data>
+      <data key="d7">49.8812</data>
+      <data key="d8">8.655</data>
+      <data key="d9"/>
+      <data key="d12">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="146.94036820040628" y="224.3373428492214"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.0" y="13.0">
+            <y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <node id="n16">
+      <data key="d4"><![CDATA[90]]></data>
+      <data key="d5"><![CDATA[procEn]]></data>
+      <data key="d6"><![CDATA[cloud_computing_server]]></data>
+      <data key="d7">49.876641</data>
+      <data key="d8">8.6611</data>
+      <data key="d9"/>
+      <data key="d12">
+        <y:ShapeNode>
+          <y:Geometry height="30.0" width="30.0" x="269.37079776754604" y="224.3373428492214"/>
+          <y:Fill color="#FFCC00" transparent="false"/>
+          <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/>
+          <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="42.021484375" x="-6.0107421875" y="5.6494140625">procEn<y:LabelModel>
+              <y:SmartNodeLabelModel distance="4.0"/>
+            </y:LabelModel>
+            <y:ModelParameter>
+              <y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
+            </y:ModelParameter>
+          </y:NodeLabel>
+          <y:Shape type="ellipse"/>
+        </y:ShapeNode>
+      </data>
+    </node>
+    <edge id="e0" source="n7" target="n8">
+      <data key="d14">1.0</data>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e1" source="n1" target="n6">
+      <data key="d14">1.0</data>
+      <data key="d16"/>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e2" source="n6" target="n2">
+      <data key="d14">1.5</data>
+      <data key="d16"/>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e3" source="n2" target="n3">
+      <data key="d14">1.0</data>
+      <data key="d16"/>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e4" source="n8" target="n11">
+      <data key="d14">3.0</data>
+      <data key="d16"/>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e5" source="n11" target="n4">
+      <data key="d14">1.0</data>
+      <data key="d16"/>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e6" source="n2" target="n11">
+      <data key="d14">7.0</data>
+      <data key="d16"/>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
+            <y:Point x="-188.83852719837705" y="69.49608392807625"/>
+          </y:Path>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e7" source="n12" target="n9">
+      <data key="d14">1.0</data>
+      <data key="d16"/>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e8" source="n10" target="n5">
+      <data key="d14">2.0</data>
+      <data key="d16"/>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e9" source="n11" target="n0">
+      <data key="d14">2.0</data>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e10" source="n0" target="n13">
+      <data key="d14">3.0</data>
+      <data key="d16"/>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e11" source="n13" target="n10">
+      <data key="d14">3.5</data>
+      <data key="d16"/>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e12" source="n3" target="n14">
+      <data key="d14">2.5</data>
+      <data key="d16"/>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e13" source="n14" target="n12">
+      <data key="d14">4.0</data>
+      <data key="d16"/>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
+            <y:Point x="406.8012273346858" y="69.49608392807625"/>
+          </y:Path>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e14" source="n15" target="n3">
+      <data key="d14">6.0</data>
+      <data key="d16"/>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e15" source="n4" target="n10">
+      <data key="d14">2.5</data>
+      <data key="d16"/>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="1.5192635991885481" ty="-10.144125892114516">
+            <y:Point x="-21.399999999999977" y="251.96867142460997"/>
+            <y:Point x="-21.399999999999977" y="359.29999999999995"/>
+          </y:Path>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e16" source="n4" target="n15">
+      <data key="d14">5.0</data>
+      <data key="d16"/>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="-12.63132857538858" tx="0.0" ty="0.0"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e17" source="n15" target="n16">
+      <data key="d14">2.5</data>
+      <data key="d16"/>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e18" source="n16" target="n12">
+      <data key="d14">2.5</data>
+      <data key="d16"/>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="0.0" ty="11.168671424610693"/>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e19" source="n5" target="n16">
+      <data key="d14">4.0</data>
+      <data key="d16"/>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="-0.37079776754598015" ty="10.56265715077862">
+            <y:Point x="206.9006136673429" y="249.9"/>
+          </y:Path>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+    <edge id="e20" source="n10" target="n15">
+      <data key="d14">4.0</data>
+      <data key="d16"/>
+      <data key="d17">
+        <y:PolyLineEdge>
+          <y:Path sx="0.0" sy="0.0" tx="1.8596317995936715" ty="12.63132857538858">
+            <y:Point x="77.08073640081147" y="251.96867142460997"/>
+          </y:Path>
+          <y:LineStyle color="#000000" type="line" width="1.0"/>
+          <y:Arrows source="none" target="none"/>
+          <y:BendStyle smoothed="false"/>
+        </y:PolyLineEdge>
+      </data>
+    </edge>
+  </graph>
+  <data key="d13">
+    <y:Resources/>
+  </data>
+</graphml>

+ 0 - 64
scopviz/src/main/resources/underlay_example.graphml

@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
-	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
-	   http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
-   	<key id="attr0000" for="node" attr.name="ui.label" attr.type="string"/>
-	<key id="attr0001" for="edge" attr.name="weight" attr.type="int"/>
-	<key id="attr0002" for="node" attr.name="y" attr.type="double"/>
-	<key id="attr0003" for="node" attr.name="x" attr.type="double"/>
-	<key id="attr0004" for="node" attr.name="typeofNode"  attr.type="string"/>
-	<key id="attr0005" for="node" attr.name ="process-max" attr.type="double"/>
-	<key id="attr0006" for="node" attr.name="typeofDevice"  attr.type="string"/>
-	<graph id="UnderlayExample" edgedefault="undirected">
-		<node id="A">
-			<data key="attr0000">A</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">100</data>
-			<data key="attr0004">standard</data>
-			<data key="attr0006">desktop</data>
-		</node>
-		<node id="B">
-			<data key="attr0000">B</data>
-			<data key="attr0002">200</data>
-			<data key="attr0003">100</data>
-			<data key="attr0004">procEn</data>
-			<data key="attr0005">40</data>
-			<data key="attr0006">router</data>
-		</node>
-		<node id="C">
-			<data key="attr0000">C</data>
-			<data key="attr0002">100</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">procEn</data>
-			<data key="attr0005">30</data>
-			<data key="attr0006">switch</data>
-		</node>
-		<node id="D">
-			<data key="attr0000">D</data>
-			<data key="attr0002">200</data>
-			<data key="attr0003">200</data>
-			<data key="attr0004">procEn</data>
-			<data key="attr0005">100</data>
-			<data key="attr0006">smartphone</data>
-		</node>
-		<node id="E">
-			<data key="attr0000">E</data>
-			<data key="attr0002">185</data>
-			<data key="attr0003">135</data>
-			<data key="attr0006">router</data>
-		</node>
-		<edge id="AB" source="A" target="B" directed="false">
-			<data key="attr0001">33</data>
-		</edge>
-		<edge id="BC" source="B" target="C" directed="false">
-			<data key="attr0001">50</data>
-		</edge>
-		<edge id="CD" source="C" target="D" directed="false">
-			<data key="attr0001">18</data>
-		</edge>
-		<edge id="DB" source="D" target="B" directed="false">
-			<data key="attr0001">6</data>
-		</edge>
-	</graph>
-</graphml>