Browse Source

Adds settings->debugMode & Default: disabled

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

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

@@ -203,6 +203,21 @@ public class SettingsController {
 		controller.notifyObservers();
 	}
 	
+	/**
+	 * @return the debugModus
+	 */
+	public boolean isDebugModus() {
+		return model.getConfigurator().getVisualizationConfiguration().isDebugModus();
+	}
+
+	/**
+	 * @param debugModus the debugModus to set
+	 */
+	public void setDebugModus(boolean debugModus) {
+		model.getConfigurator().getVisualizationConfiguration().setDebugModus(debugModus);
+		controller.notifyObservers();
+	}
+	
 	/**
 	 * Changes the dimension of the model, without scaling the SmartDevice
 	 * positions

+ 19 - 0
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/core/configuration/VisualizationConfiguration.java

@@ -51,6 +51,11 @@ public class VisualizationConfiguration {
 	 * Radius of the link. (deviceRadius+linkRadius)
 	 */
 	private int linkRadius;
+	
+	/**
+	 * True if debug information should be shown
+	 */
+	private boolean debugModus = false;
 
 	/**
 	 * Initialize the configuration
@@ -201,4 +206,18 @@ public class VisualizationConfiguration {
 		this.showLinkNameList = showLinkNameList;
 	}
 
+	/**
+	 * @return the debugModus
+	 */
+	public boolean isDebugModus() {
+		return debugModus;
+	}
+
+	/**
+	 * @param debugModus the debugModus to set
+	 */
+	public void setDebugModus(boolean debugModus) {
+		this.debugModus = debugModus;
+	}
+
 }

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

@@ -995,6 +995,8 @@ public class VisualizationInteractor implements MouseInputListener,
 				
 				
 			}
+			// Enable/Disable debug print out
+			itemDebug.setVisible(config.isDebugModus());
 			// Show the RightClickMenu
 			rightClickMenu.show(panel, mousePos.x, mousePos.y);
 			rightClickMenu.setEnabled(true);
@@ -1166,7 +1168,6 @@ public class VisualizationInteractor implements MouseInputListener,
 				controller.notifyObservers();
 			});
 		rightClickMenu.add(itemDebug);
-
 		this.panel.add(rightClickMenu);
 	}
 

+ 28 - 7
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/view/VisualizationPanel.java

@@ -124,7 +124,22 @@ public class VisualizationPanel extends JPanel implements Observer {
 		
 		paintToolTip(g);
 		
-		g.setColor(Color.RED);
+		paintDebugInformation(g);
+		
+		paintLinkLabels(g);
+	}
+
+	/**
+	 * Paints debug information like the current interaction mode
+	 * @param g Graphics which should be used
+	 */
+	private void paintDebugInformation(Graphics g) {
+		if(!config.isDebugModus())
+			return;
+		
+		/**
+		 * Visual representation of the interaction modus
+		 */
 		String modus;
 		switch (interactor.mode) {
 		case VisualizationInteractor.DRAG_CONNECTION:
@@ -149,11 +164,10 @@ public class VisualizationPanel extends JPanel implements Observer {
 			modus="Unknown";
 			break;
 		}
+		g.setColor(Color.RED);
 		g.drawString("Debug(Modus:"+modus+")", 0, 10);
 		if(interactor.controlDown)
 			g.drawString("Control down", 0, 20);
-		
-		paintLinkLabels(g);
 	}
 	
 	/**
@@ -164,12 +178,19 @@ public class VisualizationPanel extends JPanel implements Observer {
 		if(!config.isShowLinks()||network.getLinks().isEmpty()||!config.isShowLinkNameList())
 			return;
 		g.setColor(Color.BLACK);
-		g.drawString("Links:", 0, 35);
-		int i = 45;
+		/**
+		 * y-position of the next text Link line
+		 */
+		int yPositionLink = 10;
+		if(config.isDebugModus())
+			yPositionLink+=25;
+		g.drawString("Links:", 0, yPositionLink);
+		yPositionLink += 10;
 		for(Link l: network.getLinks()){
+			if(!config.getNetworkTreeSettingsController().isVisible(l))continue;
 			g.setColor(config.getLinkColors().getColorOfLink(l).getRight());
-			g.drawString(l.getName(), 0, i);
-			i+=10;
+			g.drawString(l.getName(), 0, yPositionLink);
+			yPositionLink+=10;
 		}
 	}
 

+ 11 - 0
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/view/popups/SettingsPopUp.java

@@ -172,6 +172,15 @@ public class SettingsPopUp extends JFrame implements Observer {
 				.setToolTipText("True if SmartDevice names should be shown");
 		pVisualisation.add(chckbxDeviceNames);
 
+		
+		
+		chckbxDebugMode = new JCheckBox("Show debug information");
+		chckbxDebugMode.setBounds(0, 240, 240, 25);
+		chckbxDebugMode.addActionListener(a -> config
+				.setDebugModus(chckbxDebugMode.isSelected()));
+		chckbxDebugMode
+				.setToolTipText("True if debug information should be shown");
+		pVisualisation.add(chckbxDebugMode);
 		/****************************************************************************
 		 * Show Further tabs for: Imports, Simulation, Graphics e.g.
 		 ****************************************************************************/
@@ -206,6 +215,7 @@ public class SettingsPopUp extends JFrame implements Observer {
 	private JCheckBox chckbxLinkToolTips;
 	private JCheckBox chckbxLinkNames;
 	private JCheckBox chckbxSmartdevices;
+	private JCheckBox chckbxDebugMode;
 
 	@Override
 	public void update(Observable o, Object arg) {
@@ -223,5 +233,6 @@ public class SettingsPopUp extends JFrame implements Observer {
 		chckbxSmartdevices.setSelected(config.isShowSmartDevices());
 		chckbxDeviceNames.setSelected(config.isShowSmartDeviceNames());
 		chckbxLinkNames.setSelected(config.isShowLinkNameList());
+		chckbxDebugMode.setSelected(config.isDebugModus());
 	}
 }