Browse Source

Moves controller.getVisualizationRadius to Config

Andreas T. Meyer-Berg 5 years ago
parent
commit
d954fd33d3

+ 17 - 14
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/Main.java

@@ -1,5 +1,6 @@
 package de.tu_darmstadt.tk.SmartHomeNetworkSim;
 
+import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.ConfigurationController;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.Controller;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Connection;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.ConnectionImplementation;
@@ -35,6 +36,7 @@ public class Main {
 	 */
 	static Controller c;
 	
+	static ConfigurationController conf;
 	/**
 	 * SimulationManager which runs the simulation
 	 */
@@ -47,6 +49,7 @@ public class Main {
 	public static void main(String[] args) {
 		m = new Model();
 		c = new Controller(m);
+		conf = c.getControllerConfiguration();
 	    //initializeTest();
 	    initializeMQTTTest();
 	    v = new MainFrame(m, c);
@@ -63,14 +66,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*c.getDevice_visualization_radius())+c.getDevice_visualization_radius());
-			A.setY((int)(Math.random()*c.getWidth()-2*c.getDevice_visualization_radius())+c.getDevice_visualization_radius());
+			A.setX((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+			A.setY((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
 			B = new SmartDevice("SmartDoor"+i);
-			B.setX((int)(Math.random()*c.getWidth()-2*c.getDevice_visualization_radius())+c.getDevice_visualization_radius());
-			B.setY((int)(Math.random()*c.getWidth()-2*c.getDevice_visualization_radius())+c.getDevice_visualization_radius());
+			B.setX((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+			B.setY((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
 			C = new SmartDevice("SmartLight"+i);
-			C.setX((int)(Math.random()*c.getWidth()-2*c.getDevice_visualization_radius())+c.getDevice_visualization_radius());
-			C.setY((int)(Math.random()*c.getWidth()-2*c.getDevice_visualization_radius())+c.getDevice_visualization_radius());
+			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.addSmartDevice(A);
 			c.addSmartDevice(B);
@@ -113,8 +116,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*c.getDevice_visualization_radius())+c.getDevice_visualization_radius());
-		broker.setY((int)(Math.random()*c.getWidth()-2*c.getDevice_visualization_radius())+c.getDevice_visualization_radius());
+		broker.setX((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+		broker.setY((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
 		c.addSmartDevice(broker);
 		
 		Port brokerPort = new Port(broker, (short) 0);
@@ -141,8 +144,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*c.getDevice_visualization_radius())+c.getDevice_visualization_radius());
-			A.setY((int)(Math.random()*c.getWidth()-2*c.getDevice_visualization_radius())+c.getDevice_visualization_radius());
+			A.setX((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+			A.setY((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
 			link.addDevice(A);
 			A.addLink(link);
 			
@@ -161,8 +164,8 @@ public class Main {
 			
 			
 			B = new SmartDevice("SmartDoor"+i+"(Pub)");
-			B.setX((int)(Math.random()*c.getWidth()-2*c.getDevice_visualization_radius())+c.getDevice_visualization_radius());
-			B.setY((int)(Math.random()*c.getWidth()-2*c.getDevice_visualization_radius())+c.getDevice_visualization_radius());
+			B.setX((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+			B.setY((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
 			link.addDevice(B);
 			B.addLink(link);
 			
@@ -179,8 +182,8 @@ public class Main {
 			c.addSmartDevice(B);
 			
 			C = new SmartDevice("SmartLight"+i+"(Pub,Sub)");
-			C.setX((int)(Math.random()*c.getWidth()-2*c.getDevice_visualization_radius())+c.getDevice_visualization_radius());
-			C.setY((int)(Math.random()*c.getWidth()-2*c.getDevice_visualization_radius())+c.getDevice_visualization_radius());
+			C.setX((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
+			C.setY((int)(Math.random()*c.getWidth()-2*conf.getDeviceVisualizationRadius())+conf.getDeviceVisualizationRadius());
 			link.addDevice(C);
 			C.addLink(link);
 			

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

@@ -338,15 +338,8 @@ public class Controller {
 	/**
 	 * @return the device_visualization_radius
 	 */
-	public int getDevice_visualization_radius() {
-		return model.getConfigurator().getVisualizationConfiguration().getDeviceVisualizationRadius();
-	}
-
-	/**
-	 * @param device_visualization_radius the device_visualization_radius to set
-	 */
-	public void setDevice_visualization_radius(int device_visualization_radius) {
-		model.getConfigurator().getVisualizationConfiguration().setDeviceVisualizationRadius(device_visualization_radius);
+	private int getDevice_visualization_radius() {
+		return configurationController.getDeviceVisualizationRadius();
 	}
 	
 	/**

+ 17 - 10
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/view/VisualisationInteractor.java

@@ -14,6 +14,7 @@ import javax.swing.JMenuItem;
 import javax.swing.JPopupMenu;
 import javax.swing.event.MouseInputListener;
 
+import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.ConfigurationController;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.Controller;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Connection;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.ConnectionImplementation;
@@ -48,6 +49,11 @@ public class VisualisationInteractor implements MouseInputListener,
 	 * Controller to notify when the model changes
 	 */
 	private Controller controller;
+	
+	/**
+	 * Configurations
+	 */
+	private ConfigurationController config;
 
 	/**
 	 * Panel which is observed
@@ -173,6 +179,7 @@ public class VisualisationInteractor implements MouseInputListener,
 		this.model = model;
 		this.controller = controller;
 		this.panel = panel;
+		this.config = controller.getControllerConfiguration();
 
 		initializeRightClickMenu();
 	}
@@ -346,14 +353,14 @@ public class VisualisationInteractor implements MouseInputListener,
 			int y_offset = dragged_y - dragged.getY();
 			//Validate for all moved devices, that they are within the model, if not change offset
 			for(SmartDevice d:selectedDevices){
-				if (d.getX() + x_offset <= controller.getDevice_visualization_radius())
-					x_offset = controller.getDevice_visualization_radius()-d.getX();
-				else if (d.getX() + x_offset >= model.getWidth() - controller.getDevice_visualization_radius())
-					x_offset = model.getWidth() - controller.getDevice_visualization_radius()-d.getX();
-				if (d.getY() + y_offset <= controller.getDevice_visualization_radius())
-					y_offset = controller.getDevice_visualization_radius()-d.getY();
-				else if (d.getY() + y_offset >= model.getHeight() - controller.getDevice_visualization_radius())
-					y_offset = model.getHeight() - controller.getDevice_visualization_radius()-d.getY();
+				if (d.getX() + x_offset <= config.getDeviceVisualizationRadius())
+					x_offset = config.getDeviceVisualizationRadius()-d.getX();
+				else if (d.getX() + x_offset >= model.getWidth() - config.getDeviceVisualizationRadius())
+					x_offset = model.getWidth() - config.getDeviceVisualizationRadius()-d.getX();
+				if (d.getY() + y_offset <= config.getDeviceVisualizationRadius())
+					y_offset = config.getDeviceVisualizationRadius()-d.getY();
+				else if (d.getY() + y_offset >= model.getHeight() - config.getDeviceVisualizationRadius())
+					y_offset = model.getHeight() - config.getDeviceVisualizationRadius()-d.getY();
 			}
 			//update the dragged position, if the offset changed
 			dragged_x =dragged.getX() + x_offset;
@@ -464,8 +471,8 @@ public class VisualisationInteractor implements MouseInputListener,
 	private SmartDevice getSmartDeviceAtPosition(int x, int y) {
 		// Check is device is inside visualization radius
 		for (SmartDevice d : model.getDevices()) {
-			if (Math.abs(d.getX() - x) < controller.getDevice_visualization_radius()
-					&& Math.abs(d.getY() - y) < controller.getDevice_visualization_radius()) {
+			if (Math.abs(d.getX() - x) < config.getDeviceVisualizationRadius()
+					&& Math.abs(d.getY() - y) < config.getDeviceVisualizationRadius()) {
 				return d;
 			}
 		}

+ 15 - 8
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/view/VisualisationPanel.java

@@ -10,6 +10,7 @@ import java.util.Observer;
 
 import javax.swing.JPanel;
 
+import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.ConfigurationController;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.Controller;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Connection;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Model;
@@ -36,6 +37,11 @@ public class VisualisationPanel extends JPanel implements Observer {
 	 * Controller to notify when the model changes
 	 */
 	private Controller control;
+	
+	/**
+	 * Configurations
+	 */
+	private ConfigurationController config;
 
 	/**
 	 * Listener which processes the GUI Interactions
@@ -55,6 +61,7 @@ public class VisualisationPanel extends JPanel implements Observer {
 
 		this.model = model;
 		this.control = control;
+		this.config = control.getControllerConfiguration();
 		
 		this.interactor = new VisualisationInteractor(model, control, this);
 		this.addMouseMotionListener(interactor);
@@ -164,19 +171,19 @@ public class VisualisationPanel extends JPanel implements Observer {
 				g.setColor(new Color(135,206,235));
 			}else
 				g.setColor(Color.WHITE);
-			g.fillOval(x - control.getDevice_visualization_radius(), y - control.getDevice_visualization_radius(),
-					2 * control.getDevice_visualization_radius() - 1, 2 * control.getDevice_visualization_radius() - 1);
+			g.fillOval(x - config.getDeviceVisualizationRadius(), y - config.getDeviceVisualizationRadius(),
+					2 * config.getDeviceVisualizationRadius() - 1, 2 * config.getDeviceVisualizationRadius() - 1);
 			g.setColor(Color.BLACK);
-			g.drawOval(x - control.getDevice_visualization_radius(), y - control.getDevice_visualization_radius(),
-					2 * control.getDevice_visualization_radius() - 1, 2 * control.getDevice_visualization_radius() - 1);
+			g.drawOval(x - config.getDeviceVisualizationRadius(), y - config.getDeviceVisualizationRadius(),
+					2 * config.getDeviceVisualizationRadius() - 1, 2 * config.getDeviceVisualizationRadius() - 1);
 			g.setColor(Color.BLUE);
-			g.drawOval(x - control.getDevice_visualization_radius() + 2,
-					y - control.getDevice_visualization_radius() + 2, 2 * control.getDevice_visualization_radius() - 5,
-					2 * control.getDevice_visualization_radius() - 5);
+			g.drawOval(x - config.getDeviceVisualizationRadius() + 2,
+					y - config.getDeviceVisualizationRadius() + 2, 2 * config.getDeviceVisualizationRadius() - 5,
+					2 * config.getDeviceVisualizationRadius() - 5);
 			g.setColor(Color.BLACK);
 			g.drawString(s.getName(),
 					x - g.getFontMetrics().stringWidth(s.getName()) / 2, y
-							+ control.getDevice_visualization_radius() + 11);
+							+ config.getDeviceVisualizationRadius() + 11);
 		}
 	}
 	

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

@@ -80,7 +80,7 @@ public class SmartDeviceCreationPopUp extends JDialog {
 		this.c = control;
 		this.maxX = c.getWidth();
 		this.maxY = c.getHeight();
-		this.visualisationRadius = c.getDevice_visualization_radius();
+		this.visualisationRadius = c.getControllerConfiguration().getDeviceVisualizationRadius();
 		this.edit = edit;
 		newDevice = deviceToEdit;