Jelajahi Sumber

Removes deprecated Controller Calls (without view.popups atm)

Andreas T. Meyer-Berg 5 tahun lalu
induk
melakukan
ab4d8eb393

+ 23 - 19
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/Main.java

@@ -2,6 +2,7 @@ package de.tu_darmstadt.tk.SmartHomeNetworkSim;
 
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.SettingsController;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.Controller;
+import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.NetworkController;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Connection;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.ConnectionPerformance;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.ConnectionPrecision;
@@ -28,14 +29,16 @@ public class Main {
 	static Model m;
 	
 	/**
-	 * Visualisation of the smart home network
+	 * Visualization of the smart home network
 	 */
 	static MainFrame v;
 	
 	/**
 	 * Controller of the program 
 	 */
-	static Controller c;
+	static Controller controller;
+	
+	static NetworkController c;
 	
 	static SettingsController conf;
 	/**
@@ -49,11 +52,12 @@ public class Main {
 	 */
 	public static void main(String[] args) {
 		m = new Model();
-		c = new Controller(m);
-		conf = c.getControllerConfiguration();
+		controller = new Controller(m);
+		c = controller.getNetworkController();
+		conf = controller.getControllerConfiguration();
 	    //initializeTest();
 	    initializeMQTTTest();
-	    v = new MainFrame(m, c);
+	    v = new MainFrame(m, controller);
 	    /*
 	    for(int i=0; i<10; i++)
 	    	m.getSim().simulateTimeIntervall(0+50*i, 50);
@@ -67,14 +71,14 @@ public class Main {
 		SmartDevice A = null, B = null, C = null;
 		for(int i = 0; i<5; i++){
 			A = new SmartDevice("SmartTV"+i);		
-			A.setX((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
-			A.setY((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+			A.setX((int)(Math.random()*conf.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+			A.setY((int)(Math.random()*conf.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
 			B = new SmartDevice("SmartDoor"+i);
-			B.setX((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
-			B.setY((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+			B.setX((int)(Math.random()*conf.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+			B.setY((int)(Math.random()*conf.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
 			C = new SmartDevice("SmartLight"+i);
-			C.setX((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
-			C.setY((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+			C.setX((int)(Math.random()*conf.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+			C.setY((int)(Math.random()*conf.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
 		
 			c.addSmartDevice(A);
 			c.addSmartDevice(B);
@@ -117,8 +121,8 @@ public class Main {
 		Link link = new SimpleLink("LossLess TCP-Network");
 		
 		SmartDevice broker = new SmartDevice("MQTT-Broker");
-		broker.setX((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
-		broker.setY((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+		broker.setX((int)(Math.random()*conf.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+		broker.setY((int)(Math.random()*conf.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
 		c.addSmartDevice(broker);
 		
 		Port brokerPort = new Port(broker, (short) 0);
@@ -145,8 +149,8 @@ public class Main {
 		Port aP,bP,cP;
 		for(int i = 0; i<3; i++){
 			A = new SmartDevice("SmartTV"+i+"(Sub)");		
-			A.setX((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
-			A.setY((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+			A.setX((int)(Math.random()*conf.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+			A.setY((int)(Math.random()*conf.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
 			link.addDevice(A);
 			A.addLink(link);
 			
@@ -165,8 +169,8 @@ public class Main {
 			
 			
 			B = new SmartDevice("SmartDoor"+i+"(Pub)");
-			B.setX((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
-			B.setY((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+			B.setX((int)(Math.random()*conf.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+			B.setY((int)(Math.random()*conf.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
 			link.addDevice(B);
 			B.addLink(link);
 			
@@ -183,8 +187,8 @@ public class Main {
 			c.addSmartDevice(B);
 			
 			C = new SmartDevice("SmartLight"+i+"(Pub,Sub)");
-			C.setX((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
-			C.setY((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+			C.setX((int)(Math.random()*conf.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+			C.setY((int)(Math.random()*conf.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
 			link.addDevice(C);
 			C.addLink(link);
 			

+ 1 - 1
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/control/Controller.java

@@ -20,7 +20,7 @@ public class Controller {
 	/**
 	 * {@link Model} which stores the smart home model
 	 */
-	Model model;
+	private Model model;
 	
 	/**
 	 * Controller for Import of user defined java classes

+ 47 - 48
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/control/NetworkController.java

@@ -43,7 +43,7 @@ public class NetworkController {
 	 */
 	public void validateDevicePosition() {
 		// Update all device positions
-		for (SmartDevice d : controller.model.getDevices()) {
+		for (SmartDevice d : model.getDevices()) {
 			d.setX(controller.getControllerConfiguration().scalePos(d.getX(), 1.0, controller.getControllerConfiguration().getWidth()));
 			d.setY(controller.getControllerConfiguration().scalePos(d.getY(), 1.0, controller.getControllerConfiguration().getHeight()));
 			d.setZ(controller.getControllerConfiguration().scalePos(d.getZ(), 1.0, controller.getControllerConfiguration().getDepth()));
@@ -58,13 +58,13 @@ public class NetworkController {
 	 *            SmartDevice which should be added to the model
 	 */
 	public void addSmartDevice(SmartDevice sd) {
-		if (controller.model.getDevices().contains(sd))
+		if (model.getDevices().contains(sd))
 			return;
-		controller.model.addDevices(sd);
+		model.addDevices(sd);
 		// validate Position
-		sd.setX(controller.scalePos(sd.getX(), 1.0, controller.model.getWidth()));
-		sd.setY(controller.scalePos(sd.getY(), 1.0, controller.model.getHeight()));
-		sd.setZ(controller.scalePos(sd.getZ(), 1.0, controller.model.getDepth()));
+		sd.setX(controller.getControllerConfiguration().scalePos(sd.getX(), 1.0, controller.getControllerConfiguration().getWidth()));
+		sd.setY(controller.getControllerConfiguration().scalePos(sd.getY(), 1.0, controller.getControllerConfiguration().getHeight()));
+		sd.setZ(controller.getControllerConfiguration().scalePos(sd.getZ(), 1.0, controller.getControllerConfiguration().getDepth()));
 	}
 
 	/**
@@ -82,10 +82,10 @@ public class NetworkController {
 	 */
 	public void createSmartDevice(String name, int x_pos, int y_pos, int z_pos) {
 		SmartDevice sd = new SmartDevice(name);
-		sd.setX(controller.scalePos(x_pos, 1.0, controller.model.getWidth()));
-		sd.setY(controller.scalePos(y_pos, 1.0, controller.model.getHeight()));
-		sd.setZ(controller.scalePos(z_pos, 1.0, controller.model.getDepth()));
-		controller.model.addDevices(sd);
+		sd.setX(controller.getControllerConfiguration().scalePos(x_pos, 1.0, controller.getControllerConfiguration().getWidth()));
+		sd.setY(controller.getControllerConfiguration().scalePos(y_pos, 1.0, controller.getControllerConfiguration().getHeight()));
+		sd.setZ(controller.getControllerConfiguration().scalePos(z_pos, 1.0, controller.getControllerConfiguration().getDepth()));
+		model.addDevices(sd);
 	}
 
 	/**
@@ -103,7 +103,7 @@ public class NetworkController {
 		for (Port p : toDelete.getPorts()) {
 			//Skip ports that are not connected
 			if(p.getConnection()==null)continue;
-			controller.removeDeviceFromConnection(p, p.getConnection());
+			removeDeviceFromConnection(p, p.getConnection());
 			
 			/**
 			 * Connection of the current port
@@ -128,14 +128,14 @@ public class NetworkController {
 		// Remove from Links
 		LinkedList<Link> links = new LinkedList<Link>(toDelete.getLinks());
 		for (Link link : links)
-			controller.removeSmartDeviceFromLink(toDelete, link);
+			removeSmartDeviceFromLink(toDelete, link);
 		links.clear();
 		// Remove Links from Device
 		toDelete.getLinks().clear();
 				
 		//Remove all ports from the device
 		toDelete.getPorts().clear();
-		controller.model.getDevices().remove(toDelete);
+		model.getDevices().remove(toDelete);
 	}
 
 	/**
@@ -148,7 +148,7 @@ public class NetworkController {
 		if(link != null){
 			link.removeDevice(toRemove);
 			if(link.getDevices().size()==0)
-				controller.deleteLink(link);
+				deleteLink(link);
 		}
 		if(toRemove!=null)
 			toRemove.removeLink(link);
@@ -178,7 +178,7 @@ public class NetworkController {
 	 * @param link link to add
 	 */
 	public void addLink(Link link){
-		controller.model.addConnectionNetwork(link);
+		model.addConnectionNetwork(link);
 	}
 
 	/**
@@ -186,23 +186,23 @@ public class NetworkController {
 	 * @param link link to remove
 	 */
 	public void removeLink(Link link){
-		controller.model.getConnectionNetworks().remove(link);
+		model.getConnectionNetworks().remove(link);
 	}
 
 	public Collection<Link> getLinks(){
-		return controller.model.getConnectionNetworks();
+		return model.getConnectionNetworks();
 	}
 
 	public void addConnection(Connection connection){
-		controller.model.addConnection(connection);
+		model.addConnection(connection);
 	}
 
 	public void removeConnection(Connection connection){
-		controller.model.getConnections().remove(connection);
+		model.getConnections().remove(connection);
 	}
 
 	public Collection<Connection> getConnections(){
-		return controller.model.getConnections();
+		return model.getConnections();
 	}
 
 	public void addLinkToDevice(Link newLink, SmartDevice smartDevice) {
@@ -219,7 +219,7 @@ public class NetworkController {
 		if(link!=null){
 			link.removeDevice(smartDevice);
 			if(link.getDevices().size()==0)
-				controller.deleteLink(link);
+				deleteLink(link);
 		}
 	}
 
@@ -228,7 +228,7 @@ public class NetworkController {
 	 * If false is returned, the device will no longer be part of this connection.
 	 * 
 	 * @param protocol protocol which should be edited
-	 * @param con TODO
+	 * @param con Connection, which contains the protocol
 	 * @param device device which should be added
 	 * @param newRole new role of the device
 	 * @return true if new role was set, false if not
@@ -236,7 +236,7 @@ public class NetworkController {
 	public boolean changeRoleOfDevice(Protocol protocol, Connection con, Port device, int newRole){
 		if(newRole < 0 || newRole >= protocol.getNumberOfRoles()){
 			protocol.removeDevice(device);
-			controller.removeDeviceFromConnection(device, con);
+			removeDeviceFromConnection(device, con);
 			return false;
 		} else if(protocol.getDevicesWithRole(newRole).contains(device)){
 			if(!con.getParticipants().contains(device))
@@ -277,7 +277,7 @@ public class NetworkController {
 			if(connection.getProtocol()!=null)
 				connection.getProtocol().removeDevice(p);
 			if(connection.getParticipants().size() == 0)
-				controller.deleteConnection(connection);
+				deleteConnection(connection);
 		}
 		if(p!=null)
 			p.setConnection(null);
@@ -322,7 +322,7 @@ public class NetworkController {
 			connection.setLink(newLink);
 			for(Port p:connection.getParticipants()){
 				if(p.getOwner()!=null&& !newLink.getDevices().contains(p.getOwner())){
-					controller.addLinkToDevice(newLink, p.getOwner());
+					addLinkToDevice(newLink, p.getOwner());
 				}
 			}
 			connection.setLink(newLink);
@@ -378,10 +378,10 @@ public class NetworkController {
 			}
 			return null;
 		}
-		if(controller.getConnections().contains(connection)){
-			controller.removeConnection(connection);
+		if(getConnections().contains(connection)){
+			removeConnection(connection);
 		}
-		controller.addConnection(newCon);	
+		addConnection(newCon);	
 		controller.getControllerConfiguration().getConfigurationManager().getSelectionModel().clickedConnection.clear();
 			
 			
@@ -405,23 +405,23 @@ public class NetworkController {
 		/**
 		 * Devices which should be deleted
 		 */
-		LinkedList<SmartDevice> devicesToDelete = new LinkedList<SmartDevice>(controller.model.getDevices());
+		LinkedList<SmartDevice> devicesToDelete = new LinkedList<SmartDevice>(model.getDevices());
 		for(SmartDevice d: devicesToDelete)
-			controller.deleteSmartDevice(d);
+			deleteSmartDevice(d);
 		devicesToDelete.clear();
 		/**
 		 * Connections which should be deleted
 		 */
-		LinkedList<Connection> connectionsToDelete = new LinkedList<Connection>(controller.model.getConnections());
+		LinkedList<Connection> connectionsToDelete = new LinkedList<Connection>(model.getConnections());
 		for(Connection c: connectionsToDelete)
-			controller.deleteConnection(c);
+			deleteConnection(c);
 		connectionsToDelete.clear();
 		/**
-		 * Links which should be delted
+		 * Links which should be deleted
 		 */
-		LinkedList<Link> linksToDelete = new LinkedList<Link>(controller.model.getConnectionNetworks());
-		for(Link l: controller.model.getConnectionNetworks())
-			controller.deleteLink(l);
+		LinkedList<Link> linksToDelete = new LinkedList<Link>(model.getConnectionNetworks());
+		for(Link l: model.getConnectionNetworks())
+			deleteLink(l);
 		linksToDelete.clear();
 		/**
 		 * Update the GUI
@@ -437,30 +437,29 @@ public class NetworkController {
 		if(c == null)return;
 		LinkedList<Port> ports = new LinkedList<Port>(c.getParticipants());
 		for(Port p:ports)
-			controller.removeDeviceFromConnection(p, c);
+			removeDeviceFromConnection(p, c);
 		ports.clear();
-		controller.removeConnectionFromLink(c, c.getLink());
+		removeConnectionFromLink(c, c.getLink());
 		c.setStatus(Connection.TERMINATED);
-		controller.removeConnection(c);
+		removeConnection(c);
 	}
 
 	/**
 	 * Deletes Link l and all references
-	 * @param controller TODO
 	 * @param l Link to be deleted
 	 */
 	public void deleteLink(Link l) {
 		if(l==null)return;
 		LinkedList<SmartDevice> devices = new LinkedList<SmartDevice>(l.getDevices());
 		for(SmartDevice d : devices)
-			controller.removeLinkFromDevice(l, d);
+			removeLinkFromDevice(l, d);
 		devices.clear();
 		LinkedList<Connection> connections = new LinkedList<Connection>(l.getConnections());
 		for(Connection c:connections)
-			controller.removeConnectionFromLink(c,l);
+			removeConnectionFromLink(c,l);
 		connections.clear();
 		l.getPackets().clear();
-		controller.removeLink(l);
+		removeLink(l);
 	}
 
 	/**
@@ -501,15 +500,15 @@ public class NetworkController {
 			// Set old Name
 			newLink.setName(oldLink.getName());
 			// Add to Mode
-			if(controller.getLinks().contains(oldLink)){
-				controller.removeLink(oldLink);
-				controller.addLink(newLink);
+			if(getLinks().contains(oldLink)){
+				removeLink(oldLink);
+				addLink(newLink);
 			}
 			// Add devices to the new Link
 			LinkedList<SmartDevice> devices= new LinkedList<>(oldLink.getDevices());
 			for(SmartDevice device:devices){
-				controller.removeLinkFromDevice(oldLink, device);
-				controller.addLinkToDevice(newLink, device);
+				removeLinkFromDevice(oldLink, device);
+				addLinkToDevice(newLink, device);
 			}
 		return newLink;
 		}

+ 13 - 13
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/control/SettingsController.java

@@ -202,19 +202,19 @@ public class SettingsController {
 			 * Factor that changes the x position. Example: 1 -> positions stay
 			 * the same 0.5 -> x position is halved 2 -> x position is doubled
 			 */
-			double width_factor = ((double) width) / ((double) controller.model.getWidth());
+			double width_factor = ((double) width) / ((double) getWidth());
 			/**
 			 * Factor that changes the y position. Example: 1 -> positions stay
 			 * the same 0.5 -> y position is halved 2 -> y position is doubled
 			 */
-			double height_factor = ((double) height) / ((double) controller.model.getHeight());
+			double height_factor = ((double) height) / ((double) getHeight());
 			/**
 			 * Factor that changes the z position. Example: 1 -> positions stay
 			 * the same 0.5 -> z position is halved 2 -> z position is doubled
 			 */
-			double depth_factor = ((double) depth) / ((double) controller.model.getDepth());
+			double depth_factor = ((double) depth) / ((double) getDepth());
 			// Update all device positions
-			for (SmartDevice d : controller.model.getDevices()) {
+			for (SmartDevice d : model.getDevices()) {
 				if (width_factor != 1.0)
 					d.setX(scalePos(d.getX(), width_factor, width));
 				if (height_factor != 1.0)
@@ -223,9 +223,9 @@ public class SettingsController {
 					d.setZ(scalePos(d.getZ(), depth_factor, depth));
 			}
 		}
-		controller.model.setWidth(width);
-		controller.model.setHeight(height);
-		controller.model.setDepth(depth);
+		setWidth(width);
+		setHeight(height);
+		setDepth(depth);
 	}
 
 	/**
@@ -259,41 +259,41 @@ public class SettingsController {
 	 * @return the width
 	 */
 	public int getWidth() {
-		return controller.model.getWidth();
+		return model.getWidth();
 	}
 
 	/**
 	 * @param width the width to set
 	 */
 	public void setWidth(int width) {
-		controller.model.setWidth(width);
+		model.setWidth(width);
 	}
 
 	/**
 	 * @return the height
 	 */
 	public int getHeight() {
-		return controller.model.getHeight();
+		return model.getHeight();
 	}
 
 	/**
 	 * @param height the height to set
 	 */
 	public void setHeight(int height) {
-		controller.model.setHeight(height);
+		model.setHeight(height);
 	}
 	
 	/**
 	 * @return the depth
 	 */
 	public int getDepth() {
-		return controller.model.getDepth();
+		return model.getDepth();
 	}
 
 	/**
 	 * @param depth the depth to set
 	 */
 	public void setDepth(int depth) {
-		controller.model.setDepth(depth);
+		model.setDepth(depth);
 	}
 }

+ 1 - 1
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/view/MenuBar.java

@@ -97,7 +97,7 @@ public class MenuBar extends JMenuBar {
 		mntmDeleteModel.addActionListener(a -> {
 			int dialogResult = JOptionPane.showConfirmDialog(this.getParent(), "Do you really want do delete all Devices, Ports, Links & Connections?");
 			if(dialogResult == JOptionPane.YES_OPTION){
-			  controller.deleteNetworkModel();
+			  controller.getNetworkController().deleteNetworkModel();
 			}
 		});
 		mnEdit.add(mntmDeleteModel);

+ 13 - 6
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/view/VisualisationInteractor.java

@@ -16,6 +16,7 @@ import javax.swing.event.MouseInputListener;
 
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.SettingsController;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.Controller;
+import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.NetworkController;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Connection;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.ConnectionPerformance;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Link;
@@ -55,7 +56,12 @@ public class VisualisationInteractor implements MouseInputListener,
 	 * Configurations
 	 */
 	private SettingsController config;
-
+	
+	/**
+	 * Network Controller
+	 */
+	private NetworkController network;
+	
 	/**
 	 * Panel which is observed
 	 */
@@ -209,6 +215,7 @@ public class VisualisationInteractor implements MouseInputListener,
 		this.controller = controller;
 		this.panel = panel;
 		this.config = controller.getControllerConfiguration();
+		this.network = controller.getNetworkController();
 		this.toolTip = new LinkToolTip();
 
 		initializeRightClickMenu();
@@ -422,7 +429,7 @@ public class VisualisationInteractor implements MouseInputListener,
 				int x_offset = dragged_x-dragged.getX();
 				int y_offset = dragged_y-dragged.getY();
 				for(SmartDevice d: controller.getControllerConfiguration().getConfigurationManager().getSelectionModel().selectedDevices)
-					controller.moveSmartDevice(d, d.getX()+x_offset, d.getY()+y_offset, d.getZ());
+					network.moveSmartDevice(d, d.getX()+x_offset, d.getY()+y_offset, d.getZ());
 			}
 			dragged = null;
 			if(controller.getControllerConfiguration().getConfigurationManager().getSelectionModel().selectedDevices.isEmpty())
@@ -668,7 +675,7 @@ public class VisualisationInteractor implements MouseInputListener,
 					/**
 					 * Number of Links in the Model
 					 */
-					int numberOfLinks = controller.getLinks().size();
+					int numberOfLinks = network.getLinks().size();
 					/**
 					 * Angle per Link in "linkSlice degrees"
 					 */
@@ -685,7 +692,7 @@ public class VisualisationInteractor implements MouseInputListener,
 					/**
 					 * Link, which would be at this connection
 					 */
-					Link linkAtPosition = (Link) controller.getLinks().toArray()[linkNumber];
+					Link linkAtPosition = (Link) network.getLinks().toArray()[linkNumber];
 					/**
 					 * Return link, if smartDevice contains it
 					 */
@@ -865,7 +872,7 @@ public class VisualisationInteractor implements MouseInputListener,
 
 		itemDelete.addActionListener(e -> {
 			// Delete the clicked object
-				controller.deleteSmartDevice(clicked);
+				network.deleteSmartDevice(clicked);
 				clicked = null;
 				controller.notifyObservers();
 				mode = NOTHING;
@@ -879,7 +886,7 @@ public class VisualisationInteractor implements MouseInputListener,
 		itemDeleteSelected.addActionListener(e -> {
 			// Delete the clicked object
 			for(SmartDevice c: controller.getControllerConfiguration().getConfigurationManager().getSelectionModel().selectedDevices)
-				controller.deleteSmartDevice(c);
+				network.deleteSmartDevice(c);
 			controller.getControllerConfiguration().getConfigurationManager().getSelectionModel().selectedDevices.clear();
 			clicked = null;
 			controller.notifyObservers();

+ 13 - 6
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/view/VisualisationPanel.java

@@ -14,6 +14,7 @@ import javax.swing.JPanel;
 
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.SettingsController;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.Controller;
+import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.NetworkController;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Connection;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Link;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Model;
@@ -46,10 +47,15 @@ public class VisualisationPanel extends JPanel implements Observer {
 	private Controller control;
 	
 	/**
-	 * Configurations
+	 * Settings Controller
 	 */
 	private SettingsController config;
-
+	
+	/**
+	 * Network Controller
+	 */
+	private NetworkController network;
+	
 	/**
 	 * Listener which processes the GUI Interactions
 	 */
@@ -69,6 +75,7 @@ public class VisualisationPanel extends JPanel implements Observer {
 		this.model = model;
 		this.control = control;
 		this.config = control.getControllerConfiguration();
+		this.network = control.getNetworkController();
 		
 		this.interactor = new VisualisationInteractor(model, control, this);
 		this.addMouseMotionListener(interactor);
@@ -89,7 +96,7 @@ public class VisualisationPanel extends JPanel implements Observer {
 
 			@Override
 			public void componentResized(ComponentEvent e) {
-				control.setDimension(getWidth(), getHeight(), model.getDepth(),
+				config.setDimension(getWidth(), getHeight(), model.getDepth(),
 						true);
 				repaint();
 			}
@@ -102,7 +109,7 @@ public class VisualisationPanel extends JPanel implements Observer {
 			public void componentHidden(ComponentEvent e) {
 			}
 		});
-		control.setDimension(getWidth(), getHeight(), model.getDepth(),
+		config.setDimension(getWidth(), getHeight(), model.getDepth(),
 				true);
 		repaint();
 	}
@@ -165,7 +172,7 @@ public class VisualisationPanel extends JPanel implements Observer {
 		/**
 		 * Number of Links in the Model
 		 */
-		int numberOfLinks = control.getLinks().size();
+		int numberOfLinks = network.getLinks().size();
 		/**
 		 * Angle per Link in "linkSlice degrees"
 		 */
@@ -178,7 +185,7 @@ public class VisualisationPanel extends JPanel implements Observer {
 		if(config.isShowLinks()){
 			linkColors = new HashMap<Link, Pair<Integer,Color>>();
 			int i = 0;
-			for(Link l: control.getLinks()){
+			for(Link l: network.getLinks()){
 				/**
 				 * Distinct Color as String containing the hex values (128 static ones should be enough)
 				 */