KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > sellwin > gui > UserAdminDialog


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 // SellWin http://sourceforge.net/projects/sellwincrm
18
//Contact support@open-app.com for commercial help with SellWin
19
//This software is provided "AS IS", without a warranty of any kind.
20

21 /**
22  * This class implements the user maintenance
23  * dialog which is viewable via the Admin menu
24  * option on the MainWindow.
25  */

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 JavaDoc 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     /**
72      * set the dialog's data being displayed
73      */

74     public final void setData() {
75         try {
76             TreeMap map = wb.getSalesPersons();
77             Object JavaDoc[] values = map.values().toArray();
78
79             DefaultListModel model = new DefaultListModel();
80             String JavaDoc 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 JavaDoc() {
154             public void windowClosing(java.awt.event.WindowEvent JavaDoc evt) {
155                 closeDialog(evt);
156             }
157         });
158         
159         applyButton.setText("Apply");
160         applyButton.addActionListener(new java.awt.event.ActionListener JavaDoc() {
161             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
162                 applyButtonActionPerformed(evt);
163             }
164         });
165         
166         buttonPanel.add(applyButton);
167         
168         closeButton.setText("Close");
169         closeButton.addActionListener(new java.awt.event.ActionListener JavaDoc() {
170             public void actionPerformed(java.awt.event.ActionEvent JavaDoc 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 JavaDoc id = (String JavaDoc)userList.getSelectedValue();
195                     try {
196                         TreeMap all = wb.getSalesPersons();
197                         SalesPerson sp = (SalesPerson)(all.get(id));
198                         wb.deleteSalesPerson(sp);
199                         setData();
200
201                         //String v = (String)userList.getSelectedValue();
202
//DefaultListModel m = (DefaultListModel)userList.getModel();
203
//m.removeElement(v);
204
//if (m.size() > 0) {
205
//userList.setSelectedIndex(m.size() - 1);
206
//id = (String)userList.getSelectedValue();
207
//if (id != null)
208
//loadSalesPerson(id);
209
//}
210
} 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 JavaDoc());
222         java.awt.GridBagConstraints JavaDoc 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 JavaDoc(200, 100));
228         userList.setModel(new AbstractListModel() {
229             String JavaDoc[] strings = { "one", "two" };
230             public int getSize() { return strings.length; }
231             public Object JavaDoc getElementAt(int i) { return strings[i]; }
232         });
233
234         userList.addMouseListener(
235             new java.awt.event.MouseAdapter JavaDoc() {
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 JavaDoc id = (String JavaDoc)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 JavaDoc();
265         gbc2.gridwidth = 1;
266         //gbc2.fill = java.awt.GridBagConstraints.HORIZONTAL;
267
gbc2.anchor = java.awt.GridBagConstraints.WEST;
268         mainPanel.add(userPanel, gbc2);
269         
270         tabbedPane.setMinimumSize(new java.awt.Dimension JavaDoc(200, 200));
271         tabbedPane.setMaximumSize(new java.awt.Dimension JavaDoc(200, 200));
272         tabbedPane.addTab("Address", addressPanel);
273         
274         roleTableScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
275         roleTableScrollPane.setPreferredSize(new java.awt.Dimension JavaDoc(200, 200));
276         roleTableScrollPane.setMinimumSize(new java.awt.Dimension JavaDoc(200, 200));
277         roleTableScrollPane.setMaximumSize(new java.awt.Dimension JavaDoc(200, 200));
278         roleTableScrollPane.setViewportView(roleTable);
279         
280         tabbedPane.addTab("Roles", roleTableScrollPane);
281         
282         gbc2 = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc evt) {
297         // Add your handling code here:
298
}
299
300     private void closeButtonActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
301         setVisible(false);
302         dispose();
303     }
304
305     private void applyButtonActionPerformed(java.awt.event.ActionEvent JavaDoc 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 JavaDoc 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     /** Closes the dialog */
355     private void closeDialog(java.awt.event.WindowEvent JavaDoc evt) {
356         setVisible(false);
357         dispose();
358     }
359
360     /**
361      * get the SalesPerson data being shown by the dialog
362      * @return the SalesPerson from the screen data
363      */

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 JavaDoc idVal = (String JavaDoc)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     /**
383      * load a sales person's info into this dialog
384      * @param i an index into the list of sales persons to display
385      */

386     public final void loadSalesPerson(String JavaDoc id) {
387         try {
388             TreeMap map = wb.getSalesPersons();
389             Object JavaDoc[] keys = map.keySet().toArray();
390             String JavaDoc key;
391             for (int i=0;i<keys.length;i++) {
392                 key = (String JavaDoc)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 JavaDoc e) {
410             ErrorHandler.show(thisDialog, e);
411         }
412     }
413
414     private final void updatePairs(String JavaDoc 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 JavaDoc(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 JavaDoc(false);
436                 pair.origSelected = new Boolean JavaDoc(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 JavaDoc(false);
451             pair.origSelected = new Boolean JavaDoc(false);
452         }
453     }
454
455     /**
456      * set the user role data to display
457      * @param roles an array of UserRole objects to displsy
458      */

459     public final void setRoleData(Object JavaDoc[] roles) {
460 // DefaultListModel model = new DefaultListModel();
461
// UserRole role = null;
462
for (int i=0;i<roles.length;i++) {
463 // role = (UserRole)roles[i];
464
// model.addElement(role.getName());
465
}
466
467  // roleList.setModel(model);
468
}
469
470     public void setPassword(String JavaDoc 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 JavaDoc id, String JavaDoc psw) {
486         try {
487             SalesPerson s = new SalesPerson();
488             s.setID(id);
489             s.setPassword(psw);
490             wb.addSalesPerson(s);
491             setData();
492             //DefaultListModel m = (DefaultListModel)userList.getModel();
493
//m.addElement(s.getID());
494
//userList.setSelectedIndex(m.size() -1 );
495
//String idVal = (String)userList.getSelectedValue();
496
//if (idVal != null)
497
// loadSalesPerson(idVal);
498
loadSalesPerson(id);
499     
500             //make sure the new user shows up in the sales group dialog
501
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     /** Creates new form UserIDDialog */
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 JavaDoc() {
577             public void windowClosing(java.awt.event.WindowEvent JavaDoc evt) {
578                 closeDialog(evt);
579             }
580         });
581         
582         applyButton.setText("Apply");
583         applyButton.addActionListener(new java.awt.event.ActionListener JavaDoc() {
584             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
585                 applyButtonActionPerformed(evt);
586             }
587         });
588         
589         buttonPanel.add(applyButton);
590         
591         closeButton.setText("Close");
592         closeButton.addActionListener(new java.awt.event.ActionListener JavaDoc() {
593             public void actionPerformed(java.awt.event.ActionEvent JavaDoc 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 JavaDoc());
606         java.awt.GridBagConstraints JavaDoc gridBagConstraints2;
607         
608         mainPanel.setBorder(new javax.swing.border.EtchedBorder JavaDoc());
609         idLabel.setText("User ID");
610         gridBagConstraints2 = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc();
621         gridBagConstraints2.insets = new java.awt.Insets JavaDoc(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 JavaDoc();
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 JavaDoc();
639         gridBagConstraints2.insets = new java.awt.Insets JavaDoc(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 JavaDoc();
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 JavaDoc();
657         gridBagConstraints2.gridx = 1;
658         gridBagConstraints2.gridy = 2;
659         gridBagConstraints2.insets = new java.awt.Insets JavaDoc(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 JavaDoc evt) {
669         setVisible(false);
670         dispose();
671     }
672
673     private void applyButtonActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
674     
675         char[] psw1 = pswField.getPassword();
676         char[] psw2 = psw2Field.getPassword();
677
678         String JavaDoc psw1Str = new String JavaDoc(psw1);
679         String JavaDoc psw2Str = new String JavaDoc(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     /** Closes the dialog */
695     private void closeDialog(java.awt.event.WindowEvent JavaDoc 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     /** Creates new form PasswordDialog */
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 JavaDoc() {
762             public void windowClosing(java.awt.event.WindowEvent JavaDoc evt) {
763                 closeDialog(evt);
764             }
765         });
766         
767         mainPanel.setLayout(new java.awt.GridBagLayout JavaDoc());
768         java.awt.GridBagConstraints JavaDoc gridBagConstraints1;
769         
770         mainPanel.setBorder(new javax.swing.border.EtchedBorder JavaDoc());
771         passwordLabel.setText("Password");
772         gridBagConstraints1 = new java.awt.GridBagConstraints JavaDoc();
773         gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST;
774         mainPanel.add(passwordLabel, gridBagConstraints1);
775         
776         retypeLabel.setText("Password Retype");
777         gridBagConstraints1 = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(100, 20));
784         passwordField.setMaximumSize(new java.awt.Dimension JavaDoc(100, 20));
785         passwordField.setMinimumSize(new java.awt.Dimension JavaDoc(100, 20));
786         gridBagConstraints1 = new java.awt.GridBagConstraints JavaDoc();
787         gridBagConstraints1.insets = new java.awt.Insets JavaDoc(2, 7, 2, 7);
788         gridBagConstraints1.anchor = java.awt.GridBagConstraints.WEST;
789         mainPanel.add(passwordField, gridBagConstraints1);
790         
791         retypeField.setPreferredSize(new java.awt.Dimension JavaDoc(100, 20));
792         retypeField.setMaximumSize(new java.awt.Dimension JavaDoc(100, 20));
793         retypeField.setMinimumSize(new java.awt.Dimension JavaDoc(100, 20));
794         gridBagConstraints1 = new java.awt.GridBagConstraints JavaDoc();
795         gridBagConstraints1.gridx = 1;
796         gridBagConstraints1.gridy = 1;
797         gridBagConstraints1.insets = new java.awt.Insets JavaDoc(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 JavaDoc() {
805             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
806                 applyButtonActionPerformed(evt);
807             }
808         });
809         
810         buttonPanel.add(applyButton);
811         
812         cancelButton.setText("Cancel");
813         cancelButton.addActionListener(new java.awt.event.ActionListener JavaDoc() {
814             public void actionPerformed(java.awt.event.ActionEvent JavaDoc 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 JavaDoc evt) {
827         setVisible(false);
828         dispose();
829     }
830
831     private void applyButtonActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
832         char[] psw1 = passwordField.getPassword();
833         char[] psw2 = retypeField.getPassword();
834
835         String JavaDoc psw1Str = new String JavaDoc(psw1);
836         String JavaDoc psw2Str = new String JavaDoc(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 JavaDoc(passwordField.getPassword()));
844         passwordField.setText("");
845         retypeField.setText("");
846         setVisible(false);
847         dispose();
848     }
849
850     /** Closes the dialog */
851     private void closeDialog(java.awt.event.WindowEvent JavaDoc evt) {
852         retypeField.setText("");
853         passwordField.setText("");
854         setVisible(false);
855         dispose();
856     }
857 }
858
859 class RoleTableModel extends AbstractTableModel {
860     private String JavaDoc[] 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 JavaDoc(true);
871     }
872
873     public final ArrayList getList() {
874         return wholeList;
875     }
876
877     public Object JavaDoc getValueAt(int row, int col) {
878         RolePair pair = null;
879         pair = (RolePair)wholeList.get(row);
880         switch (col) {
881             case 0: //role name
882
return pair.name;
883             case 1: //selected
884
return pair.selected;
885             default:
886                 System.out.println("role table value bad");
887         }
888         return null;
889     }
890
891     public Class JavaDoc getColumnClass(int col) {
892         switch (col) {
893             case 0: //role name
894
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 JavaDoc value, int row, int col) {
904         RolePair pair = null;
905         pair = (RolePair)wholeList.get(row);
906         switch (col) {
907             case 0: //role name
908
break;
909             case 1: //selected
910
pair.selected = (Boolean JavaDoc)value;
911                 break;
912         }
913         fireTableCellUpdated(row, col);
914     }
915
916     public final boolean isCellEditable(int row, int col) {
917         Class JavaDoc cls = getColumnClass(col);
918         String JavaDoc 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 JavaDoc getColumnName(int col) {
935         return columnNames[col];
936     }
937 }
938
939 class RolePair {
940     public long pk; //the UserRole pk
941
public String JavaDoc name;
942     public Boolean JavaDoc selected;
943     public Boolean JavaDoc origSelected;
944
945     public void print() {
946         System.out.println(name + " now=" + selected + " orig=" + origSelected);
947     }
948 }
949
Popular Tags