The Citrix Dashboard Widget

I've been dealing with a packed schedule, a bunch of troubleshooting activities, altogether too little rest, and somehow, instead of reading or watching , here I am, at home, sitting at the computer.

Sure, that's pretty normal, but it so happens that, of all things, I'm writing a widget.

Wait... You Said ?

Yes, I have finally found a use for the damn thing, and it is not your conventional useless pretty clicky lickable toy stuff.

No, it's something altogether different. You see, I've been tinkering with the client (which is the only way to get a seamless desktop and a system tray equivalent on until revamps their native client) and this morning I had one of those proverbial shower epiphanies -

Instead of running the client off and risk closing the browser (or it crashing, which is most likely), why not hang it off ?

That way, at least, it's earning its keep in RAM and CPU time and I can invoke it quickly.

As it turns out, it works pretty well - using the com.citrix.ConnectionCenter applet, the notification area stays in , and the desktop appears seamlessly merged with my desktop. Here's how it looks:

child windows (which include the actual windows and configuration dialogs) appear on the desktop, and you'll notice the nice little Aqua shade...

I'm now at the stage where I'm learning to store preferences and generically muck about with user input, so the widget is pretty bland - but it already has an icon:

Wow! Where Can I Get It?

Whoa there. Before you start hammering my inbox or posting comments asking for it, be aware that there are a few things to figure out yet:

  • I still have to finish the configuration settings.
  • I still have to figure out how to configure and invoke the applet dynamically (just embedding it in the widget HTML works, but the documentation is incomplete in that regard, so I can't embed it and then trigger a connection - it just connects as soon as it's loaded, period). Just writing the applet tag using JavaScript should work, but that's still to be properly tested.
  • com.citrix.ConnectionCenter has a definite bug regarding session closure (it persists in redirecting the browser to close.html), and that seems to confuse .
  • I have absolutely no idea how to go about distributing this. It's pretty obvious that has to provide permission for me to distribute the .jar files, but I still have to find a suitable contact for that.

If in doubt, I'll just publish the widget skeleton with instructions on how to drop in the bits.

But If you're in a hurry, this bit of HTML and the client download will get you started:

  <applet name="javaclient"
    code="com.citrix.ConnectionCenter"
    archive="JICA-coreN.jar,JICA-browseN.jar,JICA-cdmN.jar,JICA-clipboardN.jar,JICA-configN.jar,JICA-seamlessN.jar,JICA-sicaN.jar,JICA-zlcN.jar"
    width="360"
    height="140">
      <param name="Address" value="your_ica_server">
      <param name="TWIMode" value="on">
      <param name="TWIDragBoxType" value="solid">
      <param name="DesiredColor" value="4">
      <param name="Border" value="off">
      <param name="BorderWidth" value="0">
      <param name="Compress" value="on">
      <param name="MaximumCompression" value="on">
      <param name="PersistentCacheEnabled" value="on">
      <param name="InitialProgram" value="#Notepad">
  </applet>

Just open the client download, find the examples directory, and tweak one of them to look like the above. It's not rocket science, and you'll soon figure out why running it off is less than ideal.

Ironically, I'm doing this so that myself and my -enabled colleagues can work from home with minimal fuss - all it takes is a connection and zero extra software (the widget is around 3MB so far, all things included).

Sometimes I wonder if I'm not trying too hard to make it easier to get my work done off-hours... Ah well. At least it's fun.

This page is referenced in: