1 package org
.argeo
.security
.ui
.dialogs
;
3 import javax
.security
.auth
.callback
.Callback
;
4 import javax
.security
.auth
.callback
.NameCallback
;
5 import javax
.security
.auth
.callback
.PasswordCallback
;
6 import javax
.security
.auth
.callback
.TextOutputCallback
;
8 import org
.eclipse
.jface
.dialogs
.IMessageProvider
;
9 import org
.eclipse
.swt
.SWT
;
10 import org
.eclipse
.swt
.events
.ModifyEvent
;
11 import org
.eclipse
.swt
.events
.ModifyListener
;
12 import org
.eclipse
.swt
.graphics
.Point
;
13 import org
.eclipse
.swt
.layout
.GridData
;
14 import org
.eclipse
.swt
.layout
.GridLayout
;
15 import org
.eclipse
.swt
.widgets
.Composite
;
16 import org
.eclipse
.swt
.widgets
.Control
;
17 import org
.eclipse
.swt
.widgets
.Display
;
18 import org
.eclipse
.swt
.widgets
.Label
;
19 import org
.eclipse
.swt
.widgets
.Shell
;
20 import org
.eclipse
.swt
.widgets
.Text
;
22 public class DefaultLoginDialog
extends AbstractLoginDialog
{
24 public DefaultLoginDialog() {
25 this(Display
.getDefault().getActiveShell());
28 protected DefaultLoginDialog(Shell parentShell
) {
32 protected Point
getInitialSize() {
33 return new Point(300, 280);
36 protected Control
createDialogArea(Composite parent
) {
37 Composite dialogarea
= (Composite
) super.createDialogArea(parent
);
38 dialogarea
.setLayoutData(new GridData(GridData
.FILL_BOTH
));
39 Composite composite
= new Composite(dialogarea
, SWT
.NONE
);
40 composite
.setLayout(new GridLayout(2, false));
41 createCallbackHandlers(composite
);
45 private void createCallbackHandlers(Composite composite
) {
46 Callback
[] callbacks
= getCallbacks();
47 for (int i
= 0; i
< callbacks
.length
; i
++) {
48 Callback callback
= callbacks
[i
];
49 if (callback
instanceof TextOutputCallback
) {
50 createTextoutputHandler(composite
,
51 (TextOutputCallback
) callback
);
52 } else if (callback
instanceof NameCallback
) {
53 createNameHandler(composite
, (NameCallback
) callback
);
54 } else if (callback
instanceof PasswordCallback
) {
55 createPasswordHandler(composite
, (PasswordCallback
) callback
);
60 private void createPasswordHandler(Composite composite
,
61 final PasswordCallback callback
) {
62 Label label
= new Label(composite
, SWT
.NONE
);
63 label
.setText(callback
.getPrompt());
64 final Text passwordText
= new Text(composite
, SWT
.SINGLE
| SWT
.LEAD
65 | SWT
.PASSWORD
| SWT
.BORDER
);
66 //passwordText.setLayoutData(new GridData(GridData.FILL_BOTH));
67 passwordText
.addModifyListener(new ModifyListener() {
69 public void modifyText(ModifyEvent event
) {
70 callback
.setPassword(passwordText
.getText().toCharArray());
75 private void createNameHandler(Composite composite
,
76 final NameCallback callback
) {
77 Label label
= new Label(composite
, SWT
.NONE
);
78 label
.setText(callback
.getPrompt());
79 final Text text
= new Text(composite
, SWT
.SINGLE
| SWT
.LEAD
81 //text.setLayoutData(new GridData(GridData.FILL_BOTH));
82 text
.addModifyListener(new ModifyListener() {
84 public void modifyText(ModifyEvent event
) {
85 callback
.setName(text
.getText());
90 private void createTextoutputHandler(Composite composite
,
91 TextOutputCallback callback
) {
92 int messageType
= callback
.getMessageType();
93 int dialogMessageType
= IMessageProvider
.NONE
;
94 switch (messageType
) {
95 case TextOutputCallback
.INFORMATION
:
96 dialogMessageType
= IMessageProvider
.INFORMATION
;
98 case TextOutputCallback
.WARNING
:
99 dialogMessageType
= IMessageProvider
.WARNING
;
101 case TextOutputCallback
.ERROR
:
102 dialogMessageType
= IMessageProvider
.ERROR
;
105 setMessage(callback
.getMessage(), dialogMessageType
);
108 public void internalHandle() {