SWINGSIX

package gui;
import java.awt.Checkbox;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.MouseEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;

import javax.swing.JCheckBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JSeparator;
import javax.swing.SwingUtilities;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
import dao.ModifyPwd;
import dao.StaffMes;
import entity.Emp;
import service.ExamService;
import util.OperateXml;
import util.RwExcel;
public class MineContent {
    private ExamService service;
    private LoginFrame loginFrame;
    private OperateFrame operateFrame;
    private ChangeFrame changeFrame;
    private AddFrame addFrame;
    //多选框是否选择
    boolean[] b;
    //
    String deptAttriValue;
    //登录用户
    private  Emp loginEmp;
    //导入时候的数据
    String[][] date;
    //读取数据库部门的字符串数组
    String[] date2;
    String bumenjiedian;
    String xiaozujiedian;
    /*
     * 构造器注入登录业务逻辑
     * 参数:ExamService实例
     * */
    public MineContent(ExamService service){
     this.service=service;
    }
    /*
     * 注入登录界面
     * 参数:LoginFrame实例
     * */  
    public void setLoginFrame(LoginFrame loginFrame){
     this.loginFrame=loginFrame;
    }
    /*
     * 注入操作界面
     * 参数:OperateFrame实例
     * */
    public void setOperateFrame(OperateFrame operateFrame){
     this.operateFrame=operateFrame;
    }
    /*
     * 注入修改密码界面
     * 参数:ChangeFrame实例
     * */
    public void setChangeFrame(ChangeFrame changeFrame){
     this.changeFrame=changeFrame;
    }
    /*
     * 注入增加员工界面
     * 参数:AddFrame实例
     * */
    public void setAddFrame(AddFrame addFrame){
     this.addFrame=addFrame;
    }
    /*
     * 得到登录时输入信息
     *
     * */
    public Emp getLoginEmp(){
     return loginEmp;
    }
    /*
     * 得到跟新数据
     *
     */
 public  String[][] getRushdate(){
  return date; 
 }
 /*
  * 关闭方法
  * 参数:JFrame
  *
  * */
 public void exit(JFrame source){
   int val=JOptionPane.showConfirmDialog(
     source,"确定?","离开",JOptionPane.YES_NO_OPTION);
   if(val==JOptionPane.YES_OPTION){ 
    source.setVisible(false);
    System.exit(0);
   }
 }
 /*
  *登录方法
  *参数:JFrame
  * */
 public void login(JFrame source){
     String s = service.login(loginFrame.getName(),
       loginFrame.getPassword()); 
     if(loginFrame.getPassword().equals(s)){      
        loginEmp=new Emp(loginFrame.getName(),loginFrame.getPassword());
         operateFrame.updateView();
      operateFrame.setVisible(true);
       loginFrame.setVisible(false);
     }else{
      JOptionPane.showMessageDialog(source,s);
     }
    
 }
 /*
  * 程序开始显示登录界面方法
  * */
 public void show() {
  loginFrame.setVisible(true);
 }
 /*
  * 中英文转换方法
  * */
 public void changeLanguage(JFrame source) {
  
 }
 
