June 21, 2007

SparkSpark software was designed to be an Open Source, cross-platform IM client optimized for businesses and organizations. Spark features built-in support for group chat, telephony integration, and strong security. Spark also offers a great end-user experience with features like in-line spell checking, group chat room bookmarks, and tabbed conversations.

Sparkplugs dynamically extend the features of the Spark instant messaging client. Use Sparkplugs to customize Spark for your business or organization or to add an innovative twist to instant messaging. The extensive plugin API allows for complete client flexibility but is still simple and (we hope!) fun to use.

The Spark API provides a framework for adding extensions on top of the protocol and/or UI of the Spark client. For example, you could write your own message filter or add a button to a chat room and send files using the File Transfer API.

The Spark API has the following characteristics:

· Several event listeners to either intercept, be informed of, or execute custom code in response to a particular IM event.
· Thorough tie-ins to the UI to allow for customization from simple icon changes, to adding buttons, to adding your own menu items.
· Ability to add your own XMPP functions using the SMACK API.
· Managers - Managers allow for better (lazy) loading of particular areas within the Spark client as well as providing access points to the system. Some of the more relevant managers are:
· SparkManager -- Acts as the central manager for all of Spark. You use this manager to get instances of ChatManager, SessionManager, SoundManager, and UserManager.
· ChatManager -- Handles registration of most chat listeners and filters, as well as creation and retrieval of chat rooms. It is also used to retrieve the UI of the ChatFrame.
· SessionManager -- Contains the information about the current session, such as the server connected to, the handling of connection errors and notification of personal presence changes.
· SoundManager -- Used to play sounds.
· Event Handlers -- Spark contains numerous listeners and handlers to allow more pluggability into the Spark client. Some of the more common listeners and handlers are:
· ChatRoomListener (and ChatRoomListenerAdapter) -- Allows the plugin to listen for chat rooms being opened, closed and activated. You would generally use this to customize individual chat rooms.
· MessageListener -- Allows for notification when a message has been received or sent.
· ContactGroupListener -- Allows for notification of changes to a Contact Group.
· ContactListListener -- Allows for notification of changes to the Contact List.
· TransferListener -- Allows you to intercept File transfers.
· ContextMenuListener -- Allows for the addition or removal of actions or menu items to right-click (context menu) popups.
· PresenceListener -- Allows for notification when Spark presence changes.
· ContactItemHandler -- Allows the plugin to control the effects of presence changes within a ContactItem and the associated invoke call.
· Components -- Spark contains many Swing components that will regularly be used during the creation of your plugin. Some of the more commonly used components are :
· MainWindow -- The frame containing the Contact List. You use MainWindow to add new tabs, menu items, or force focus.
· ChatRoom -- The base abstract class of all chat rooms within Spark. Known implementations are ChatRoomImpl and GroupChatRoom.
· ChatArea -- The base chat viewer for both the TranscriptWindow and ChatInputEditor.
· ContactList -- The ContactList UI in Spark.
· ChatRoomButton -- The button that should be used to conform to the look and feel of other buttons within a ChatRoom.

Spark Screenshots:

Spark Spark

Technorati Tags: , , , , , ,

This Month's Most Popular Posts