Skype Provider |
|
Skype Provider |
Skype Provider Available at ECF OSU Open Source Lab site. See
also here for some screen shots
|
|
|
UI Features |
|
IRC Bot Loose at irc.freenode.net |
An IRC bot based upon the ECF Bot Framework is
running at irc.freenode.net. See IRC Bot for details.
|
New Roster and Messages Views |
There are new roster and messages views: These views also are significantly refactored, simplifed, and made more extensible. See the classes org.eclipse.ecf.presence.ui.MultiRosterView for the Contacts view, and org.eclipse.ecf.presence.ui.MessagesView for the Messages View. Both are in the org.eclipse.ecf.presence.ui bundle. |
Communications Perspective |
Communications Perspective Added.
|
ShareCode Available |
ShareCode plugin available after IP approval. The ShareCode plugin, by Marcelo Mayworm for the
2006 Google Summer of Code are now availble in the EF repository. These plugins are available via
anonymous CVS with the following path: /cvsroot/technology, the following module org.eclipse.ecf/examples/plugins/org.eclipse.ecf.example.sharecode.
See the ShareCode wiki page for more info. This plugin will also be in a future distribution
of ECF.
|
All ECF Chat and Messages Views support viewing Hyperlinks |
All ECF Chat, Messages, and Collaboration views now support embedded hyperlinks. To activate, simply hold down the CTRL key while pointing at the link: |
Hyperlink Recognition for Communication Protocols |
Hyperlinks in text editors, java editors, etc. are now recognized by ECF and if clicked will result in a connect dialog for the chosen protocol. For example: |
|
|
API Enhancements |
|
Dynamic Menu Contributions to Roster View |
The MultiRosterView now can be extended using the org.eclipse.ui.menus.menuContribution extension point. TODO
|
Chat View Class Consolidation |
Several chat view classes have been consolidated so that now there is only one chat view org.eclipse.ecf.presence.ui.ChatRoomManagerView.
|
New Automated Build |
ECF now has an automated build and server setup to run automated builds. It will be going active sometime within the next
week (5.11.2007), and we will be doing daily, and weekly integration builds. Thanks particularly to Pete Mackie and
Ted Kubaska for making this possible, and getting the build environment together.
|
Examples of Extending MultiRosterView Context Menus |
The ECF MultiRosterView can now be easily extended with additional functionality.
To do this, all that is necessary is to implement the new Platform UI extension point:
org.eclipse.ui.menus.menuContribution. Here's an example that adds an URL
sharing capability to the MultiRosterView context menu, when a roster entry is
selected. The following is from the org.eclipse.ecf.presence.collab.ui plugin.
First, the extension declaration: <extension point="org.eclipse.ui.menus"> <menuContribution locationURI="popup:org.eclipse.ecf.presence.ui.MultiRosterView?before=additions"> <dynamic class="org.eclipse.ecf.presence.collab.ui.URLShareRosterEntryContributionItem" id="org.eclipse.ecf.presence.collab.ui.dynamic2"> </dynamic> </menuContribution> </extension>With this declaration, the following code will be invoked when the user clicks the right menu button on a roster entry (from URLShareRosterEntryContributionItem): protected IAction[] makeActions() { // check for Roster entry final IRosterEntry entry = getSelectedRosterEntry(); IContainer c = getContainerForRosterEntry(entry); // If roster entry is selected and it has a container if (entry != null && c != null) { final IChannelContainerAdapter channelAdapter = (IChannelContainerAdapter) c .getAdapter(IChannelContainerAdapter.class); // If the container has channel container adapter and is online/available if (channelAdapter != null && isAvailable(entry)) { URLShare tmp = URLShareRosterContributionItem.getURLShare(c .getID()); // If there is an URL share associated with this container if (tmp != null) { final URLShare urlshare = tmp; // Create action for sending IAction action = new Action() { public void run() { // Actually send URL to selected user urlshare.sendURL(entry.getRoster().getUser().getName(),entry.getUser().getID()); } }; action .setText(Messages.URLShareRosterEntryContributionItem_SEND_URL_MENU_TEXT); action.setImageDescriptor(Activator.imageDescriptorFromPlugin( Activator.PLUGIN_ID, Messages.URLShareRosterContributionItem_BROWSER_ICON)); // Return action for sending return new IAction[] { action }; } } } // Else return null...meaning we have no menu contribution to make return null; } |