erp_frame.java Source code

Java tutorial

Introduction

Here is the source code for erp_frame.java

Source

import java.awt.CardLayout;
import java.awt.Toolkit;
import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.LinkedList;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

/*
 * 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.
 */

/**
 *
 * @author 
 */
public class erp_frame extends JFrame {
   // ?
   private CardLayout nowLayout;
   private EmptyPanel empty;
   private Employee employee;
   private Attendance attendance;
   private PayRoll payRoll;
   private Achievement achievement;
   private Material material;
   // 
   private Product product;
   private Member member;
   // 
   private OrderList orderlist;
   private OrderItem orderitem;
   private Issue issue;
   private Vendor vendor;
   // 
   private Admin admin = new Admin();
   private Asset asset = new Asset();
   private Billboard billboard = new Billboard();
   private PayableList payableList = new PayableList();
   private Purchase purchase = new Purchase();
   private Department department = new Department();

   private myTableModel tableModel;
   public LinkedList<String[]> data;
   String[] fields;
   // ?
   String[] employeeFields = { "", "??", "?", "", "", "", "?", "", "" };
   String[] attendanceFields = { "", "", "??", "??", "?", "", "" };
   String[] achivevmentFields = { "", "", "", "", "" };
   String[] payRollFields = { "", "", "" };
   String[] materialFields = { "", "??", "?", "", "" };
   // 
   String[] memberFields = { "", "", "??", "", "", "?", "" };
   String[] productFields = { "?", "???", "", "", "" };

   // 
   String[] issueFields = { "", "", "?", "" };
   String[] vendorFields = { "", "??", "", "?", "", "?", "?", "" };
   String[] orderListFields = { "", "", "", "", "???", "" };
   String[] orderItemFields = { "", "?", "?", "" };

   // Veronica edit
   protected String logId = null;
   protected String[] adminFields = { "", "", "", "", "", "", "?", "", "",
         "", "?", "", "", "", "", "?", "?", "?", "" };
   protected String[] purchaseFields = { "No.", "", "", "", "", "?", "", "", "" };
   protected String[] payableFields = { "", "", "", "", "?", "?", "", "", "?",
         "?", "?Y/N", "" };
   protected String[] assetFields = { "", "??", "?", "?", "", "", "?", "" };
   protected String[] billboardFields = { "", "", "", "", "", "" };
   protected String[] departFields = { "ID", "??" };

   String path = null;

   public erp_frame() {
      
      initComponents();
      init();
      // ?
      empty = new EmptyPanel();
      employee = new Employee();
      attendance = new Attendance();
      payRoll = new PayRoll();
      achievement = new Achievement();
      material = new Material();
      // 
      product = new Product();
      member = new Member();
      // 
      orderlist = new OrderList();
      orderitem = new OrderItem();
      issue = new Issue();
      vendor = new Vendor();
      // Veronica edit
      admin = new Admin();
      asset = new Asset();
      billboard = new Billboard();
      payableList = new PayableList();
      purchase = new Purchase();
      department = new Department();

      // ?
      panel_dataInput.add("empty", empty);
      panel_dataInput.add("employee", employee);
      panel_dataInput.add("attendance", attendance);
      panel_dataInput.add("payRoll", payRoll);
      panel_dataInput.add("achievement", achievement);
      panel_dataInput.add("material", material);
      // 
      panel_dataInput.add("product", product);
      panel_dataInput.add("member", member);
      // 
      panel_dataInput.add("orderList", orderlist);
      panel_dataInput.add("orderItem", orderitem);
      panel_dataInput.add("issue", issue);
      panel_dataInput.add("vendor", vendor);
      // Veronica edit
      panel_dataInput.add(admin, "admin");
      panel_dataInput.add(asset, "asset");
      panel_dataInput.add(billboard, "billboard");
      panel_dataInput.add(payableList, "payableList");
      panel_dataInput.add(purchase, "purchase");
      panel_dataInput.add(department, "department");

      // setExtendedState(JFrame.MAXIMIZED_BOTH);
      data = new LinkedList<>();

   }