 /*
  * 导航栏
  **/
 public void jmi(ActionEvent ae,OperateFrame source) {
      String comman = ae.getActionCommand();
      if("退出".equals(comman)){
       System.out.println("退出");
       exit(source);
      }else if("导出全部员工".equals(comman)){
       RwExcel re = new RwExcel();
       JFileChooser jf = new JFileChooser();
       jf.showOpenDialog(jf);
       File f1 = jf.getSelectedFile();
      
     if(f1!=null){
     String fstr=f1.getPath().substring(f1.getPath().lastIndexOf("."));
     if(fstr.equals("xls")){
      re.writeExcle(SingleString.getInstance().getStr(),f1);
      JOptionPane.showMessageDialog(source,"恭喜您,上传成功!");
     }else{
      JOptionPane.showMessageDialog(source,"必须为'.xls'的文件");
     } 
     }
      }else if("导入".equals(comman)){
       //删除已有的当前页
       operateFrame.deleteDangqian();
      
       JFileChooser jf1 = new JFileChooser();      
       jf1.showOpenDialog(jf1);
       File f2 = jf1.getSelectedFile();
              if(f2!=null){
               String fstr2=f2.getPath().substring(f2.getPath().lastIndexOf(".")+1);
               System.out.println(fstr2);
               if(fstr2.equals("xls")){
                date = operateFrame.setDate(new RwExcel().
               readExcle(f2));
                    SingleString.getInstance().setStr(date);
              operateFrame.updateLView();
               }else{
                JOptionPane.showMessageDialog(source,"必须导入'.xls'的文件");
               }
              }
                
      }else if("修改".equals(comman)){
               changeFrame.updateView();
        
      }else if("帮助".equals(comman)){
        try {
    BufferedReader br = new BufferedReader(
      new InputStreamReader(
        new FileInputStream("src//help.txt")));
    String s = "";
    while(true){
       String str =br.readLine();
       if(str==null) break;
       s=s+str+"\n";
    }
    JOptionPane.showMessageDialog(source,s);
    
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
      }else if("添加".equals(comman)){
        addFrame.showView();
      } 
 }
 /*
  * 修改密码方法
  * */
 public void changeM(ChangeFrame source) {
  if("".equals(changeFrame.getPwdfield2())||"".equals(changeFrame.getPwdfield3())){
   JOptionPane.showMessageDialog(source,"不能为空!");
  }else{  
   if(!(changeFrame.getPwdfield1()).equals(loginEmp.getPassword())){
    JOptionPane.showMessageDialog(source,"密码输入错误");
   }else{
    if(changeFrame.getPwdfield2().length()<6 || changeFrame.getPwdfield2().length()>15){
     JOptionPane.showMessageDialog(source,"密码长度为6-15");
    }else{
     if(changeFrame.getPwdfield2().equals(changeFrame.getPwdfield1())){
      JOptionPane.showMessageDialog(source,"不能与原密码一样");
     }
     if(!changeFrame.getPwdfield2().equals(changeFrame.getPwdfield1())&&
       changeFrame.getPwdfield2().equals(
       changeFrame.getPwdfield3())){
      ModifyPwd mfp = new ModifyPwd();
      mfp.modifyPwd(changeFrame.getPwdfield2(),loginFrame.getName());
      JOptionPane.showMessageDialog(source,"修改成功");
      
      loginEmp = new Emp(loginFrame.getName(),changeFrame.getPwdfield2());
      //修改成功后关闭窗口
      changeFrame.rushView();
      changeFrame.setVisible(false);
     }else if(!changeFrame.getPwdfield2().equals(changeFrame.getPwdfield1())&&
       !changeFrame.getPwdfield2().equals(
       changeFrame.getPwdfield3())){
      JOptionPane.showMessageDialog(source,"两次输入不一致!");
     }  
    }
    
   }
  }
 }
 /*
  * 修改密码取消按钮
  * */
 public void exitExit(ChangeFrame source) { 
   changeFrame.rushView();
 }
 /*
  * 添加员工方法
  * */
 public  void changeNews(AddFrame source)
 {
    String s1 = addFrame.getZhanghaofield();
    String s2 =addFrame.getName_field();
    String s3 =addFrame.getSex_field();
    String s4 =addFrame.getDebt_field();
    String s5 =addFrame.getIDcard_field();
    String s6 =addFrame.getDesc_field();
    String s7 =addFrame.getYes_no_field();
    String sss[] = {s1,s2,s3,s4,s5,s6,s7};
    StaffMes sf = new StaffMes();
    System.out.println(sf.find(s1));
    if("".equals(s1)||"".equals(s2)||"".equals(s3)||"".
      equals(s4)||"".equals(s5)||"".equals(s6)||"".
      equals(s7))
    {
     JOptionPane.showMessageDialog(source,"信息不完全!");
    }
     else
    {
     if(sf.find(s1)!=null)
     {
      JOptionPane.showMessageDialog(source,"用户名已存在!");
      return ;
     }else
     {
      if(!s3.equals("男") && !s3.equals("女"))
      {
         JOptionPane.showMessageDialog(source,"性别格式不对!");
            }
      else
      {        
             sf.addStaff(sss);
             JOptionPane.showMessageDialog(source,"添加成功!");
            }
          }
        }       
    }          
 /*
  * JTable提交按钮
  * */
 public void jb3(OperateFrame source)
 {
   String str = JOptionPane.showInputDialog(new JPanel(), "请输入小组部门id(如:11)");
   String[][] ss = SingleString.getInstance().getStr();
   StaffMes sff = new StaffMes();
    if(str!=null){
     if(!"11".equals(str)&&!"12".equals(str)&&!"13".equals(str)&&
       !"14".equals(str)&&!"21".equals(str)&&!"22".equals(str)&&
       !"23".equals(str)&&!"24".equals(str)&&
       !"31".equals(str)&&!"32".equals(str)&&!"33".equals(str)&&
       !"34".equals(str)&&!"41".equals(str)&&
       !"42".equals(str)&&!"43".equals(str)&&
       !"44".equals(str)&&!"51".equals(str)&&!"52".equals(str)&&
       !"53".equals(str)&&!"54".equals(str))
     {
      JOptionPane.showMessageDialog(source,"没有这个部门!");
     }else
     {
      sff.addExcleStaff(ss,str);
      JOptionPane.showMessageDialog(source,"添加成功!");
     }  
    }
 }
 /*
  *
  *
  *
  *结点操作
  * */
 /*
  * 结点增加
  * 参数:
  *     1.OperateFrame  操作界面
  *     2.OperateXml    读取xml类
  *     3.Pathname      路径
  * */
 public void insert(OperateFrame source,OperateXml operateXml,String pathName){

  //str 增加的节点的名称
  String str = JOptionPane.showInputDialog(new JPanel(), "增加名称为?");
  //str 不能为空值
  if("".equals(str) || (str==null))
  {
   return ;
  }
  //新的子节点
  DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(str);
  //得到现在高亮的节点
  DefaultMutableTreeNode selectnode = (DefaultMutableTreeNode) operateFrame.getJtree().getLastSelectedPathComponent();  
  //为小组节点就不能添加 新的子节点了
  if(selectnode.getLevel()==2)
  {
   return ;
  }
  
  //在高亮的节点下面添加一个子节点
  selectnode.add(newNode);
  
  //刷新
  operateFrame.getJtree().updateUI();
  
  //TODO 数据库方法 参数格式为 str+部门/小组标志
  if(selectnode.isRoot())
  {
   //TODO 在公司下添加部门节点
   operateXml.addNode(str, "","",pathName);
  }
  if(selectnode.getLevel() == 1)
  {
   //TODO 在部门下面添加小组节点
   operateXml.addNode("", (String)selectnode.getUserObject().toString(),str,pathName);
  }
 
 }
  //结点修改
 public void update(OperateFrame operateFrame2,OperateXml operateXml,String pathName) {

  String str = JOptionPane.showInputDialog(new JPanel(), "修改为?");
  //str 不能为空值
  if("".equals(str) || (str==null))
  {
   return ;
  }
  //得到高亮节点
        DefaultMutableTreeNode selectnode = (DefaultMutableTreeNode) operateFrame.getJtree().getLastSelectedPathComponent();  
       
        deptAttriValue= (String) ((DefaultMutableTreeNode)selectnode.getParent()).getUserObject();
        String oldAttriValue = (String)selectnode.getUserObject();
        //公司名称不能修改
        if(selectnode.isRoot())
        {
         return ;
        }
       
        //TODO 数据库方法 参数格式为 str+部门/小组标志
  if(selectnode.getLevel() == 1)
  {
   //TODO 修改部门名称
   operateXml.updateDept(oldAttriValue, str, pathName);
  }
  if(selectnode.getLevel()==2)
  {
   //TODO 修改小组名称
   operateXml.updateGroup(deptAttriValue, oldAttriValue, str, pathName);
  }
 
  //更新数据为str值
  selectnode.setUserObject(str);  
 }
 //结点删除
 public void delete(OperateFrame operateFrame2,OperateXml operateXml,String pathName) {
       System.out.println("删除");
  DefaultMutableTreeNode node =
   (DefaultMutableTreeNode)operateFrame.getJtree().getLastSelectedPathComponent();
  //不能删除公司节点
  if(node.isRoot())
  {
   return ;
  }
  //如果要删除部门节点那么必须提示
  if(node.getLevel()==1)
  {
   //YESORNO 确认对话框点击的是确认还是取消
   int YES_OR_NO = JOptionPane.showConfirmDialog(null,
     "你确定要删除本部门以及它下面的小组吗?","谨慎!",
          JOptionPane.YES_NO_OPTION);
   //没有点击确定则不做任何操作
   if(YES_OR_NO != JOptionPane.YES_OPTION)
   {
    return ;
   }
   
   //点击了确定删除
   else
   {
    //TODO 得到部门和它下面的小组名称 传入数据库方法
    operateXml.deleteDept((String)node.getUserObject(), pathName);
   }
  }
  
  //删除的是小组
  else
  {
   //TODO 调用数据库方法对小组删除
   String deptAttriValue = (String) ((DefaultMutableTreeNode)node.getParent()).getUserObject();
   operateXml.deleteGroup(deptAttriValue, (String)node.getUserObject(), pathName);
  }
  
  node.removeFromParent();
  
  node.removeFromParent();
  operateFrame.getJtree().updateUI(); 
 }
 
 
 
 
 
 //鼠标的设置右键功能   得到部门结点  小组结点
 public void mouse(OperateFrame source,MouseEvent e) { 
   TreePath treePath = operateFrame.getJtree().getPathForLocation(e.getX(), e.getY());
   if(treePath != null)
   {
    operateFrame.getJtree().setSelectionPath(treePath);
    DefaultMutableTreeNode node =
     (DefaultMutableTreeNode)operateFrame.getJtree().getLastSelectedPathComponent();
    Component insert = operateFrame.getJpopupMenu().getComponent(0);
    Component udpate = operateFrame.getJpopupMenu().getComponent(2);
    Component delete = operateFrame.getJpopupMenu().getComponent(4);
    Component find   = operateFrame.getJpopupMenu().getComponent(6);
    //根节点的更新和删除不能用
    if(node.isRoot())
    {
     insert.setEnabled(true);
     udpate.setEnabled(false);
     delete.setEnabled(false);
     find.setEnabled(false);
     operateFrame.getJpopupMenu().updateUI();
    }
    //部门节点三个功能都可以用
    //得到部门结点
    if(node.getLevel()==1)
    {
     insert.setEnabled(true);
     udpate.setEnabled(true);
     delete.setEnabled(true);
     find.setEnabled(true);
     operateFrame.getJpopupMenu().updateUI();
     //TODO delete
     
     
     bumenjiedian=(String)node.getUserObject();
    }
    //小组节点
    //得到小组结点
    if(node.getLevel()==2)
    {
     insert.setEnabled(false);
     udpate.setEnabled(true);
     delete.setEnabled(true);
     find.setEnabled(true);
     operateFrame.getJpopupMenu().updateUI();
     
     
     
     xiaozujiedian=(String) node.getUserObject();
    }
    operateFrame.getJpopupMenu().show(operateFrame.getJtree(),e.getX(), e.getY());
   } 
 }
 
 
 
 // find 查看部门结点并显示到JTable
 public void find(OperateFrame source) {
  
  
  
  //删除储存的当前页
        operateFrame.deleteDangqian();
       
       
       // System.out.println(bumenjiedian);
       
  StaffMes sff = new StaffMes();
  //部门字符串数组
  date2 = sff.getDate();
  pagination p = new pagination();  
  //该循环找出每个部门下数据
  if(date2!=null){
   for(int i = 0;i < date2.length ; i++){
    String[][] str = sff.getDepartResult(i+1); 
      if(str.length!=0 && date2[i].equals(bumenjiedian)){          
       SingleString.getInstance().setStr(str);
       int a = 1;
       p.fenYe(str, a,operateFrame.getJtabel(),operateFrame.getjJlabel());
         }
      else if(str.length==0 && date2[i].equals(bumenjiedian)){
       JOptionPane.showMessageDialog(source,"这个部门没有员工!");
      }
   }
  }else{
    JOptionPane.showMessageDialog(source,"没有这个部门!");
  }
  
  //按小组查找  员工信息
  System.out.println(xiaozujiedian);
  System.out.println(bumenjiedian);
  
  
  
 }
 //JTable 右键操作
 public void mousechecked(OperateFrame source, MouseEvent e) {
   if(SwingUtilities.isRightMouseButton(e)){
    final int row = operateFrame.getJtabel().rowAtPoint((e).getPoint());
    if(row!=-1){
     final int column = operateFrame.getJtabel().columnAtPoint((e).getPoint());
     final JPopupMenu popup = new JPopupMenu();
     JMenuItem select = new JMenuItem("选择");
     select.addActionListener(new ActionListener(){
     public void actionPerformed(ActionEvent ae) {
      operateFrame.getJtabel().setRowSelectionInterval(row,row);
     }   
     });
     popup.add(select);
     popup.add(new JSeparator());
     JMenuItem edit = new JMenuItem("编辑");
     popup.add(edit);
     edit.addActionListener(new ActionListener(){

     @Override
     public void actionPerformed(ActionEvent ae) {      
      operateFrame.getJtabel().setRowSelectionInterval(row,row);
      String input1 = JOptionPane.showInputDialog("输入新的部门号(1-5):");  
      if(input1!=null){
       if(!"1".equals(input1)&&!"2".equals(input1)&&!"3".equals(input1)
         &&!"4".equals(input1)&&!"5".equals(input1)){
        JOptionPane.showMessageDialog(null,"没有这个部门");
       }else{
        String input2 = JOptionPane.showInputDialog("输入新的小组号(1-5):");
        if(input2!=null){
         if(!"1".equals(input2)&&!"2".equals(input2)&&!"3".equals(input2)
           &&!"4".equals(input2)&&!"5".equals(input2)){
          JOptionPane.showMessageDialog(null,"没有这个小组");
         }else{
          String[][] str = SingleString.getInstance().getStr();
          int a = (operateFrame.getDangqian()-1)*10+row;
          String s = str[a][0];
          StaffMes sf = new StaffMes();
          sf.updateStaff(Integer.parseInt(s),Integer.parseInt(input1)*10+Integer.parseInt(input2));
          JOptionPane.showMessageDialog(null,"修改成功!");
          operateFrame.updateView();
         }
        }
       }
      }
     }
     });
     JMenuItem calcel = new JMenuItem("取消");
     calcel.addActionListener(new ActionListener(){
     public void actionPerformed(ActionEvent ae) {
           popup.setVisible(false);
     }
     
     });
     popup.add(new JSeparator());
     popup.add(calcel);
     popup.show((e).getComponent(),(e).getX(),(e).getY());
    }
   }
 }
 
 
 //多选框
 public void checkBox(OperateFrame source, ItemEvent ie) {
      JCheckBox[] c = operateFrame.getCheckBox();
      b = new boolean[c.length];
      for(int i = 0;i<c.length;i++){
           b[i]=c[i].isSelected();
      }
 }
   
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值