®
Developing Plugins for SameTime Connect 7.5
Jian Min JIANG
Lotus ISV Technical Enablement
China Software Development Lab
UI Extensions: Main Window
“Mini Apps”Status bar
Telephony
Action Bar
Branding Area
Live Names
Tools Menu
UI Extensions: Chat Window
Tools Menu
Telephony Branding Area
Action Bar
Status bar
Send areaactions
More examples of UI extensions Extend menus and toolbars in
other windows (e.g., n-way chat participant list)
Extend Sametime’s system tray menu choices, as shown to right (“BluePages”)
Extend Preferences UI using standard Eclipse API
Add branding areas to login dialog, Contact List, and chat window
Add actions to a contact’s pop-up menu
Reuse business card
BluePages and Voice Suite are internal IBM plug-ins
Extending Sametime Connect - Steps
1. Have an idea?
2. Approach 1: Choose the appropriate UI extension
3. Approach 2: Choose the appropriate event override
4. Alternatives to Extending Sametime Connect
5. Code
6. Test
7. Deploy
Extending Sametime Connect - Approaches
Approach 1: Choose the appropriate UI extension
Actions: Main menu, person/group context menu, toolbars
Areas: Mini app, chat area, n-way list area, pop-up add-on
Information extension: Person status, n-way list columns
Approach 2: Choose the appropriate event override
Transform chat messages (e.g., translation or keyword substitution)
React to location changes, coordinate with other applications
Automated responses (e.g., DND in presentation mode)
These approaches can be combined as needed.
Extending Sametime Connect - Alternatives
Don’t extend the client Convenience can turn to clutter
Extend your own application instead Extend your web application using Sametime Links Toolkit* Extend your Java application using Sametime Java Toolkit* Extend your RCP application using Livenames Extend your Notes 8 application
Other options are on the horizon Reuse of Sametime Connect views in Expeditor**
* ST Links is unchanged; ST Java TK AWT-based UI elements are deprecated** You can extend Sametime Connect 7.5’s UI; future versions will allow reuseof its views in your rich client application.
Extending Sametime Connect – UI Elements
viewActions ext. point* actionSet ext. point*
popupMenus ext. point*(GroupSelection)
MyBusinessCard(Person)
popupMenus ext. point*(PersonSection)
miniApp ext. point(AbstractMiniApp)
Group, Person
(from System tray)
(from n-way chat)
nWayListExtentionext. point
Person
chatAction ext. point
(from chat window)
* Standard Eclipse UI extension points
Extending Sametime Connect – Code, Test, Deploy
Code Familiar to Eclipse developers (plug-ins, SWT, JFace) Eclipse IDE wizards simplify code and debug
Test Launch directly from Eclipse IDE or connect to running client Expeditor Toolkit automates creation of Launch configuration, includes properly
configured J9 runtime environment
Development-time Deployment Run directly from Eclipse’s PDE (Plug-in Development Environment), or Copy to installation’s plugins directory and restart with -clean option
Production Deployment When complete, create update site; optionally require installation at client startup Delivery is either via “pull” from users with Update Manager, or “push” from
server from enterprise-wide update site
Sample plug-in: Branding
Extension Point com.ibm.collaboration.realtime.ui.stbranding
Options Image URL Eclipse Widget
Any controls or combinations, but the size is limited Extend STBrandingArea Implementation of createControl
public Control createControl(Composite parent) {…….
}
SameTime Connect Client Customization: Branding
Login Window
<plugin> <extension point="com.ibm.collaboration.realtime.ui.stbranding"><!-- image banner above login --> <stbranding id="com.ibm.collaboration.realtime.sample.branding.login" name="login dialog branding" targetView="com.ibm.collaboration.realtime.login">
<image file="images/login_branding.png"/> </stbranding> </extension></plugin>
SameTime Connect Client Customization : Branding
Chat Window
<plugin> <extension point="com.ibm.collaboration.realtime.ui.stbranding"> <stbranding height="64" width="64" id="com.ibm.collaboration.realtime.sample.branding.chat" name="chat window branding" targetView="com.ibm.collaboration.realtime.chatwindow" valign="top"> <control class="com.ibm.collaboration.realtime.sample.branding.SampleSTBrandingArea"/> </stbranding> </extension></plugin>
Contact List
<plugin> <extension point="com.ibm.collaboration.realtime.ui.stbranding"> <stbranding height="128" id="com.ibm.collaboration.realtime.sample.branding.imhub" name="contact list branding" targetView="com.ibm.collaboration.realtime.imhub" valign="bottom"> <website url="http://www.ibm.com"/> </stbranding> </extension></plugin>
SameTime Connect Client Customization: Splash
<STconnect75>plugins\com.ibm.collaboration.realtime.application_2.0.0.jarsplash.bmp
<STconnect75>configuration\org.eclipse.osgi\splash.bmp