   private void init() {
      setResizable(false);
      setLocationRelativeTo(null);// 

      setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("image/drink.png")));
      setTitle("??? : ? ?? : OOO  : A123456789");

      DefaultTableCellRenderer tableAlign = (DefaultTableCellRenderer) table_firmData.getTableHeader()
            .getDefaultRenderer(); // ?
      tableAlign.setHorizontalAlignment(SwingConstants.CENTER);

      nowLayout = new CardLayout();
      panel_dataInput.setLayout(nowLayout);
   }

   @SuppressWarnings("unchecked")
   // <editor-fold defaultstate="collapsed" desc="Generated
   // Code">//GEN-BEGIN:initComponents
   private void initComponents() {

      panel_folder = new javax.swing.JPanel();
      jScrollPane1 = new javax.swing.JScrollPane();
      treeFolder = new javax.swing.JTree();
      panel_dataInput = new javax.swing.JPanel();
      panel_dataShow = new javax.swing.JPanel();
      jScrollPane3 = new javax.swing.JScrollPane();
      table_firmData = new javax.swing.JTable();
      text_search = new javax.swing.JTextField();
      label_search = new javax.swing.JLabel();
      JToolBar = new javax.swing.JToolBar();
      btnFirstData = new javax.swing.JButton();
      btnPreData = new javax.swing.JButton();
      btnNextData = new javax.swing.JButton();
      btnInsert = new javax.swing.JButton();
      btnModify = new javax.swing.JButton();
      btnClear = new javax.swing.JButton();
      btnExport = new javax.swing.JButton();
      btnDelete = new javax.swing.JButton();
      btnLogout = new javax.swing.JButton();

      setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
      setMinimumSize(new java.awt.Dimension(1280, 1024));
      setResizable(false);
      getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

      panel_folder.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));

      treeFolder.setFont(new java.awt.Font("", 0, 18)); // NOI18N
      // create tree with root, category, sheet
      javax.swing.tree.DefaultMutableTreeNode ERP = new javax.swing.tree.DefaultMutableTreeNode("ERP");

      javax.swing.tree.DefaultMutableTreeNode DB_hr = new javax.swing.tree.DefaultMutableTreeNode("");
      javax.swing.tree.DefaultMutableTreeNode employee = new javax.swing.tree.DefaultMutableTreeNode("");
      DB_hr.add(employee);
      javax.swing.tree.DefaultMutableTreeNode achievement = new javax.swing.tree.DefaultMutableTreeNode("");
      DB_hr.add(achievement);
      javax.swing.tree.DefaultMutableTreeNode attendance = new javax.swing.tree.DefaultMutableTreeNode("");
      DB_hr.add(attendance);
      javax.swing.tree.DefaultMutableTreeNode payRoll = new javax.swing.tree.DefaultMutableTreeNode("");
      DB_hr.add(payRoll);
      ERP.add(DB_hr);

      javax.swing.tree.DefaultMutableTreeNode DB_Purchase = new javax.swing.tree.DefaultMutableTreeNode("");
      javax.swing.tree.DefaultMutableTreeNode purchaseSheet = new javax.swing.tree.DefaultMutableTreeNode("");
      DB_Purchase.add(purchaseSheet);
      ERP.add(DB_Purchase);

      javax.swing.tree.DefaultMutableTreeNode DB_Product = new javax.swing.tree.DefaultMutableTreeNode("?");
      javax.swing.tree.DefaultMutableTreeNode productSheet = new javax.swing.tree.DefaultMutableTreeNode("?");
      DB_Product.add(productSheet);
      ERP.add(DB_Product);

      javax.swing.tree.DefaultMutableTreeNode DB_Material = new javax.swing.tree.DefaultMutableTreeNode("");
      javax.swing.tree.DefaultMutableTreeNode MaterialSheet = new javax.swing.tree.DefaultMutableTreeNode("");
      DB_Material.add(MaterialSheet);
      ERP.add(DB_Material);

      javax.swing.tree.DefaultMutableTreeNode DB_Sales = new javax.swing.tree.DefaultMutableTreeNode("");
      javax.swing.tree.DefaultMutableTreeNode orderList = new javax.swing.tree.DefaultMutableTreeNode("");
      javax.swing.tree.DefaultMutableTreeNode orderItem = new javax.swing.tree.DefaultMutableTreeNode("");
      javax.swing.tree.DefaultMutableTreeNode issue = new javax.swing.tree.DefaultMutableTreeNode("");
      javax.swing.tree.DefaultMutableTreeNode vendor = new javax.swing.tree.DefaultMutableTreeNode("");
      DB_Sales.add(orderList);
      DB_Sales.add(orderItem);
      DB_Sales.add(issue);
      DB_Sales.add(vendor);
      ERP.add(DB_Sales);

      javax.swing.tree.DefaultMutableTreeNode DB_Account = new javax.swing.tree.DefaultMutableTreeNode("");
      javax.swing.tree.DefaultMutableTreeNode payableList = new javax.swing.tree.DefaultMutableTreeNode("?");
      javax.swing.tree.DefaultMutableTreeNode Asset = new javax.swing.tree.DefaultMutableTreeNode("?");
      DB_Account.add(payableList);
      DB_Account.add(Asset);
      ERP.add(DB_Account);

      javax.swing.tree.DefaultMutableTreeNode DB_Customer = new javax.swing.tree.DefaultMutableTreeNode("");
      javax.swing.tree.DefaultMutableTreeNode CustomerList = new javax.swing.tree.DefaultMutableTreeNode("");
      DB_Customer.add(CustomerList);
      ERP.add(DB_Customer);

      javax.swing.tree.DefaultMutableTreeNode DB_System = new javax.swing.tree.DefaultMutableTreeNode("?");
      javax.swing.tree.DefaultMutableTreeNode admin = new javax.swing.tree.DefaultMutableTreeNode("?");
      javax.swing.tree.DefaultMutableTreeNode billboard = new javax.swing.tree.DefaultMutableTreeNode("?");
      javax.swing.tree.DefaultMutableTreeNode department = new javax.swing.tree.DefaultMutableTreeNode("?");
      DB_System.add(admin);
      DB_System.add(billboard);
      DB_System.add(department);
      ERP.add(DB_System);
      treeFolder.setModel(new javax.swing.tree.DefaultTreeModel(ERP));
      treeFolder.setRowHeight(30);
      treeFolder.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
         public void valueChanged(javax.swing.event.TreeSelectionEvent evt) {
            treeFolderValueChanged(evt);
         }
      });
      jScrollPane1.setViewportView(treeFolder);

      javax.swing.GroupLayout panel_folderLayout = new javax.swing.GroupLayout(panel_folder);
      panel_folder.setLayout(panel_folderLayout);
      panel_folderLayout
            .setHorizontalGroup(panel_folderLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                  .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 294, Short.MAX_VALUE));
      panel_folderLayout
            .setVerticalGroup(panel_folderLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                  .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 1018, Short.MAX_VALUE));

      getContentPane().add(panel_folder, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 300, 1024));

      panel_dataInput.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
      panel_dataInput.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
      getContentPane().add(panel_dataInput, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 50, 980, 470));

      panel_dataShow.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
      panel_dataShow.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

      table_firmData.setFont(new java.awt.Font("", 0, 18)); // NOI18N
      table_firmData.setModel(new javax.swing.table.DefaultTableModel(new Object[][] {

      }, new String[] { "??", "?", "?", "", "?", "?", "" }) {
         boolean[] canEdit = new boolean[] { false, false, false, false, false, false, false };

         public boolean isCellEditable(int rowIndex, int columnIndex) {
            return canEdit[columnIndex];
         }
      });
      table_firmData.addMouseListener(new java.awt.event.MouseAdapter() {
         public void mouseClicked(java.awt.event.MouseEvent evt) {
            table_firmDataMouseClicked(evt);
         }
      });

      jScrollPane3.setViewportView(table_firmData);

      panel_dataShow.add(jScrollPane3, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 40, 980, 460));
      text_search.addKeyListener(new java.awt.event.KeyAdapter() {
         public void keyReleased(java.awt.event.KeyEvent evt) {
            text_searchKeyReleased(evt);
         }
      });
      panel_dataShow.add(text_search, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 10, 150, 25));

      label_search.setFont(new java.awt.Font("", 0, 18)); // NOI18N
      label_search.setLabelFor(text_search);
      label_search.setText("? : ");
      panel_dataShow.add(label_search, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 10, -1, 20));

      getContentPane().add(panel_dataShow, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 520, 980, 500));

      JToolBar.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
      JToolBar.setRollover(true);
      JToolBar.setAlignmentY(0.5F);
      JToolBar.setMaximumSize(new java.awt.Dimension(80, 50));
      JToolBar.setMinimumSize(new java.awt.Dimension(80, 50));
      JToolBar.setPreferredSize(new java.awt.Dimension(80, 50));

      btnFirstData.setFont(new java.awt.Font("", 0, 12)); // NOI18N
      btnFirstData.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/left-arrow-2.png"))); // NOI18N
      btnFirstData.setToolTipText("");
      btnFirstData.setPreferredSize(new java.awt.Dimension(80, 50));
      btnFirstData.addMouseListener(new java.awt.event.MouseAdapter() {
         public void mouseClicked(java.awt.event.MouseEvent evt) {
            btnFirstDataMouseClicked(evt);
         }
      });
      JToolBar.add(btnFirstData);

      btnPreData.setFont(new java.awt.Font("", 0, 12)); // NOI18N
      btnPreData.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/left-arrow.png"))); // NOI18N
      btnPreData.setToolTipText("");
      btnPreData.setPreferredSize(new java.awt.Dimension(80, 50));
      btnPreData.addMouseListener(new java.awt.event.MouseAdapter() {
         public void mouseClicked(java.awt.event.MouseEvent evt) {
            btnPreDataMouseClicked(evt);
         }
      });
      JToolBar.add(btnPreData);

      btnNextData.setFont(new java.awt.Font("", 0, 12)); // NOI18N
      btnNextData.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/right-arrow.png"))); // NOI18N
      btnNextData.setToolTipText("");
      btnNextData.setPreferredSize(new java.awt.Dimension(80, 50));
      btnNextData.addMouseListener(new java.awt.event.MouseAdapter() {
         public void mouseClicked(java.awt.event.MouseEvent evt) {
            btnNextDataMouseClicked(evt);
         }
      });
      JToolBar.add(btnNextData);

      btnInsert.setFont(new java.awt.Font("", 0, 12)); // NOI18N
      btnInsert.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/insert.png"))); // NOI18N
      btnInsert.setToolTipText("");
      btnInsert.setPreferredSize(new java.awt.Dimension(80, 50));
      btnInsert.addMouseListener(new java.awt.event.MouseAdapter() {
         public void mouseClicked(java.awt.event.MouseEvent evt) {
            btnInsertMouseClicked(evt);
         }
      });
      JToolBar.add(btnInsert);

      btnModify.setFont(new java.awt.Font("", 0, 12)); // NOI18N
      btnModify.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/edit.png"))); // NOI18N
      btnModify.setToolTipText("");
      btnModify.setPreferredSize(new java.awt.Dimension(80, 50));
      btnModify.addMouseListener(new java.awt.event.MouseAdapter() {
         public void mouseClicked(java.awt.event.MouseEvent evt) {
            btnModifyMouseClicked(evt);
         }
      });
      JToolBar.add(btnModify);
      btnModify.getAccessibleContext().setAccessibleDescription("");

      btnClear.setFont(new java.awt.Font("", 0, 12)); // NOI18N
      btnClear.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/clear.png"))); // NOI18N
      btnClear.setToolTipText("");
      btnClear.setPreferredSize(new java.awt.Dimension(80, 50));
      btnClear.addMouseListener(new java.awt.event.MouseAdapter() {
         public void mouseClicked(java.awt.event.MouseEvent evt) {
            btnClearMouseClicked(evt);
         }
      });
      JToolBar.add(btnClear);

      btnExport.setFont(new java.awt.Font("", 0, 12)); // NOI18N
      btnExport.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/export.png"))); // NOI18N
      btnExport.setToolTipText("");
      btnExport.setPreferredSize(new java.awt.Dimension(80, 50));
      btnExport.addMouseListener(new java.awt.event.MouseAdapter() {
         public void mouseClicked(java.awt.event.MouseEvent evt) {
            btnExportMouseClicked(evt);
         }
      });
      JToolBar.add(btnExport);

      btnDelete.setFont(new java.awt.Font("", 0, 12)); // NOI18N
      btnDelete.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/delete.png"))); // NOI18N
      btnDelete.setToolTipText("");
      btnDelete.setPreferredSize(new java.awt.Dimension(80, 50));
      btnDelete.addMouseListener(new java.awt.event.MouseAdapter() {
         public void mouseClicked(java.awt.event.MouseEvent evt) {
            btnDeleteMouseClicked(evt);
         }
      });
      JToolBar.add(btnDelete);

      btnLogout.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/Logout.png"))); // NOI18N
      btnLogout.setToolTipText("");
      btnLogout.setFocusable(false);
      btnLogout.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
      btnLogout.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
      btnLogout.addMouseListener(new java.awt.event.MouseAdapter() {
         public void mouseClicked(java.awt.event.MouseEvent evt) {
            btnLogoutMouseClicked(evt);
         }
      });
      JToolBar.add(btnLogout);

      getContentPane().add(JToolBar, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 0, 980, 50));

      pack();
      setLocationRelativeTo(null);
   }

   class myTableModel extends DefaultTableModel {
      public myTableModel(String[] fields) {
         super(fields, 0);
      }

      @Override
      public int getRowCount() {
         return data.size();
      }

      @Override
      public int getColumnCount() {
         int length = 0;
         if (path != null) {
            switch (path) {

            // ?
            case "":
               length = employeeFields.length;
               break;
            case "":
               length = attendanceFields.length;
               break;
            case "":
               length = achivevmentFields.length;
               break;
            case "":
               length = payRollFields.length;
               break;
            case "":
               length = materialFields.length;
               break;

            // 
            case "?":
               length = productFields.length;
               break;
            case "":
               length = memberFields.length;
               break;
            // 
            case "":
               length = orderListFields.length;
               break;
            case "":
               length = orderItemFields.length;
               break;
            case "":
               length = issueFields.length;
               break;
            case "":
               length = vendorFields.length;
               break;
            // V
            case "?":
               length = adminFields.length;
               break;
            case "":
               length = purchaseFields.length;
               break;
            case "?":
               length = payableFields.length;
               break;
            case "?":
               length = assetFields.length;
               break;
            case "?":
               length = billboardFields.length;
               break;
            case "?":
               length = departFields.length;
               break;

            }
         }
         return length;
      }

      @Override
      public void fireTableCellUpdated(int row, int column) {
         super.fireTableCellUpdated(row, column);
         System.out.println("fireTableCell");
      }

      @Override
      public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
         System.out.println(rowIndex + "x" + columnIndex + "x" + aValue);
      }

      @Override
      public Object getValueAt(int rowIndex, int columnIndex) {
         return data.get(rowIndex)[columnIndex];
      }

      @Override
      public boolean isCellEditable(int row, int col) {
         return false;

      }
   }

   // If user not select a table will alert
   // If user select a table but not click a data column will display first
   // data in input area
   private void btnFirstDataMouseClicked(java.awt.event.MouseEvent evt) {
      if (path != null) {
         switch (path) {

         // ?
         case "":
            employee.setInputValue(tableSelData(0));
            table_firmData.setRowSelectionInterval(0, 0);
            break;
         case "":
            attendance.setInputValue(tableSelData(0));
            table_firmData.setRowSelectionInterval(0, 0);
            break;
         case "":
            achievement.setInputValue(tableSelData(0));
            table_firmData.setRowSelectionInterval(0, 0);
            break;
         case "":
            payRoll.setInputValue(tableSelData(0));
            table_firmData.setRowSelectionInterval(0, 0);
            break;
         case "":
            material.setInputValue(tableSelData(0));
            table_firmData.setRowSelectionInterval(0, 0);
            break;

         // 
         case "?":
            product.setInputValue(tableSelData(0));
            table_firmData.setRowSelectionInterval(0, 0);
            break;
         case "":
            member.setInputValue(tableSelData(0));
            table_firmData.setRowSelectionInterval(0, 0);
            break;
         // 
         case "":
            orderlist.setInputValue(tableSelData(0));
            table_firmData.setRowSelectionInterval(0, 0);
            break;
         case "":
            orderitem.setInputValue(tableSelData(0));
            table_firmData.setRowSelectionInterval(0, 0);
            break;
         case "":
            issue.setInputValue(tableSelData(0));
            table_firmData.setRowSelectionInterval(0, 0);
            break;
         case "":
            vendor.setInputValue(tableSelData(0));
            table_firmData.setRowSelectionInterval(0, 0);
            break;

         // V

         case "?":
            admin.setInputValue(tableSelData(0));
            table_firmData.setRowSelectionInterval(0, 0);
            break;
         case "":
            purchase.setInputValue(tableSelData(0));
            table_firmData.setRowSelectionInterval(0, 0);
            break;
         case "?":
            payableList.setInputValue(tableSelData(0));
            table_firmData.setRowSelectionInterval(0, 0);
            break;
         case "?":
            asset.setInputValue(tableSelData(0));
            table_firmData.setRowSelectionInterval(0, 0);
            break;
         case "?":
            billboard.setInputValue(tableSelData(0));
            table_firmData.setRowSelectionInterval(0, 0);
            break;
         case "?":
            department.setInputValue(tableSelData(0));
            table_firmData.setRowSelectionInterval(0, 0);
            break;

         default:
            JOptionPane.showMessageDialog(JToolBar, "?");
            break;
         }
      } else {
         JOptionPane.showMessageDialog(JToolBar, "?");
      }

   }

   // If user not select a table will alert
   // If user select a table but not click a data column will display first
   // data in input area
   private void btnPreDataMouseClicked(java.awt.event.MouseEvent evt) {
      if (path != null) {
         switch (path) {
         case "":
            if (table_firmData.getSelectedRow() - 1 >= 0) {
               employee.setInputValue(tableSelData(table_firmData.getSelectedRow() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() - 1,
                     table_firmData.getSelectedRow() - 1);
            } else {
               employee.setInputValue(tableSelData(0));
               table_firmData.setRowSelectionInterval(0, 0);
            }
            break;
         case "":
            if (table_firmData.getSelectedRow() - 1 >= 0) {
               attendance.setInputValue(tableSelData(table_firmData.getSelectedRow() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() - 1,
                     table_firmData.getSelectedRow() - 1);
            } else {
               attendance.setInputValue(tableSelData(0));
               table_firmData.setRowSelectionInterval(0, 0);
            }
            break;
         case "":
            if (table_firmData.getSelectedRow() - 1 >= 0) {
               achievement.setInputValue(tableSelData(table_firmData.getSelectedRow() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() - 1,
                     table_firmData.getSelectedRow() - 1);
            } else {
               achievement.setInputValue(tableSelData(0));
               table_firmData.setRowSelectionInterval(0, 0);
            }
            break;
         case "":
            if (table_firmData.getSelectedRow() - 1 >= 0) {
               payRoll.setInputValue(tableSelData(table_firmData.getSelectedRow() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() - 1,
                     table_firmData.getSelectedRow() - 1);
            } else {
               payRoll.setInputValue(tableSelData(0));
               table_firmData.setRowSelectionInterval(0, 0);
            }
            break;
         case "":
            if (table_firmData.getSelectedRow() - 1 >= 0) {
               material.setInputValue(tableSelData(table_firmData.getSelectedRow() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() - 1,
                     table_firmData.getSelectedRow() - 1);
            } else {
               material.setInputValue(tableSelData(0));
               table_firmData.setRowSelectionInterval(0, 0);
            }
            break;
         case "?":
            if (table_firmData.getSelectedRow() - 1 >= 0) {
               product.setInputValue(tableSelData(table_firmData.getSelectedRow() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() - 1,
                     table_firmData.getSelectedRow() - 1);
            } else {
               product.setInputValue(tableSelData(0));
               table_firmData.setRowSelectionInterval(0, 0);
            }
            break;
         case "":
            if (table_firmData.getSelectedRow() - 1 >= 0) {
               member.setInputValue(tableSelData(table_firmData.getSelectedRow() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() - 1,
                     table_firmData.getSelectedRow() - 1);
            } else {
               member.setInputValue(tableSelData(0));
               table_firmData.setRowSelectionInterval(0, 0);
            }
            break;

         // hsu

         case "":
            if (table_firmData.getSelectedRow() - 1 >= 0) {
               orderlist.setInputValue(tableSelData(table_firmData.getSelectedRow() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() - 1,
                     table_firmData.getSelectedRow() - 1);
            } else {
               orderlist.setInputValue(tableSelData(0));
               table_firmData.setRowSelectionInterval(0, 0);
            }
            break;
         case "":
            if (table_firmData.getSelectedRow() - 1 >= 0) {
               orderitem.setInputValue(tableSelData(table_firmData.getSelectedRow() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() - 1,
                     table_firmData.getSelectedRow() - 1);
            } else {
               orderitem.setInputValue(tableSelData(0));
               table_firmData.setRowSelectionInterval(0, 0);
            }
            break;
         case "":
            if (table_firmData.getSelectedRow() - 1 >= 0) {
               issue.setInputValue(tableSelData(table_firmData.getSelectedRow() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() - 1,
                     table_firmData.getSelectedRow() - 1);
            } else {
               issue.setInputValue(tableSelData(0));
               table_firmData.setRowSelectionInterval(0, 0);
            }
            break;
         case "":
            if (table_firmData.getSelectedRow() - 1 >= 0) {
               vendor.setInputValue(tableSelData(table_firmData.getSelectedRow() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() - 1,
                     table_firmData.getSelectedRow() - 1);
            } else {
               vendor.setInputValue(tableSelData(0));
               table_firmData.setRowSelectionInterval(0, 0);
            }
            break;

         // V

         case "?":
            if (table_firmData.getSelectedRow() - 1 >= 0) {
               admin.setInputValue(tableSelData(table_firmData.getSelectedRow() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() - 1,
                     table_firmData.getSelectedRow() - 1);
            } else {
               admin.setInputValue(tableSelData(0));
               table_firmData.setRowSelectionInterval(0, 0);
            }
            break;
         case "":
            if (table_firmData.getSelectedRow() - 1 >= 0) {
               purchase.setInputValue(tableSelData(table_firmData.getSelectedRow() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() - 1,
                     table_firmData.getSelectedRow() - 1);
            } else {
               purchase.setInputValue(tableSelData(0));
               table_firmData.setRowSelectionInterval(0, 0);
            }
            break;
         case "?":
            if (table_firmData.getSelectedRow() - 1 >= 0) {
               payableList.setInputValue(tableSelData(table_firmData.getSelectedRow() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() - 1,
                     table_firmData.getSelectedRow() - 1);
            } else {
               payableList.setInputValue(tableSelData(0));
               table_firmData.setRowSelectionInterval(0, 0);
            }
            break;
         case "?":
            if (table_firmData.getSelectedRow() - 1 >= 0) {
               asset.setInputValue(tableSelData(table_firmData.getSelectedRow() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() - 1,
                     table_firmData.getSelectedRow() - 1);
            } else {
               asset.setInputValue(tableSelData(0));
               table_firmData.setRowSelectionInterval(0, 0);
            }
            break;
         case "?":
            if (table_firmData.getSelectedRow() - 1 >= 0) {
               billboard.setInputValue(tableSelData(table_firmData.getSelectedRow() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() - 1,
                     table_firmData.getSelectedRow() - 1);
            } else {
               billboard.setInputValue(tableSelData(0));
               table_firmData.setRowSelectionInterval(0, 0);
            }
            break;
         case "?":
            if (table_firmData.getSelectedRow() - 1 >= 0) {
               department.setInputValue(tableSelData(table_firmData.getSelectedRow() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() - 1,
                     table_firmData.getSelectedRow() - 1);
            } else {
               department.setInputValue(tableSelData(0));
               table_firmData.setRowSelectionInterval(0, 0);
            }
            break;

         default:
            JOptionPane.showMessageDialog(JToolBar, "?");
            break;
         }

      } else {
         JOptionPane.showMessageDialog(JToolBar, "?");
      }

   }

   // If user not select a table will alert
   // If user select a table but not click a data column will display last data
   // in input area
   private void btnNextDataMouseClicked(java.awt.event.MouseEvent evt) {
      if (path != null) {
         switch (path) {
         case "":
            if (table_firmData.getSelectedRow() >= 0
                  && table_firmData.getRowCount() - table_firmData.getSelectedRow() > 1) {
               employee.setInputValue(tableSelData(table_firmData.getSelectedRow() + 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() + 1,
                     table_firmData.getSelectedRow() + 1);
            } else {
               employee.setInputValue(tableSelData(table_firmData.getRowCount() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getRowCount() - 1,
                     table_firmData.getRowCount() - 1);
            }
            break;
         case "":
            if (table_firmData.getSelectedRow() >= 0
                  && table_firmData.getRowCount() - table_firmData.getSelectedRow() > 1) {
               attendance.setInputValue(tableSelData(table_firmData.getSelectedRow() + 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() + 1,
                     table_firmData.getSelectedRow() + 1);
            } else {
               attendance.setInputValue(tableSelData(table_firmData.getRowCount() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getRowCount() - 1,
                     table_firmData.getRowCount() - 1);
            }
            break;
         case "":
            if (table_firmData.getSelectedRow() >= 0
                  && table_firmData.getRowCount() - table_firmData.getSelectedRow() > 1) {
               achievement.setInputValue(tableSelData(table_firmData.getSelectedRow() + 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() + 1,
                     table_firmData.getSelectedRow() + 1);
            } else {
               achievement.setInputValue(tableSelData(table_firmData.getRowCount() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getRowCount() - 1,
                     table_firmData.getRowCount() - 1);
            }
            break;
         case "":
            if (table_firmData.getSelectedRow() >= 0
                  && table_firmData.getRowCount() - table_firmData.getSelectedRow() > 1) {
               payRoll.setInputValue(tableSelData(table_firmData.getSelectedRow() + 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() + 1,
                     table_firmData.getSelectedRow() + 1);
            } else {
               payRoll.setInputValue(tableSelData(table_firmData.getRowCount() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getRowCount() - 1,
                     table_firmData.getRowCount() - 1);
            }
            break;
         case "":
            if (table_firmData.getSelectedRow() >= 0
                  && table_firmData.getRowCount() - table_firmData.getSelectedRow() > 1) {
               material.setInputValue(tableSelData(table_firmData.getSelectedRow() + 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() + 1,
                     table_firmData.getSelectedRow() + 1);
            } else {
               material.setInputValue(tableSelData(table_firmData.getRowCount() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getRowCount() - 1,
                     table_firmData.getRowCount() - 1);
            }
            break;
         case "?":
            if (table_firmData.getSelectedRow() >= 0
                  && table_firmData.getRowCount() - table_firmData.getSelectedRow() > 1) {
               product.setInputValue(tableSelData(table_firmData.getSelectedRow() + 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() + 1,
                     table_firmData.getSelectedRow() + 1);
            } else {
               product.setInputValue(tableSelData(table_firmData.getRowCount() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getRowCount() - 1,
                     table_firmData.getRowCount() - 1);
            }
            break;
         case "":
            if (table_firmData.getSelectedRow() >= 0
                  && table_firmData.getRowCount() - table_firmData.getSelectedRow() > 1) {
               member.setInputValue(tableSelData(table_firmData.getSelectedRow() + 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() + 1,
                     table_firmData.getSelectedRow() + 1);
            } else {
               member.setInputValue(tableSelData(table_firmData.getRowCount() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getRowCount() - 1,
                     table_firmData.getRowCount() - 1);
            }
            break;

         // Hsu

         case "":
            if (table_firmData.getSelectedRow() >= 0
                  && table_firmData.getRowCount() - table_firmData.getSelectedRow() > 1) {
               orderlist.setInputValue(tableSelData(table_firmData.getSelectedRow() + 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() + 1,
                     table_firmData.getSelectedRow() + 1);
            } else {
               orderlist.setInputValue(tableSelData(table_firmData.getRowCount() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getRowCount() - 1,
                     table_firmData.getRowCount() - 1);
            }
            break;
         case "":
            if (table_firmData.getSelectedRow() >= 0
                  && table_firmData.getRowCount() - table_firmData.getSelectedRow() > 1) {
               orderitem.setInputValue(tableSelData(table_firmData.getSelectedRow() + 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() + 1,
                     table_firmData.getSelectedRow() + 1);
            } else {
               orderitem.setInputValue(tableSelData(table_firmData.getRowCount() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getRowCount() - 1,
                     table_firmData.getRowCount() - 1);
            }
            break;
         case "":
            if (table_firmData.getSelectedRow() >= 0
                  && table_firmData.getRowCount() - table_firmData.getSelectedRow() > 1) {
               issue.setInputValue(tableSelData(table_firmData.getSelectedRow() + 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() + 1,
                     table_firmData.getSelectedRow() + 1);
            } else {
               issue.setInputValue(tableSelData(table_firmData.getRowCount() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getRowCount() - 1,
                     table_firmData.getRowCount() - 1);
            }
            break;
         case "":
            if (table_firmData.getSelectedRow() >= 0
                  && table_firmData.getRowCount() - table_firmData.getSelectedRow() > 1) {
               vendor.setInputValue(tableSelData(table_firmData.getSelectedRow() + 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() + 1,
                     table_firmData.getSelectedRow() + 1);
            } else {
               vendor.setInputValue(tableSelData(table_firmData.getRowCount() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getRowCount() - 1,
                     table_firmData.getRowCount() - 1);
            }
            break;
         // V

         case "?":
            if (table_firmData.getSelectedRow() >= 0
                  && table_firmData.getRowCount() - table_firmData.getSelectedRow() > 1) {
               admin.setInputValue(tableSelData(table_firmData.getSelectedRow() + 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() + 1,
                     table_firmData.getSelectedRow() + 1);
            } else {
               admin.setInputValue(tableSelData(table_firmData.getRowCount() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getRowCount() - 1,
                     table_firmData.getRowCount() - 1);
            }
            break;
         case "":
            if (table_firmData.getSelectedRow() >= 0
                  && table_firmData.getRowCount() - table_firmData.getSelectedRow() > 1) {
               purchase.setInputValue(tableSelData(table_firmData.getSelectedRow() + 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() + 1,
                     table_firmData.getSelectedRow() + 1);
            } else {
               purchase.setInputValue(tableSelData(table_firmData.getRowCount() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getRowCount() - 1,
                     table_firmData.getRowCount() - 1);
            }
            break;
         case "?":
            if (table_firmData.getSelectedRow() >= 0
                  && table_firmData.getRowCount() - table_firmData.getSelectedRow() > 1) {
               payableList.setInputValue(tableSelData(table_firmData.getSelectedRow() + 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() + 1,
                     table_firmData.getSelectedRow() + 1);
            } else {
               payableList.setInputValue(tableSelData(table_firmData.getRowCount() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getRowCount() - 1,
                     table_firmData.getRowCount() - 1);
            }
            break;
         case "?":
            if (table_firmData.getSelectedRow() >= 0
                  && table_firmData.getRowCount() - table_firmData.getSelectedRow() > 1) {
               asset.setInputValue(tableSelData(table_firmData.getSelectedRow() + 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() + 1,
                     table_firmData.getSelectedRow() + 1);
            } else {
               asset.setInputValue(tableSelData(table_firmData.getRowCount() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getRowCount() - 1,
                     table_firmData.getRowCount() - 1);
            }
            break;
         case "?":
            if (table_firmData.getSelectedRow() >= 0
                  && table_firmData.getRowCount() - table_firmData.getSelectedRow() > 1) {
               billboard.setInputValue(tableSelData(table_firmData.getSelectedRow() + 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() + 1,
                     table_firmData.getSelectedRow() + 1);
            } else {
               billboard.setInputValue(tableSelData(table_firmData.getRowCount() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getRowCount() - 1,
                     table_firmData.getRowCount() - 1);
            }
            break;
         case "?":
            if (table_firmData.getSelectedRow() >= 0
                  && table_firmData.getRowCount() - table_firmData.getSelectedRow() > 1) {
               department.setInputValue(tableSelData(table_firmData.getSelectedRow() + 1));
               table_firmData.setRowSelectionInterval(table_firmData.getSelectedRow() + 1,
                     table_firmData.getSelectedRow() + 1);
            } else {
               department.setInputValue(tableSelData(table_firmData.getRowCount() - 1));
               table_firmData.setRowSelectionInterval(table_firmData.getRowCount() - 1,
                     table_firmData.getRowCount() - 1);
            }
            break;

         default:
            JOptionPane.showMessageDialog(JToolBar, "?");
            break;
         }
      } else {
         JOptionPane.showMessageDialog(JToolBar, "?");
      }

   }

   private void btnInsertMouseClicked(java.awt.event.MouseEvent evt) {
      data.clear();
      int isInsert = 0;
      if (path != null) {
         switch (path) {
         case "":
            isInsert = employee.insertData();
            data = employee.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            isInsert = attendance.insertData();
            data = attendance.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            isInsert = achievement.insertData();
            data = achievement.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            isInsert = payRoll.insertData();
            data = payRoll.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            isInsert = material.insertData();
            data = material.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "?":
            isInsert = product.insertData();
            data = product.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            isInsert = member.insertData();
            data = member.queryData();
            tableModel.fireTableDataChanged();
            break;

         // Hsu
         case "":
            isInsert = orderlist.insertData();
            data = orderlist.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            isInsert = orderitem.insertData();
            data = orderitem.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            isInsert = issue.insertData();
            data = issue.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            isInsert = vendor.insertData();
            data = vendor.queryData();
            tableModel.fireTableDataChanged();
            break;

         // V
         case "?":
            isInsert = admin.insertDB();
            data = admin.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            isInsert = purchase.insertDB();
            data = purchase.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "?":
            isInsert = payableList.insertDB();
            data = payableList.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "?":
            isInsert = asset.insertDB();
            data = asset.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "?":
            isInsert = billboard.insertDB();
            data = billboard.queryData();
            tableModel.fireTableDataChanged();

            break;
         case "?":
            isInsert = department.insertDB();
            data = department.queryData();
            tableModel.fireTableDataChanged();
            break;

         }
         if (isInsert == 1) {
            JOptionPane.showMessageDialog(rootPane, "?");
         } else {
            JOptionPane.showMessageDialog(rootPane, "");
         }
      }

   }

   private void btnModifyMouseClicked(java.awt.event.MouseEvent evt) {
      int isUpdate = 0;
      data.clear();
      if (path != null) {
         switch (path) {
         case "":
            isUpdate = employee.updateData();
            data = employee.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            isUpdate = attendance.updateData();
            data = attendance.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            isUpdate = achievement.updateData();
            data = achievement.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            isUpdate = payRoll.updateData();
            data = payRoll.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            isUpdate = material.updateData();
            data = material.queryData();
            tableModel.fireTableDataChanged();
            break;

         case "?":
            isUpdate = product.updateData();
            data = product.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            isUpdate = member.updateData();
            data = member.queryData();
            tableModel.fireTableDataChanged();
            break;
         // Hsu
         case "":
            isUpdate = orderlist.updateData();
            data = orderlist.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            isUpdate = orderitem.updateData();
            data = orderitem.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            isUpdate = issue.updateData();
            data = issue.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            isUpdate = vendor.updateData();
            data = vendor.queryData();
            tableModel.fireTableDataChanged();
            break;

         // V
         case "?":
            isUpdate = admin.editDB();
            data = admin.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            isUpdate = purchase.editDB();
            data = purchase.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "?":
            isUpdate = payableList.editDB();
            data = payableList.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "?":
            isUpdate = asset.editDB();
            data = asset.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "?":
            isUpdate = billboard.editDB();
            data = billboard.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "?":
            isUpdate = department.editDB();
            data = department.queryData();
            tableModel.fireTableDataChanged();
            break;

         }

      }
      if (isUpdate == 1) {
         JOptionPane.showMessageDialog(rootPane, "?");
      } else {
         JOptionPane.showMessageDialog(rootPane, "");
      }

   }

   // If user not select a table will alert
   private void btnClearMouseClicked(java.awt.event.MouseEvent evt) {
      if (path != null) {
         switch (path) {
         case "":
            employee.clearInput();
            break;
         case "":
            attendance.clearInput();
            break;
         case "":
            achievement.clearInput();
            break;
         case "":
            payRoll.clearInput();
         case "":
            material.clearInput();
            break;
         case "?":
            product.clearInput();
            break;
         case "":
            member.clearInput();
            break;
         case "":
            orderlist.clearInput();
            break;
         case "":
            orderitem.clearInput();
            break;
         case "":
            issue.clearInput();
            break;
         case "":
            vendor.clearInput();
            break;
         case "?":
            admin.getDefault();
            break;
         case "":
            purchase.getDefault();
            break;
         case "?":
            payableList.getDefault();
            break;
         case "?":
            asset.getDefault();
            break;
         case "?":
            billboard.getDefault();
            break;
         case "?":
            department.getDefault();
            break;

         default:
            JOptionPane.showMessageDialog(JToolBar, "?");
            break;
         }
      } else {
         JOptionPane.showMessageDialog(JToolBar, "?");
      }
   }

   // Generate an Microsoft Excel file form table data
   // This need Jakarta POI library
   private void btnExportMouseClicked(java.awt.event.MouseEvent evt) {
      String outputFile = "D:/ERPOutputFile/" + path + ".xls";
      switch (path) {
      case "":
         fields = employeeFields;
         break;
      case "":
         fields = attendanceFields;
         break;
      case "":
         fields = achivevmentFields;
         break;
      case "":
         fields = payRollFields;
         break;
      case "":
         fields = materialFields;
         break;
      case "?":
         fields = productFields;
         break;
      case "":
         fields = memberFields;
         break;
      case "":
         fields = orderListFields;
         break;
      case "":
         fields = orderItemFields;
         break;
      case "":
         fields = issueFields;
         break;
      case "":
         fields = vendorFields;
         break;
      case "?":
         fields = adminFields;
         break;
      case "":
         fields = purchaseFields;
         break;
      case "?":
         fields = payableFields;
         break;
      case "?":
         fields = assetFields;
         break;
      case "?":
         fields = billboardFields;
         break;
      case "?":
         fields = departFields;
         break;

      default:
         JOptionPane.showMessageDialog(JToolBar, "?");
         break;
      }
      try {
         // Create a excel file
         HSSFWorkbook workbook = new HSSFWorkbook();
         // Create a sheet with name
         HSSFSheet sheet = workbook.createSheet(path);
         HSSFRow row = null;
         HSSFCell cell = null;
         // set the sheet row count and set the first row data with title
         for (int i = 0; i < table_firmData.getRowCount() + 1; i++) {
            if (i == 0) {
               row = sheet.createRow((short) i);
               for (int k = 0; k < fields.length; k++) {
                  cell = row.createCell((short) k);
                  cell.setCellType(HSSFCell.CELL_TYPE_STRING);
                  cell.setCellValue(fields[k]);
               }
            } else {
               // Insert table data in next row
               row = sheet.createRow((short) i);
               for (int k = 0; k < fields.length; k++) {
                  cell = row.createCell((short) k);
                  cell.setCellType(HSSFCell.CELL_TYPE_STRING);
                  cell.setCellValue((String) table_firmData.getValueAt(i - 1, k));
               }

            }
         }
         FileOutputStream fOut = new FileOutputStream(outputFile);
         workbook.write(fOut);
         fOut.flush();
         fOut.close();
         JOptionPane.showMessageDialog(JToolBar, "?!\n ? :" + outputFile);
      } catch (Exception ee) {
         JOptionPane.showMessageDialog(JToolBar, " : " + ee.getMessage());
         System.out.println(ee.toString());
      }
   }

   private void btnDeleteMouseClicked(java.awt.event.MouseEvent evt) {
      int isDel = 0;
      data.clear();
      if (path != null) {
         if (JOptionPane.showConfirmDialog(JToolBar, "") == 0) {
            switch (path) {
            case "":
               isDel = employee.delData();
               data = employee.queryData();
               tableModel.fireTableDataChanged();
               break;
            case "":
               isDel = attendance.delData();
               data = attendance.queryData();
               tableModel.fireTableDataChanged();
               break;
            case "":
               isDel = achievement.delData();
               data = achievement.queryData();
               tableModel.fireTableDataChanged();
               break;
            case "":
               isDel = payRoll.delData();
               data = payRoll.queryData();
               tableModel.fireTableDataChanged();
               break;
            case "":
               isDel = material.delData();
               data = material.queryData();
               tableModel.fireTableDataChanged();
               break;
            case "?":
               isDel = product.delData();
               data = product.queryData();
               tableModel.fireTableDataChanged();
               break;
            case "":
               isDel = member.delData();
               data = member.queryData();
               tableModel.fireTableDataChanged();
               break;

            case "":
               isDel = orderlist.delData();
               data = orderlist.queryData();
               tableModel.fireTableDataChanged();
               break;
            case "":
               isDel = orderitem.delData();
               data = orderitem.queryData();
               tableModel.fireTableDataChanged();
               break;
            case "":
               isDel = issue.delData();
               data = issue.queryData();
               tableModel.fireTableDataChanged();
               break;
            case "":
               isDel = vendor.delData();
               data = vendor.queryData();
               tableModel.fireTableDataChanged();
               break;
            case "?":
               isDel = admin.delData();
               data = admin.queryData();
               tableModel.fireTableDataChanged();
               break;
            case "":
               isDel = purchase.delData();
               data = purchase.queryData();
               tableModel.fireTableDataChanged();
               break;
            case "?":
               isDel = payableList.delData();
               data = payableList.queryData();
               tableModel.fireTableDataChanged();
               break;
            case "?":
               isDel = asset.delData();
               data = asset.queryData();
               tableModel.fireTableDataChanged();
               break;
            case "?":
               isDel = billboard.delData();
               data = billboard.queryData();
               tableModel.fireTableDataChanged();
               break;
            case "?":
               isDel = department.delData();
               data = department.queryData();
               tableModel.fireTableDataChanged();
               break;

            default:
               JOptionPane.showMessageDialog(JToolBar, "?");
               break;
            }

            if (path != null && isDel == 1) {
               JOptionPane.showMessageDialog(rootPane, "?");
            } else {
               JOptionPane.showMessageDialog(rootPane, "");
            }
         }

      } else {
         JOptionPane.showMessageDialog(JToolBar, "?");
      }

   }

   private void btnLogoutMouseClicked(java.awt.event.MouseEvent evt) {
      System.out.println("Logout");

   }

   // Change the input view area
   private void treeFolderValueChanged(javax.swing.event.TreeSelectionEvent evt) {// GEN-FIRST:event_treeFolderValueChanged

      if (treeFolder.getSelectionPath().getLastPathComponent().toString() != null) {
         path = treeFolder.getSelectionPath().getLastPathComponent().toString();
         data.clear();
         switch (path) {
         case "":
            nowLayout.show(panel_dataInput, "employee");
            tableModel = new myTableModel(employeeFields);
            table_firmData.setModel(tableModel);
            data = employee.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            nowLayout.show(panel_dataInput, "attendance");
            tableModel = new myTableModel(attendanceFields);
            table_firmData.setModel(tableModel);
            data = attendance.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            nowLayout.show(panel_dataInput, "payRoll");
            tableModel = new myTableModel(payRollFields);
            table_firmData.setModel(tableModel);
            data = payRoll.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            nowLayout.show(panel_dataInput, "achievement");
            tableModel = new myTableModel(achivevmentFields);
            table_firmData.setModel(tableModel);
            data = achievement.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            nowLayout.show(panel_dataInput, "material");
            tableModel = new myTableModel(materialFields);
            table_firmData.setModel(tableModel);
            data = material.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "?":
            nowLayout.show(panel_dataInput, "product");
            tableModel = new myTableModel(productFields);
            table_firmData.setModel(tableModel);
            data = product.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            nowLayout.show(panel_dataInput, "member");
            tableModel = new myTableModel(memberFields);
            table_firmData.setModel(tableModel);
            data = member.queryData();
            tableModel.fireTableDataChanged();
            break;

         case "":
            nowLayout.show(panel_dataInput, "orderList");
            tableModel = new myTableModel(orderListFields);
            table_firmData.setModel(tableModel);
            data = orderlist.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            nowLayout.show(panel_dataInput, "orderItem");
            tableModel = new myTableModel(orderItemFields);
            table_firmData.setModel(tableModel);
            data = orderitem.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            nowLayout.show(panel_dataInput, "issue");
            tableModel = new myTableModel(issueFields);
            table_firmData.setModel(tableModel);
            data = issue.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            nowLayout.show(panel_dataInput, "vendor");
            tableModel = new myTableModel(vendorFields);
            table_firmData.setModel(tableModel);
            data = vendor.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "?":
            nowLayout.show(panel_dataInput, "admin"); // ?adminFields
            tableModel = new myTableModel(adminFields);
            table_firmData.setModel(tableModel);
            data = admin.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "":
            nowLayout.show(panel_dataInput, "purchase");
            tableModel = new myTableModel(purchaseFields);
            table_firmData.setModel(tableModel);
            data = purchase.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "?":
            nowLayout.show(panel_dataInput, "payableList");
            tableModel = new myTableModel(payableFields);
            table_firmData.setModel(tableModel);
            data = payableList.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "?":
            nowLayout.show(panel_dataInput, "asset");
            tableModel = new myTableModel(assetFields);
            table_firmData.setModel(tableModel);
            data = asset.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "?":
            nowLayout.show(panel_dataInput, "billboard");
            tableModel = new myTableModel(billboardFields);
            table_firmData.setModel(tableModel);
            data = billboard.queryData();
            tableModel.fireTableDataChanged();
            break;
         case "?":
            nowLayout.show(panel_dataInput, "department");
            tableModel = new myTableModel(departFields);
            table_firmData.setModel(tableModel);
            data = department.queryData();
            tableModel.fireTableDataChanged();
            break;

         }
      }

   }

   // Display user select table data in input area
   private void table_firmDataMouseClicked(java.awt.event.MouseEvent evt) {
      switch (path) {
      case "":
         employee.setInputValue(tableSelData(table_firmData.getSelectedRow()));
         break;
      case "":
         attendance.setInputValue(tableSelData(table_firmData.getSelectedRow()));
         break;
      case "":
         achievement.setInputValue(tableSelData(table_firmData.getSelectedRow()));
         break;
      case "":
         payRoll.setInputValue(tableSelData(table_firmData.getSelectedRow()));
         break;
      case "":
         material.setInputValue(tableSelData(table_firmData.getSelectedRow()));
         break;
      case "?":
         product.setInputValue(tableSelData(table_firmData.getSelectedRow()));
         break;
      case "":
         member.setInputValue(tableSelData(table_firmData.getSelectedRow()));
         break;
      case "":
         orderlist.setInputValue(tableSelData(table_firmData.getSelectedRow()));
         break;
      case "":
         orderitem.setInputValue(tableSelData(table_firmData.getSelectedRow()));
         break;
      case "":
         issue.setInputValue(tableSelData(table_firmData.getSelectedRow()));
         break;
      case "":
         vendor.setInputValue(tableSelData(table_firmData.getSelectedRow()));
         break;
      case "?":
         admin.setInputValue(tableSelData(table_firmData.getSelectedRow()));
         break;
      case "":
         purchase.setInputValue(tableSelData(table_firmData.getSelectedRow()));
         break;
      case "?":
         payableList.setInputValue(tableSelData(table_firmData.getSelectedRow()));
         break;
      case "?":
         asset.setInputValue(tableSelData(table_firmData.getSelectedRow()));
         break;
      case "?":
         billboard.setInputValue(tableSelData(table_firmData.getSelectedRow()));

         break;
      case "?":
         department.setInputValue(tableSelData(table_firmData.getSelectedRow()));

         break;

      default:

         JOptionPane.showMessageDialog(JToolBar, "?");
         break;
      }
   }

   // If search field is not empty will search
   private void text_searchKeyReleased(java.awt.event.KeyEvent evt) {

      if (path != null) {
         switch (path) {
         case "":
            if (text_search.getText() != "") {
               data.clear();
               data = employee.search(text_search.getText());
               tableModel.fireTableDataChanged();
            } else {
               data.clear();
               data = employee.queryData();
               tableModel.fireTableDataChanged();
            }
            break;
         case "":
            if (text_search.getText() != "") {
               data.clear();
               data = attendance.search(text_search.getText());
               tableModel.fireTableDataChanged();
            } else {
               data.clear();
               data = attendance.queryData();
               tableModel.fireTableDataChanged();
            }
            break;
         case "":
            if (text_search.getText() != "") {
               data.clear();
               data = achievement.search(text_search.getText());
               tableModel.fireTableDataChanged();
            } else {
               data.clear();
               data = achievement.queryData();
               tableModel.fireTableDataChanged();
            }
            break;
         case "":
            if (text_search.getText() != "") {
               data.clear();
               data = payRoll.search(text_search.getText());
               tableModel.fireTableDataChanged();
            } else {
               data.clear();
               data = payRoll.queryData();
               tableModel.fireTableDataChanged();
            }
            break;
         case "":
            if (text_search.getText() != "") {
               data.clear();
               data = material.search(text_search.getText());
               tableModel.fireTableDataChanged();
            } else {
               data.clear();
               data = material.queryData();
               tableModel.fireTableDataChanged();
            }
            break;
         case "?":
            if (text_search.getText() != "") {
               data.clear();
               data = product.search(text_search.getText());
               tableModel.fireTableDataChanged();
            } else {
               data.clear();
               data = product.queryData();
               tableModel.fireTableDataChanged();
            }
            break;
         case "":
            if (text_search.getText() != "") {
               data.clear();
               data = member.search(text_search.getText());
               tableModel.fireTableDataChanged();
            } else {
               data.clear();
               data = member.queryData();
               tableModel.fireTableDataChanged();
            }
            break;

         case "":
            if (text_search.getText() != "") {
               data.clear();
               data = orderlist.search(text_search.getText());
               tableModel.fireTableDataChanged();
            } else {
               data.clear();
               data = orderlist.queryData();
               tableModel.fireTableDataChanged();
            }
            break;
         case "":
            if (text_search.getText() != "") {
               data.clear();
               data = orderitem.search(text_search.getText());
               tableModel.fireTableDataChanged();
            } else {
               data.clear();
               data = orderitem.queryData();
               tableModel.fireTableDataChanged();
            }
            break;
         case "":
            if (text_search.getText() != "") {
               data.clear();
               data = issue.search(text_search.getText());
               tableModel.fireTableDataChanged();
            } else {
               data.clear();
               data = issue.queryData();
               tableModel.fireTableDataChanged();
            }
            break;
         case "":
            if (text_search.getText() != "") {
               data.clear();
               data = vendor.search(text_search.getText());
               tableModel.fireTableDataChanged();
            } else {
               data.clear();
               data = vendor.queryData();
               tableModel.fireTableDataChanged();
            }

         case "?":
            if (text_search.getText() != "") {
               data.clear();
               data = admin.search(text_search.getText());
               tableModel.fireTableDataChanged();
            } else {
               data.clear();
               data = admin.queryData();
               tableModel.fireTableDataChanged();
            }
            break;
         case "":
            if (text_search.getText() != "") {
               data.clear();
               data = purchase.search(text_search.getText());
               tableModel.fireTableDataChanged();
            } else {
               data.clear();
               data = purchase.queryData();
               tableModel.fireTableDataChanged();
            }
            break;
         case "?":
            if (text_search.getText() != "") {
               data.clear();
               data = payableList.search(text_search.getText());
               tableModel.fireTableDataChanged();
            } else {
               data.clear();
               data = payableList.queryData();
               tableModel.fireTableDataChanged();
            }
            break;
         case "?":
            if (text_search.getText() != "") {
               data.clear();
               data = asset.search(text_search.getText());
               tableModel.fireTableDataChanged();
            } else {
               data.clear();
               data = asset.queryData();
               tableModel.fireTableDataChanged();
            }
            break;
         case "?":
            if (text_search.getText() != "") {
               data.clear();
               data = billboard.search(text_search.getText());
               tableModel.fireTableDataChanged();
            } else {
               data.clear();
               data = billboard.queryData();
               tableModel.fireTableDataChanged();
            }
            break;
         case "?":
            if (text_search.getText() != "") {
               data.clear();
               data = department.search(text_search.getText());
               tableModel.fireTableDataChanged();
            } else {
               data.clear();
               data = department.queryData();
               tableModel.fireTableDataChanged();
            }
            break;

         }
      }

   }

   // When user select an row this method will input the row data into a
   // hashmap
   protected HashMap<Integer, String> tableSelData(int selRow) {
      HashMap<Integer, String> tableData = new HashMap<>();

      for (int i = 0; i < table_firmData.getColumnCount(); i++) {
         String data = (String) table_firmData.getValueAt(selRow, i);
         tableData.put(i, data);
      }
      return tableData;
   }

   /**
    * @param args
    *            the command line arguments
    */
   public static void main(String args[]) {
      /* Set the Nimbus look and feel */
      // <editor-fold defaultstate="collapsed" desc=" Look and feel setting
      // code (optional) ">
      /*
       * If Nimbus (introduced in Java SE 6) is not available, stay with the
       * default look and feel. For details see
       * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.
       * html
       */
      try {
         for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
               javax.swing.UIManager.setLookAndFeel(info.getClassName());
               break;
            }
         }
      } catch (ClassNotFoundException ex) {
         java.util.logging.Logger.getLogger(erp_frame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
      } catch (InstantiationException ex) {
         java.util.logging.Logger.getLogger(erp_frame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
      } catch (IllegalAccessException ex) {
         java.util.logging.Logger.getLogger(erp_frame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
      } catch (javax.swing.UnsupportedLookAndFeelException ex) {
         java.util.logging.Logger.getLogger(erp_frame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
      }
      // </editor-fold>

      /* Create and display the form */
      java.awt.EventQueue.invokeLater(new Runnable() {
         public void run() {
            new erp_frame().setVisible(true);
         }
      });
   }

   // Variables declaration - do not modify//GEN-BEGIN:variables
   private javax.swing.JToolBar JToolBar;
   private javax.swing.JButton btnClear;
   private javax.swing.JButton btnDelete;
   private javax.swing.JButton btnExport;
   private javax.swing.JButton btnFirstData;
   private javax.swing.JButton btnInsert;
   private javax.swing.JButton btnLogout;
   private javax.swing.JButton btnModify;
   private javax.swing.JButton btnNextData;
   private javax.swing.JButton btnPreData;
   private javax.swing.JScrollPane jScrollPane1;
   private javax.swing.JScrollPane jScrollPane3;
   private javax.swing.JLabel label_search;
   private javax.swing.JPanel panel_dataInput;
   private javax.swing.JPanel panel_dataShow;
   private javax.swing.JPanel panel_folder;
   private javax.swing.JTable table_firmData;
   private javax.swing.JTextField text_search;
   private javax.swing.JTree treeFolder;
   // End of variables declaration//GEN-END:variables
}