From: Mark W. <ri...@us...> - 2002-02-28 12:12:45
|
Update of /cvsroot/ipcop/IPCopJ/org/ipcop In directory usw-pr-cvs1:/tmp/cvs-serv14429/org/ipcop Added Files: IPCopJ.java IPCopJCustomTreeListener.java IPCopJMakeTree.java IPCopJRightPanel.java Log Message: First import, non-functional --- NEW FILE: IPCopJ.java --- //Import some stuff we are going to use import javax.swing.JApplet; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.JTree; import javax.swing.event.TreeSelectionEvent; import javax.swing.tree.TreeSelectionModel; import javax.swing.JSplitPane; import javax.swing.JScrollPane; import java.awt.Dimension; import java.awt.BorderLayout; import javax.swing.JButton; import javax.swing.JPanel; public class IPCopJ extends JApplet { //Do you want to not show lines? if so unset the following private boolean playWithLineStyle = false; //Line Style choose one of : Angled, Horizontal, or None (default) private String lineStyle = "Angled"; //Initialise the Applet GUI To keep this simple there is a createNodes method //that actually creates the tree structure. public void init() { //Now start the top of our tree here to use and to define root for use DefaultMutableTreeNode root = new DefaultMutableTreeNode("Ipcop Firewall Menu:"); //create the rest of the tree by calling the method //createNodes() in the MakeTree class; new IPCopJMakeTree().createNodes(root); //make the tree and make is single selection of nodes only final JTree tree = new JTree(root); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); //Now I need to implement a tree listener to detect node changes so //i can update the rightHand pane this is now seperated out //put this in a different java file to allow people to edit different parts tree.addTreeSelectionListener(new IPCopJCustomTreeListener()); //Just some eye candy stuff really if the initial variables are set to true if (playWithLineStyle) { tree.putClientProperty("JTree.lineStyle", lineStyle); } //Go about putting together the GUI JScrollPane leftHand = new JScrollPane(tree); //In a similar way we can use the tree listener result to //tell us which method to call :) //JScrollPane rightHand = new JScrollPane(new IPCopJRightPanel().examplePanel()); JSplitPane Overall = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); //Add stuff we made to the JSplitPane Overall.setLeftComponent(leftHand); //Set up some dimension stuff Overall.setPreferredSize(new Dimension(650, 400)); Dimension leftSize = new Dimension(250, 400); leftHand.setMinimumSize(leftSize); Overall.setDividerLocation(235); //Add everything to the Aplet structure getContentPane().add(Overall, BorderLayout.CENTER); } } --- NEW FILE: IPCopJCustomTreeListener.java --- //import stuff we need for the listener import javax.swing.event.TreeSelectionListener; import javax.swing.event.TreeSelectionEvent; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.JTree; public class IPCopJCustomTreeListener implements TreeSelectionListener { public void valueChanged(TreeSelectionEvent tse) { JTree tree = (JTree) tse.getSource(); DefaultMutableTreeNode node = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent(); if (node == null) return; //Input logic here to catch selection events on LHS this makes a call to action class //Which in turn returns to main IPCopJ class //This logic should be short and merely pass off to other methods for speed //and easy coding / multiple file processes String tonode = node.toString(); String nodepath = tree.getLeadSelectionPath().toString(); System.out.println("my path is" + " " + nodepath); if (node.isLeaf()) { //At the moment we output to terminal to show where we are //Note this may chuck if two nodes are the same in one section (Unlikely though) if (nodepath.equals("[Ipcop Firewall Menu:, VPN, VPN]")) { new IPCopJRightPanel().Selection(); } else if (nodepath.equals("[Ipcop Firewall Menu:, VPN, Help]")) { new IPCopJRightPanel().Selection(); } else { System.out.println("hmm if you get here there must be an error"); } } else { return; } } } --- NEW FILE: IPCopJMakeTree.java --- //import stuff we need import javax.swing.tree.DefaultMutableTreeNode; public class IPCopJMakeTree { public DefaultMutableTreeNode createNodes(DefaultMutableTreeNode root) { DefaultMutableTreeNode l1, l2, l3, l4, l5, l6; l1 = new DefaultMutableTreeNode("System"); l1.add(new DefaultMutableTreeNode("Configure")); l1.add(new DefaultMutableTreeNode("Hardware")); l1.add(new DefaultMutableTreeNode("Connections")); l1.add(new DefaultMutableTreeNode("Passwords")); l1.add(new DefaultMutableTreeNode("Updates")); l1.add(new DefaultMutableTreeNode("Shutdown")); l1.add(new DefaultMutableTreeNode("Help")); l2 = new DefaultMutableTreeNode("Status"); l2.add(new DefaultMutableTreeNode("Overview")); l2.add(new DefaultMutableTreeNode("Traffic Graphs")); l2.add(new DefaultMutableTreeNode("Connections")); l2.add(new DefaultMutableTreeNode("Help")); l3 = new DefaultMutableTreeNode("Services"); l3.add(new DefaultMutableTreeNode("Proxy")); l3.add(new DefaultMutableTreeNode("DHCP")); l3.add(new DefaultMutableTreeNode("SSH")); l3.add(new DefaultMutableTreeNode("DynamicDNS")); l3.add(new DefaultMutableTreeNode("Intrusion Detection")); l3.add(new DefaultMutableTreeNode("Help")); l4 = new DefaultMutableTreeNode("Firewall"); l4.add(new DefaultMutableTreeNode("Firewall")); l4.add(new DefaultMutableTreeNode("Help")); l5 = new DefaultMutableTreeNode("VPN"); l5.add(new DefaultMutableTreeNode("VPN")); l5.add(new DefaultMutableTreeNode("Help")); l6= new DefaultMutableTreeNode("Logging"); l6.add(new DefaultMutableTreeNode("System")); l6.add(new DefaultMutableTreeNode("Firewall")); l6.add(new DefaultMutableTreeNode("Intrusion Detection")); l6.add(new DefaultMutableTreeNode("Proxy")); l6.add(new DefaultMutableTreeNode("Help")); //Now add all the stuff we made to the root node root.add(l1); root.add(l2); root.add(l3); root.add(l4); root.add(l5); root.add(l6); return root; } } --- NEW FILE: IPCopJRightPanel.java --- //import stuff import javax.swing.JPanel; import javax.swing.JButton; //Create a TreeTable and pass this back to IPCopJ to then display use a defaultCellEditor to //change the contents of the right hand window depending on the node selected public class IPCopJRightPanel { public void Selection() { System.out.println("DO STUFF (Make a right table change)"); } } |