Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2007-04-17 05:48:01 +0000
committerslewis2007-04-17 05:48:01 +0000
commitb5600e88e4cbb1cc21c10acc2d1bcc5c201fb348 (patch)
treed1bcdbf6e20bf9d2bd15c355272640c77b0b50f5 /framework/bundles
parent7e762ca5e659c973bb7caab1449dfea7ae8066af (diff)
downloadorg.eclipse.ecf-b5600e88e4cbb1cc21c10acc2d1bcc5c201fb348.tar.gz
org.eclipse.ecf-b5600e88e4cbb1cc21c10acc2d1bcc5c201fb348.tar.xz
org.eclipse.ecf-b5600e88e4cbb1cc21c10acc2d1bcc5c201fb348.zip
Renamed IRosterUpdateListener to IRosterListener. Moved methods from IPresenceListener to IRosterListener. Updated providers. Replaced Yahoo roster viewer with new multirosterview
Diffstat (limited to 'framework/bundles')
-rw-r--r--framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/MultiRosterAccount.java27
-rw-r--r--framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/MultiRosterView.java31
-rw-r--r--framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/PresenceUI.java388
3 files changed, 33 insertions, 413 deletions
diff --git a/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/MultiRosterAccount.java b/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/MultiRosterAccount.java
index 820a26d87..16d15a94c 100644
--- a/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/MultiRosterAccount.java
+++ b/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/MultiRosterAccount.java
@@ -15,9 +15,10 @@ import org.eclipse.core.runtime.Assert;
import org.eclipse.ecf.core.IContainer;
import org.eclipse.ecf.presence.IPresenceContainerAdapter;
import org.eclipse.ecf.presence.roster.IRoster;
+import org.eclipse.ecf.presence.roster.IRosterEntry;
import org.eclipse.ecf.presence.roster.IRosterItem;
import org.eclipse.ecf.presence.roster.IRosterManager;
-import org.eclipse.ecf.presence.roster.IRosterUpdateListener;
+import org.eclipse.ecf.presence.roster.IRosterListener;
import org.eclipse.swt.widgets.Display;
/**
@@ -33,7 +34,7 @@ public class MultiRosterAccount {
protected IPresenceContainerAdapter adapter;
- IRosterUpdateListener updateListener = new IRosterUpdateListener() {
+ IRosterListener updateListener = new IRosterListener() {
public void handleRosterUpdate(final IRoster roster,
final IRosterItem changedValue) {
Display.getDefault().asyncExec(new Runnable() {
@@ -43,6 +44,24 @@ public class MultiRosterAccount {
}
});
}
+
+ public void handleRosterEntryAdd(final IRosterEntry entry) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ MultiRosterAccount.this.multiRosterView
+ .addEntryToTreeViewer(entry);
+ }
+ });
+ }
+
+ public void handleRosterEntryRemove(final IRosterEntry entry) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ MultiRosterAccount.this.multiRosterView
+ .removeEntryFromTreeViewer(entry);
+ }
+ });
+ }
};
public MultiRosterAccount(MultiRosterView multiRosterView,
@@ -52,7 +71,7 @@ public class MultiRosterAccount {
Assert.isNotNull(adapter);
this.container = container;
this.adapter = adapter;
- getRosterManager().addRosterUpdateListener(updateListener);
+ getRosterManager().addRosterListener(updateListener);
}
public IContainer getContainer() {
@@ -72,7 +91,7 @@ public class MultiRosterAccount {
}
public void dispose() {
- getRosterManager().removeRosterUpdateListener(updateListener);
+ getRosterManager().removeRosterListener(updateListener);
container = null;
adapter = null;
}
diff --git a/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/MultiRosterView.java b/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/MultiRosterView.java
index dae673364..2c497f900 100644
--- a/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/MultiRosterView.java
+++ b/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/MultiRosterView.java
@@ -762,6 +762,16 @@ public class MultiRosterView extends ViewPart implements
}
}
+ protected void addEntryToTreeViewer(IRosterEntry entry) {
+ if (treeViewer != null)
+ treeViewer.add(entry.getParent(), entry);
+ }
+
+ protected void removeEntryFromTreeViewer(IRosterEntry entry) {
+ if (treeViewer != null)
+ treeViewer.remove(entry);
+ }
+
/*
* (non-Javadoc)
*
@@ -849,27 +859,6 @@ public class MultiRosterView extends ViewPart implements
/*
* (non-Javadoc)
*
- * @see org.eclipse.ecf.presence.IPresenceListener#handleRosterEntryAdd(org.eclipse.ecf.presence.roster.IRosterEntry)
- */
- public void handleRosterEntryAdd(final IRosterEntry entry) {
- treeViewer.getControl().getDisplay().asyncExec(new Runnable() {
- public void run() {
- treeViewer.add(entry.getParent(), entry);
- }
- });
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ecf.presence.IPresenceListener#handleRosterEntryRemove(org.eclipse.ecf.presence.roster.IRosterEntry)
- */
- public void handleRosterEntryRemove(IRosterEntry entry) {
- }
-
- /*
- * (non-Javadoc)
- *
* @see org.eclipse.ecf.presence.IParticipantListener#handlePresence(org.eclipse.ecf.core.identity.ID,
* org.eclipse.ecf.presence.IPresence)
*/
diff --git a/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/PresenceUI.java b/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/PresenceUI.java
deleted file mode 100644
index d1847b348..000000000
--- a/framework/bundles/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/presence/ui/PresenceUI.java
+++ /dev/null
@@ -1,388 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2004 Composent, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Composent, Inc. - initial API and implementation
- *****************************************************************************/
-package org.eclipse.ecf.presence.ui;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ecf.core.IContainer;
-import org.eclipse.ecf.core.IContainerListener;
-import org.eclipse.ecf.core.events.IContainerConnectedEvent;
-import org.eclipse.ecf.core.events.IContainerDisconnectedEvent;
-import org.eclipse.ecf.core.events.IContainerEvent;
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.core.sharedobject.ISharedObjectContainer;
-import org.eclipse.ecf.core.user.IUser;
-import org.eclipse.ecf.core.util.ECFException;
-import org.eclipse.ecf.internal.presence.ui.Activator;
-import org.eclipse.ecf.presence.IAccountManager;
-import org.eclipse.ecf.presence.IIMMessageEvent;
-import org.eclipse.ecf.presence.IIMMessageListener;
-import org.eclipse.ecf.presence.IPresence;
-import org.eclipse.ecf.presence.IPresenceContainerAdapter;
-import org.eclipse.ecf.presence.IPresenceListener;
-import org.eclipse.ecf.presence.IPresenceSender;
-import org.eclipse.ecf.presence.Presence;
-import org.eclipse.ecf.presence.im.IChatManager;
-import org.eclipse.ecf.presence.im.IChatMessageEvent;
-import org.eclipse.ecf.presence.im.IChatMessageSender;
-import org.eclipse.ecf.presence.im.ITypingMessageEvent;
-import org.eclipse.ecf.presence.im.ITypingMessageSender;
-import org.eclipse.ecf.presence.roster.IRosterEntry;
-import org.eclipse.ecf.presence.roster.IRosterSubscriptionListener;
-import org.eclipse.ecf.presence.roster.IRosterSubscriptionSender;
-import org.eclipse.ecf.ui.dialogs.ReceiveAuthorizeRequestDialog;
-import org.eclipse.ecf.ui.views.ILocalInputHandler;
-import org.eclipse.ecf.ui.views.RosterView;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Presence user interface
- */
-public class PresenceUI {
-
- protected static final String ROSTER_VIEW_ID = "org.eclipse.ecf.ui.view.rosterview";
-
- protected static final int SEND_ERRORCODE = IStatus.ERROR;
-
- protected RosterView rosterView = null;
-
- protected IPresenceSender presenceSender = null;
-
- protected IAccountManager accountManager = null;
-
- protected IRosterSubscriptionSender rosterSubscriptionSender = null;
-
- protected IPresenceContainerAdapter presenceAdapter = null;
-
- protected ISharedObjectContainer soContainer = null;
-
- protected IUser localUser = null;
-
- protected ID groupID = null;
-
- protected IContainer container;
-
- protected IChatManager chatManager;
-
- protected IChatMessageSender chatMessageSender;
-
- protected ITypingMessageSender typingMessageSender;
-
- public PresenceUI(IContainer container,
- IPresenceContainerAdapter presenceAdapter) {
- this.container = container;
- this.presenceAdapter = presenceAdapter;
- this.presenceSender = this.presenceAdapter.getRosterManager()
- .getPresenceSender();
- this.rosterSubscriptionSender = this.presenceAdapter.getRosterManager()
- .getRosterSubscriptionSender();
- this.accountManager = this.presenceAdapter.getAccountManager();
- this.chatManager = this.presenceAdapter.getChatManager();
- this.chatMessageSender = this.chatManager.getChatMessageSender();
- this.typingMessageSender = this.chatManager.getTypingMessageSender();
- this.soContainer = (ISharedObjectContainer) this.container
- .getAdapter(ISharedObjectContainer.class);
-
- this.groupID = container.getConnectedID();
- }
-
- public void showForUser(final IUser localUser) {
- Display.getDefault().syncExec(new Runnable() {
- public void run() {
- try {
- IWorkbenchWindow ww = PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow();
- IWorkbenchPage wp = ww.getActivePage();
-
- IViewPart view = wp.showView(ROSTER_VIEW_ID);
- rosterView = (RosterView) view;
-
- PresenceUI.this.localUser = localUser;
-
- } catch (Exception e) {
- Activator.getDefault().getLog().log(
- new Status(IStatus.ERROR, Activator.PLUGIN_ID,
- SEND_ERRORCODE,
- "Exception showing presence view", e));
- }
- }
- });
-
- chatManager.addMessageListener(new IIMMessageListener() {
- public void handleMessageEvent(
- final IIMMessageEvent chatMessageEvent) {
- Display.getDefault().syncExec(new Runnable() {
- public void run() {
- if (chatMessageEvent instanceof IChatMessageEvent) {
- rosterView.handleMessageEvent(chatMessageEvent);
- } else if (chatMessageEvent instanceof ITypingMessageEvent) {
- rosterView.handleTyping(chatMessageEvent
- .getFromID());
- }
- }
- });
- }
- });
-
- container.addListener(new IContainerListener() {
- public void handleEvent(IContainerEvent event) {
- if (event instanceof IContainerConnectedEvent) {
- IContainerConnectedEvent cce = (IContainerConnectedEvent) event;
- final ID joinedContainer = cce.getTargetID();
- Display.getDefault().syncExec(new Runnable() {
- public void run() {
- ILocalInputHandler handler = new ILocalInputHandler() {
- public void inputText(ID userID, String text) {
- try {
- if (chatMessageSender != null)
- chatMessageSender.sendChatMessage(
- userID, text);
- } catch (ECFException e) {
- Activator
- .getDefault()
- .getLog()
- .log(
- new Status(
- IStatus.ERROR,
- Activator
- .getDefault()
- .getBundle()
- .getSymbolicName(),
- SEND_ERRORCODE,
- "Error in sendMessage",
- e));
- }
- }
-
- public void startTyping(ID userID) {
- try {
- if (typingMessageSender != null)
- typingMessageSender
- .sendTypingMessage(userID,
- true, "");
- } catch (ECFException e) {
- Activator
- .getDefault()
- .getLog()
- .log(
- new Status(
- IStatus.ERROR,
- Activator
- .getDefault()
- .getBundle()
- .getSymbolicName(),
- SEND_ERRORCODE,
- "Error in startTyping",
- e));
- }
- }
-
- public void disconnect() {
- container.disconnect();
- }
-
- public void updatePresence(ID userID,
- IPresence presence) {
- try {
- if (presenceSender != null)
- presenceSender.sendPresenceUpdate(
- userID, presence);
- } catch (ECFException e) {
- Activator
- .getDefault()
- .getLog()
- .log(
- new Status(
- IStatus.ERROR,
- Activator
- .getDefault()
- .getBundle()
- .getSymbolicName(),
- SEND_ERRORCODE,
- "Error in sendPresenceUpdate",
- e));
- }
- }
-
- public void sendRosterAdd(String user,
- String name, String[] groups) {
- // Send roster add
- try {
- rosterSubscriptionSender.sendRosterAdd(
- user, name, groups);
- } catch (ECFException e) {
- Activator
- .getDefault()
- .getLog()
- .log(
- new Status(
- IStatus.ERROR,
- Activator
- .getDefault()
- .getBundle()
- .getSymbolicName(),
- SEND_ERRORCODE,
- "Error in sendRosterAdd",
- e));
- }
- }
-
- public void sendRosterRemove(ID userID) {
- try {
- if (rosterSubscriptionSender != null)
- rosterSubscriptionSender
- .sendRosterRemove(userID);
- } catch (ECFException e) {
- Activator
- .getDefault()
- .getLog()
- .log(
- new Status(
- IStatus.ERROR,
- Activator
- .getDefault()
- .getBundle()
- .getSymbolicName(),
- SEND_ERRORCODE,
- "Error in sendRosterRemove",
- e));
- }
- }
- };
- PresenceUI.this.groupID = joinedContainer;
- rosterView.addAccount(joinedContainer,
- PresenceUI.this.localUser,
- handler, container, presenceAdapter,
- soContainer);
- }
- });
-
- } else if (event instanceof IContainerDisconnectedEvent) {
- final IContainerDisconnectedEvent de = (IContainerDisconnectedEvent) event;
- Display.getDefault().syncExec(new Runnable() {
- public void run() {
- rosterView.accountDisconnected(de.getTargetID());
- }
- });
- }
- }
- });
-
- presenceAdapter.getRosterManager().addPresenceListener(
- new IPresenceListener() {
-
- public void handleRosterEntryAdd(final IRosterEntry entry) {
- Display.getDefault().syncExec(new Runnable() {
- public void run() {
- rosterView
- .handleRosterEntryAdd(
- PresenceUI.this.groupID,
- entry);
- }
- });
- }
-
- public void handlePresence(final ID fromID,
- final IPresence presence) {
- Display.getDefault().syncExec(new Runnable() {
- public void run() {
- rosterView.handlePresence(
- PresenceUI.this.groupID,
- fromID, presence);
- }
- });
- }
-
- public void handleRosterEntryRemove(final IRosterEntry entry) {
- Display.getDefault().syncExec(new Runnable() {
- public void run() {
- rosterView
- .handleRosterEntryRemove(
- PresenceUI.this.groupID,
- entry);
- }
- });
- }
-
- });
-
- presenceAdapter.getRosterManager().addRosterSubscriptionListener(
- new IRosterSubscriptionListener() {
-
- public void handleSubscribeRequest(final ID fromID) {
- Display.getDefault().syncExec(new Runnable() {
- public void run() {
- try {
- IWorkbenchWindow ww = PlatformUI
- .getWorkbench()
- .getActiveWorkbenchWindow();
- ReceiveAuthorizeRequestDialog authRequest = new ReceiveAuthorizeRequestDialog(
- ww.getShell(), fromID.getName(),
- localUser.getName());
- authRequest.setBlockOnOpen(true);
- authRequest.open();
- int res = authRequest.getButtonPressed();
- if (res == ReceiveAuthorizeRequestDialog.AUTHORIZE_AND_ADD) {
- if (presenceSender != null) {
- presenceSender
- .sendPresenceUpdate(
- fromID,
- new Presence(
- IPresence.Type.SUBSCRIBED));
- if (rosterView != null)
- rosterView.sendRosterAdd(
- localUser.getID(),
- fromID.getName(), null);
- }
- } else if (res == ReceiveAuthorizeRequestDialog.AUTHORIZE_ID) {
- if (presenceSender != null) {
- presenceSender
- .sendPresenceUpdate(
- fromID,
- new Presence(
- IPresence.Type.SUBSCRIBED));
- }
- } else if (res == ReceiveAuthorizeRequestDialog.REFUSE_ID) {
- // do nothing
- } else {
- // do nothing
- }
- } catch (Exception e) {
- Activator
- .getDefault()
- .getLog()
- .log(
- new Status(
- IStatus.ERROR,
- Activator.PLUGIN_ID,
- SEND_ERRORCODE,
- "Exception showing authorization dialog",
- e));
- }
- }
- });
- }
-
- public void handleSubscribed(ID fromID) {
- // System.out.println("subscribed from "+fromID);
- }
-
- public void handleUnsubscribed(ID fromID) {
- // System.out.println("unsubscribed from "+fromID);
- }
- });
- }
-
-}

Back to the top