Browse Source

Allows scrolling in the NetworkTreePanel and better view

Andreas T. Meyer-Berg 6 years ago
parent
commit
420335a64f

+ 15 - 7
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/view/popups/NetworkTreePanel.java

@@ -1,6 +1,7 @@
 package de.tu_darmstadt.tk.SmartHomeNetworkSim.view.popups;
 
-import javax.swing.JPanel;
+import javax.swing.JFrame;
+import javax.swing.JScrollPane;
 import javax.swing.JTree;
 import javax.swing.tree.DefaultTreeModel;
 import javax.swing.tree.DefaultMutableTreeNode;
@@ -11,21 +12,27 @@ import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Connection;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Link;
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Port;
 
-import java.awt.Dimension;
 
-public class NetworkTreePanel extends JPanel {
+public class NetworkTreePanel extends JScrollPane {
 	/**
 	 * 
 	 */
 	private static final long serialVersionUID = 6946547116132845220L;
 
-	public NetworkTreePanel(Controller c) {
+	/**
+	 * Parent Frame
+	 */
+	private JFrame parent;
+	public NetworkTreePanel(Controller c, JFrame parent) {
+		this.parent = parent;
 		NetworkController network = c.getNetworkController();
 		JTree tree = new JTree();
-		tree.setPreferredSize(new Dimension(400, 600));
-		tree.setMaximumSize(new Dimension(600, 1000));
+		//tree.setPreferredSize(parent.getSize());
+		//tree.setMaximumSize(new Dimension(600, 1000));
 		DefaultMutableTreeNode root = new DefaultMutableTreeNode("Network");
 		for(Link l: network.getLinks()){
+			if(l == null)
+				System.err.println("Warning: link = null in NetworkTreePanel");
 			DefaultMutableTreeNode link = new DefaultMutableTreeNode(l.getName());
 			for(Connection con: network.getConnections()){
 				if(!l.getConnections().contains(con))continue;
@@ -41,7 +48,8 @@ public class NetworkTreePanel extends JPanel {
 		}
 		DefaultTreeModel model = new DefaultTreeModel(root);
 		tree.setModel(model);
-		add(tree);
+		this.setViewportView(tree);
+		this.setPreferredSize(this.parent.getSize());
 	}
 
 }

+ 14 - 4
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/view/popups/NetworkTreeWindow.java

@@ -6,17 +6,27 @@ import javax.swing.JFrame;
 
 import de.tu_darmstadt.tk.SmartHomeNetworkSim.control.Controller;
 
+
+/**
+ * Frame which contains the Network Tree
+ *
+ * @author Andreas T. Meyer-Berg
+ */
 public class NetworkTreeWindow extends JFrame {
 
 	
 	/**
-	 * 
+	 * Serial Version number
 	 */
 	private static final long serialVersionUID = -4052775416023427170L;
 
-	public NetworkTreeWindow(Controller c) {
+	/**
+	 * Frame which contains the Network Tree
+	 * @param controller controller which should be used to get & edit the Model
+	 */
+	public NetworkTreeWindow(Controller controller) {
 		setBounds(new Rectangle(0, 0, 800, 600));
-		setResizable(false);
-		this.setContentPane(new NetworkTreePanel(c));
+		setResizable(true);
+		this.setContentPane(new NetworkTreePanel(controller,this));
 	}
 }