Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2005-04-12 06:13:56 +0000
committerslewis2005-04-12 06:13:56 +0000
commitb9040b87747acea2673f5e03f5e784bdb3000bed (patch)
tree2c44727d581cf244480f05ac573b7f77c6ddc0ab
parent7e5855b8935015a180ec2de00d2e7f38a7be338d (diff)
downloadorg.eclipse.ecf-b9040b87747acea2673f5e03f5e784bdb3000bed.tar.gz
org.eclipse.ecf-b9040b87747acea2673f5e03f5e784bdb3000bed.tar.xz
org.eclipse.ecf-b9040b87747acea2673f5e03f5e784bdb3000bed.zip
Added dialog to approve/reject authorization requests. Tested.
-rw-r--r--examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/Client.java37
-rw-r--r--framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/dialogs/AuthorizeRequest.java16
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();
}
}

Back to the top