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 }