package com.iailab.netsdk.demo.frame.Gate; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.IOException; import java.util.Vector; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; import com.sun.jna.Memory; import com.iailab.netsdk.common.BorderEx; import com.iailab.netsdk.common.DateChooserJButton; import com.iailab.netsdk.common.PaintPanel; import com.iailab.netsdk.common.Res; import com.iailab.netsdk.demo.module.GateModule; import com.iailab.netsdk.lib.ToolKits; public class ModifyCardDialog extends JDialog{ private static final long serialVersionUID = 1L; private Memory memory = null; private Vector vector = null; private String picPath = ""; public ModifyCardDialog(Vector v){ setTitle(Res.string().getModify() + Res.string().getCardInfo()); setLayout(new BorderLayout()); setModal(true); pack(); setSize(520, 390); setResizable(false); setLocationRelativeTo(null); setDefaultCloseOperation(DISPOSE_ON_CLOSE); // 释放窗体 CardInfoPanel cardInfoPanel = new CardInfoPanel(); ImagePanel imagePanel = new ImagePanel(); add(cardInfoPanel, BorderLayout.CENTER); add(imagePanel, BorderLayout.EAST); this.vector = v; showCardInfo(); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e){ clear(); dispose(); } }); } /** * 卡信息 */ private class CardInfoPanel extends JPanel { private static final long serialVersionUID = 1L; public CardInfoPanel() { BorderEx.set(this, Res.string().getCardInfo(), 4); JLabel cardNoLabel = new JLabel(Res.string().getCardNo() + ":", JLabel.CENTER); JLabel userIdLabel = new JLabel(Res.string().getUserId() + ":", JLabel.CENTER); JLabel cardNameLabel = new JLabel(Res.string().getCardName() + ":", JLabel.CENTER); JLabel cardPasswdLabel = new JLabel(Res.string().getCardPassword() + ":", JLabel.CENTER); JLabel cardStatusLabel = new JLabel(Res.string().getCardStatus() + ":", JLabel.CENTER); JLabel cardTypeLabel = new JLabel(Res.string().getCardType() + ":", JLabel.CENTER); JLabel useTimesLabel = new JLabel(Res.string().getUseTimes() + ":", JLabel.CENTER); JLabel validPeriodLabel = new JLabel(Res.string().getValidPeriod() + ":", JLabel.CENTER); Dimension dimension = new Dimension(); dimension.width = 85; dimension.height = 20; cardNoLabel.setPreferredSize(dimension); userIdLabel.setPreferredSize(dimension); cardNameLabel.setPreferredSize(dimension); cardPasswdLabel.setPreferredSize(dimension); cardStatusLabel.setPreferredSize(dimension); cardTypeLabel.setPreferredSize(dimension); useTimesLabel.setPreferredSize(dimension); validPeriodLabel.setPreferredSize(dimension); cardNoTextField = new JTextField(); userIdTextField = new JTextField(); cardNameTextField = new JTextField(); cardPasswdField = new JPasswordField(); cardStatusComboBox = new JComboBox(Res.string().getCardStatusList()); cardTypeComboBox = new JComboBox(Res.string().getCardTypeList()); useTimesTextField = new JTextField(); firstEnterCheckBox = new JCheckBox(Res.string().getIsFirstEnter()); enableCheckBox = new JCheckBox(Res.string().getEnable()); enableCheckBox.setSelected(true); enableCheckBox.setVisible(false); startTimeBtn = new DateChooserJButton(); endTimeBtn = new DateChooserJButton(); cardNoTextField.setPreferredSize(new Dimension(145, 20)); userIdTextField.setPreferredSize(new Dimension(145, 20)); cardNameTextField.setPreferredSize(new Dimension(145, 20)); cardPasswdField.setPreferredSize(new Dimension(145, 20)); useTimesTextField.setPreferredSize(new Dimension(145, 20)); cardStatusComboBox.setPreferredSize(new Dimension(145, 20)); cardTypeComboBox.setPreferredSize(new Dimension(145, 20)); startTimeBtn.setPreferredSize(new Dimension(145, 20)); endTimeBtn.setPreferredSize(new Dimension(145, 20)); firstEnterCheckBox.setPreferredSize(new Dimension(170, 20)); enableCheckBox.setPreferredSize(new Dimension(70, 20)); JLabel nullLabel1 = new JLabel(); JLabel nullLabel2 = new JLabel(); JLabel nullLabel3 = new JLabel(); nullLabel1.setPreferredSize(new Dimension(5, 20)); nullLabel2.setPreferredSize(new Dimension(30, 20)); nullLabel3.setPreferredSize(new Dimension(85, 20)); cardNoTextField.setEditable(false); userIdTextField.setEditable(false); modifyBtn = new JButton(Res.string().getModify()); cancelBtn = new JButton(Res.string().getCancel()); JLabel nullLabel4 = new JLabel(); nullLabel4.setPreferredSize(new Dimension(250, 20)); modifyBtn.setPreferredSize(new Dimension(110, 20)); cancelBtn.setPreferredSize(new Dimension(110, 20)); add(cardNoLabel); add(cardNoTextField); add(userIdLabel); add(userIdTextField); add(cardNameLabel); add(cardNameTextField); add(cardPasswdLabel); add(cardPasswdField); add(cardStatusLabel); add(cardStatusComboBox); add(cardTypeLabel); add(cardTypeComboBox); add(useTimesLabel); add(useTimesTextField); add(nullLabel1); add(firstEnterCheckBox); add(nullLabel2); add(enableCheckBox); add(validPeriodLabel); add(startTimeBtn); add(nullLabel3); add(endTimeBtn); add(nullLabel4); add(modifyBtn); add(cancelBtn); // 修改 modifyBtn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { try { if (cardNameTextField.getText().getBytes("UTF-8").length > 63) { JOptionPane.showMessageDialog(null, Res.string().getCardNameExceedLength() + "(63)", Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); return; } if (new String(cardPasswdField.getPassword()).getBytes("UTF-8").length > 63) { JOptionPane.showMessageDialog(null, Res.string().getCardPasswdExceedLength() + "(63)", Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); return; } } catch (Exception e1) { e1.printStackTrace(); } int useTimes = 0; if(useTimesTextField.getText().isEmpty()) { useTimes = 0; } else { useTimes = Integer.parseInt(useTimesTextField.getText()); } if(GateModule.modifyCard(Integer.parseInt(vector.get(3).toString()), cardNoTextField.getText(), userIdTextField.getText(), cardNameTextField.getText(), new String(cardPasswdField.getPassword()), Res.string().getCardStatusInt(cardStatusComboBox.getSelectedIndex()), Res.string().getCardTypeInt(cardTypeComboBox.getSelectedIndex()), useTimes, firstEnterCheckBox.isSelected() ? 1:0, enableCheckBox.isSelected() ? 1:0, startTimeBtn.getText(), endTimeBtn.getText())) { if(memory == null) { JOptionPane.showMessageDialog(null, Res.string().getSucceedModifyCard(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); dispose(); } else { if(GateModule.modifyFaceInfo(userIdTextField.getText(), memory)) { JOptionPane.showMessageDialog(null, Res.string().getSucceedModifyCardAndPerson(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE); dispose(); } else { JOptionPane.showMessageDialog(null, Res.string().getSucceedModifyCardButFailedModifyPerson() + " : " + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); } } } else { JOptionPane.showMessageDialog(null, Res.string().getFailedModifyCard() + " : " + ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE); } } }); // 取消 cancelBtn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { clear(); dispose(); } }); } } /** * 选择图片 */ private class ImagePanel extends JPanel { private static final long serialVersionUID = 1L; public ImagePanel() { BorderEx.set(this, Res.string().getPersonPicture(), 4); Dimension dimension = new Dimension(); dimension.width = 250; setPreferredSize(dimension); setLayout(new BorderLayout()); addImagePanel = new PaintPanel(); // 添加的人员信息图片显示 selectImageBtn = new JButton(Res.string().getSelectPicture()); add(addImagePanel, BorderLayout.CENTER); add(selectImageBtn, BorderLayout.SOUTH); // 选择图片,获取图片的信息 selectImageBtn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { // 选择图片,获取图片路径,并在界面显示 picPath = ToolKits.openPictureFile(addImagePanel); if(!picPath.isEmpty()) { try { memory = ToolKits.readPictureFile(picPath); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }); } } /** * 界面显示要修改的卡信息 */ private void showCardInfo() { // 卡号 cardNoTextField.setText(vector.get(1).toString()); // 卡名 cardNameTextField.setText(vector.get(2).toString()); // 用户ID userIdTextField.setText(vector.get(4).toString()); // 卡密码 cardPasswdField.setText(vector.get(5).toString()); // 卡状态 cardStatusComboBox.setSelectedIndex(Res.string().getCardStatusChomBoxIndex(vector.get(6).toString())); // 卡类型 cardTypeComboBox.setSelectedIndex(Res.string().getCardTypeChomBoxIndex(vector.get(7).toString())); // 使用次数 useTimesTextField.setText(vector.get(8).toString()); // 是否首卡 if(vector.get(9).toString().equals(Res.string().getFirstEnter())) { firstEnterCheckBox.setSelected(true); } else { firstEnterCheckBox.setSelected(false); } // 是否有效 if(vector.get(10).toString().equals(Res.string().getValid())) { enableCheckBox.setSelected(true); } else { enableCheckBox.setSelected(false); } // 有效开始时间 startTimeBtn.setText(vector.get(11).toString()); // 有效结束时间 endTimeBtn.setText(vector.get(12).toString()); } private void clear() { memory = null; vector = null; picPath = ""; } private PaintPanel addImagePanel; private JButton selectImageBtn; private JTextField cardNoTextField; private JTextField userIdTextField; private JTextField cardNameTextField; private JPasswordField cardPasswdField; private JComboBox cardStatusComboBox; private JComboBox cardTypeComboBox; private JTextField useTimesTextField; private JCheckBox firstEnterCheckBox; private JCheckBox enableCheckBox; private DateChooserJButton startTimeBtn; private DateChooserJButton endTimeBtn; private JButton modifyBtn; private JButton cancelBtn; }