TranscriptWindow + User Interaction

I’'m doing research on the Semantic Web and Instant Messaging. I developed a prototypical messenger, SAM (http://www.uni-koblenz.de/FB4/Institutes/IFI/AGStaab/Research/sam ), that is based on the open source BuddySpace client.

I’'m now considering to move to Spark as it looks like a well supported active project and Spark seems to be an appealing IM client written in Java.

To my question:

In SAM, users need to interact with the TranscriptWindow to select messages so that particular operations can be applied to selected messages, e.g. users can tag messages. For this, I need not only the message text, but (at least) the message object that represents a selected message to associate a tag with the selected message.

As Spark is not open source it is difficult to extend the current implementation of the TranscriptWindow.

How can I implement such user interaction and integrate message objects with the TranscriptWindow?

Thanks,

Tom

Hi tastentom,

I took a look at SAM, and think it would be a wonderful fit with the Spark client. So a question I have for you to help me implement the underlying API:

How would a user select a message? Double-click?

If I can get this down to the best possible behavior, than I can return a collection of selected messages from the TranscriptWindow.

Cheers,

Derek

Hi Derek,

thanks for the quick reply!

A single click for selecting messages and some way to retrieve the related message objects would be great to get me started!

As currently implemented in SAM, users can either do a single left-click or right-click. Depending on which click was done i execute different actions.

Some thoughts:

I suppose a generic interface to the TranscriptWindow similar to what is currently provided for context menus would be very good. In general, a TranscriptWindow that is based on message objects instead of message text strings would be nice to have for any plugin developer that needs to deal with the message objects themselves rather than their text.

Two use cases that may illustrate my needs:

Use case 1: SAM allows users to tag messages by selecting a message and choosing a tag. I retrieve the message object upon message selection and then associate it with the tag, and add the tag to the message text in the TranscriptWindow to give visual feedback to the user.

Use case 2: SAM supports interleaving messages, i.e. user A sends two messages and user B wants to say something about the first message of A. Usually IM clients put all messages on top or bottom so that it may be hard to find out to which message some message belongs (particularly in group chats). SAM allows users to indicate that they reply to a particular message to ease chat readability (similar to threaded email views). If a message is selected by a right-click, the next message written by the user will be indented and positioned directly underneath the selected message (even if there are message below) to indicate the statement<->reply relation between such two messages. Btw: such “replying messages” are

positioned that way at both(!) SAM clients.

I hope we can soon enjoy such functionality through the SAM plugin for Spark!

Cheers,

Tom