Browse Source

Adds simple TreeView of the nework

Andreas T. Meyer-Berg 5 years ago
parent
commit
495c497727

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

@@ -2,13 +2,16 @@ package de.tu_darmstadt.tk.SmartHomeNetworkSim.view;
 
 import java.awt.FlowLayout;
 
+
 import javax.swing.JMenu;
 import javax.swing.JMenuBar;
 import javax.swing.JMenuItem;
 
+
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.Controller;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Model;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.view.popups.AboutPopUp;
+import de.tu_darmstadt.tk.SmartHomeNetworkSim.view.popups.NetworkTreeWindow;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.view.popups.SettingsPopUp;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.view.popups.SimulationConfigurator;
 
@@ -93,6 +96,14 @@ public class MenuBar extends JMenuBar {
 			settings.setVisible(true);
 		});
 		mnEdit.add(mntmOption);
+		
+		JMenuItem mntmTreeView = new JMenuItem("Tree View");
+		mntmTreeView.addActionListener(a -> {
+			NetworkTreeWindow net = new NetworkTreeWindow(controller);
+			net.setLocationRelativeTo(this.getParent());
+			net.setVisible(true);
+		});
+		mnEdit.add(mntmTreeView);
 	}
 	
 	/**

+ 43 - 0
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/view/popups/NetworkTreePanel.java

@@ -0,0 +1,43 @@
+package de.tu_darmstadt.tk.SmartHomeNetworkSim.view.popups;
+
+import javax.swing.JPanel;
+import javax.swing.JTree;
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.DefaultMutableTreeNode;
+
+import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.Controller;
+import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Connection;
+import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Link;
+
+import java.awt.Dimension;
+
+public class NetworkTreePanel extends JPanel {
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 6946547116132845220L;
+
+	public NetworkTreePanel(Controller c) {
+		
+		JTree tree = new JTree();
+		tree.setPreferredSize(new Dimension(400, 600));
+		tree.setMaximumSize(new Dimension(600, 1000));
+		DefaultMutableTreeNode root = new DefaultMutableTreeNode("Network");
+		for(Link l: c.getLinks()){
+			DefaultMutableTreeNode link = new DefaultMutableTreeNode(l.getName());
+			for(Connection con: c.getConnections()){
+				DefaultMutableTreeNode connection = new DefaultMutableTreeNode(con.getName());/*
+				for(Port p:con.getParticipants()){
+					DefaultMutableTreeNode port = new DefaultMutableTreeNode(p.getOwner().getName());
+					connection.add(port);
+				}*/
+				link.add(connection);
+			}
+			root.add(link);
+		}
+		DefaultTreeModel model = new DefaultTreeModel(root);
+		tree.setModel(model);
+		add(tree);
+	}
+
+}

+ 24 - 0
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/view/popups/NetworkTreeWindow.java

@@ -0,0 +1,24 @@
+package de.tu_darmstadt.tk.SmartHomeNetworkSim.view.popups;
+
+import java.awt.Rectangle;
+
+import javax.swing.JFrame;
+
+import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.Controller;
+
+public class NetworkTreeWindow extends JFrame {
+
+	
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -4052775416023427170L;
+
+	public NetworkTreeWindow(Controller c) {
+		setBounds(new Rectangle(0, 0, 460, 300));
+		setResizable(false);
+		this.setContentPane(new NetworkTreePanel(c));
+		
+		// TODO Auto-generated constructor stub
+	}
+}