Search in sources :

Example 6 with IChannel

use of org.eclipse.ecf.datashare.IChannel in project ecf by eclipse.

the class ChannelTest method testCreateChannel.

public void testCreateChannel() throws Exception {
    final IChannelContainerAdapter channelContainer = getChannelContainer(0);
    final IChannel channel = channelContainer.createChannel(getNewID(CHANNEL_NAME_1), getIChannelListener(getContainerID(0)), null);
    assertNotNull(channel);
    assertNotNull(channel.getID());
    assertNotNull(channel.getListener());
}
Also used : IChannel(org.eclipse.ecf.datashare.IChannel) IChannelContainerAdapter(org.eclipse.ecf.datashare.IChannelContainerAdapter)

Example 7 with IChannel

use of org.eclipse.ecf.datashare.IChannel in project ecf by eclipse.

the class SendMessageRosterEntryContribution method sendDataToChannel.

private void sendDataToChannel(IRosterEntry rosterEntry) {
    try {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(bos);
        oos.writeObject(new String[] { "Hi " + rosterEntry.getName(), "http://www.eclipse.org/ecf" });
        IChannel channel = initializeChannelFor(getContainerForRosterEntry(rosterEntry));
        channel.sendMessage(rosterEntry.getUser().getID(), bos.toByteArray());
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
Also used : IChannel(org.eclipse.ecf.datashare.IChannel) ByteArrayOutputStream(java.io.ByteArrayOutputStream) ObjectOutputStream(java.io.ObjectOutputStream)

Example 8 with IChannel

use of org.eclipse.ecf.datashare.IChannel in project ecf by eclipse.

the class SendMessageRosterEntryContribution method initializeChannelFor.

private IChannel initializeChannelFor(IContainer container) {
    if (container == null)
        return null;
    ID containerID = container.getID();
    IChannel chan = (IChannel) channels.get(containerID);
    if (chan == null) {
        IChannelContainerAdapter adapter = (IChannelContainerAdapter) container.getAdapter(IChannelContainerAdapter.class);
        if (adapter != null) {
            chan = createChannel(adapter);
            channels.put(containerID, chan);
        }
    }
    return chan;
}
Also used : IChannel(org.eclipse.ecf.datashare.IChannel) IChannelContainerAdapter(org.eclipse.ecf.datashare.IChannelContainerAdapter) ID(org.eclipse.ecf.core.identity.ID)

Example 9 with IChannel

use of org.eclipse.ecf.datashare.IChannel in project ecf by eclipse.

the class SendMessageRosterEntryContribution method dispose.

public void dispose() {
    super.dispose();
    for (Iterator i = channels.keySet().iterator(); i.hasNext(); ) {
        IChannel chan = (IChannel) channels.get(i.next());
        chan.dispose();
    }
    channels.clear();
}
Also used : IChannel(org.eclipse.ecf.datashare.IChannel) Iterator(java.util.Iterator)

Example 10 with IChannel

use of org.eclipse.ecf.datashare.IChannel in project ecf by eclipse.

the class SendContextContributionItem method createRosterEntryHandler.

protected AbstractRosterMenuHandler createRosterEntryHandler(final IRosterEntry rosterEntry) {
    return new AbstractRosterMenuHandler(rosterEntry) {

        public Object execute(ExecutionEvent event) throws ExecutionException {
            IWorkbenchPart part = HandlerUtil.getActivePart(event);
            if (part == null) {
                return null;
            }
            IWorkbenchSite site = part.getSite();
            if (site == null) {
                return null;
            }
            ISelectionProvider provider = site.getSelectionProvider();
            if (provider == null) {
                return null;
            }
            ISelection selection = provider.getSelection();
            if (selection instanceof IStructuredSelection) {
                IChannelContainerAdapter icca = (IChannelContainerAdapter) rosterEntry.getRoster().getPresenceContainerAdapter().getAdapter(IChannelContainerAdapter.class);
                ID channelID;
                try {
                    channelID = icca.getChannelNamespace().createInstance(new Object[] { Activator.PLUGIN_ID });
                } catch (IDCreateException e1) {
                    return null;
                }
                final IChannel channel = icca.getChannel(channelID);
                if (channel == null) {
                    return null;
                }
                Object element = ((IStructuredSelection) selection).getFirstElement();
                if (element instanceof ITask) {
                    final ITask task = (ITask) element;
                    Job job = new Job("Send Task") {

                        protected IStatus run(IProgressMonitor monitor) {
                            monitor.beginTask("Sending task...", 5);
                            ByteArrayOutputStream stream = new ByteArrayOutputStream();
                            TasksUiPlugin.getTaskListManager().getTaskListWriter().writeTask((AbstractTask) task, stream);
                            monitor.worked(2);
                            try {
                                channel.sendMessage(getRosterEntry().getUser().getID(), stream.toByteArray());
                                monitor.worked(3);
                            } catch (Exception e) {
                                return new Status(IStatus.ERROR, Activator.PLUGIN_ID, "An error occurred while sending the task.", e);
                            } finally {
                                monitor.done();
                            }
                            return Status.OK_STATUS;
                        }
                    };
                    job.schedule();
                }
            }
            return null;
        }
    };
}
Also used : IWorkbenchSite(org.eclipse.ui.IWorkbenchSite) ITask(org.eclipse.mylyn.tasks.core.ITask) IChannel(org.eclipse.ecf.datashare.IChannel) IDCreateException(org.eclipse.ecf.core.identity.IDCreateException) ByteArrayOutputStream(java.io.ByteArrayOutputStream) IDCreateException(org.eclipse.ecf.core.identity.IDCreateException) ExecutionException(org.eclipse.core.commands.ExecutionException) IWorkbenchPart(org.eclipse.ui.IWorkbenchPart) AbstractRosterMenuHandler(org.eclipse.ecf.presence.ui.menu.AbstractRosterMenuHandler) ExecutionEvent(org.eclipse.core.commands.ExecutionEvent) IChannelContainerAdapter(org.eclipse.ecf.datashare.IChannelContainerAdapter) ID(org.eclipse.ecf.core.identity.ID) Job(org.eclipse.core.runtime.jobs.Job)

Aggregations

IChannel (org.eclipse.ecf.datashare.IChannel)15 ID (org.eclipse.ecf.core.identity.ID)8 IChannelContainerAdapter (org.eclipse.ecf.datashare.IChannelContainerAdapter)5 ByteArrayOutputStream (java.io.ByteArrayOutputStream)2 Iterator (java.util.Iterator)2 ByteArrayInputStream (java.io.ByteArrayInputStream)1 IOException (java.io.IOException)1 ObjectInputStream (java.io.ObjectInputStream)1 ObjectOutputStream (java.io.ObjectOutputStream)1 SocketChannel (java.nio.channels.SocketChannel)1 HashMap (java.util.HashMap)1 ExecutionEvent (org.eclipse.core.commands.ExecutionEvent)1 ExecutionException (org.eclipse.core.commands.ExecutionException)1 ISafeRunnable (org.eclipse.core.runtime.ISafeRunnable)1 IStatus (org.eclipse.core.runtime.IStatus)1 Status (org.eclipse.core.runtime.Status)1 Job (org.eclipse.core.runtime.jobs.Job)1 IDCreateException (org.eclipse.ecf.core.identity.IDCreateException)1 ECFException (org.eclipse.ecf.core.util.ECFException)1 IChannelListener (org.eclipse.ecf.datashare.IChannelListener)1