package me.legrange.panstamp.gui.model.tree; import java.util.Enumeration; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.MutableTreeNode; import javax.swing.tree.TreeNode; import me.legrange.panstamp.Network; /** * * @author gideon */ public class NetworkTreeModel extends DefaultTreeModel { public void addGateway(Network gw) { ((WorldNode) getRoot()).addChild(gw); } public void removeGateway(Network gw) { ((WorldNode) getRoot()).removeChild(gw); } private NetworkTreeModel(WorldNode wn) { super(wn); } synchronized void addToTree(NetworkTreeNode childNode, MutableTreeNode parentNode) { int pos = 0; Enumeration peers = parentNode.children(); while (peers.hasMoreElements()) { NetworkTreeNode peer = (NetworkTreeNode) peers.nextElement(); if (childNode.compareTo(peer) > 0) { pos ++; } else { break; } } insertNodeInto(childNode, parentNode, pos ); // insertNodeInto(childNode, parentNode, parentNode.getChildCount()); reload(parentNode); } @Override public synchronized void reload(TreeNode node) { super.reload(node); } public static NetworkTreeModel create() { WorldNode wn = new WorldNode(); NetworkTreeModel tm = new NetworkTreeModel(wn); wn.setModel(tm); return tm; } }