2222
2323import java .awt .Dimension ;
2424import java .awt .HeadlessException ;
25- import java .awt .KeyboardFocusManager ;
26- import java .awt .KeyEventDispatcher ;
27- import java .awt .event .ActionEvent ;
28- import java .awt .event .ActionListener ;
29- import java .awt .event .KeyEvent ;
3025import java .util .Arrays ;
31- import java .util .List ;
3226
33- import javax .swing .AbstractAction ;
34- import javax .swing .Action ;
35- import javax .swing .JButton ;
36- import javax .swing .JDialog ;
37- import javax .swing .JFrame ;
27+ import javax .swing .JComponent ;
3828import javax .swing .JLabel ;
3929import javax .swing .JOptionPane ;
4030import javax .swing .JPanel ;
4131import javax .swing .JPasswordField ;
42- import javax .swing .KeyStroke ;
4332
4433import com .jgoodies .forms .builder .PanelBuilder ;
4534import com .jgoodies .forms .factories .Paddings ;
5140import org .hibernate .Transaction ;
5241import org .hibernate .query .NativeQuery ;
5342import org .jfree .ui .tabbedui .VerticalLayout ;
54- import org .postgresql .util .PSQLException ;
5543
44+ import de .bielefeld .umweltamt .aui .HauptFrame ;
5645import de .bielefeld .umweltamt .aui .HibernateSessionFactory ;
5746import de .bielefeld .umweltamt .aui .utils .AuikLogger ;
47+ import de .bielefeld .umweltamt .aui .utils .dialogbase .OkCancelDialog ;
5848
5949/**
6050 * Dialog, allowing the user to change the current password
6151 */
62- public class PasswordChangeDialog extends JDialog {
52+ public class PasswordChangeDialog extends OkCancelDialog {
6353
6454 /** Logging */
6555 private static final AuikLogger log = AuikLogger .getLogger ();
@@ -72,76 +62,27 @@ public class PasswordChangeDialog extends JDialog {
7262 private JPasswordField newPasswordField ;
7363 private JPasswordField newPasswordConfirmField ;
7464
75- private JButton okButton ;
76- private JButton cancelButton ;
77-
78- private KeyEventDispatcher keyEventDispatcher ;
79-
8065 /**
8166 * Constructor
8267 * @param owner Owning frame this dialog will be placed above.
8368 * @throws HeadlessException
8469 */
85- public PasswordChangeDialog (JFrame owner ){
86- super (owner , "Passwort ändern" , true );
87- this .setSize (450 , 150 );
88- initialize ();
70+ public PasswordChangeDialog (HauptFrame owner ){
71+ super ("Passwort ändern" , owner );
72+ this .setSize (450 , 200 );
8973 }
9074
91- /**
92- * Initialize UI
93- */
94- private void initialize () {
75+ @ Override
76+ protected JComponent buildContentArea () {
9577 currentPasswordLabel = new JLabel ("Aktuelles Passwort:" );
9678 newPasswordLabel = new JLabel ("Neues Passwort:" );
9779 newPasswordConfirmLabel = new JLabel ("Passwort bestätigen:" );
9880 currentPasswordField = new JPasswordField ();
9981 newPasswordField = new JPasswordField ();
10082 newPasswordConfirmField = new JPasswordField ();
101- okButton = new JButton ("OK" );
102- cancelButton = new JButton ("Abbrechen" );
10383
10484 currentPasswordField .setPreferredSize (new Dimension (150 , 22 ));
10585
106- //Button handlers
107- okButton .addActionListener (new ActionListener () {
108- @ Override
109- public void actionPerformed (ActionEvent e ) {
110- submit ();
111- }
112- });
113- cancelButton .addActionListener (new ActionListener () {
114- @ Override
115- public void actionPerformed (ActionEvent e ) {
116- close ();
117- }
118- });
119-
120- //Key handler
121- keyEventDispatcher = new KeyEventDispatcher () {
122- @ Override
123- public boolean dispatchKeyEvent (KeyEvent e ) {
124- if (e .getID () != KeyEvent .KEY_PRESSED ) {
125- return false ;
126- }
127- switch (e .getKeyCode ()) {
128- //Use ESC to cancel
129- case KeyEvent .VK_ESCAPE :
130- close ();
131- break ;
132- //Use enter to submit if focus is on new password confirmation field
133- case KeyEvent .VK_ENTER :
134- if (newPasswordConfirmField .isFocusOwner ()) {
135- submit ();
136- }
137- break ;
138- }
139- return false ;
140- }
141- };
142- KeyboardFocusManager .getCurrentKeyboardFocusManager ()
143- .addKeyEventDispatcher (keyEventDispatcher );
144-
14586 //Create form
14687 FormLayout layout = new FormLayout (
14788 "right:pref, 4dlu, pref:grow, 4dlu, pref" , // Spalten
@@ -164,19 +105,14 @@ public boolean dispatchKeyEvent(KeyEvent e) {
164105 formPanel .setBorder (Paddings .DIALOG );
165106 contentPanel .add (formPanel );
166107
167- JPanel buttonPanel = new JPanel ();
168- buttonPanel .add (okButton );
169- buttonPanel .add (cancelButton );
170- contentPanel .add (buttonPanel );
171-
172- this .setContentPane (contentPanel );
173- this .pack ();
108+ return contentPanel ;
174109 }
175110
176111 /**
177112 * Check input and submit password change
178113 */
179- private void submit () {
114+ @ Override
115+ protected void doOk () {
180116 if (!checkInput ()) {
181117 return ;
182118 }
@@ -187,24 +123,17 @@ private void submit() {
187123 }
188124 }
189125
190- /**
191- * Cancel action and dispose this dialog
192- */
193- private void close () {
194- PasswordChangeDialog .this .dispose ();
195- }
196-
197126 private boolean checkInput () {
198127 if (checkPasswordEmpty ()) {
199- JOptionPane .showMessageDialog (PasswordChangeDialog . this , "Bitte geben Sie ein neues Passwort ein" );
200- return false ;
128+ JOptionPane .showMessageDialog (this , "Bitte geben Sie ein neues Passwort ein" );
129+ return false ;
201130 }
202131 if (!checkPasswordConfirmation ()) {
203- JOptionPane .showMessageDialog (PasswordChangeDialog . this , "Die Passwörter stimmen nicht überein" );
132+ JOptionPane .showMessageDialog (this , "Die Passwörter stimmen nicht überein" );
204133 return false ;
205134 }
206135 if (!checkCurrentPassword ()) {
207- JOptionPane .showMessageDialog (PasswordChangeDialog . this , "Das eingegebene Passwort ist nicht korrekt" );
136+ JOptionPane .showMessageDialog (this , "Das eingegebene Passwort ist nicht korrekt" );
208137 return false ;
209138 }
210139 return true ;
0 commit comments