Using a Tooltip Dialog
Most native instant messaging clients hide their user interfaces until they're needed - either to send a message or to handle an incoming message. The remainder of the time it just provides a status indicator on a tray at the bottom of the screen. This same concept can be applied to a web interface using a dojo tooltip dialog. Suppose that we've identified a location in the HTML where we want to show the Sametime status:
<div id="myClient2" onclick="ShowSTClientInFloatingPane()">Show tooltip dialog</div>Now we can programmatically create a sametime.WebClient dojo widget using javascript:
var dsixe = {}; var tooltipDialog = null; dojo.ready(function() { // Instantiate the sametime client widget dsixe.ST_Client = new sametime.WebClient({ style : "width:200px;height:300px;border:1px solid black;" }); dojo.require("dijit.TooltipDialog"); tooltipDialog = new dijit.TooltipDialog({ content : dsixe.ST_Client, onBlur : function() { dijit.popup.close(tooltipDialog); } }); });and add a script to handle the onClick event that will display the Sametime buddy list:
function ShowSTClientInFloatingPane() { var node = dojo.byId("myClient2"); var coords = dojo.coords("myClient2"); var x = coords.x + 15; var y = coords.y + (coords.h / 2) + 5; dijit.popup.open({ popup : tooltipDialog, x : x, y : y }); dsixe.ST_Client.main.initLayout(); }When we put this all together in a proper HTML page, we get something that looks like this:
Conclusion
Using this technique I was able to provide an instant messaging experience that is familiar to the end user while consuming very little screen space.