diff options
| author | slewis | 2005-04-12 06:13:56 +0000 |
|---|---|---|
| committer | slewis | 2005-04-12 06:13:56 +0000 |
| commit | b9040b87747acea2673f5e03f5e784bdb3000bed (patch) | |
| tree | 2c44727d581cf244480f05ac573b7f77c6ddc0ab | |
| parent | 7e5855b8935015a180ec2de00d2e7f38a7be338d (diff) | |
| download | org.eclipse.ecf-b9040b87747acea2673f5e03f5e784bdb3000bed.tar.gz org.eclipse.ecf-b9040b87747acea2673f5e03f5e784bdb3000bed.tar.xz org.eclipse.ecf-b9040b87747acea2673f5e03f5e784bdb3000bed.zip | |
Added dialog to approve/reject authorization requests. Tested.
2 files changed, 42 insertions, 11 deletions
diff --git a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/Client.java b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/Client.java index c35b82b42..6c07b9d0a 100644 --- a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/Client.java +++ b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/Client.java @@ -47,6 +47,7 @@ import org.eclipse.ecf.presence.IPresenceSender; import org.eclipse.ecf.presence.IRosterEntry; import org.eclipse.ecf.presence.ISubscribeListener; import org.eclipse.ecf.presence.impl.Presence; +import org.eclipse.ecf.ui.dialogs.AuthorizeRequest; import org.eclipse.ecf.ui.views.ITextInputHandler; import org.eclipse.ecf.ui.views.RosterView; import org.eclipse.swt.widgets.Display; @@ -354,7 +355,7 @@ public class Client { }); } catch (Exception e) { - IStatus status = new Status(IStatus.ERROR,ClientPlugin.PLUGIN_ID,IStatus.OK,"Excetion showing presence view",e); + IStatus status = new Status(IStatus.ERROR,ClientPlugin.PLUGIN_ID,IStatus.OK,"Exception showing presence view",e); ClientPlugin.getDefault().getLog().log(status); } } @@ -419,11 +420,35 @@ public class Client { }); pc.addSubscribeListener(new ISubscribeListener() { - public void handleSubscribeRequest(ID fromID, IPresence presence) { - System.out.println("subscribe request from "+fromID); - if (presenceSender != null) { - presenceSender.sendPresenceUpdate(localUser,fromID,new Presence(IPresence.Type.SUBSCRIBED)); - } + public void handleSubscribeRequest(final ID fromID, IPresence presence) { + Display.getDefault().syncExec(new Runnable() { + public void run() { + try { + IWorkbenchWindow ww = PlatformUI.getWorkbench() + .getActiveWorkbenchWindow(); + AuthorizeRequest authRequest = new AuthorizeRequest(ww.getShell(),fromID.getName(),localUser.getName()); + authRequest.open(); + int res = authRequest.getButtonPressed(); + if (res == AuthorizeRequest.AUTHORIZE_AND_ADD) { + if (presenceSender != null) { + presenceSender.sendPresenceUpdate(localUser,fromID,new Presence(IPresence.Type.SUBSCRIBED)); + presenceSender.sendPresenceUpdate(localUser,fromID,new Presence(IPresence.Type.SUBSCRIBE)); + } + } else if (res == AuthorizeRequest.AUTHORIZE_ID) { + if (presenceSender != null) { + presenceSender.sendPresenceUpdate(localUser,fromID,new Presence(IPresence.Type.SUBSCRIBED)); + } + } else if (res == AuthorizeRequest.REFUSE_ID) { + System.out.println("Refuse hit"); + } else { + System.out.println("No buttons hit"); + } + } catch (Exception e) { + IStatus status = new Status(IStatus.ERROR,ClientPlugin.PLUGIN_ID,IStatus.OK,"Exception showing authorization dialog",e); + ClientPlugin.getDefault().getLog().log(status); + } + } + }); } public void handleUnsubscribeRequest(ID fromID, IPresence presence) { diff --git a/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/dialogs/AuthorizeRequest.java b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/dialogs/AuthorizeRequest.java index 93003632d..5de15784e 100644 --- a/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/dialogs/AuthorizeRequest.java +++ b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/dialogs/AuthorizeRequest.java @@ -4,7 +4,6 @@ import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; @@ -19,9 +18,11 @@ public class AuthorizeRequest extends Dialog { private Label target_username; private Label requester_userid; - private static final int REFUSE_ID = IDialogConstants.CLIENT_ID + 3; - private static final int AUTHORIZE_AND_ADD = IDialogConstants.CLIENT_ID + 2; - private static final int AUTHORIZE_ID = IDialogConstants.CLIENT_ID + 1; + public static final int REFUSE_ID = IDialogConstants.CLIENT_ID + 3; + public static final int AUTHORIZE_AND_ADD = IDialogConstants.CLIENT_ID + 2; + public static final int AUTHORIZE_ID = IDialogConstants.CLIENT_ID + 1; + + int buttonPressed = 0; public AuthorizeRequest(Shell parentShell) { super(parentShell); @@ -100,7 +101,12 @@ public class AuthorizeRequest extends Dialog { super.configureShell(newShell); newShell.setText("ECF Authorization request from "+requesterName); } + public int getButtonPressed() { + return buttonPressed; + } protected void buttonPressed(int button) { - System.out.println("button "+button+" pressed"); + //System.out.println("button "+button+" pressed"); + buttonPressed = button; + this.close(); } } |
