@@ -0,0 +1,1671 @@
+/*%0A * SIP Communicator, the OpenSource Java VoIP and Instant Messaging client.%0A *%0A * Distributable under LGPL license.%0A * See terms of license at gnu.org.%0A */%0Apackage net.java.sip.communicator.service.protocol.event;%0A%0Aimport java.util.*;%0Aimport net.java.sip.communicator.service.protocol.*;%0A%0A/**%0A * %3Ctt%3ETypingNotificationEvent%3C/tt%3Es are delievered upon reception of a%0A * corresponding message from a remote contact.%0A * %3Ctt%3ETypingNotificationEvent%3C/tt%3Es contain a state id, identifying the exact%0A * typing event that has occurrend (a user has started or stopped typing at us),%0A * the source %3Ctt%3EContact%3C/tt%3E that generated the event and others.%0A * @author Emil Ivov%0A */%0Apublic class TypingNotificationEvent%0A    extends EventObject%0A%7B%0A    private int typingState = OperationSetTypingNotifications.STATE_UNKNOWN;%0A%0A    /**%0A     * Creats a TypingNotificationEvent with the specified parameters.%0A     * %3Cp%3E%0A     * @param source Object%0A     */%0A    public TypingNotificationEvent(Contact sourceContact, int state)%0A    %7B%0A        super(sourceContact);%0A        this.typingState = state;%0A    %7D%0A%0A    /**%0A     * Returns the typing state that this %3Ctt%3ETypingNotificationEvent%3C/tt%3E is%0A     * carrying.%0A     * @return one of the %3Ctt%3ESTATE_XXX int%3C/tt%3Es indicating the typing state%0A     * that this notification is about.%0A     */%0A    public int getTypingState()%0A    %7B%0A        return typingState;%0A    %7D%0A%0A    /**%0A     * Returns a reference to the %3Ctt%3EContact%3C/tt%3E that has sent this event.%0A     * @return a reference to the %3Ctt%3EContact%3C/tt%3E whose typing state we're%0A     * being notified about.%0A     */%0A    public Contact getSourceContact()%0A    %7B%0A        return (Contact)getSource();%0A    %7D%0A%7D%0A

Support for typing notifications in icq (testing is still pending though)