You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

265 lines
8.7 KiB

  1. package com.netsdk.demo.frame.Attendance;
  2. import java.awt.BorderLayout;
  3. import java.awt.Dimension;
  4. import java.awt.FlowLayout;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import javax.swing.JButton;
  8. import javax.swing.JDialog;
  9. import javax.swing.JLabel;
  10. import javax.swing.JOptionPane;
  11. import javax.swing.JPanel;
  12. import javax.swing.JTextField;
  13. import com.netsdk.common.BorderEx;
  14. import com.netsdk.common.Res;
  15. import com.netsdk.demo.module.AttendanceModule;
  16. import com.netsdk.demo.module.AttendanceModule.OPERATE_TYPE;
  17. import com.netsdk.demo.module.AttendanceModule.UserData;
  18. import com.netsdk.lib.NetSDKLib;
  19. /**
  20. * 考勤机操作对话框
  21. */
  22. public class AttendanceOperateShareDialog extends JDialog{
  23. /**
  24. *
  25. */
  26. private static final long serialVersionUID = 1L;
  27. private OPERATE_TYPE emType = OPERATE_TYPE.UNKNOWN; // 操作类型
  28. private boolean bSuccess = false; // 接口调用结果
  29. public AttendanceOperateShareDialog(OPERATE_TYPE emType, UserData userData) {
  30. this(emType, userData, "");
  31. }
  32. public AttendanceOperateShareDialog(OPERATE_TYPE emType, String fingerPrintId) {
  33. this(emType, null, fingerPrintId);
  34. }
  35. public AttendanceOperateShareDialog(OPERATE_TYPE emType, UserData userData, String fingerPrintId) {
  36. setTitle(Res.string().getPersonOperate());
  37. setLayout(new BorderLayout());
  38. setModal(true);
  39. pack();
  40. setSize(300, 200);
  41. setResizable(false);
  42. setLocationRelativeTo(null);
  43. setDefaultCloseOperation(DISPOSE_ON_CLOSE);
  44. //////////人员信息面板 /////////////////
  45. JPanel personInfoPanel = new JPanel();
  46. BorderEx.set(personInfoPanel, "", 4);
  47. Dimension dimLable = new Dimension(80, 20);
  48. JLabel userIdLabel = new JLabel(Res.string().getUserId());
  49. JLabel userNameLabel = new JLabel(Res.string().getUserName(true));
  50. JLabel cardNoLabel = new JLabel(Res.string().getCardNo());
  51. JLabel fingerPrintIdLabel = new JLabel(Res.string().getFingerPrintId());
  52. userIdLabel.setPreferredSize(dimLable);
  53. userNameLabel.setPreferredSize(dimLable);
  54. cardNoLabel.setPreferredSize(dimLable);
  55. fingerPrintIdLabel.setPreferredSize(new Dimension(85, 20));
  56. Dimension dimValue = new Dimension(150, 20);
  57. userIdTextField = new JTextField();
  58. userNameTextField = new JTextField();
  59. cardNoTextField = new JTextField();
  60. fingerPrintIdTextField = new JTextField();
  61. userIdTextField.setPreferredSize(dimValue);
  62. userNameTextField.setPreferredSize(dimValue);
  63. cardNoTextField.setPreferredSize(dimValue);
  64. fingerPrintIdTextField.setPreferredSize(dimValue);
  65. // 数据处理
  66. if (userData != null) {
  67. if (userData.userId != null) {
  68. userIdTextField.setText(userData.userId);
  69. }
  70. if (userData.userName != null) {
  71. userNameTextField.setText(userData.userName);
  72. }
  73. if (userData.cardNo != null) {
  74. cardNoTextField.setText(userData.cardNo);
  75. }
  76. }
  77. if (!fingerPrintId.isEmpty()) {
  78. fingerPrintIdTextField.setText(fingerPrintId);
  79. }
  80. if (emType == OPERATE_TYPE.DELETE_FINGERPRINT_BY_ID) { // 根据信息ID删除用户
  81. JPanel fingerPrintPanel = new JPanel();
  82. fingerPrintPanel.add(fingerPrintIdLabel);
  83. fingerPrintPanel.add(fingerPrintIdTextField);
  84. personInfoPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 40));
  85. personInfoPanel.add(fingerPrintPanel);
  86. }else {
  87. personInfoPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 10));
  88. personInfoPanel.add(userIdLabel);
  89. personInfoPanel.add(userIdTextField);
  90. personInfoPanel.add(userNameLabel);
  91. personInfoPanel.add(userNameTextField);
  92. personInfoPanel.add(cardNoLabel);
  93. personInfoPanel.add(cardNoTextField);
  94. if (emType == OPERATE_TYPE.DELETE_FINGERPRINT_BY_USERID
  95. || emType == OPERATE_TYPE.DELETE_USER) {
  96. JLabel promptLabel = new JLabel(" " + Res.string().getDeleteFingerPrintPrompt() + " ");
  97. promptLabel.setEnabled(false);
  98. personInfoPanel.add(promptLabel);
  99. }
  100. }
  101. //////////功能面板 /////////////////
  102. JPanel functionPanel = new JPanel();
  103. confirmBtn = new JButton(Res.string().getConfirm());
  104. cancelBtn = new JButton(Res.string().getCancel());
  105. confirmBtn.setPreferredSize(new Dimension(100, 20));
  106. cancelBtn.setPreferredSize(new Dimension(100, 20));
  107. functionPanel.add(confirmBtn);
  108. functionPanel.add(cancelBtn);
  109. add(personInfoPanel, BorderLayout.CENTER);
  110. add(functionPanel, BorderLayout.SOUTH);
  111. operateListener = new UserOperateListener();
  112. confirmBtn.addActionListener(operateListener);
  113. cancelBtn.addActionListener(operateListener);
  114. this.emType = emType;
  115. switch(emType) {
  116. case ADD_USER:
  117. setTitle(Res.string().getAddPerson());
  118. confirmBtn.setText(Res.string().getAdd());
  119. break;
  120. case MODIFIY_USER:
  121. setTitle(Res.string().getModifyPerson());
  122. confirmBtn.setText(Res.string().getModify());
  123. userIdTextField.setEnabled(false);
  124. break;
  125. case DELETE_USER:
  126. setTitle(Res.string().getDelPerson());
  127. confirmBtn.setText(Res.string().getDelete());
  128. userIdTextField.setEnabled(false);
  129. userNameTextField.setEnabled(false);
  130. cardNoTextField.setEnabled(false);
  131. break;
  132. case DELETE_FINGERPRINT_BY_USERID:
  133. case DELETE_FINGERPRINT_BY_ID:
  134. setTitle(Res.string().getDeleteFingerPrint());
  135. confirmBtn.setText(Res.string().getDelete());
  136. userIdTextField.setEnabled(false);
  137. userNameTextField.setEnabled(false);
  138. cardNoTextField.setEnabled(false);
  139. fingerPrintIdTextField.setEditable(false);
  140. default:
  141. break;
  142. }
  143. }
  144. public boolean checkDataValidity() {
  145. if (emType == OPERATE_TYPE.ADD_USER) {
  146. if (userIdTextField.getText().isEmpty()) {
  147. JOptionPane.showMessageDialog(null, Res.string().getInput() + Res.string().getUserId(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE);
  148. return false;
  149. }
  150. try {
  151. if (userIdTextField.getText().getBytes("UTF-8").length > NetSDKLib.MAX_COMMON_STRING_32-1) {
  152. JOptionPane.showMessageDialog(null, Res.string().getUserIdExceedLength(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE);
  153. return false;
  154. }
  155. }catch (Exception e){
  156. }
  157. }
  158. try {
  159. if (userNameTextField.getText().getBytes("UTF-8").length > NetSDKLib.MAX_ATTENDANCE_USERNAME_LEN-1) {
  160. JOptionPane.showMessageDialog(null, Res.string().getUserNameExceedLength(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE);
  161. return false;
  162. }
  163. if (cardNoTextField.getText().getBytes("UTF-8").length > NetSDKLib.MAX_COMMON_STRING_32-1) {
  164. JOptionPane.showMessageDialog(null, Res.string().getCardNoExceedLength(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE);
  165. return false;
  166. }
  167. }catch (Exception e){
  168. }
  169. return true;
  170. }
  171. public UserData getUserData() {
  172. UserData userData = new UserData();
  173. userData.cardNo = userIdTextField.getText();
  174. userData.userName = userNameTextField.getText();
  175. userData.cardNo = cardNoTextField.getText();
  176. return userData;
  177. }
  178. private class UserOperateListener implements ActionListener {
  179. @Override
  180. public void actionPerformed(ActionEvent arg0) {
  181. if (arg0.getSource() == cancelBtn) {
  182. dispose();
  183. }else if (arg0.getSource() == confirmBtn) {
  184. switch(emType) {
  185. case ADD_USER:
  186. if (!checkDataValidity()) {
  187. return;
  188. }
  189. bSuccess = AttendanceModule.addUser(userIdTextField.getText(), userNameTextField.getText(), cardNoTextField.getText());
  190. break;
  191. case MODIFIY_USER:
  192. if (!checkDataValidity()) {
  193. return;
  194. }
  195. bSuccess = AttendanceModule.modifyUser(userIdTextField.getText(), userNameTextField.getText(), cardNoTextField.getText());
  196. break;
  197. case DELETE_USER:
  198. bSuccess = AttendanceModule.deleteUser(userIdTextField.getText());
  199. break;
  200. case DELETE_FINGERPRINT_BY_USERID:
  201. bSuccess = AttendanceModule.removeFingerByUserId(userIdTextField.getText());
  202. break;
  203. case DELETE_FINGERPRINT_BY_ID:
  204. bSuccess = AttendanceModule.removeFingerRecord(Integer.parseInt(fingerPrintIdTextField.getText()));
  205. break;
  206. default:
  207. System.err.println("Can't Deal Operate Type: " + emType);
  208. break;
  209. }
  210. if(bSuccess) {
  211. JOptionPane.showMessageDialog(null, Res.string().getSucceed(), Res.string().getPromptMessage(), JOptionPane.INFORMATION_MESSAGE);
  212. } else {
  213. JOptionPane.showMessageDialog(null, Res.string().getFailed(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE);
  214. }
  215. dispose();
  216. }else {
  217. System.err.println("Unknown Event: " + arg0.getSource());
  218. }
  219. }
  220. }
  221. private UserOperateListener operateListener; // 按键监听
  222. private JTextField userIdTextField; // 用户ID
  223. private JTextField userNameTextField; // 用户名
  224. private JTextField cardNoTextField; // 卡号
  225. private JTextField fingerPrintIdTextField; // 信息ID
  226. private JButton confirmBtn; // 确认(根据emType类型变化)
  227. private JButton cancelBtn; // 取消
  228. }