PageRenderTime 164ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 1ms

/src/mpv5/ui/dialogs/subcomponents/ControlPanel_Users.java

http://mp-rechnungs-und-kundenverwaltung.googlecode.com/
Java | 792 lines | 680 code | 100 blank | 12 comment | 44 complexity | 23effda5d38e52296438e6665c95a225 MD5 | raw file
Possible License(s): LGPL-3.0, Apache-2.0, GPL-3.0, GPL-2.0, AGPL-3.0, JSON, BSD-3-Clause
  1. package mpv5.ui.dialogs.subcomponents;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.security.NoSuchAlgorithmException;
  5. import java.util.Arrays;
  6. import java.util.Date;
  7. import java.util.Map;
  8. import javax.swing.DefaultComboBoxModel;
  9. import javax.swing.JComponent;
  10. import javax.swing.JPasswordField;
  11. import javax.swing.JTextField;
  12. import javax.swing.UIManager;
  13. import javax.swing.UIManager.LookAndFeelInfo;
  14. import javax.swing.table.DefaultTableModel;
  15. import mpv5.data.PropertyStore;
  16. import mpv5.db.common.Context;
  17. import mpv5.db.common.DatabaseObject;
  18. import mpv5.db.common.DatabaseSearch;
  19. import mpv5.db.common.NodataFoundException;
  20. import mpv5.db.common.QueryHandler;
  21. import mpv5.db.objects.Item;
  22. import mpv5.globals.Headers;
  23. import mpv5.globals.Messages;
  24. import mpv5.logging.Log;
  25. import mpv5.i18n.LanguageManager;
  26. import mpv5.ui.dialogs.ControlApplet;
  27. import mpv5.ui.dialogs.Popup;
  28. import mpv5.ui.frames.MPView;
  29. import mpv5.ui.panels.DataPanel;
  30. import mpv5.usermanagement.MPSecurityManager;
  31. import mpv5.db.objects.User;
  32. import mpv5.utils.arrays.ArrayUtilities;
  33. import mpv5.utils.date.DateConverter;
  34. import mpv5.utils.models.MPComboBoxModelItem;
  35. import mpv5.utils.models.MPTableModel;
  36. import mpv5.utils.tables.Selection;
  37. import mpv5.utils.tables.TableFormat;
  38. import mpv5.utils.text.MD5HashGenerator;
  39. import mpv5.utils.ui.TextFieldUtils;
  40. /**
  41. *
  42. *
  43. */
  44. public class ControlPanel_Users extends javax.swing.JPanel implements ControlApplet, DataPanel {
  45. private static final long serialVersionUID = 1L;
  46. /**
  47. * This unique name identifies this control applet
  48. */
  49. public final String UNAME = "users";
  50. private PropertyStore oldvalues;
  51. private User dataOwner;
  52. private static ControlPanel_Users ident;
  53. public ControlPanel_Users() {
  54. if (MPSecurityManager.checkAdminAccess()) {
  55. initComponents();
  56. refresh();
  57. setVisible(true);
  58. }
  59. }
  60. public ControlPanel_Users(User user) {
  61. if (MPSecurityManager.checkAdminAccess()) {
  62. initComponents();
  63. refresh();
  64. setDataOwner(user, true);
  65. setVisible(true);
  66. }
  67. }
  68. // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
  69. private void initComponents() {
  70. jScrollPane1 = new javax.swing.JScrollPane();
  71. jTable1 = new javax.swing.JTable();
  72. jPanel2 = new javax.swing.JPanel();
  73. jPanel3 = new javax.swing.JPanel();
  74. language = new javax.swing.JComboBox();
  75. locale = new javax.swing.JComboBox();
  76. jLabel4 = new javax.swing.JLabel();
  77. jLabel5 = new javax.swing.JLabel();
  78. countrylist = new javax.swing.JComboBox();
  79. jLabel7 = new javax.swing.JLabel();
  80. jLabel8 = new javax.swing.JLabel();
  81. accountlist = new javax.swing.JComboBox();
  82. statuslist = new javax.swing.JComboBox();
  83. jLabel9 = new javax.swing.JLabel();
  84. laf = new javax.swing.JComboBox();
  85. jLabel11 = new javax.swing.JLabel();
  86. jPanel4 = new javax.swing.JPanel();
  87. fullname = new mpv5.ui.beans.LabeledTextField();
  88. mail = new mpv5.ui.beans.LabeledTextField();
  89. cname = new mpv5.ui.beans.LabeledTextField();
  90. password = new javax.swing.JPasswordField();
  91. jLabel2 = new javax.swing.JLabel();
  92. enabled = new javax.swing.JCheckBox();
  93. inthighestright = new javax.swing.JComboBox();
  94. jLabel3 = new javax.swing.JLabel();
  95. groupname = new javax.swing.JComboBox();
  96. jLabel6 = new javax.swing.JLabel();
  97. rgroups = new javax.swing.JCheckBox();
  98. jLabel10 = new javax.swing.JLabel();
  99. companyselect = new javax.swing.JComboBox();
  100. jPanel5 = new javax.swing.JPanel();
  101. jLabel1 = new javax.swing.JLabel();
  102. datelastlog = new javax.swing.JTextField();
  103. loggedin = new javax.swing.JCheckBox();
  104. jPanel6 = new javax.swing.JPanel();
  105. jButton4 = new javax.swing.JButton();
  106. jButton3 = new javax.swing.JButton();
  107. jButton2 = new javax.swing.JButton();
  108. jButton1 = new javax.swing.JButton();
  109. setBackground(new java.awt.Color(255, 255, 255));
  110. java.util.ResourceBundle bundle = mpv5.i18n.LanguageManager.getBundle();
  111. setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ControlPanel_Users.border.title"))); // NOI18N
  112. setName("Form"); // NOI18N
  113. setLayout(new java.awt.BorderLayout());
  114. jScrollPane1.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ControlPanel_Users.jScrollPane1.border.title"))); // NOI18N
  115. jScrollPane1.setName("jScrollPane1"); // NOI18N
  116. jTable1.setAutoCreateRowSorter(true);
  117. jTable1.setModel(new javax.swing.table.DefaultTableModel(
  118. new Object [][] {
  119. {},
  120. {},
  121. {},
  122. {}
  123. },
  124. new String [] {
  125. }
  126. ));
  127. jTable1.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
  128. jTable1.setDragEnabled(true);
  129. jTable1.setFillsViewportHeight(true);
  130. jTable1.setName("jTable1"); // NOI18N
  131. jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
  132. public void mouseClicked(java.awt.event.MouseEvent evt) {
  133. jTable1MouseClicked(evt);
  134. }
  135. });
  136. jScrollPane1.setViewportView(jTable1);
  137. add(jScrollPane1, java.awt.BorderLayout.CENTER);
  138. jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ControlPanel_Users.jPanel2.border.title"))); // NOI18N
  139. jPanel2.setName("jPanel2"); // NOI18N
  140. jPanel3.setBackground(new java.awt.Color(255, 255, 255));
  141. jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ControlPanel_Users.jPanel3.border.title"))); // NOI18N
  142. jPanel3.setName("jPanel3"); // NOI18N
  143. language.setName("language"); // NOI18N
  144. locale.setName("locale"); // NOI18N
  145. jLabel4.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N
  146. jLabel4.setText(bundle.getString("ControlPanel_Users.jLabel4.text")); // NOI18N
  147. jLabel4.setName("jLabel4"); // NOI18N
  148. jLabel5.setFont(new java.awt.Font("Dialog", 0, 12));
  149. jLabel5.setText(bundle.getString("ControlPanel_Users.jLabel5.text")); // NOI18N
  150. jLabel5.setName("jLabel5"); // NOI18N
  151. countrylist.setName("countrylist"); // NOI18N
  152. jLabel7.setFont(new java.awt.Font("Dialog", 0, 12));
  153. jLabel7.setText(bundle.getString("ControlPanel_Users.jLabel7.text")); // NOI18N
  154. jLabel7.setName("jLabel7"); // NOI18N
  155. jLabel8.setFont(new java.awt.Font("Dialog", 0, 12));
  156. jLabel8.setText(bundle.getString("ControlPanel_Users.jLabel8.text")); // NOI18N
  157. jLabel8.setName("jLabel8"); // NOI18N
  158. accountlist.setName("accountlist"); // NOI18N
  159. statuslist.setName("statuslist"); // NOI18N
  160. jLabel9.setFont(new java.awt.Font("Dialog", 0, 12));
  161. jLabel9.setText(bundle.getString("ControlPanel_Users.jLabel9.text")); // NOI18N
  162. jLabel9.setName("jLabel9"); // NOI18N
  163. laf.setEditable(true);
  164. laf.setName("laf"); // NOI18N
  165. jLabel11.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N
  166. jLabel11.setText(bundle.getString("ControlPanel_Users.jLabel11.text")); // NOI18N
  167. jLabel11.setName("jLabel11"); // NOI18N
  168. javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
  169. jPanel3.setLayout(jPanel3Layout);
  170. jPanel3Layout.setHorizontalGroup(
  171. jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  172. .addGroup(jPanel3Layout.createSequentialGroup()
  173. .addContainerGap()
  174. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  175. .addGroup(jPanel3Layout.createSequentialGroup()
  176. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  177. .addComponent(jLabel8)
  178. .addComponent(jLabel9))
  179. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  180. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  181. .addComponent(statuslist, 0, 211, Short.MAX_VALUE)
  182. .addComponent(accountlist, 0, 211, Short.MAX_VALUE)))
  183. .addGroup(jPanel3Layout.createSequentialGroup()
  184. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  185. .addComponent(jLabel4)
  186. .addComponent(jLabel5)
  187. .addComponent(jLabel7)
  188. .addComponent(jLabel11))
  189. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  190. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  191. .addComponent(laf, 0, 212, Short.MAX_VALUE)
  192. .addComponent(countrylist, 0, 212, Short.MAX_VALUE)
  193. .addComponent(locale, javax.swing.GroupLayout.Alignment.TRAILING, 0, 212, Short.MAX_VALUE)
  194. .addComponent(language, 0, 212, Short.MAX_VALUE))))
  195. .addContainerGap())
  196. );
  197. jPanel3Layout.setVerticalGroup(
  198. jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  199. .addGroup(jPanel3Layout.createSequentialGroup()
  200. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  201. .addComponent(laf, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE)
  202. .addComponent(jLabel11))
  203. .addGap(7, 7, 7)
  204. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  205. .addComponent(language, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE)
  206. .addComponent(jLabel4))
  207. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  208. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  209. .addComponent(locale, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE)
  210. .addComponent(jLabel5))
  211. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  212. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  213. .addComponent(countrylist, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE)
  214. .addComponent(jLabel7))
  215. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  216. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  217. .addComponent(accountlist, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE)
  218. .addComponent(jLabel8))
  219. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  220. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  221. .addComponent(statuslist, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
  222. .addComponent(jLabel9))
  223. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  224. );
  225. jPanel4.setBackground(new java.awt.Color(255, 255, 255));
  226. jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ControlPanel_Users.jPanel4.border.title"))); // NOI18N
  227. jPanel4.setName("jPanel4"); // NOI18N
  228. fullname.set_Label(bundle.getString("ControlPanel_Users.fullname._Label")); // NOI18N
  229. fullname.setName("fullname"); // NOI18N
  230. mail.set_Label(bundle.getString("ControlPanel_Users.mail._Label")); // NOI18N
  231. mail.setName("mail"); // NOI18N
  232. cname.set_Label(bundle.getString("ControlPanel_Users.cname._Label")); // NOI18N
  233. cname.setName("cname"); // NOI18N
  234. password.setText(bundle.getString("ControlPanel_Users.password.text")); // NOI18N
  235. password.setName("password"); // NOI18N
  236. jLabel2.setFont(jLabel2.getFont().deriveFont(jLabel2.getFont().getStyle() | java.awt.Font.BOLD));
  237. jLabel2.setText(bundle.getString("ControlPanel_Users.jLabel2.text")); // NOI18N
  238. jLabel2.setName("jLabel2"); // NOI18N
  239. enabled.setBackground(new java.awt.Color(255, 255, 255));
  240. enabled.setText(bundle.getString("ControlPanel_Users.enabled.text")); // NOI18N
  241. enabled.setName("enabled"); // NOI18N
  242. inthighestright.setName("inthighestright"); // NOI18N
  243. jLabel3.setFont(new java.awt.Font("Dialog", 0, 12));
  244. jLabel3.setText(bundle.getString("ControlPanel_Users.jLabel3.text")); // NOI18N
  245. jLabel3.setName("jLabel3"); // NOI18N
  246. groupname.setName("groupname"); // NOI18N
  247. jLabel6.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N
  248. jLabel6.setText(bundle.getString("ControlPanel_Users.jLabel6.text")); // NOI18N
  249. jLabel6.setName("jLabel6"); // NOI18N
  250. rgroups.setBackground(new java.awt.Color(255, 255, 255));
  251. rgroups.setText(bundle.getString("ControlPanel_Users.rgroups.text")); // NOI18N
  252. rgroups.setName("rgroups"); // NOI18N
  253. jLabel10.setFont(new java.awt.Font("Dialog", 0, 12));
  254. jLabel10.setText(bundle.getString("ControlPanel_Users.jLabel10.text")); // NOI18N
  255. jLabel10.setName("jLabel10"); // NOI18N
  256. companyselect.setName("companyselect"); // NOI18N
  257. javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
  258. jPanel4.setLayout(jPanel4Layout);
  259. jPanel4Layout.setHorizontalGroup(
  260. jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  261. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
  262. .addContainerGap()
  263. .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
  264. .addComponent(fullname, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 296, Short.MAX_VALUE)
  265. .addComponent(mail, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 296, Short.MAX_VALUE)
  266. .addComponent(cname, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 296, Short.MAX_VALUE)
  267. .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel4Layout.createSequentialGroup()
  268. .addComponent(jLabel2)
  269. .addGap(24, 24, 24)
  270. .addComponent(password, javax.swing.GroupLayout.DEFAULT_SIZE, 212, Short.MAX_VALUE))
  271. .addGroup(jPanel4Layout.createSequentialGroup()
  272. .addComponent(rgroups, javax.swing.GroupLayout.DEFAULT_SIZE, 222, Short.MAX_VALUE)
  273. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  274. .addComponent(enabled))
  275. .addGroup(jPanel4Layout.createSequentialGroup()
  276. .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
  277. .addComponent(jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE, 81, Short.MAX_VALUE)
  278. .addComponent(jLabel10, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 81, Short.MAX_VALUE)
  279. .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 81, Short.MAX_VALUE))
  280. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  281. .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  282. .addComponent(groupname, 0, 203, Short.MAX_VALUE)
  283. .addComponent(companyselect, 0, 203, Short.MAX_VALUE)
  284. .addComponent(inthighestright, 0, 203, Short.MAX_VALUE))))
  285. .addContainerGap())
  286. );
  287. jPanel4Layout.setVerticalGroup(
  288. jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  289. .addGroup(jPanel4Layout.createSequentialGroup()
  290. .addComponent(fullname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  291. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  292. .addComponent(mail, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  293. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  294. .addComponent(cname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  295. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  296. .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  297. .addComponent(password, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  298. .addComponent(jLabel2))
  299. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  300. .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
  301. .addComponent(rgroups)
  302. .addComponent(enabled))
  303. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  304. .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  305. .addComponent(jLabel6)
  306. .addComponent(groupname, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE))
  307. .addGap(9, 9, 9)
  308. .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  309. .addComponent(jLabel3)
  310. .addComponent(inthighestright, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE))
  311. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  312. .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  313. .addComponent(companyselect, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)
  314. .addComponent(jLabel10))
  315. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  316. );
  317. jPanel5.setBackground(new java.awt.Color(255, 255, 255));
  318. jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ControlPanel_Users.jPanel5.border.title"))); // NOI18N
  319. jPanel5.setName("jPanel5"); // NOI18N
  320. jLabel1.setText(bundle.getString("ControlPanel_Users.jLabel1.text")); // NOI18N
  321. jLabel1.setName("jLabel1"); // NOI18N
  322. datelastlog.setEditable(false);
  323. datelastlog.setText(bundle.getString("ControlPanel_Users.datelastlog.text")); // NOI18N
  324. datelastlog.setName("datelastlog"); // NOI18N
  325. loggedin.setBackground(new java.awt.Color(255, 255, 255));
  326. loggedin.setText(bundle.getString("ControlPanel_Users.loggedin.text")); // NOI18N
  327. loggedin.setEnabled(false);
  328. loggedin.setName("loggedin"); // NOI18N
  329. javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
  330. jPanel5.setLayout(jPanel5Layout);
  331. jPanel5Layout.setHorizontalGroup(
  332. jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  333. .addGroup(jPanel5Layout.createSequentialGroup()
  334. .addContainerGap(63, Short.MAX_VALUE)
  335. .addComponent(jLabel1)
  336. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  337. .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  338. .addComponent(loggedin)
  339. .addComponent(datelastlog, javax.swing.GroupLayout.PREFERRED_SIZE, 121, javax.swing.GroupLayout.PREFERRED_SIZE)))
  340. );
  341. jPanel5Layout.setVerticalGroup(
  342. jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  343. .addGroup(jPanel5Layout.createSequentialGroup()
  344. .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  345. .addComponent(jLabel1)
  346. .addComponent(datelastlog, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  347. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  348. .addComponent(loggedin, javax.swing.GroupLayout.PREFERRED_SIZE, 15, Short.MAX_VALUE)
  349. .addContainerGap())
  350. );
  351. javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
  352. jPanel2.setLayout(jPanel2Layout);
  353. jPanel2Layout.setHorizontalGroup(
  354. jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  355. .addComponent(jPanel5, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  356. .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  357. .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  358. );
  359. jPanel2Layout.setVerticalGroup(
  360. jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  361. .addGroup(jPanel2Layout.createSequentialGroup()
  362. .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  363. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  364. .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  365. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  366. .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE))
  367. );
  368. add(jPanel2, java.awt.BorderLayout.EAST);
  369. jPanel6.setBackground(new java.awt.Color(255, 255, 255));
  370. jPanel6.setName("jPanel6"); // NOI18N
  371. jPanel6.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
  372. jButton4.setText(bundle.getString("ControlPanel_Users.jButton4.text")); // NOI18N
  373. jButton4.setName("jButton4"); // NOI18N
  374. jButton4.addActionListener(new java.awt.event.ActionListener() {
  375. public void actionPerformed(java.awt.event.ActionEvent evt) {
  376. jButton4ActionPerformed(evt);
  377. }
  378. });
  379. jPanel6.add(jButton4);
  380. jButton3.setText(bundle.getString("ControlPanel_Users.jButton3.text")); // NOI18N
  381. jButton3.setName("jButton3"); // NOI18N
  382. jButton3.addActionListener(new java.awt.event.ActionListener() {
  383. public void actionPerformed(java.awt.event.ActionEvent evt) {
  384. jButton3ActionPerformed(evt);
  385. }
  386. });
  387. jPanel6.add(jButton3);
  388. jButton2.setText(bundle.getString("ControlPanel_Users.jButton2.text")); // NOI18N
  389. jButton2.setName("jButton2"); // NOI18N
  390. jButton2.addActionListener(new java.awt.event.ActionListener() {
  391. public void actionPerformed(java.awt.event.ActionEvent evt) {
  392. jButton2ActionPerformed(evt);
  393. }
  394. });
  395. jPanel6.add(jButton2);
  396. jButton1.setText(bundle.getString("ControlPanel_Users.jButton1.text")); // NOI18N
  397. jButton1.setName("jButton1"); // NOI18N
  398. jButton1.addActionListener(new java.awt.event.ActionListener() {
  399. public void actionPerformed(java.awt.event.ActionEvent evt) {
  400. jButton1ActionPerformed(evt);
  401. }
  402. });
  403. jPanel6.add(jButton1);
  404. add(jPanel6, java.awt.BorderLayout.PAGE_END);
  405. }// </editor-fold>//GEN-END:initComponents
  406. private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
  407. reset();
  408. }//GEN-LAST:event_jButton3ActionPerformed
  409. private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
  410. if (dataOwner != null) {
  411. DatabaseObject dato = dataOwner;
  412. dato.getPanelData(this);
  413. if (dato.save()) {
  414. if (mpv5.db.objects.User.getCurrentUser().equalTo((User) dato)) {
  415. mpv5.db.objects.User.getCurrentUser().reset();
  416. }
  417. Popup.notice(Messages.RESTART_REQUIRED);
  418. } else {
  419. showRequiredFields();
  420. }
  421. }
  422. }//GEN-LAST:event_jButton2ActionPerformed
  423. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
  424. if (dataOwner == null) {
  425. dataOwner = new User();
  426. }
  427. DatabaseObject dato = dataOwner;
  428. if (QueryHandler.instanceOf().clone(Context.getUser()).checkUniqueness(Context.getUser().getUniqueColumns(), new JTextField[]{cname.getTextField()})) {
  429. dato.getPanelData(this);
  430. dato.setIDS(-1);
  431. if (dato.save()) {
  432. } else {
  433. showRequiredFields();
  434. }
  435. }
  436. refresh();
  437. }//GEN-LAST:event_jButton1ActionPerformed
  438. private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTable1MouseClicked
  439. Selection s = new Selection(jTable1);
  440. DatabaseObject obj;
  441. if (s.checkID()) {
  442. try {
  443. obj = DatabaseObject.getObject(Context.getUser(), s.getId());
  444. setDataOwner(obj, true);
  445. } catch (NodataFoundException ex) {
  446. Log.Debug(this, ex);
  447. }
  448. }
  449. }//GEN-LAST:event_jTable1MouseClicked
  450. private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
  451. if (Popup.Y_N_dialog(Messages.REALLY_DELETE)) {
  452. if (dataOwner != null) {
  453. DatabaseObject dato = dataOwner;
  454. dato.getPanelData(this);
  455. dato.delete();
  456. }
  457. refresh();
  458. }
  459. }//GEN-LAST:event_jButton4ActionPerformed
  460. public void setValues(PropertyStore values) {
  461. }
  462. public String getUname() {
  463. return UNAME;
  464. }
  465. public void reset() {
  466. DatabaseObject dato = dataOwner;
  467. dato.getPanelData(this);
  468. dato.reset();
  469. setDataOwner(dato, true);
  470. }
  471. // Variables declaration - do not modify//GEN-BEGIN:variables
  472. private javax.swing.JComboBox accountlist;
  473. private mpv5.ui.beans.LabeledTextField cname;
  474. private javax.swing.JComboBox companyselect;
  475. private javax.swing.JComboBox countrylist;
  476. private javax.swing.JTextField datelastlog;
  477. private javax.swing.JCheckBox enabled;
  478. private mpv5.ui.beans.LabeledTextField fullname;
  479. private javax.swing.JComboBox groupname;
  480. private javax.swing.JComboBox inthighestright;
  481. private javax.swing.JButton jButton1;
  482. private javax.swing.JButton jButton2;
  483. private javax.swing.JButton jButton3;
  484. private javax.swing.JButton jButton4;
  485. private javax.swing.JLabel jLabel1;
  486. private javax.swing.JLabel jLabel10;
  487. private javax.swing.JLabel jLabel11;
  488. private javax.swing.JLabel jLabel2;
  489. private javax.swing.JLabel jLabel3;
  490. private javax.swing.JLabel jLabel4;
  491. private javax.swing.JLabel jLabel5;
  492. private javax.swing.JLabel jLabel6;
  493. private javax.swing.JLabel jLabel7;
  494. private javax.swing.JLabel jLabel8;
  495. private javax.swing.JLabel jLabel9;
  496. private javax.swing.JPanel jPanel2;
  497. private javax.swing.JPanel jPanel3;
  498. private javax.swing.JPanel jPanel4;
  499. private javax.swing.JPanel jPanel5;
  500. private javax.swing.JPanel jPanel6;
  501. private javax.swing.JScrollPane jScrollPane1;
  502. private javax.swing.JTable jTable1;
  503. private javax.swing.JComboBox laf;
  504. private javax.swing.JComboBox language;
  505. private javax.swing.JComboBox locale;
  506. private javax.swing.JCheckBox loggedin;
  507. private mpv5.ui.beans.LabeledTextField mail;
  508. private javax.swing.JPasswordField password;
  509. private javax.swing.JCheckBox rgroups;
  510. private javax.swing.JComboBox statuslist;
  511. // End of variables declaration//GEN-END:variables
  512. public String laf_;
  513. public String language_ = "buildin_en";
  514. public String locale_ = "en_US";
  515. public String defcountry_ = "";
  516. public String fullname_;
  517. public String mail_;
  518. public String cname_;
  519. public String password_;
  520. public boolean isenabled_;
  521. public boolean isloggedin_;
  522. public boolean isrgrouped_;
  523. public int inthighestright_ = 9;
  524. public int intdefaultaccount_ = 9;
  525. public int intdefaultstatus_;
  526. public int intaddedby_ = 4343;
  527. public Date datelastlog_ = new Date();
  528. public int ids_;
  529. public int groupsids_;
  530. public int compsids_;
  531. public java.util.Date dateadded_ = new java.util.Date();
  532. public boolean collectData() {
  533. if (cname.getText().length() == 0) {
  534. return false;
  535. }
  536. laf_ = String.valueOf(laf.getSelectedItem());
  537. if (language.getSelectedItem() != null) {
  538. language_ = String.valueOf(((MPComboBoxModelItem) language.getSelectedItem()).getId());
  539. }
  540. try {
  541. defcountry_ = ((MPComboBoxModelItem) countrylist.getSelectedItem()).getId();
  542. } catch (Exception e) {
  543. }
  544. if (locale.getSelectedItem() != null) {
  545. locale_ = String.valueOf(((MPComboBoxModelItem) locale.getSelectedItem()).getId());
  546. }
  547. if (companyselect.getSelectedItem() != null) {
  548. compsids_ = Integer.valueOf(((MPComboBoxModelItem) companyselect.getSelectedItem()).getId());
  549. } else {
  550. compsids_ = 0;
  551. }
  552. fullname_ = fullname.get_Text();
  553. mail_ = mail.get_Text();
  554. cname_ = cname.get_Text();
  555. if (password.getPassword().length > 0 && !Arrays.equals(password.getPassword(), new JPasswordField().getPassword())) {
  556. try {
  557. password_ = MD5HashGenerator.getInstance().hashData(password.getPassword());
  558. } catch (NoSuchAlgorithmException ex) {
  559. Log.Debug(ex);
  560. }
  561. }
  562. isenabled_ = enabled.isSelected();
  563. if (inthighestright.getSelectedItem() != null) {
  564. inthighestright_ = Integer.valueOf(((MPComboBoxModelItem) inthighestright.getSelectedItem()).getId());
  565. }
  566. if (groupname.getSelectedItem() != null) {
  567. groupsids_ = Integer.valueOf(((MPComboBoxModelItem) groupname.getSelectedItem()).getId());
  568. } else {
  569. groupsids_ = 1;
  570. }
  571. if (accountlist.getSelectedItem() != null) {
  572. intdefaultaccount_ = Integer.valueOf(((MPComboBoxModelItem) accountlist.getSelectedItem()).getId());
  573. } else {
  574. intdefaultaccount_ = 1;
  575. }
  576. if (statuslist.getSelectedItem() != null) {
  577. intdefaultstatus_ = Integer.valueOf(((MPComboBoxModelItem) statuslist.getSelectedItem()).getId());
  578. } else {
  579. intdefaultstatus_ = 1;
  580. }
  581. isrgrouped_ = rgroups.isSelected();
  582. return true;
  583. }
  584. public void exposeData() {
  585. try {
  586. laf.setSelectedItem(laf_);
  587. language.setSelectedIndex(MPComboBoxModelItem.getItemID(language_, language.getModel()));
  588. locale.setSelectedIndex(MPComboBoxModelItem.getItemID(locale_, locale.getModel()));
  589. try {
  590. countrylist.setSelectedIndex(MPComboBoxModelItem.getItemID(defcountry_, countrylist.getModel()));
  591. } catch (Exception e) {
  592. Log.Debug(this, e);
  593. }
  594. fullname.set_Text(fullname_);
  595. // password.setText(password_);
  596. mail.set_Text(mail_);
  597. cname.set_Text(cname_);
  598. enabled.setSelected(isenabled_);
  599. rgroups.setSelected(isrgrouped_);
  600. inthighestright.setSelectedIndex(MPComboBoxModelItem.getItemID(String.valueOf(inthighestright_), inthighestright.getModel()));
  601. loggedin.setSelected(isloggedin_);
  602. datelastlog.setText(DateConverter.getDefDateString(datelastlog_));
  603. groupname.setSelectedIndex(MPComboBoxModelItem.getItemID(String.valueOf(groupsids_), groupname.getModel()));
  604. accountlist.setSelectedIndex(MPComboBoxModelItem.getItemID(String.valueOf(intdefaultaccount_), accountlist.getModel()));
  605. statuslist.setSelectedIndex(MPComboBoxModelItem.getItemIDfromValue(Item.getStatusString(intdefaultstatus_), statuslist.getModel()));
  606. try {
  607. companyselect.setSelectedIndex(MPComboBoxModelItem.getItemID(String.valueOf(compsids_), companyselect.getModel()));
  608. } catch (Exception e) {
  609. //No companies defined
  610. }
  611. } catch (Exception e) {
  612. Log.Debug(this, e);
  613. }
  614. }
  615. public DatabaseObject getDataOwner() {
  616. return dataOwner;
  617. }
  618. public void setDataOwner(DatabaseObject object, boolean p) {
  619. dataOwner = (User) object;
  620. if (p) {
  621. dataOwner.setPanelData(this);
  622. this.exposeData();
  623. }
  624. }
  625. public void refresh() {
  626. try {
  627. language.setModel(LanguageManager.getLanguagesAsComboBoxModel());
  628. locale.setModel(LanguageManager.getLocalesAsComboBoxModel());
  629. countrylist.setModel(LanguageManager.getCountriesAsComboBoxModel());
  630. } catch (Exception e) {
  631. Log.Debug(this, e);
  632. }
  633. inthighestright.setModel(MPSecurityManager.getRolesAsComboBoxModel());
  634. jTable1.setModel(new MPTableModel(new Class[]{String.class, String.class, String.class, String.class, Boolean.class, Boolean.class}, TableFormat.changeToClassValue(QueryHandler.instanceOf().clone(Context.getUser()).select(Context.DETAILS_USERS, (String[]) null), Boolean.class, new int[]{4, 5}), Headers.USER_DETAILS.getValue()));
  635. groupname.setModel(new DefaultComboBoxModel(
  636. MPComboBoxModelItem.toItems(new DatabaseSearch(Context.getGroup()).getValuesFor(Context.getGroup().getSubID()))));
  637. companyselect.setModel(new DefaultComboBoxModel(
  638. MPComboBoxModelItem.toItems(new DatabaseSearch(Context.getCompany()).getValuesFor(Context.getCompany().getSubID()))));
  639. accountlist.setModel(new DefaultComboBoxModel(
  640. MPComboBoxModelItem.toItems(new DatabaseSearch(Context.getAccounts()).getValuesFor(Context.getAccounts().getSubID()))));
  641. statuslist.setModel(MPComboBoxModelItem.toModel(Item.getStatusStrings()));
  642. LookAndFeelInfo[] lfs = UIManager.getInstalledLookAndFeels();
  643. String[] lnfs = new String[lfs.length];
  644. for (int i = 0; i < lnfs.length; i++) {
  645. lnfs[i] = lfs[i].getClassName();
  646. }
  647. laf.setModel(new DefaultComboBoxModel(lnfs));
  648. TableFormat.stripFirstColumn(jTable1);
  649. TableFormat.format(jTable1, 1, 120);
  650. TableFormat.format(jTable1, 4, 80);
  651. TableFormat.format(jTable1, 5, 80);
  652. }
  653. public void paste(DatabaseObject... dbos) {
  654. for (DatabaseObject dbo : dbos) {
  655. if (dbo.getDbIdentity().equals(Context.getUser().getDbIdentity())) {
  656. setDataOwner(dbo, true);
  657. } else {
  658. mpv5.YabsViewProxy.instance().addMessage(Messages.NOT_POSSIBLE.toString() + Messages.ACTION_PASTE, Color.RED);
  659. }
  660. }
  661. }
  662. public void showRequiredFields() {
  663. TextFieldUtils.blinkerRed(fullname);
  664. }
  665. public void showSearchBar(boolean show) {
  666. throw new UnsupportedOperationException("Not supported yet.");
  667. }
  668. public Component getAndRemoveActionPanel() {
  669. if (MPSecurityManager.checkAdminAccess()) {
  670. this.remove(jPanel6);
  671. validate();
  672. return jPanel6;
  673. }
  674. return null;
  675. }
  676. @Override
  677. public void actionAfterSave() {
  678. }
  679. @Override
  680. public void actionAfterCreate() {
  681. }
  682. public void actionBeforeCreate() {
  683. }
  684. public void actionBeforeSave() {
  685. }
  686. public void mail() {
  687. throw new UnsupportedOperationException("Not supported yet.");
  688. }
  689. public void print() {
  690. mpv5.utils.export.Export.print(this);
  691. }
  692. }