]> git.argeo.org Git - lgpl/argeo-commons.git/blob - auth/DynamicCallbackHandler.java
Prepare next development cycle
[lgpl/argeo-commons.git] / auth / DynamicCallbackHandler.java
1 package org.argeo.cms.ui.widgets.auth;
2
3 import java.io.IOException;
4
5 import javax.security.auth.callback.Callback;
6 import javax.security.auth.callback.CallbackHandler;
7 import javax.security.auth.callback.UnsupportedCallbackException;
8
9 import org.argeo.eclipse.ui.dialogs.LightweightDialog;
10 import org.eclipse.swt.SWT;
11 import org.eclipse.swt.widgets.Composite;
12 import org.eclipse.swt.widgets.Control;
13 import org.eclipse.swt.widgets.Display;
14 import org.eclipse.swt.widgets.Shell;
15
16 public class DynamicCallbackHandler implements CallbackHandler {
17
18 @Override
19 public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
20 Shell activeShell = Display.getCurrent().getActiveShell();
21 LightweightDialog dialog = new LightweightDialog(activeShell) {
22
23 @Override
24 protected Control createDialogArea(Composite parent) {
25 CompositeCallbackHandler cch = new CompositeCallbackHandler(parent, SWT.NONE);
26 cch.createCallbackHandlers(callbacks);
27 return cch;
28 }
29 };
30 dialog.setBlockOnOpen(true);
31 dialog.open();
32 }
33
34 }