/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package grilvcu.view;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;

/**
 *
 * @author I'msimple
 */
public class DemoJTree {
    
    JFrame frame;
    JPanel jpnTree;
    JPanel jpnTree00;
    JSplitPane jsplit;
    DefaultMutableTreeNode root = null;
    JTree tree;
    JScrollPane jsc;
    
    

    public DemoJTree(String text) {
        
        initContainer();
        
        initComponent();
        
//        setAction();
        frame.setTitle(text);
        frame.setVisible(true);
    }

    private void setAction() {
        
        tree.addMouseListener(new MouseListener() {
            @Override
            public void mouseClicked(MouseEvent e) {
                //getLastSelectedPathComponent chính la node tren giao dien duoc chon
                Object obt = tree.getLastSelectedPathComponent();
                
                DefaultMutableTreeNode node = (DefaultMutableTreeNode) obt;
                JOptionPane.showMessageDialog(null,node.getUserObject());
                
            }

            @Override
            public void mousePressed(MouseEvent e) {
                throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
            }

            @Override
            public void mouseReleased(MouseEvent e) {
                throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
            }

            @Override
            public void mouseEntered(MouseEvent e) {
                throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
            }

            @Override
            public void mouseExited(MouseEvent e) {
                throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
            }
        });
        
        
    }
    private void initContainer() {
          frame = new JFrame();
        frame.setLayout(new BorderLayout());
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400,600);
        frame.setLocationRelativeTo(null);
    }

    private void initComponent() {
        //Tao jtree
        jpnTree = new JPanel(new BorderLayout());
        jpnTree00 = new JPanel();
        jpnTree.setPreferredSize(new Dimension(300, 0));
        
        
        //Tao danh sach cho jtree bang TreeNode , treeNode cha la root
        root = new DefaultMutableTreeNode("Boy TMU");
        //Tao treenote con cua root
        DefaultMutableTreeNode phtgv = new DefaultMutableTreeNode("Phong hop tac giang vien");
        root.add(phtgv);
        DefaultMutableTreeNode phkd = new DefaultMutableTreeNode("Phong kinh doanh");
        root.add(phkd);
        DefaultMutableTreeNode phkt = new DefaultMutableTreeNode("Phong ke toan");
        root.add(phkt);
        DefaultMutableTreeNode phctsv = new DefaultMutableTreeNode("Phong cong tac sinh vien");
        root.add(phctsv);
       //Tao cac nhan vien trong phong
       DefaultMutableTreeNode nv00 = new DefaultMutableTreeNode("Nguyen Van A");
       phtgv.add(nv00);
       
       
        
        
        
        
        tree = new JTree(root);
        tree.expandRow(0);
        
        
        jsc = new JScrollPane(tree,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        jpnTree.add(jsc,BorderLayout.CENTER);
        
        
        
        //Chung ta them jtree vao mot jsplit
        
        jsplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jpnTree,jpnTree00);
        jsplit.setOneTouchExpandable(true);
        
        
        frame.add(jsplit,BorderLayout.CENTER);
        
        
        
        
       
     }

    
   public static void main(String[] args) {
        new DemoJTree("JTREE");
    }
    
}
