diff options
author | rsuen | 2008-12-14 13:21:36 +0000 |
---|---|---|
committer | rsuen | 2008-12-14 13:21:36 +0000 |
commit | 78aa9bf69265b282052ff3c69ee1a4e5a7861c09 (patch) | |
tree | 77715fb8ee311ea90947fba6771c8d9fe61e752e | |
parent | 826acef2cc54462d652da95f0fc5cadca493719b (diff) | |
download | org.eclipse.ecf-78aa9bf69265b282052ff3c69ee1a4e5a7861c09.tar.gz org.eclipse.ecf-78aa9bf69265b282052ff3c69ee1a4e5a7861c09.tar.xz org.eclipse.ecf-78aa9bf69265b282052ff3c69ee1a4e5a7861c09.zip |
Private messages should go through the 'Messages' view.
2 files changed, 52 insertions, 68 deletions
diff --git a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/share/EclipseCollabSharedObject.java b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/share/EclipseCollabSharedObject.java index 9f9b76c08..bb178d5ae 100644 --- a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/share/EclipseCollabSharedObject.java +++ b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/share/EclipseCollabSharedObject.java @@ -104,6 +104,10 @@ public class EclipseCollabSharedObject extends GenericSharedObject { Assert.isNotNull(localGUI, "Local GUI cannot be created...exiting"); //$NON-NLS-1$ } + public ID getContainerID() { + return containerID; + } + void handleChatMessageEvent(final IChatMessageEvent event) { final IWorkbench workbench = PlatformUI.getWorkbench(); workbench.getDisplay().asyncExec(new Runnable() { @@ -113,6 +117,32 @@ public class EclipseCollabSharedObject extends GenericSharedObject { }); } + public MessagesView findMessagesView() { + IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows(); + for (int i = 0; i < windows.length; i++) { + IWorkbenchPage page = windows[i].getActivePage(); + if (page != null) { + MessagesView view = (MessagesView) page.findView(MessagesView.VIEW_ID); + if (view != null) { + return view; + } + } + } + + for (int i = 0; i < windows.length; i++) { + IWorkbenchPage page = windows[i].getActivePage(); + if (page != null) { + try { + return (MessagesView) page.showView(MessagesView.VIEW_ID); + } catch (PartInitException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + return null; + } + void appendMessage(IChatMessageSender chatMessageSender, ITypingMessageSender typingMessageSender, IChatMessage message) { IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows(); for (int i = 0; i < windows.length; i++) { @@ -129,8 +159,8 @@ public class EclipseCollabSharedObject extends GenericSharedObject { service.warnOfContentChange(); } } + return; } - return; } } diff --git a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/internal/example/collab/ui/ChatComposite.java b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/internal/example/collab/ui/ChatComposite.java index ef2baf0d7..d9fd33d84 100644 --- a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/internal/example/collab/ui/ChatComposite.java +++ b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/internal/example/collab/ui/ChatComposite.java @@ -14,15 +14,8 @@ package org.eclipse.ecf.internal.example.collab.ui; import java.io.File; import java.io.IOException; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.StringTokenizer; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Status; +import java.util.*; +import org.eclipse.core.runtime.*; import org.eclipse.core.runtime.Preferences.PropertyChangeEvent; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.ecf.core.identity.ID; @@ -30,76 +23,34 @@ import org.eclipse.ecf.core.identity.IDFactory; import org.eclipse.ecf.core.user.IUser; import org.eclipse.ecf.example.collab.share.io.FileTransferParams; import org.eclipse.ecf.internal.example.collab.ClientPlugin; +import org.eclipse.ecf.presence.IPresenceContainerAdapter; +import org.eclipse.ecf.presence.im.IChatManager; +import org.eclipse.ecf.presence.ui.MessagesView; import org.eclipse.ecf.ui.screencapture.IImageSender; import org.eclipse.ecf.ui.screencapture.ScreenCaptureJob; -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.IMenuListener; -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.jface.action.MenuManager; -import org.eclipse.jface.action.Separator; -import org.eclipse.jface.dialogs.IDialogSettings; -import org.eclipse.jface.dialogs.InputDialog; -import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.action.*; +import org.eclipse.jface.dialogs.*; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.resource.FontRegistry; import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.jface.text.Document; -import org.eclipse.jface.text.ITextSelection; -import org.eclipse.jface.text.TextSelection; +import org.eclipse.jface.text.*; import org.eclipse.jface.text.source.SourceViewer; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.ISelectionProvider; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.ITreeContentProvider; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jface.viewers.TableViewer; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.viewers.ViewerComparator; -import org.eclipse.jface.viewers.ViewerFilter; +import org.eclipse.jface.viewers.*; import org.eclipse.jface.window.Window; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.StyleRange; import org.eclipse.swt.custom.StyledText; -import org.eclipse.swt.events.DisposeEvent; -import org.eclipse.swt.events.DisposeListener; -import org.eclipse.swt.events.FocusEvent; -import org.eclipse.swt.events.FocusListener; -import org.eclipse.swt.events.KeyEvent; -import org.eclipse.swt.events.KeyListener; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.events.MouseEvent; -import org.eclipse.swt.events.MouseListener; -import org.eclipse.swt.graphics.Color; -import org.eclipse.swt.graphics.FontData; -import org.eclipse.swt.graphics.FontMetrics; -import org.eclipse.swt.graphics.GC; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.graphics.ImageData; -import org.eclipse.swt.layout.FillLayout; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.FileDialog; -import org.eclipse.swt.widgets.Menu; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.IActionBars; -import org.eclipse.ui.ISharedImages; -import org.eclipse.ui.IWorkbenchActionConstants; -import org.eclipse.ui.IWorkbenchPage; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.PlatformUI; +import org.eclipse.swt.events.*; +import org.eclipse.swt.graphics.*; +import org.eclipse.swt.layout.*; +import org.eclipse.swt.widgets.*; +import org.eclipse.ui.*; import org.eclipse.ui.dialogs.ElementTreeSelectionDialog; import org.eclipse.ui.dialogs.ISelectionStatusValidator; import org.eclipse.ui.editors.text.EditorsUI; import org.eclipse.ui.editors.text.TextSourceViewerConfiguration; -import org.eclipse.ui.views.IViewCategory; -import org.eclipse.ui.views.IViewDescriptor; -import org.eclipse.ui.views.IViewRegistry; +import org.eclipse.ui.views.*; public class ChatComposite extends Composite { private static final String CHAT_OUTPUT_FONT = "ChatFont"; //$NON-NLS-1$ @@ -996,9 +947,12 @@ public class ChatComposite extends Composite { protected void sendPrivateTextMsg(IUser data) { if (this.view.lch != null) { - final String res = getID(MessageLoader.getString("ChatComposite.PRIVATE_MESSAGE_TITLE") + data.getNickname(), MessageLoader.getString("ChatComposite.PRIVATE_MESSAGE_TEXT"), ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - if (res != null) - this.view.lch.sendPrivateMessageToUser(data, res); + IPresenceContainerAdapter ipca = this.view.lch.getPresenceContainer(); + MessagesView messagesView = this.view.lch.findMessagesView(); + if (messagesView != null) { + IChatManager chatManager = ipca.getChatManager(); + messagesView.openTab(chatManager.getChatMessageSender(), chatManager.getTypingMessageSender(), this.view.lch.getContainerID(), data.getID()); + } } } |