Package GUI

Source Code of GUI.TreePane$RoomTreeSelectionListener


package GUI;

import java.util.HashMap;

import javax.swing.ImageIcon;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeSelectionModel;

import Core.Configuration;
import Core.Room;

class TreePane extends JTabbedPane {
  private static final long serialVersionUID = 1L;

  private JScrollPane classTreeScrollPane;
  private DefaultMutableTreeNode classRoot;
  private DefaultTreeCellRenderer classRenderer; 
  DefaultTreeModel fileModel;
  DefaultTreeModel classModel;
  DefaultTreeModel intModel;
  private JTree classTree;
  private CalendarPane drawPane;

  public TreePane(CalendarPane drawPane) {
    initRoot();

    classModel = new DefaultTreeModel(classRoot);
    classTree = new JTree(classModel);
    classTree.getSelectionModel().setSelectionMode(
        TreeSelectionModel.SINGLE_TREE_SELECTION);
    classTree.addTreeSelectionListener(new RoomTreeSelectionListener());
    classRenderer = new DefaultTreeCellRenderer();
    ImageIcon classIcon = new ImageIcon("icon\\class_obj.gif");
    classRenderer.setClosedIcon(classIcon);
    classRenderer.setOpenIcon(classIcon);
    classRenderer.setLeafIcon(new ImageIcon("icon\\members.gif"));
    classTree.setCellRenderer(classRenderer);
    classTree.setShowsRootHandles(true);
    classTreeScrollPane = new JScrollPane(classTree);
    this.addTab("Room", new ImageIcon("icon\\class_hi.gif"),
        classTreeScrollPane, "Rooms imported");
    this.drawPane = drawPane;
  }

  /**
   * Initialize all the roots.
   */
  public void initRoot() {
    classRoot = new DefaultMutableTreeNode("Rooms");
  }

  public void addClassNode(Room room) {
    DefaultMutableTreeNode classNode = new DefaultMutableTreeNode(room);
    classRoot.add(classNode);
  }

  public DefaultMutableTreeNode getClassRoot() {
    return classRoot;
  }

  /**
   * Refresh all tree when load a new config file
   */
  public void refreshTree() {
    classRoot.removeAllChildren();
    HashMap<Integer, Room> rooms = Configuration.GetInstance().GetRooms();
    for(Room room: rooms.values()) {
      addClassNode(room);
    }
    classModel.reload();
  }

  public void updateClassTree() {
    Configuration.GetInstance().GetNumberOfRooms();
    classRoot.removeAllChildren();

    classModel.reload();
  }
 
  private class RoomTreeSelectionListener implements TreeSelectionListener {

    @Override
    public void valueChanged(TreeSelectionEvent arg0) {
      DefaultMutableTreeNode node = (DefaultMutableTreeNode) classTree.getLastSelectedPathComponent();
      if(node == null)
        return ;
      Object roomNode = node.getUserObject();
      if(node.isLeaf() && !classRoot.isLeaf()) {
        Room room = (Room) roomNode;
        drawPane.setSelectedRoom(room.GetId());
       
      }
     
    }
   
  }

}
TOP

Related Classes of GUI.TreePane$RoomTreeSelectionListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.