1 package sellwin.gui; 2 3 import sellwin.domain.*; 4 import sellwin.server.*; 5 import sellwin.utils.*; 6 7 import java.util.*; 8 import java.rmi.*; 9 10 import javax.swing.*; 11 import javax.swing.table.*; 12 import javax.swing.event.*; 13 import javax.swing.border.*; 14 import java.awt.*; 15 import java.awt.event.*; 16 17 21 26 public class UserAdminDialog extends JDialog implements GUIChars { 27 28 private ArrayList allRolePairs = new ArrayList(); 29 private Whiteboard wb; 30 private JDialog thisDialog; 31 32 private JPanel buttonPanel; 33 private JButton applyButton; 34 private JButton closeButton; 35 private JPanel mainPanel; 36 private JPanel userPanel; 37 private JScrollPane userListScrollPane; 38 private JList userList; 39 private JTabbedPane tabbedPane; 40 private AddressPanel addressPanel; 41 private JScrollPane roleTableScrollPane; 42 private JTable roleTable; 43 44 private JPopupMenu userPopup = new JPopupMenu(); 45 private JMenuItem addMenuItem = new JMenuItem("Add User"); 46 private JMenuItem changePasswordMenuItem = new JMenuItem("Set Password"); 47 private JMenuItem deleteUserMenuItem = new JMenuItem("Delete User"); 48 49 private PasswordDialog passwordDialog; 50 private UserIDDialog userIDDialog; 51 52 private RoleTableModel roleTableModel; 53 54 public UserAdminDialog(java.awt.Frame parent, boolean modal) { 55 super(parent, modal); 56 thisDialog = this; 57 wb = MainWindow.getWhiteboard(); 58 initComponents(); 59 setFonts(); 60 setColors(); 61 setLang(); 62 getAllRoles(); 63 setData(); 64 setSize(530, 530); 65 66 roleTableModel = new RoleTableModel(allRolePairs); 67 roleTable.setModel(roleTableModel); 68 } 69 70 71 74 public final void setData() { 75 try { 76 TreeMap map = wb.getSalesPersons(); 77 Object [] values = map.values().toArray(); 78 79 DefaultListModel model = new DefaultListModel(); 80 String id = null; 81 SalesPerson sp = null; 82 for (int i=0;i<values.length;i++) { 83 sp = (SalesPerson)(values[i]); 84 id = sp.getID(); 85 model.addElement(id); 86 } 87 88 userList.setModel(model); 89 } catch (AngError e) { 90 ErrorHandler.show(thisDialog, e); 91 } 92 } 93 94 95 public final void setColors() { 96 applyButton.setForeground(MainWindow.LETTERS); 97 closeButton.setForeground(MainWindow.LETTERS); 98 } 99 100 public final void setFonts() { 101 tabbedPane.setFont(MainWindow.LABEL_FONT); 102 applyButton.setFont(MainWindow.LABEL_FONT); 103 closeButton.setFont(MainWindow.LABEL_FONT); 104 addMenuItem.setFont(MainWindow.LABEL_FONT); 105 changePasswordMenuItem.setFont(MainWindow.LABEL_FONT); 106 deleteUserMenuItem.setFont(MainWindow.LABEL_FONT); 107 } 108 109 public final void setLang() { 110 tabbedPane.setTitleAt(0, wb.getLang().getString("address")); 111 tabbedPane.setTitleAt(1, wb.getLang().getString("roles")); 112 addMenuItem.setText(wb.getLang().getString("addUser")); 113 changePasswordMenuItem.setText(wb.getLang().getString("setPassword")); 114 deleteUserMenuItem.setText(wb.getLang().getString("deleteUser")); 115 applyButton.setText(wb.getLang().getString("apply")); 116 closeButton.setText(wb.getLang().getString("close")); 117 userPanel.setBorder( 118 new TitledBorder( 119 null, 120 wb.getLang().getString("users"), 121 TitledBorder.DEFAULT_JUSTIFICATION, 122 TitledBorder.DEFAULT_POSITION, 123 MainWindow.LABEL_FONT, 124 MainWindow.LETTERS 125 ) 126 ); 127 } 128 129 private void initComponents() { 130 buttonPanel = new JPanel(); 131 applyButton = new JButton(); 132 closeButton = new JButton(); 133 mainPanel = new JPanel(); 134 mainPanel.setPreferredSize(new Dimension(400, 400)); 135 mainPanel.setMaximumSize(new Dimension(400, 400)); 136 mainPanel.setMinimumSize(new Dimension(400, 400)); 137 userPanel = new JPanel(); 138 userListScrollPane = new JScrollPane(); 139 userList = new JList(); 140 tabbedPane = new JTabbedPane(); 141 addressPanel = new AddressPanel(); 142 roleTableScrollPane = new JScrollPane(); 143 roleTable = new JTable(); 144 145 userPopup.add(addMenuItem); 146 userPopup.add(changePasswordMenuItem); 147 userPopup.add(deleteUserMenuItem); 148 149 passwordDialog = new PasswordDialog(this, true); 150 userIDDialog = new UserIDDialog(this, true); 151 152 setTitle("User Administration"); 153 addWindowListener(new java.awt.event.WindowAdapter () { 154 public void windowClosing(java.awt.event.WindowEvent evt) { 155 closeDialog(evt); 156 } 157 }); 158 159 applyButton.setText("Apply"); 160 applyButton.addActionListener(new java.awt.event.ActionListener () { 161 public void actionPerformed(java.awt.event.ActionEvent evt) { 162 applyButtonActionPerformed(evt); 163 } 164 }); 165 166 buttonPanel.add(applyButton); 167 168 closeButton.setText("Close"); 169 closeButton.addActionListener(new java.awt.event.ActionListener () { 170 public void actionPerformed(java.awt.event.ActionEvent evt) { 171 closeButtonActionPerformed(evt); 172 } 173 }); 174 175 addMenuItem.addActionListener( 176 new ActionListener() { 177 public void actionPerformed(ActionEvent e) { 178 userIDDialog.show(); 179 } 180 } 181 ); 182 183 changePasswordMenuItem.addActionListener( 184 new ActionListener() { 185 public void actionPerformed(ActionEvent e) { 186 passwordDialog.show(); 187 } 188 } 189 ); 190 191 deleteUserMenuItem.addActionListener( 192 new ActionListener() { 193 public void actionPerformed(ActionEvent e) { 194 String id = (String )userList.getSelectedValue(); 195 try { 196 TreeMap all = wb.getSalesPersons(); 197 SalesPerson sp = (SalesPerson)(all.get(id)); 198 wb.deleteSalesPerson(sp); 199 setData(); 200 201 } catch (AngError x) { 211 ErrorHandler.show(thisDialog, x); 212 } 213 } 214 } 215 ); 216 217 buttonPanel.add(closeButton); 218 219 getContentPane().add(buttonPanel, java.awt.BorderLayout.SOUTH); 220 221 mainPanel.setLayout(new java.awt.GridBagLayout ()); 222 java.awt.GridBagConstraints gbc2; 223 224 mainPanel.setBorder(new EtchedBorder()); 225 userPanel.setBorder(new TitledBorder("Current Users")); 226 userListScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 227 userListScrollPane.setPreferredSize(new java.awt.Dimension (200, 100)); 228 userList.setModel(new AbstractListModel() { 229 String [] strings = { "one", "two" }; 230 public int getSize() { return strings.length; } 231 public Object getElementAt(int i) { return strings[i]; } 232 }); 233 234 userList.addMouseListener( 235 new java.awt.event.MouseAdapter () { 236 public void mousePressed(MouseEvent e) { 237 if (e.isPopupTrigger()) 238 userPopup.show(userList, e.getX(), e.getY()); 239 } 240 public void mouseReleased(MouseEvent e) { 241 if (e.isPopupTrigger()) 242 userPopup.show(userList, e.getX(), e.getY()); 243 } 244 public void mouseClicked(MouseEvent e) { 245 switch (e.getClickCount()) { 246 case 1: 247 String id = (String )userList.getSelectedValue(); 248 if (id != null) 249 loadSalesPerson(id); 250 break; 251 default: 252 break; 253 } 254 if (e.isPopupTrigger()) 255 userPopup.show(userList, e.getX(), e.getY()); 256 } 257 } 258 ); 259 260 userListScrollPane.setViewportView(userList); 261 262 userPanel.add(userListScrollPane); 263 264 gbc2 = new java.awt.GridBagConstraints (); 265 gbc2.gridwidth = 1; 266 gbc2.anchor = java.awt.GridBagConstraints.WEST; 268 mainPanel.add(userPanel, gbc2); 269 270 tabbedPane.setMinimumSize(new java.awt.Dimension (200, 200)); 271 tabbedPane.setMaximumSize(new java.awt.Dimension (200, 200)); 272 tabbedPane.addTab("Address", addressPanel); 273 274 roleTableScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 275 roleTableScrollPane.setPreferredSize(new java.awt.Dimension (200, 200)); 276 roleTableScrollPane.setMinimumSize(new java.awt.Dimension (200, 200)); 277 roleTableScrollPane.setMaximumSize(new java.awt.Dimension (200, 200)); 278 roleTableScrollPane.setViewportView(roleTable); 279 280 tabbedPane.addTab("Roles", roleTableScrollPane); 281 282 gbc2 = new java.awt.GridBagConstraints (); 283 gbc2.gridx = 0; 284 gbc2.gridy = 1; 285 gbc2.gridwidth = java.awt.GridBagConstraints.REMAINDER; 286 gbc2.gridheight = 2; 287 gbc2.fill = java.awt.GridBagConstraints.HORIZONTAL; 288 gbc2.anchor = java.awt.GridBagConstraints.WEST; 289 mainPanel.add(tabbedPane, gbc2); 290 291 getContentPane().add(mainPanel, java.awt.BorderLayout.CENTER); 292 293 pack(); 294 } 295 296 private void userListMouseClickAction(java.awt.event.MouseEvent evt) { 297 } 299 300 private void closeButtonActionPerformed(java.awt.event.ActionEvent evt) { 301 setVisible(false); 302 dispose(); 303 } 304 305 private void applyButtonActionPerformed(java.awt.event.ActionEvent evt) { 306 307 int option = JOptionPane.showConfirmDialog( 308 thisDialog, wb.getLang().getString("continueUpdateQuestion")); 309 310 if (option == JOptionPane.YES_OPTION) { 311 try { 312 SalesPerson s = getSalesPerson(); 313 314 if (s == null) return; 315 316 updateWithNewRoles(s); 317 318 wb.updateSalesPerson(s); 319 JOptionPane.showMessageDialog( 320 thisDialog, 321 wb.getLang().getString("updateNotify"), 322 wb.getLang().getString("updateNotify"), 323 JOptionPane.INFORMATION_MESSAGE); 324 } catch (Exception f) { 325 ErrorHandler.show(thisDialog, f); 326 } 327 } 328 } 329 330 private void updateWithNewRoles(SalesPerson s) { 331 s.getUserRoles().clear(); 332 RolePair rp; 333 boolean now, orig; 334 UserRole userRole; 335 for (int i=0;i<allRolePairs.size(); i++) { 336 rp = (RolePair)allRolePairs.get(i); 337 now = rp.selected.booleanValue(); 338 orig = rp.origSelected.booleanValue(); 339 if (now != orig) { 340 userRole = new UserRole(); 341 userRole.setPK(rp.pk); 342 userRole.setName(rp.name); 343 try { 344 s.addUserRole(userRole); 345 } catch (AngError e) { 346 ErrorHandler.show(thisDialog, e); 347 } 348 } 349 rp.print(); 350 } 351 } 352 353 354 355 private void closeDialog(java.awt.event.WindowEvent evt) { 356 setVisible(false); 357 dispose(); 358 } 359 360 364 public final SalesPerson getSalesPerson() { 365 SalesPerson s = null; 366 TreeMap all = null; 367 try { 368 all = wb.getSalesPersons(); 369 } catch (AngError e) { 370 ErrorHandler.show(thisDialog, e); 371 return s; 372 } 373 374 String idVal = (String )userList.getSelectedValue(); 375 s = (SalesPerson)(all.get(idVal)); 376 Address a = addressPanel.getAddress(); 377 Address.copyFields(s.getAddress(), a); 378 return s; 379 } 380 381 382 386 public final void loadSalesPerson(String id) { 387 try { 388 TreeMap map = wb.getSalesPersons(); 389 Object [] keys = map.keySet().toArray(); 390 String key; 391 for (int i=0;i<keys.length;i++) { 392 key = (String )keys[i]; 393 if (key.equals(id)) { 394 userList.setSelectedIndex(i); 395 break; 396 } 397 } 398 SalesPerson sp = (SalesPerson)(map.get(id)); 399 ArrayList userRoles = sp.getUserRoles(); 400 clearRoles(); 401 UserRole userRole; 402 for (int j=0;j<userRoles.size();j++) { 403 userRole = (UserRole)userRoles.get(j); 404 updatePairs(userRole.getName()); 405 } 406 roleTable.tableChanged(new TableModelEvent(roleTableModel)); 407 setRoleData(sp.getUserRoles().toArray()); 408 addressPanel.setAddress(sp.getAddress()); 409 } catch (Exception e) { 410 ErrorHandler.show(thisDialog, e); 411 } 412 } 413 414 private final void updatePairs(String roleName) { 415 RolePair pair; 416 for (int i=0;i<allRolePairs.size();i++) { 417 pair = (RolePair)allRolePairs.get(i); 418 if (roleName.equals(pair.name)) 419 pair.selected = new Boolean (true); 420 } 421 } 422 423 private final void getAllRoles() { 424 try { 425 ArrayList allRoles = wb.getAllUserRoles(); 426 427 RolePair pair; 428 UserRole role; 429 430 for (int i=0;i<allRoles.size();i++) { 431 role = (UserRole)allRoles.get(i); 432 pair = new RolePair(); 433 pair.pk = role.getPK(); 434 pair.name = role.getName(); 435 pair.selected = new Boolean (false); 436 pair.origSelected = new Boolean (false); 437 allRolePairs.add(pair); 438 } 439 440 setRoleData(allRolePairs.toArray()); 441 } catch (AngError e) { 442 ErrorHandler.show(thisDialog, e); 443 } 444 } 445 446 private final void clearRoles() { 447 RolePair pair; 448 for (int i=0;i<allRolePairs.size();i++) { 449 pair = (RolePair)allRolePairs.get(i); 450 pair.selected = new Boolean (false); 451 pair.origSelected = new Boolean (false); 452 } 453 } 454 455 459 public final void setRoleData(Object [] roles) { 460 for (int i=0;i<roles.length;i++) { 463 } 466 467 } 469 470 public void setPassword(String psw) { 471 SalesPerson s = getSalesPerson(); 472 s.setPassword(psw); 473 try { 474 wb.updateSalesPerson(s); 475 JOptionPane.showMessageDialog( 476 thisDialog, 477 wb.getLang().getString("updateNotify"), 478 wb.getLang().getString("updateNotify"), 479 JOptionPane.INFORMATION_MESSAGE); 480 } catch (AngError e) { 481 ErrorHandler.show(thisDialog, e); 482 } 483 } 484 485 public void addUser(String id, String psw) { 486 try { 487 SalesPerson s = new SalesPerson(); 488 s.setID(id); 489 s.setPassword(psw); 490 wb.addSalesPerson(s); 491 setData(); 492 loadSalesPerson(id); 499 500 MainWindow.getSalesGroupDialog().loadData(); 502 } catch (AngError e) { 503 ErrorHandler.show(thisDialog, e); 504 } 505 } 506 } 507 508 class UserIDDialog extends JDialog implements GUIChars { 509 510 private Whiteboard wb; 511 private UserAdminDialog parent; 512 private JPanel buttonPanel; 513 private JButton applyButton; 514 private JButton closeButton; 515 private JPanel mainPanel; 516 private JLabel idLabel; 517 private JTextField idField; 518 private JLabel pswLabel; 519 private JPasswordField pswField; 520 private JLabel psw2Label; 521 private JPasswordField psw2Field; 522 523 524 public UserIDDialog(UserAdminDialog parent, boolean modal) { 525 super(parent, modal); 526 this.parent = parent; 527 wb = MainWindow.getWhiteboard(); 528 initComponents(); 529 setLang(); 530 setColors(); 531 setFonts(); 532 int width=300; 533 int height=190; 534 setSize(width, height); 535 getRootPane().setDefaultButton(applyButton); 536 } 537 538 public final void setLang() { 539 setTitle(wb.getLang().getString("enterUserID")); 540 applyButton.setText(wb.getLang().getString("apply")); 541 closeButton.setText(wb.getLang().getString("close")); 542 pswLabel.setText(wb.getLang().getString("password")); 543 psw2Label.setText(wb.getLang().getString("retype")); 544 } 545 546 public final void setColors() { 547 idLabel.setForeground(MainWindow.LETTERS); 548 pswLabel.setForeground(MainWindow.LETTERS); 549 psw2Label.setForeground(MainWindow.LETTERS); 550 } 551 552 public final void setFonts() { 553 idLabel.setFont(MainWindow.LABEL_FONT); 554 pswLabel.setFont(MainWindow.LABEL_FONT); 555 psw2Label.setFont(MainWindow.LABEL_FONT); 556 applyButton.setFont(MainWindow.LABEL_FONT); 557 closeButton.setFont(MainWindow.LABEL_FONT); 558 idField.setFont(MainWindow.FIELD_FONT); 559 pswField.setFont(MainWindow.FIELD_FONT); 560 psw2Field.setFont(MainWindow.FIELD_FONT); 561 } 562 563 private void initComponents() { 564 buttonPanel = new JPanel(); 565 applyButton = new JButton(); 566 closeButton = new JButton(); 567 mainPanel = new JPanel(); 568 idLabel = new JLabel(); 569 idField = new JTextField(); 570 pswLabel = new JLabel(); 571 psw2Label = new JLabel(); 572 pswField = new JPasswordField(); 573 psw2Field = new JPasswordField(); 574 575 setTitle("Enter User ID"); 576 addWindowListener(new java.awt.event.WindowAdapter () { 577 public void windowClosing(java.awt.event.WindowEvent evt) { 578 closeDialog(evt); 579 } 580 }); 581 582 applyButton.setText("Apply"); 583 applyButton.addActionListener(new java.awt.event.ActionListener () { 584 public void actionPerformed(java.awt.event.ActionEvent evt) { 585 applyButtonActionPerformed(evt); 586 } 587 }); 588 589 buttonPanel.add(applyButton); 590 591 closeButton.setText("Close"); 592 closeButton.addActionListener(new java.awt.event.ActionListener () { 593 public void actionPerformed(java.awt.event.ActionEvent evt) { 594 pswField.setText(""); 595 psw2Field.setText(""); 596 idField.setText(""); 597 closeButtonActionPerformed(evt); 598 } 599 }); 600 601 buttonPanel.add(closeButton); 602 603 getContentPane().add(buttonPanel, java.awt.BorderLayout.SOUTH); 604 605 mainPanel.setLayout(new java.awt.GridBagLayout ()); 606 java.awt.GridBagConstraints gridBagConstraints2; 607 608 mainPanel.setBorder(new javax.swing.border.EtchedBorder ()); 609 idLabel.setText("User ID"); 610 gridBagConstraints2 = new java.awt.GridBagConstraints (); 611 gridBagConstraints2.anchor = java.awt.GridBagConstraints.WEST; 612 gridBagConstraints2.gridx = 0; 613 gridBagConstraints2.gridy = 0; 614 mainPanel.add(idLabel, gridBagConstraints2); 615 616 idField.setText(""); 617 idField.setPreferredSize(new Dimension(60, Prefs.FIELD_HEIGHT)); 618 idField.setMaximumSize(new Dimension(60, Prefs.FIELD_HEIGHT)); 619 idField.setMinimumSize(new Dimension(60, Prefs.FIELD_HEIGHT)); 620 gridBagConstraints2 = new java.awt.GridBagConstraints (); 621 gridBagConstraints2.insets = new java.awt.Insets (2, 7, 2, 7); 622 gridBagConstraints2.anchor = java.awt.GridBagConstraints.WEST; 623 gridBagConstraints2.gridx = 1; 624 gridBagConstraints2.gridy = 0; 625 mainPanel.add(idField, gridBagConstraints2); 626 627 pswLabel.setText("Password"); 628 gridBagConstraints2 = new java.awt.GridBagConstraints (); 629 gridBagConstraints2.anchor = java.awt.GridBagConstraints.WEST; 630 gridBagConstraints2.gridx = 0; 631 gridBagConstraints2.gridy = 1; 632 mainPanel.add(pswLabel, gridBagConstraints2); 633 634 pswField.setText(""); 635 pswField.setPreferredSize(new Dimension(60, Prefs.FIELD_HEIGHT)); 636 pswField.setMaximumSize(new Dimension(60, Prefs.FIELD_HEIGHT)); 637 pswField.setMinimumSize(new Dimension(60, Prefs.FIELD_HEIGHT)); 638 gridBagConstraints2 = new java.awt.GridBagConstraints (); 639 gridBagConstraints2.insets = new java.awt.Insets (2, 7, 2, 7); 640 gridBagConstraints2.anchor = java.awt.GridBagConstraints.WEST; 641 gridBagConstraints2.gridx = 1; 642 gridBagConstraints2.gridy = 1; 643 mainPanel.add(pswField, gridBagConstraints2); 644 645 psw2Label.setText("Re-Enter"); 646 gridBagConstraints2 = new java.awt.GridBagConstraints (); 647 gridBagConstraints2.anchor = java.awt.GridBagConstraints.WEST; 648 gridBagConstraints2.gridx = 0; 649 gridBagConstraints2.gridy = 2; 650 mainPanel.add(psw2Label, gridBagConstraints2); 651 652 psw2Field.setText(""); 653 psw2Field.setPreferredSize(new Dimension(60, Prefs.FIELD_HEIGHT)); 654 psw2Field.setMaximumSize(new Dimension(60, Prefs.FIELD_HEIGHT)); 655 psw2Field.setMinimumSize(new Dimension(60, Prefs.FIELD_HEIGHT)); 656 gridBagConstraints2 = new java.awt.GridBagConstraints (); 657 gridBagConstraints2.gridx = 1; 658 gridBagConstraints2.gridy = 2; 659 gridBagConstraints2.insets = new java.awt.Insets (2, 7, 2, 7); 660 gridBagConstraints2.anchor = java.awt.GridBagConstraints.WEST; 661 mainPanel.add(psw2Field, gridBagConstraints2); 662 663 getContentPane().add(mainPanel, java.awt.BorderLayout.CENTER); 664 665 pack(); 666 } 667 668 private void closeButtonActionPerformed(java.awt.event.ActionEvent evt) { 669 setVisible(false); 670 dispose(); 671 } 672 673 private void applyButtonActionPerformed(java.awt.event.ActionEvent evt) { 674 675 char[] psw1 = pswField.getPassword(); 676 char[] psw2 = psw2Field.getPassword(); 677 678 String psw1Str = new String (psw1); 679 String psw2Str = new String (psw2); 680 681 if (!psw1Str.equals(psw2Str)) { 682 ErrorHandler.show(this, 683 new AngError(wb.getLang().getString("passwordMatch"))); 684 return; 685 } 686 687 parent.addUser(idField.getText(), psw1Str); 688 idField.setText(""); 689 pswField.setText(""); 690 psw2Field.setText(""); 691 closeButtonActionPerformed(evt); 692 } 693 694 695 private void closeDialog(java.awt.event.WindowEvent evt) { 696 setVisible(false); 697 dispose(); 698 } 699 } 700 701 class PasswordDialog extends JDialog implements GUIChars { 702 703 private UserAdminDialog parent; 704 private Whiteboard wb; 705 706 private JPanel mainPanel; 707 private JLabel passwordLabel; 708 private JLabel retypeLabel; 709 private JPasswordField passwordField; 710 private JPasswordField retypeField; 711 private JPanel buttonPanel; 712 private JButton applyButton; 713 private JButton cancelButton; 714 715 716 public PasswordDialog(UserAdminDialog parent, boolean modal) { 717 super(parent, modal); 718 this.parent = parent; 719 wb = MainWindow.getWhiteboard(); 720 initComponents(); 721 setColors(); 722 setFonts(); 723 setLang(); 724 getRootPane().setDefaultButton(applyButton); 725 setSize(300, 140); 726 } 727 728 public final void setLang() { 729 setTitle(wb.getLang().getString("setPassword")); 730 passwordLabel.setText(wb.getLang().getString("password")); 731 retypeLabel.setText(wb.getLang().getString("retype")); 732 applyButton.setText(wb.getLang().getString("apply")); 733 cancelButton.setText(wb.getLang().getString("cancel")); 734 } 735 736 public final void setColors() { 737 passwordLabel.setForeground(MainWindow.LETTERS); 738 retypeLabel.setForeground(MainWindow.LETTERS); 739 } 740 741 public final void setFonts() { 742 passwordLabel.setFont(MainWindow.LABEL_FONT); 743 retypeLabel.setFont(MainWindow.LABEL_FONT); 744 passwordField.setFont(MainWindow.FIELD_FONT); 745 retypeField.setFont(MainWindow.FIELD_FONT); 746 applyButton.setFont(MainWindow.LABEL_FONT); 747 cancelButton.setFont(MainWindow.LABEL_FONT); 748 } 749 750 private void initComponents() { 751 mainPanel = new JPanel(); 752 passwordLabel = new JLabel(); 753 retypeLabel = new JLabel(); 754 passwordField = new JPasswordField(); 755 retypeField = new JPasswordField(); 756 buttonPanel = new JPanel(); 757 applyButton = new JButton(); 758 cancelButton = new JButton(); 759 760 setTitle("Set Password"); 761 addWindowListener(new java.awt.event.WindowAdapter () { 762 public void windowClosing(java.awt.event.WindowEvent evt) { 763 closeDialog(evt); 764 } 765 }); 766 767 mainPanel.setLayout(new java.awt.GridBagLayout ()); 768 java.awt.GridBagConstraints gridBagConstraints1; 769 770 mainPanel.setBorder(new javax.swing.border.EtchedBorder ()); 771 passwordLabel.setText("Password"); 772 gridBagConstraints1 = new java.awt.GridBagConstraints (); 773 gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST; 774 mainPanel.add(passwordLabel, gridBagConstraints1); 775 776 retypeLabel.setText("Password Retype"); 777 gridBagConstraints1 = new java.awt.GridBagConstraints (); 778 gridBagConstraints1.gridx = 0; 779 gridBagConstraints1.gridy = 1; 780 gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST; 781 mainPanel.add(retypeLabel, gridBagConstraints1); 782 783 passwordField.setPreferredSize(new java.awt.Dimension (100, 20)); 784 passwordField.setMaximumSize(new java.awt.Dimension (100, 20)); 785 passwordField.setMinimumSize(new java.awt.Dimension (100, 20)); 786 gridBagConstraints1 = new java.awt.GridBagConstraints (); 787 gridBagConstraints1.insets = new java.awt.Insets (2, 7, 2, 7); 788 gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST; 789 mainPanel.add(passwordField, gridBagConstraints1); 790 791 retypeField.setPreferredSize(new java.awt.Dimension (100, 20)); 792 retypeField.setMaximumSize(new java.awt.Dimension (100, 20)); 793 retypeField.setMinimumSize(new java.awt.Dimension (100, 20)); 794 gridBagConstraints1 = new java.awt.GridBagConstraints (); 795 gridBagConstraints1.gridx = 1; 796 gridBagConstraints1.gridy = 1; 797 gridBagConstraints1.insets = new java.awt.Insets (2, 7, 2, 7); 798 gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST; 799 mainPanel.add(retypeField, gridBagConstraints1); 800 801 getContentPane().add(mainPanel, java.awt.BorderLayout.CENTER); 802 803 applyButton.setText("Apply"); 804 applyButton.addActionListener(new java.awt.event.ActionListener () { 805 public void actionPerformed(java.awt.event.ActionEvent evt) { 806 applyButtonActionPerformed(evt); 807 } 808 }); 809 810 buttonPanel.add(applyButton); 811 812 cancelButton.setText("Cancel"); 813 cancelButton.addActionListener(new java.awt.event.ActionListener () { 814 public void actionPerformed(java.awt.event.ActionEvent evt) { 815 cancelButtonActionPerformed(evt); 816 } 817 }); 818 819 buttonPanel.add(cancelButton); 820 821 getContentPane().add(buttonPanel, java.awt.BorderLayout.SOUTH); 822 823 pack(); 824 } 825 826 private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) { 827 setVisible(false); 828 dispose(); 829 } 830 831 private void applyButtonActionPerformed(java.awt.event.ActionEvent evt) { 832 char[] psw1 = passwordField.getPassword(); 833 char[] psw2 = retypeField.getPassword(); 834 835 String psw1Str = new String (psw1); 836 String psw2Str = new String (psw2); 837 838 if (!psw1Str.equals(psw2Str)) { 839 ErrorHandler.show(this, 840 new AngError(wb.getLang().getString("passwordMatch"))); 841 return; 842 } 843 parent.setPassword(new String (passwordField.getPassword())); 844 passwordField.setText(""); 845 retypeField.setText(""); 846 setVisible(false); 847 dispose(); 848 } 849 850 851 private void closeDialog(java.awt.event.WindowEvent evt) { 852 retypeField.setText(""); 853 passwordField.setText(""); 854 setVisible(false); 855 dispose(); 856 } 857 } 858 859 class RoleTableModel extends AbstractTableModel { 860 private String [] columnNames = { "Role", "Selected" }; 861 862 private ArrayList wholeList = null; 863 864 private RolePair pair = new RolePair(); 865 866 public RoleTableModel(ArrayList wholeList) { 867 868 this.wholeList = wholeList; 869 pair.name = "TEST"; 870 pair.selected = new Boolean (true); 871 } 872 873 public final ArrayList getList() { 874 return wholeList; 875 } 876 877 public Object getValueAt(int row, int col) { 878 RolePair pair = null; 879 pair = (RolePair)wholeList.get(row); 880 switch (col) { 881 case 0: return pair.name; 883 case 1: return pair.selected; 885 default: 886 System.out.println("role table value bad"); 887 } 888 return null; 889 } 890 891 public Class getColumnClass(int col) { 892 switch (col) { 893 case 0: return pair.name.getClass(); 895 case 1: 896 return pair.selected.getClass(); 897 default: 898 System.out.println("something is wrong"); 899 } 900 return null; 901 } 902 903 public void setValueAt(Object value, int row, int col) { 904 RolePair pair = null; 905 pair = (RolePair)wholeList.get(row); 906 switch (col) { 907 case 0: break; 909 case 1: pair.selected = (Boolean )value; 911 break; 912 } 913 fireTableCellUpdated(row, col); 914 } 915 916 public final boolean isCellEditable(int row, int col) { 917 Class cls = getColumnClass(col); 918 String name = getColumnName(col); 919 if (name.equals("Selected")) { 920 return true; 921 } 922 923 return false; 924 } 925 926 public int getRowCount() { 927 return wholeList.size(); 928 } 929 930 public int getColumnCount() { 931 return columnNames.length; 932 } 933 934 public String getColumnName(int col) { 935 return columnNames[col]; 936 } 937 } 938 939 class RolePair { 940 public long pk; public String name; 942 public Boolean selected; 943 public Boolean origSelected; 944 945 public void print() { 946 System.out.println(name + " now=" + selected + " orig=" + origSelected); 947 } 948 } 949 | Popular Tags |