/*
* SIP Communicator, the OpenSource Java VoIP and Instant Messaging client.
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package net.java.sip.communicator.service.protocol.event;
import java.util.*;
import net.java.sip.communicator.service.protocol.*;
/**
* <tt>TypingNotificationEvent</tt>s are delievered upon reception of a
* corresponding message from a remote contact.
* <tt>TypingNotificationEvent</tt>s contain a state id, identifying the exact
* typing event that has occurrend (a user has started or stopped typing at us),
* the source <tt>Contact</tt> that generated the event and others.
* @author Emil Ivov
*/
public class TypingNotificationEvent
extends EventObject
{
private int typingState = OperationSetTypingNotifications.STATE_UNKNOWN;
/**
* Creats a TypingNotificationEvent with the specified parameters.
* <p>
* @param sourceContact the <tt>Contact</tt> that has sen the notification.
* @param state
*/
public TypingNotificationEvent(Contact sourceContact, int state)
{
super(sourceContact);
this.typingState = state;
}
/**
* Returns the typing state that this <tt>TypingNotificationEvent</tt> is
* carrying.
* @return one of the <tt>STATE_XXX int</tt>s indicating the typing state
* that this notification is about.
*/
public int getTypingState()
{
return typingState;
}
/**
* Returns a reference to the <tt>Contact</tt> that has sent this event.
* @return a reference to the <tt>Contact</tt> whose typing state we're
* being notified about.
*/
public Contact getSourceContact()
{
return (Contact)getSource();
}
/**
* Returns a String representation of this EventObject.
*
* @return A a String representation of this EventObject.
*/
public String toString()
{
return new StringBuffer("TypingNotificationEvent[from=")
.append(getSourceContact().getDisplayName())
.append(" state="+getTypingState()).toString();
}
}