package com.netsdk.demo.frame.Attendance;
|
|
import java.awt.BorderLayout;
|
import java.awt.Dimension;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.awt.event.KeyEvent;
|
import java.awt.event.KeyListener;
|
|
import javax.swing.JButton;
|
import javax.swing.JDialog;
|
import javax.swing.JLabel;
|
import javax.swing.JOptionPane;
|
import javax.swing.JPanel;
|
import javax.swing.JScrollPane;
|
import javax.swing.JTextArea;
|
import javax.swing.JTextField;
|
|
import com.netsdk.common.Base64;
|
import com.netsdk.common.BorderEx;
|
import com.netsdk.common.Res;
|
import com.netsdk.demo.module.AttendanceModule;
|
import com.netsdk.demo.module.AttendanceModule.OPERATE_TYPE;
|
import com.netsdk.demo.module.AttendanceModule.UserData;
|
|
/**
|
* 通过信息ID操作信息对话框
|
*/
|
public class OperateByFingerPrintIdDialog extends JDialog{
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 1L;
|
|
public OperateByFingerPrintIdDialog() {
|
setTitle(Res.string().getOperateByFingerPrintId());
|
setLayout(new BorderLayout());
|
setModal(true);
|
pack();
|
setSize(600, 500);
|
setResizable(false);
|
setLocationRelativeTo(null);
|
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
|
|
////////// 查询条件 /////////////////
|
JLabel fingerPrintIdLabel = new JLabel(Res.string().getFingerPrintId(), JLabel.CENTER);
|
fingerPrintIdTextField = new JTextField();
|
fingerPrintIdLabel.setPreferredSize(new Dimension(85, 20));
|
fingerPrintIdTextField.setPreferredSize(new Dimension(100, 20));
|
|
////////// 信息功能 /////////////////
|
searchFingerPrintBtn = new JButton(Res.string().getSearchFingerPrint());
|
deleteFingerPrintBtn = new JButton(Res.string().getDeleteFingerPrint());
|
|
searchFingerPrintBtn.setPreferredSize(new Dimension(140, 20));
|
deleteFingerPrintBtn.setPreferredSize(new Dimension(140, 20));
|
|
JPanel functionPanel = new JPanel();
|
BorderEx.set(functionPanel, Res.string().getOperateByFingerPrintId(), 1);
|
functionPanel.add(fingerPrintIdLabel);
|
functionPanel.add(fingerPrintIdTextField);
|
functionPanel.add(searchFingerPrintBtn);
|
functionPanel.add(deleteFingerPrintBtn);
|
|
//////////信息信息 /////////////////
|
JPanel fingerPrintPanel = new JPanel();
|
BorderEx.set(fingerPrintPanel, Res.string().getFingerPrintInfo(), 1);
|
fingerPrintPanel.setLayout(null);
|
JLabel userIdLabel = new JLabel(Res.string().getUserId());
|
userId = new JLabel();
|
JLabel fingerPrintDataLabel = new JLabel(Res.string().getFingerPrintData());
|
fingerPrintData = new JTextArea();
|
fingerPrintData.setBackground(null);
|
fingerPrintData.setEditable(false);
|
fingerPrintData.setLineWrap(true);
|
JScrollPane scrollPane = new JScrollPane(fingerPrintData);
|
userIdLabel.setBounds(30, 30, 90, 20);
|
userId.setBounds(150, 30, 300, 20);
|
fingerPrintDataLabel.setBounds(30, 60, 150, 20);
|
fingerPrintData.setBounds(30, 80, 600, 20);
|
scrollPane.setBounds(30, 80, 550, 300);
|
scrollPane.setBorder(null);
|
|
fingerPrintPanel.add(userIdLabel);
|
fingerPrintPanel.add(userId);
|
fingerPrintPanel.add(fingerPrintDataLabel);
|
fingerPrintPanel.add(scrollPane);
|
|
add(functionPanel, BorderLayout.NORTH);
|
add(fingerPrintPanel, BorderLayout.CENTER);
|
|
fingerPrintIdTextField.addKeyListener(new KeyListener() {
|
|
public void keyTyped(KeyEvent e) {
|
int key = e.getKeyChar();
|
if (key < 48 || key > 57) {
|
e.consume();
|
}
|
}
|
|
public void keyPressed(KeyEvent e) {}
|
|
public void keyReleased(KeyEvent e) {}
|
});
|
|
listener = new FingerPrintIdOperateActionListener();
|
searchFingerPrintBtn.addActionListener(listener);
|
deleteFingerPrintBtn.addActionListener(listener);
|
}
|
|
public String getFingerPrintId() {
|
|
if (fingerPrintIdTextField.getText().isEmpty()) {
|
JOptionPane.showMessageDialog(null, Res.string().getInput()+Res.string().getFingerPrintId(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE);
|
return null;
|
}
|
|
try {
|
Integer.parseInt(fingerPrintIdTextField.getText());
|
}catch (NumberFormatException e){
|
JOptionPane.showMessageDialog(null, Res.string().getFingerPrintIdIllegal(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE);
|
return null;
|
}
|
return fingerPrintIdTextField.getText();
|
}
|
|
public void searchFingerPrint() {
|
clearFingerPrintInfo();
|
|
String fingerPrintId = getFingerPrintId();
|
if (fingerPrintId == null) {
|
return;
|
}
|
UserData userData = AttendanceModule.getFingerRecord(Integer.parseInt(fingerPrintId));
|
if (userData == null) {
|
JOptionPane.showMessageDialog(null, Res.string().getFailed(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE);
|
return;
|
}
|
|
if (userData.szFingerPrintInfo[0].length == 0) {
|
JOptionPane.showMessageDialog(null, Res.string().getFingerPrintIdNotExist(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE);
|
return;
|
}
|
|
dealFingerPrintInfo(userData);
|
}
|
|
public void dealFingerPrintInfo(UserData userData) {
|
userId.setText(userData.userId);
|
fingerPrintData.setText(formatFingerPrintData(userData.szFingerPrintInfo[0]));
|
}
|
|
private String formatFingerPrintData(byte[] fingerPrintData) {
|
String formatData = Base64.getEncoder().encodeToString(fingerPrintData);
|
return formatData;
|
}
|
|
public void clearFingerPrintInfo() {
|
userId.setText("");
|
fingerPrintData.setText("");
|
}
|
|
/**
|
* 按键监听实现类
|
*/
|
private class FingerPrintIdOperateActionListener implements ActionListener {
|
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
|
OPERATE_TYPE emType = getOperateType(arg0.getSource());
|
switch(emType) {
|
case SEARCH_FINGERPRINT_BY_ID:
|
searchFingerPrint();
|
break;
|
case DELETE_FINGERPRINT_BY_ID:
|
String fingerPrintId = getFingerPrintId();
|
if (fingerPrintId == null) {
|
return;
|
}
|
new AttendanceOperateShareDialog(emType, fingerPrintId).setVisible(true);
|
break;
|
default:
|
break;
|
}
|
}
|
|
private OPERATE_TYPE getOperateType(Object btn) {
|
OPERATE_TYPE type = OPERATE_TYPE.UNKNOWN;
|
if (btn == searchFingerPrintBtn) { // 查找信息
|
type = OPERATE_TYPE.SEARCH_FINGERPRINT_BY_ID;
|
}else if (btn == deleteFingerPrintBtn) { // 删除信息
|
type = OPERATE_TYPE.DELETE_FINGERPRINT_BY_ID;
|
}else {
|
System.err.println("Unknown Event: " + btn);
|
}
|
|
return type;
|
|
}
|
}
|
|
private JTextField fingerPrintIdTextField;
|
public JButton searchFingerPrintBtn;
|
private JButton deleteFingerPrintBtn;
|
private JLabel userId;
|
private JTextArea fingerPrintData;
|
private FingerPrintIdOperateActionListener listener;
|
}
|