Hi Stephane,
thanks for the quick reply.
Stéphane Remy wrote:
> Hi Yana,
>
> Yana Stamcheva <yana sip-communicator.org> a
écrit :
>
>>> in ChatRoom:
>>>
>>> I need a method void setJoinTimeLimit(int
joinNumber, int seconds)
>>> in which "joinNumber" indicates the
number of join allowed in an
>>> interval of "seconds" seconds.
>>
>> Ok, I'll add it. Just one thing, I didn't know what
exactly means
>> joinTomeLimit, but you explain it very well here
and I thought that may
>> be we could find a more appropriate name. Like we
rename
>> setJoinTimeLimit to setJoinNumberPerSeconds, and
rename
>> isJoinTimeLimited to isJoinNumberLimited for
example, because
>> isJoinTimeLimited for me will indicate whether the
time of join
>> operation is limited. Do you see what I mean?
>
> Yes that's ok for me, i think
setJoinTimeNumberPerSeconds would be good.
>
I had a look in SIP Communicator and I found that we have
already a term
for this property and we call it Rate Limit, so it's better
to keep this
notion and call our property joinRateLimit.
>>>
>>> And the same for the void
setUserRedirect(ChatRoom chatRoom)
>>>
>>> And maybe the method void
setUserRedirected(boolean isRedirected)
>>> can be changed into void
setUserRedirected(boolean isRedirected,
>>> ChatRoom chatRoom) because it is useless to set
a redirection
>>> without the location of the redirection, same
for password,
>>> joinTimeLimit and userNumberLimit, tell me what
do you think.
>>
>> That's a good idea if you set the given property to
true, but what
>> about when you call the set method to set the
property to false? I
>> think it's better to have different set methods for
these.
>
> Yes i understand what you mean but with your method it
is the opposite
> because it is easy to remove a property because no
param is needed but
> when you set it you have to set it twice: one whitout a
param and other
> one whith the param. I think when it is needed to
remove a property the
> param fields could be set to null.
Ok. What would you say if we we get rid of the isXXX methods
and have
only setRedirectChatRoom(ChatRoom
chatRoom)/getRedirectChatRoom(),
setPassword(String password)/getPassword() (I think we
already have the
password methods), etc.? Every time a password is set this
would mean
that the password is required, every time a redirect
ChatRoom is set it
would mean that the redirection is activated. If someone
want to check
if a password is required they could call getPassword and
check if the
password field is null. This way we don't have redundant
methods, it's
simple and clear. WDYT?
Yana
>> Thanks.
>> Yana
>
> Stéphane
>
>>
>>> And i think all the set methods should throw an
>>> OperationFailedException in order to know if
the user is allow to do
>>> the request.
>>>
>>> That's all for the moment
>>>
>>> Thanks Yana!
>>>
>>> Stéphane
>>>
>>> Yana Stamcheva <yana sip-communicator.org> a
écrit :
>>>
>>>> Hi Stephane,
>>>>
>>>> I've just added all new property names in
the
>>>> ChatRoomPropertyChangeEvent. You could have
a look it everything that
>>>> you need is there.
>>>>
>>>> I also replaced the
isAllowInvitationReceive/Send with the names that
>>>> you proposed isAllowInvitation and
isAllowInvitationRequest.
>>>>
>>>> Yana
>>>>
>>>> Stéphane Remy wrote:
>>>>> Re Emil,
>>>>>
>>>>> Emil Ivov <emcho emcho.com> a écrit :
>>>>>
>>>>>> Hi Stephane,
>>>>>>
>>>>>> Every ChatRoomPropertyChangeEvent
has a name that is supposed to
>>>>>> carry
>>>>>> the name of the property that has
changed. PROPERTY_CONFIG_CHANGED
>>>>>> seems a bit too generic so I guess
we won't be keeping it and will
>>>>>> define a property name for every
property that has setter and getter
>>>>>> methods.
>>>>>
>>>>> Ok that's exactly what i've asked for,
if you put theses property
>>>>> in ChatRoomPropertyChangeEvent or in a
new class that's not a
>>>>> problem for me
>>>>>
>>>>>> Once you have set the property
name, you are indeed supposed to set
>>>>>> true or false for old and new
value.
>>>>>>
>>>>>> Does this make sense?
>>>>>
>>>>> It's ok for me this way.
>>>>>
>>>>>> Emil
>>>>>
>>>>> Stéphane
>>>>>
>>>>>> Stéphane Remy wrote:
>>>>>>> Hi Emil,
>>>>>>>
>>>>>>> If you look at the
ChatRoomPropertyChangeEvent you can see a
>>>>>>> property
PROPERTY_CONFIG_CHANGED if a config change event
>>>>>>> occurs this type of event is
made but here i need to specifie
>>>>>>> which property has changed i
can not just put true or false
>>>>>>> in oldValue and newValue, and
my problem is how do i define
>>>>>>> this property if the property
are defined nowhere because the
>>>>>>> class ChatRoomConfigParam
does not exist anymore.
>>>>>>>
>>>>>>> Stéphane
>>>>>>>
>>>>>>> Emil Ivov <emcho emcho.com> a écrit :
>>>>>>>
>>>>>>>> Hey Stephane,
>>>>>>>>
>>>>>>>> I don't quite understand
your concern.
>>>>>>>>
>>>>>>>> As far as I understand
there will be a set and a get method for
>>>>>>>> every
>>>>>>>> major chat room property.
Every time someone calls the set
>>>>>>>> method for a
>>>>>>>> particular property you'd
send the request to the server, and
>>>>>>>> generate
>>>>>>>> a
ChatRoomPropertyChangeEvent with the old value (that has so
>>>>>>>> far been
>>>>>>>> accessible through the get
method) and the new one that you have
>>>>>>>> just
>>>>>>>> received as a param inside
the set method.
>>>>>>>>
>>>>>>>> Doesn't this make sense?
>>>>>>>>
>>>>>>>> Emil
>>>>>>>>
>>>>>>>> Stéphane Remy wrote:
>>>>>>>>> re,
>>>>>>>>>
>>>>>>>>> I mean in
ChatRoomPropertyChangeEvent i have to put an
>>>>>>>>> oldValue and a
newValue, and i don't know what to put here
>>>>>>>>> if the config list
dosen't exist anymore, i could put a
>>>>>>>>> String representation
of the property set but i think it
>>>>>>>>> is to specific to the
multi chat protocol, so the config
>>>>>>>>> list would help here.
>>>>>>>>>
>>>>>>>>> Stéphane
>>>>>>>>>
>>>>>>>>> Yana Stamcheva
<yana sip-communicator.org> a écrit :
>>>>>>>>>
>>>>>>>>>> Hi Stephane,
>>>>>>>>>>
>>>>>>>>>> Stéphane Remy
wrote:
>>>>>>>>>>> Hi again Yana,
>>>>>>>>>>>
>>>>>>>>>>> After having
read the code more precisely, i think it is
>>>>>>>>>>> not a good
idee to remove the ChatRoomConfigParam class,
>>>>>>>>>>> i think at
least for the "official" property you have
>>>>>>>>>>> put now in the
ChatRoom class because:
>>>>>>>>>>>
>>>>>>>>>>> -When a chat
room property event occurs i need to send back
>>>>>>>>>>> the previous
config and the new config after the
>>>>>>>>>>> changes, i can
simply send a string like "+tnr" and
>>>>>>>>>>> after the
change "+tnri" but i think that makes the
>>>>>>>>>>> implementation
to dependent of the multi chat protocol.
>>>>>>>>>>>
>>>>>>>>>> I don't understand,
could you please explain in details what
>>>>>>>>>> you mean?
>>>>>>>>>>
>>>>>>>>>> Yana
>>>>>>>>>>
>>>>>>>>>>> -I think it is
more clear in the ChatRoom class to have
>>>>>>>>>>> only these
two methods:
>>>>>>>>>>>
>>>>>>>>>>> void
setProperty(ChatRoomConfigParam x)
>>>>>>>>>>> boolean
isPropertySet(ChatRoomConfigParam x)
>>>>>>>>>>>
>>>>>>>>>>> -But i think it
is a good idee to limit the number of
>>>>>>>>>>> property to
the most important ones, so the advanced
>>>>>>>>>>> method is a
good choice for the other property.
>>>>>>>>>>>
>>>>>>>>>>> Stéphane
>>>>>>>>>>>
>>>>>>>>>>> Stéphane Remy
<stephane.remy ulp.u-strasbg.fr> a écrit :
>>>>>>>>>>>
>>>>>>>>>>>> Hi Yana,
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks
that's what i wanted to know
>>>>>>>>>>>>
>>>>>>>>>>>> Stéphane
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Yana
Stamcheva <yana sip-communicator.org> a écrit :
>>>>>>>>>>>>
>>>>>>>>>>>>> Hi
Stephane,
>>>>>>>>>>>>>
>>>>>>>>>>>>>
Stéphane Remy wrote:
>>>>>>>>>>>>>> Hi
Yana,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I
was wrong in my previous mail, i did not see that you
>>>>>>>>>>>>>>
commited a new ChatRoom service a few hours before
>>>>>>>>>>>>>> my
mail :/ Ok now i understand what you mean, but
>>>>>>>>>>>>>>
can you explain me what is for you an advanced
>>>>>>>>>>>>>>
config property and who decide the property names
>>>>>>>>>>>>>> and
the value? It's not really clear for me.
>>>>>>>>>>>>> The
ChatRoom contains a number of properties which could
>>>>>>>>>>>>> be
set, but we
>>>>>>>>>>>>> have
created these properties considering what is needed
>>>>>>>>>>>>> for the
IRC
>>>>>>>>>>>>> and
Jabber implementations of the Multi Chat. However another
>>>>>>>>>>>>>
implementation could need some different configurations to
>>>>>>>>>>>>> set.
Then
>>>>>>>>>>>>> the
addAdvancedConfigProperty method can be used and it
>>>>>>>>>>>>> depend
on the
>>>>>>>>>>>>>
implementation what would be the name and the value of the
>>>>>>>>>>>>>
property.
>>>>>>>>>>>>> These
advanced properties would not be visible for the
>>>>>>>>>>>>> GUI
for example,
>>>>>>>>>>>>> but
they would be usable for anyone who knows that they
>>>>>>>>>>>>> exist
(it could
>>>>>>>>>>>>> be a
gui plugin that add some more functionality in the
>>>>>>>>>>>>> chat
window
>>>>>>>>>>>>> only
for the given protocol provider).
>>>>>>>>>>>>>
>>>>>>>>>>>>>> And
i've seen that you added a join listener in
>>>>>>>>>>>>>>
ChatRoom, but the MemberPresenceListener does it
>>>>>>>>>>>>>>
already, maybe you meant to add it in
>>>>>>>>>>>>>>
OperationSetMultiUserChat to know when a ChatRoom
>>>>>>>>>>>>>> is
joined.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
Actually it was the ChatRoomLocalUserPresenceListener
>>>>>>>>>>>>> which
was exactly
>>>>>>>>>>>>> what I
needed. I've removed the JoinListener. Thanks
>>>>>>>>>>>>>
>>>>>>>>>>>>> Yana
>>>>>>>>>>>>>
>>>>>>>>>>>>>>
Stéphane
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
Yana Stamcheva <yana sip-communicator.org> a écrit :
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
Hi Stephane,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
I've added some inline comments.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
Yana
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
Stéphane Remy wrote:
>>>>>>>>>>>>>>>
> Hi Yana
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
> Yana Stamcheva <yana sip-communicator.org> a
écrit :
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
>> Hi Stéphane,
>>>>>>>>>>>>>>>
>>
>>>>>>>>>>>>>>>
>> I understand what is bothering you. When I started
>>>>>>>>>>>>>>>
>> renaming the fields
>>>>>>>>>>>>>>>
>> as you proposed I couldn't get rid of the idea that
>>>>>>>>>>>>>>>
>> all these are
>>>>>>>>>>>>>>>
>> actually properties of the chat room. Finally after
an
>>>>>>>>>>>>>>>
>> off-list
>>>>>>>>>>>>>>>
>> discussion with Emil we've decided to make all
known
>>>>>>>>>>>>>>>
>> configuration
>>>>>>>>>>>>>>>
>> params - properties in the chat room and to have a
>>>>>>>>>>>>>>>
>> method that allows
>>>>>>>>>>>>>>>
>> to add advanced configuration properties by
>>>>>>>>>>>>>>>
>> specifying a property name
>>>>>>>>>>>>>>>
>> and value. You could have a look at the ChatRoom
>>>>>>>>>>>>>>>
>> interface and see how
>>>>>>>>>>>>>>>
>> it looks after the modifications.
>>>>>>>>>>>>>>>
> Yep, i've undersand that if that was your question
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
>> I have some doubts about some of the properties and
I
>>>>>>>>>>>>>>>
>> would like to ask
>>>>>>>>>>>>>>>
>> you to have a more detailed look at the following
methods:
>>>>>>>>>>>>>>>
>>
>>>>>>>>>>>>>>>
>> - isAllowInvitationSend, isAllowInvitationReceive
>>>>>>>>>>>>>>>
>> (respectively the set
>>>>>>>>>>>>>>>
>> methods) - these methods correspond the following
params:
>>>>>>>>>>>>>>>
>> CHATROOM_INVITATION_ALLOWED,
>>>>>>>>>>>>>>>
>> CHATROOM_INVITATION_REQUEST_ALLOWED. The
>>>>>>>>>>>>>>>
>> names of the properties were a little confusing
(the
>>>>>>>>>>>>>>>
>> direction of the
>>>>>>>>>>>>>>>
>> invitation is not clear) and I've tried to make
them more
>>>>>>>>>>>>>>>
>> understandable, but I'm not sure if I understand
>>>>>>>>>>>>>>>
>> correctly their
>>>>>>>>>>>>>>>
>> meaning. Also if you have another suggestion for
the
>>>>>>>>>>>>>>>
>> name if you don't
>>>>>>>>>>>>>>>
>> like that?
>>>>>>>>>>>>>>>
> I would modify the isAllowInvitationSend into
>>>>>>>>>>>>>>>
> isInvitationAllowed because the
>>>>>>>>>>>>>>>
> CHATROOM_INVITATION_ALLOWED means that you can
>>>>>>>>>>>>>>>
> invite someone on a chatroom but i meant in my
>>>>>>>>>>>>>>>
> previous mail that it is better to put this into
>>>>>>>>>>>>>>>
> CHATROOM_INVITATION_REFUSED because by
>>>>>>>>>>>>>>>
> default invitation are allowed so it is easier
>>>>>>>>>>>>>>>
> for me to put in a list of configs what is not
>>>>>>>>>>>>>>>
> allowed than all the configs that are allowed.
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
Ok, I think I haven't explain very well in my previous
>>>>>>>>>>>>>>>
mail the changes
>>>>>>>>>>>>>>>
I've made in the code.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
As it was implemented before you needed to worry about
>>>>>>>>>>>>>>>
what is the
>>>>>>>>>>>>>>>
default value in IRC, because it would be easier for
>>>>>>>>>>>>>>>
you not to specify
>>>>>>>>>>>>>>>
explicitly the given property. That's why I said that I
>>>>>>>>>>>>>>>
understand what
>>>>>>>>>>>>>>>
is bothering you. Now the situation is completely
>>>>>>>>>>>>>>>
different. Now
>>>>>>>>>>>>>>>
configurations are moved to the ChatRoom and each ChatRoom
>>>>>>>>>>>>>>>
implementation should implement all get and set
>>>>>>>>>>>>>>>
methods. So for you is
>>>>>>>>>>>>>>>
the same, whether the isInvitationAllowed would return
>>>>>>>>>>>>>>>
false or true by
>>>>>>>>>>>>>>>
defalt. Am I right?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
> For CHATROOM_INVITATION_REQUEST_ALLOWED that means
>>>>>>>>>>>>>>>
> when you are not on a chatroom and you need an
>>>>>>>>>>>>>>>
> invitation to get into it you can ask someone
>>>>>>>>>>>>>>>
> which is in the chatroom to invite you by
>>>>>>>>>>>>>>>
> sending a request on this chatroom. By default
is
>>>>>>>>>>>>>>>
> this allowed for IRC. So i would put a method
>>>>>>>>>>>>>>>
> isInvitationDemandAllowed or
>>>>>>>>>>>>>>>
> isInvitationRequestAllowed.
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
Now for the name, I understand better what the two
>>>>>>>>>>>>>>>
properties mean, so
>>>>>>>>>>>>>>>
we could name them as you proposed isInvitationAllowed and
>>>>>>>>>>>>>>>
isInvitationRequestAllowed. I'll just add some more
>>>>>>>>>>>>>>>
javadoc comments.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>> - isAllowMessageFormatting,
isFilterMessageFormatting
>>>>>>>>>>>>>>>
>> - these two
>>>>>>>>>>>>>>>
>> correspond to CHATROOM_MESSAGE_FORMAT_ALLOWED,
>>>>>>>>>>>>>>>
>> CHATROOM_MESSAGE_FORMAT_FILTERED. Is it possible to
>>>>>>>>>>>>>>>
>> be in a message
>>>>>>>>>>>>>>>
>> format allowed mode and to have formatted messages
>>>>>>>>>>>>>>>
>> filtered?
>>>>>>>>>>>>>>>
> CHATROOM_MESSAGE_FORMAT_ALLOWED means that when you
>>>>>>>>>>>>>>>
> write a message with color, underlined etc...
>>>>>>>>>>>>>>>
> the message will be send on the chatroom so if
>>>>>>>>>>>>>>>
> this mode is not set the server will destroy
>>>>>>>>>>>>>>>
> the message and it will never be displayed.
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
> CHATROOM_MESSAGE_FORMAT_FILTERED means that when you
>>>>>>>>>>>>>>>
> write a message with color, underlined etc...
>>>>>>>>>>>>>>>
> the message will be send on the chatroom but
>>>>>>>>>>>>>>>
> without any color or underline, it will be
black.
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
> So it is possible to have a format allowed mode and to
>>>>>>>>>>>>>>>
> have a filtered mode at the same time.
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
Ok, I understand now.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
> I will try to explain what was the aim of my previous
>>>>>>>>>>>>>>>
> mail, for example when you join an irc chat room
>>>>>>>>>>>>>>>
> this mode can be set +tnr, that means:
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
> t: the subject is locked
>>>>>>>>>>>>>>>
> n: you must be on this chat room to write a message
>>>>>>>>>>>>>>>
> (you cannot be only on the server and send /msg
>>>>>>>>>>>>>>>
> #channel message)
>>>>>>>>>>>>>>>
> r: this room is registered with the Chanserv service
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
> So i meant that the irc protocol gives me a string
>>>>>>>>>>>>>>>
> with all the config that are set on this
>>>>>>>>>>>>>>>
> chatroom so it is easier for me if the chat room
>>>>>>>>>>>>>>>
> services config match with this, but that's only
>>>>>>>>>>>>>>>
> to make me the life easier but if
you don't
>>>>>>>>>>>>>>>
> want to change them i can make a list of all
>>>>>>>>>>>>>>>
> the configs allowed each time and filter with
>>>>>>>>>>>>>>>
> what this string says...
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
Yes, I understood perfectly what you meant in your last
>>>>>>>>>>>>>>>
mail. I hope
>>>>>>>>>>>>>>>
that after explaining it better here, you agree that
>>>>>>>>>>>>>>>
now there's no
>>>>>>>>>>>>>>>
matter how the method is called - ..Refused or Allowed,
>>>>>>>>>>>>>>>
because for you
>>>>>>>>>>>>>>>
it changes only that you return false and not true. The
>>>>>>>>>>>>>>>
idea is that I
>>>>>>>>>>>>>>>
prefer that all methods that restrict or allow
>>>>>>>>>>>>>>>
something are named in
>>>>>>>>>>>>>>>
one manner.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
> And if you wanna more informations about the irc modes
>>>>>>>>>>>>>>>
> here is a link:
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
> http://wiki.sur
-la-toile.com/Mode_IRC
>>>>>>>>>>>>>>>
Thanks for the link It will be
usefull!
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>> That's all.
>>>>>>>>>>>>>>>
>>
>>>>>>>>>>>>>>>
>> Also, any comments and corrections are
appreciated )
>>>>>>>>>>>>>>>
> I hope that all i've said is clear enough otherwise
>>>>>>>>>>>>>>>
> don't hesitate to say that my english is bad :p
>>>>>>>>>>>>>>>
> And of course if you have an other question
>>>>>>>>>>>>>>>
> don't hesitate to ask.
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
> Ah and i have seen that a service is missing or i've
>>>>>>>>>>>>>>>
> not found it for the chat room members statut,
>>>>>>>>>>>>>>>
> for example when a member change his nickname or
>>>>>>>>>>>>>>>
> is set in away mode there are no events, i will
>>>>>>>>>>>>>>>
> see if i find something...
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
>> Yana
>>>>>>>>>>>>>>>
> Stéphane
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
>> Stéphane Remy wrote:
>>>>>>>>>>>>>>>
>>> Hi Yana,
>>>>>>>>>>>>>>>
>>>
>>>>>>>>>>>>>>>
>>> I've found other problems in the services, can
you
>>>>>>>>>>>>>>>
>>> changes this in ChatRoomConfigParam:
>>>>>>>>>>>>>>>
>>>
>>>>>>>>>>>>>>>
>>> -Change CHAT_ROOM_EXTERNAL_MESSAGE_ALLOWED into
>>>>>>>>>>>>>>>
>>> CHAT_ROOM_EXTERNAL_MESSAGE_REFUSED
>>>>>>>>>>>>>>>
>>>
>>>>>>>>>>>>>>>
>>> -Change CHAT_ROOM_VISIBLE into
CHAT_ROOM_INVISIBLE
>>>>>>>>>>>>>>>
>>>
>>>>>>>>>>>>>>>
>>> -Change CHAT_ROOM_SPECIAL_MESSAGES_ALLOWED into
>>>>>>>>>>>>>>>
>>> CHAT_ROOM_SPECIAL_MESSAGES_REFUSED
>>>>>>>>>>>>>>>
>>>
>>>>>>>>>>>>>>>
>>> -Change CHAT_ROOM_NICKNAME_LIST_VISIBLE into
>>>>>>>>>>>>>>>
>>> CHAT_ROOM_NICKNAME_LIST_INVISIBLE
>>>>>>>>>>>>>>>
>>>
>>>>>>>>>>>>>>>
>>> -Change CHAT_ROOM_INVITATION_ALLOWED into
>>>>>>>>>>>>>>>
>>> CHAT_ROOM_INVITATION_REFUSED
>>>>>>>>>>>>>>>
>>>
>>>>>>>>>>>>>>>
>>> -Change CHAT_ROOM_MESSAGE_FORMAT_ALLOWED into
>>>>>>>>>>>>>>>
>>> CHAT_ROOM_MESSAGE_FORMAT_BLOCKED
>>>>>>>>>>>>>>>
>>>
>>>>>>>>>>>>>>>
>>> -Change CHAT_ROOM_INVITATION_REQUEST_ALLOWED
into
>>>>>>>>>>>>>>>
>>> CHAT_ROOM_INVITATION_REQUEST_REFUSED
>>>>>>>>>>>>>>>
>>>
>>>>>>>>>>>>>>>
>>> This changes are because by default they are
allowed
>>>>>>>>>>>>>>>
>>> or visible.
>>>>>>>>>>>>>>>
>>>
>>>>>>>>>>>>>>>
>>> Thanks Yana
>>>>>>>>>>>>>>>
>>>
>>>>>>>>>>>>>>>
>>> Stéphane
>>>>>>>>>>>>>>>
>>>
>>>>>>>>>>>>>>>
>>> Yana Stamcheva <yana sip-communicator.org> a
écrit :
>>>>>>>>>>>>>>>
>>>
>>>>>>>>>>>>>>>
>>>> Hi Stephane,
>>>>>>>>>>>>>>>
>>>>
>>>>>>>>>>>>>>>
>>>> thanks for the remarks! I've just applied
your
>>>>>>>>>>>>>>>
>>>> fixes and committed them
>>>>>>>>>>>>>>>
>>>> to the CVS.
>>>>>>>>>>>>>>>
>>>>
>>>>>>>>>>>>>>>
>>>> Yana
>>>>>>>>>>>>>>>
>>>>
>>>>>>>>>>>>>>>
>>>> Stéphane Remy wrote:
>>>>>>>>>>>>>>>
>>>>> Hi Yana,
>>>>>>>>>>>>>>>
>>>>>
>>>>>>>>>>>>>>>
>>>>> Sorry for the late answer. I updated my
code with
>>>>>>>>>>>>>>>
>>>>> your changes and i'm ok with
all you've
>>>>>>>>>>>>>>>
>>>>> done. I just noticed two things
you forgot
>>>>>>>>>>>>>>>
>>>>> to change:
>>>>>>>>>>>>>>>
>>>>>
>>>>>>>>>>>>>>>
>>>>> In ChatRoomPropertyChangeEvent:
>>>>>>>>>>>>>>>
>>>>>
>>>>>>>>>>>>>>>
>>>>> You forgot to change
PROPERTY_STATE_CHANGED into
>>>>>>>>>>>>>>>
>>>>> PROPERTY_CONFIG_CHANGED.
>>>>>>>>>>>>>>>
>>>>>
>>>>>>>>>>>>>>>
>>>>> In ChatRoomConfigParam:
>>>>>>>>>>>>>>>
>>>>>
>>>>>>>>>>>>>>>
>>>>> You forgot to remove
_CHAT_ROOM_NOT_VISIBLE.
>>>>>>>>>>>>>>>
>>>>>
>>>>>>>>>>>>>>>
>>>>> Stéphane
>>>>>>>>>>>>>>>
>>>>>
>>>>>>>>>>>>>>>
>>>>> Yana Stamcheva <yana sip-communicator.org> a écrit :
>>>>>>>>>>>>>>>
>>>>>
>>>>>>>>>>>>>>>
>>>>>> Hi Stephane,
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> very well structured and complete
code! You've
>>>>>>>>>>>>>>>
>>>>>> done a very good work!
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> I have just committed your code to
the cvs. I had
>>>>>>>>>>>>>>>
>>>>>> to make some minor
>>>>>>>>>>>>>>>
>>>>>> modifications so the code fit
better to SIP
>>>>>>>>>>>>>>>
>>>>>> Communicator conventions, you
>>>>>>>>>>>>>>>
>>>>>> could see the list of changes
below.
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> General modifications
>>>>>>>>>>>>>>>
>>>>>> ==============
>>>>>>>>>>>>>>>
>>>>>> - Removed special characters from
author name -
>>>>>>>>>>>>>>>
>>>>>> Stéphane was renamed to
>>>>>>>>>>>>>>>
>>>>>> Stephane
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> - Added additional comments where
needed
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> - Renamed
>>>>>>>>>>>>>>>
>>>>>> -
ChatRoomLocalUserParticipationChangeEvent to
>>>>>>>>>>>>>>>
>>>>>>
ChatRoomLocalUserPresenceChangeEvent
>>>>>>>>>>>>>>>
>>>>>> -
ChatRoomLocalUserParticipationListener to
>>>>>>>>>>>>>>>
>>>>>> ChatRoomLocalUserPresenceListener
-
>>>>>>>>>>>>>>>
>>>>>> -
ChatRoomMemberParticipationChangeEvent to
>>>>>>>>>>>>>>>
>>>>>> ChatRoomMemberPresenceChangeEvent
>>>>>>>>>>>>>>>
>>>>>> -
ChatRoomMemberParticipationListener to
>>>>>>>>>>>>>>>
>>>>>> ChatRoomMemberPresenceListener
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> After a discussion with Emil we
decided to take
>>>>>>>>>>>>>>>
>>>>>> the "Presence"
name, it
>>>>>>>>>>>>>>>
>>>>>> appears more intuitive
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> ChatRoom
>>>>>>>>>>>>>>>
>>>>>> ========
>>>>>>>>>>>>>>>
>>>>>> - Added some additional comments to
setUserLimit,
>>>>>>>>>>>>>>>
>>>>>> addBanMask, removeBanMask,
>>>>>>>>>>>>>>>
>>>>>> getBanList, getUserLimit - to
explain some more
>>>>>>>>>>>>>>>
>>>>>> details on what ban mask or
>>>>>>>>>>>>>>>
>>>>>> ban list is, what is the user limit
about, etc.
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> - Renamed setState to
addConfigParam - we renamed
>>>>>>>>>>>>>>>
>>>>>> also the ChatRoomState
>>>>>>>>>>>>>>>
>>>>>> class to ChatRoomConfigParam. I had
a look in the
>>>>>>>>>>>>>>>
>>>>>> ChatRoomState class and I
>>>>>>>>>>>>>>>
>>>>>> would say that properties there are
rather
>>>>>>>>>>>>>>>
>>>>>> configuration patameters and
not
>>>>>>>>>>>>>>>
>>>>>> chat room states.
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> - Added removeConfigParam,
>>>>>>>>>>>>>>>
>>>>>> getSupportedConfigurationParams
and
>>>>>>>>>>>>>>>
>>>>>> getConfiguration - in order to be
able to remove
>>>>>>>>>>>>>>>
>>>>>> a configuration parameter,
>>>>>>>>>>>>>>>
>>>>>> to obtain the list of configuration
paramaters
>>>>>>>>>>>>>>>
>>>>>> supported by the current
>>>>>>>>>>>>>>>
>>>>>> implementation and to obtain the
current chat
>>>>>>>>>>>>>>>
>>>>>> room configuration.
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> - Added getPassword method - it was
only a
>>>>>>>>>>>>>>>
>>>>>> setPassword.
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> - Removed final modifiers for
String and int
>>>>>>>>>>>>>>>
>>>>>> parameters - Java API says
that
>>>>>>>>>>>>>>>
>>>>>> "Strings are constant; their
values cannot be
>>>>>>>>>>>>>>>
>>>>>> changed after they are
>>>>>>>>>>>>>>>
>>>>>> created" . And ints are not
objects and they're
>>>>>>>>>>>>>>>
>>>>>> copied by value (i.e. a
>>>>>>>>>>>>>>>
>>>>>> brand new copy is created and is
passed to the
>>>>>>>>>>>>>>>
>>>>>> method), so the final
>>>>>>>>>>>>>>>
>>>>>> modifier is redundant in this
case.
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> ChatRoomState
>>>>>>>>>>>>>>>
>>>>>> =============
>>>>>>>>>>>>>>>
>>>>>> - Renamed to ChatRoomConfigParam -
as I already
>>>>>>>>>>>>>>>
>>>>>> mentioned the name wasn't
>>>>>>>>>>>>>>>
>>>>>> very well fitting the content of
the class, so we
>>>>>>>>>>>>>>>
>>>>>> tried to make it more
>>>>>>>>>>>>>>>
>>>>>> intuitive
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> - Formatted the code - lines were
longer than 80
>>>>>>>>>>>>>>>
>>>>>> columns
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> - Added additional comments
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> - Removed
CHAT_ROOM_PASSWORD_NOT_REQUIRED,
>>>>>>>>>>>>>>>
>>>>>>
CHATROOM_INVITATION_NOT_REQUIRED,
>>>>>>>>>>>>>>>
>>>>>> CHATROOM_USER_NUMBER_NOT_LIMITED,
CHATROOM_NOT_MUTE,
>>>>>>>>>>>>>>>
>>>>>>
CHATROOM_EXTERNAL_MESSAGES_NOT_ALLOWED,
>>>>>>>>>>>>>>>
>>>>>> CHATROOM_NOT_REGISTERED,
>>>>>>>>>>>>>>>
>>>>>> CHATROOM_SUBJECT_NOT_LOCKED,
>>>>>>>>>>>>>>>
>>>>>>
CHATROOM_MESSAGE_FORMAT_NOT_ALLOWED,
>>>>>>>>>>>>>>>
>>>>>>
CHATROOM_MESSAGE_FORMAT_NOT_FILTERED,
>>>>>>>>>>>>>>>
>>>>>> CHATROOM_JOIN_TIME_NOT_LIMITED,
etc.
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> - Renamed CHAT_ROOM_USER_REGISTERED
to
>>>>>>>>>>>>>>>
>>>>>> CHAT_ROOM_ONLY_REGISTERED_USER - I
>>>>>>>>>>>>>>>
>>>>>> think it's more intuitive this way
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> - All _XXX String constants are
changed to
>>>>>>>>>>>>>>>
>>>>>> protected - they will be
used
>>>>>>>>>>>>>>>
>>>>>> only internaly and may be by
descendants
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> ChatRoomInvitation
>>>>>>>>>>>>>>>
>>>>>> ==================
>>>>>>>>>>>>>>>
>>>>>> - get back the name of the author
of the class -
>>>>>>>>>>>>>>>
>>>>>> should not remove the name
>>>>>>>>>>>>>>>
>>>>>> of the author even if the class was
almost empty
>>>>>>>>>>>>>>>
>>>>>> and we wrote the whole
>>>>>>>>>>>>>>>
>>>>>> implementation
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> ChatRoomPropertyChangeEvent
>>>>>>>>>>>>>>>
>>>>>> ===========================
>>>>>>>>>>>>>>>
>>>>>> - get back the name of the author
of the class
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> - Removed the getProtocolProvider
method - the
>>>>>>>>>>>>>>>
>>>>>> protocol provider could be
>>>>>>>>>>>>>>>
>>>>>> obtained from the chat room and has
nothing to do
>>>>>>>>>>>>>>>
>>>>>> in the context of this
>>>>>>>>>>>>>>>
>>>>>> event
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> - Removed the reason field - I
don't think we
>>>>>>>>>>>>>>>
>>>>>> need to have the String
>>>>>>>>>>>>>>>
>>>>>> reason, I don't really see for what
it could be used.
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> - Added getOldValue and getNewValue
methods - in
>>>>>>>>>>>>>>>
>>>>>> order to be able to obtain
>>>>>>>>>>>>>>>
>>>>>> previous and new property values
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> That's all for now.
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> Thanks again Stephane and Loic for
the great
>>>>>>>>>>>>>>>
>>>>>> work! I'll continue with
the
>>>>>>>>>>>>>>>
>>>>>> irc implementation now and soon
we'll have all
>>>>>>>>>>>>>>>
>>>>>> your work on cvs.
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> If you have any remarks on above
changes you're
>>>>>>>>>>>>>>>
>>>>>> welcome to express
yourself.
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> Regards,
>>>>>>>>>>>>>>>
>>>>>> Yana
>>>>>>>>>>>>>>>
>>>>>>
>>>>>>>>>>>>>>>
>>>>>> On 5/21/07, Stéphane Remy
>>>>>>>>>>>>>>>
>>>>>> <stephane.remy ulp.u-strasbg.fr> wrote:
>>>>>>>>>>>>>>>
>>>>>>> Hi Yana,
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>> I have made a lot of changes
again to this
>>>>>>>>>>>>>>>
>>>>>>> services, i hope i didn't
>>>>>>>>>>>>>>>
>>>>>>> forget something, otherwise
don't hesitate to
>>>>>>>>>>>>>>>
>>>>>>> tell it to me i will
>>>>>>>>>>>>>>>
>>>>>>> fixe it.
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>> Quoting Yana Stamcheva
<yana sip-communicator.org>:
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>> Hi Stephane,
>>>>>>>>>>>>>>>
>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>> Sorry for the late
response. You have done
>>>>>>>>>>>>>>>
>>>>>>>> really good work
here. Bravo!
>>>>>>>>>>>>>>>
>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>> I would propose just some
minor changes to discuss:
>>>>>>>>>>>>>>>
>>>>>>>> - In
ChatRoomMemberRoleListener we should
>>>>>>>>>>>>>>>
>>>>>>>> called the method
>>>>>>>>>>>>>>>
>>>>>>>> memberRoleChanged, instead
of
>>>>>>>>>>>>>>>
>>>>>>>> memberStatusChanged. (I
think it's a copy
>>>>>>>>>>>>>>>
>>>>>>>> paste error)
>>>>>>>>>>>>>>>
>>>>>>> I have changed that.
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>> - In
ChatRoomInvitatioXXXEvent we should rename
>>>>>>>>>>>>>>>
>>>>>>>> the method
>>>>>>>>>>>>>>>
>>>>>>>> getSourceMessage to
getSourceInvitation or
>>>>>>>>>>>>>>>
>>>>>>>> getChatRoomInvitation,
>>>>>>>>>>>>>>>
>>>>>>>> because actually it returns
a ChatRoomInvitation.
>>>>>>>>>>>>>>>
>>>>>>> It's fixed too.
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>> - After a discussion with
Emil we think that it
>>>>>>>>>>>>>>>
>>>>>>>> would be correct
that
>>>>>>>>>>>>>>>
>>>>>>>> ChatRoomPropertyChangeEvent
extends
>>>>>>>>>>>>>>>
>>>>>>>>
java.beans.PropertyChangeEvent and
>>>>>>>>>>>>>>>
>>>>>>>> thus it should implement
getOldValue and
>>>>>>>>>>>>>>>
>>>>>>>> getNewValue methods.
>>>>>>>>>>>>>>>
>>>>>>> For this part i have made a lot
of changes, i
>>>>>>>>>>>>>>>
>>>>>>> have used the
>>>>>>>>>>>>>>>
>>>>>>> java.beans.PropertyChangeEvent,
but i have also
>>>>>>>>>>>>>>>
>>>>>>> created a class name
>>>>>>>>>>>>>>>
>>>>>>> ChatRoomState which contains
all the possible
>>>>>>>>>>>>>>>
>>>>>>> states for a chat room.
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>> - We have some doubts for
the name
>>>>>>>>>>>>>>>
>>>>>>>> TOPIC_CHANGED. In the
ChatRoom we
>>>>>>>>>>>>>>>
>>>>>>>> already have a property
called "subject", so
>>>>>>>>>>>>>>>
>>>>>>>> may be it's better to
call
>>>>>>>>>>>>>>>
>>>>>>>> it SUBJECT_CHANGED here
also.
>>>>>>>>>>>>>>>
>>>>>>> It's fixed too.
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>> - In fact all the names of
properties in the
>>>>>>>>>>>>>>>
>>>>>>>> ChatRoomPropertyChangeEvent
are not very well
>>>>>>>>>>>>>>>
>>>>>>>> matching the
convention
>>>>>>>>>>>>>>>
>>>>>>>> used for property names. We
should change them
>>>>>>>>>>>>>>>
>>>>>>>> may be by replacing
MODE
>>>>>>>>>>>>>>>
>>>>>>>> with PROPERTY and further
more by adjusting
>>>>>>>>>>>>>>>
>>>>>>>> better the names so
that
>>>>>>>>>>>>>>>
>>>>>>>> they are more intuitive.
>>>>>>>>>>>>>>>
>>>>>>> I have made them as intuitive
as possible this
>>>>>>>>>>>>>>>
>>>>>>> time, but if you find
>>>>>>>>>>>>>>>
>>>>>>> better words to make them more
intuitive just tell
>>>>>>>>>>>>>>>
>>>>>>> me.
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>> - And finally all
properties defined in the
>>>>>>>>>>>>>>>
>>>>>>>>
ChatRoomPropertyChangeEvent
>>>>>>>>>>>>>>>
>>>>>>>> should also exist as
properties in the
>>>>>>>>>>>>>>>
>>>>>>>> ChatRoom, because they
are
>>>>>>>>>>>>>>>
>>>>>>>> actually properties of the
chat room and we
>>>>>>>>>>>>>>>
>>>>>>>> should be able to get
and
>>>>>>>>>>>>>>>
>>>>>>>> set their value from
there.
>>>>>>>>>>>>>>>
>>>>>>> I have changed this too.
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>> That's all for now. May be
Emil will have
>>>>>>>>>>>>>>>
>>>>>>>> something to add.
>>>>>>>>>>>>>>>
>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>> I should say one more time
congratulations for
>>>>>>>>>>>>>>>
>>>>>>>> the work
>>>>>>>>>>>>>>>
>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>> Yana
>>>>>>>>>>>>>>>
>>>>>>> Fot the ChatRoomState class i'm
not sure if it
>>>>>>>>>>>>>>>
>>>>>>> is the best way to do,
>>>>>>>>>>>>>>>
>>>>>>> so tell me what do you think
about it.
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>> Stéphane
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>> here is the patch:
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>> ### Eclipse Workspace Patch
1.0
>>>>>>>>>>>>>>>
>>>>>>> #P sip-communicator
>>>>>>>>>>>>>>>
>>>>>>> Index:
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserStatusChangeEvent.java
>>>>>>>>>>>>>>>
>>>>>>>
============================================================
=======
>>>>>>>>>>>>>>>
>>>>>>> RCS file:
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserStatusChangeEvent.java
>>>>>>>>>>>>>>>
>>>>>>> diff -N
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserStatusChangeEvent.java
>>>>>>>>>>>>>>>
>>>>>>> ---
>>>>>>>>>>>>>>>
>>>>>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserStatusChangeEvent.java
>>>>>>>>>>>>>>>
>>>>>>> 22
>>>>>>>>>>>>>>>
>>>>>>> Feb 2007 12:36:02
>>>>>>>>>>>>>>>
>>>>>>> -0000 1.1
>>>>>>>>>>>>>>>
>>>>>>> +++ /dev/null 1 Jan 1970
00:00:00 -0000
>>>>>>>>>>>>>>>
>>>>>>>  -1,23 +0,0 
>>>>>>>>>>>>>>>
>>>>>>> -/*
>>>>>>>>>>>>>>>
>>>>>>> - * 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;
>>>>>>>>>>>>>>>
>>>>>>> -
>>>>>>>>>>>>>>>
>>>>>>> -/**
>>>>>>>>>>>>>>>
>>>>>>> - * Dispatched to notify
interested parties that
>>>>>>>>>>>>>>>
>>>>>>> a change in our status
in
>>>>>>>>>>>>>>>
>>>>>>> the
>>>>>>>>>>>>>>>
>>>>>>> - * source room has changed.
Changes may include
>>>>>>>>>>>>>>>
>>>>>>> us being kicked,
banned,
>>>>>>>>>>>>>>>
>>>>>>> or
>>>>>>>>>>>>>>>
>>>>>>> - * granted admin permissions.
>>>>>>>>>>>>>>>
>>>>>>> - *
>>>>>>>>>>>>>>>
>>>>>>> - * author Emil Ivov
>>>>>>>>>>>>>>>
>>>>>>> - */
>>>>>>>>>>>>>>>
>>>>>>> -public class
ChatRoomLocalUserStatusChangeEvent
>>>>>>>>>>>>>>>
>>>>>>> -{
>>>>>>>>>>>>>>>
>>>>>>> - public
ChatRoomLocalUserStatusChangeEvent()
>>>>>>>>>>>>>>>
>>>>>>> - {
>>>>>>>>>>>>>>>
>>>>>>> - super();
>>>>>>>>>>>>>>>
>>>>>>> - }
>>>>>>>>>>>>>>>
>>>>>>> -
>>>>>>>>>>>>>>>
>>>>>>> -}
>>>>>>>>>>>>>>>
>>>>>>> Index:
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberListener.java
>>>>>>>>>>>>>>>
>>>>>>>
============================================================
=======
>>>>>>>>>>>>>>>
>>>>>>> RCS file:
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberListener.java
>>>>>>>>>>>>>>>
>>>>>>> diff -N
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberListener.java
>>>>>>>>>>>>>>>
>>>>>>> ---
>>>>>>>>>>>>>>>
>>>>>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberListener.java
>>>>>>>>>>>>>>>
>>>>>>> 23
>>>>>>>>>>>>>>>
>>>>>>> Apr 2007 18:11:29
>>>>>>>>>>>>>>>
>>>>>>> -0000 1.1
>>>>>>>>>>>>>>>
>>>>>>> +++ /dev/null 1 Jan 1970
00:00:00 -0000
>>>>>>>>>>>>>>>
>>>>>>>  -1,27 +0,0 
>>>>>>>>>>>>>>>
>>>>>>> -/*
>>>>>>>>>>>>>>>
>>>>>>> - * 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.*;
>>>>>>>>>>>>>>>
>>>>>>> -
>>>>>>>>>>>>>>>
>>>>>>> -/**
>>>>>>>>>>>>>>>
>>>>>>> - * Adds a listener that will
be notified of
>>>>>>>>>>>>>>>
>>>>>>> changes in the status of
the
>>>>>>>>>>>>>>>
>>>>>>> chat
>>>>>>>>>>>>>>>
>>>>>>> - * participants in a
particular chat room, such
>>>>>>>>>>>>>>>
>>>>>>> as us being kicked,
>>>>>>>>>>>>>>>
>>>>>>> banned, or
>>>>>>>>>>>>>>>
>>>>>>> - * granted admin permissions.
>>>>>>>>>>>>>>>
>>>>>>> - * author Emil Ivov
>>>>>>>>>>>>>>>
>>>>>>> - */
>>>>>>>>>>>>>>>
>>>>>>> -public interface
ChatRoomMemberListener
>>>>>>>>>>>>>>>
>>>>>>> - extends EventListener
>>>>>>>>>>>>>>>
>>>>>>> -{
>>>>>>>>>>>>>>>
>>>>>>> - /**
>>>>>>>>>>>>>>>
>>>>>>> - * Called to notify
interested parties that
>>>>>>>>>>>>>>>
>>>>>>> a change in the status
of
>>>>>>>>>>>>>>>
>>>>>>> the
>>>>>>>>>>>>>>>
>>>>>>> - * source room participant
has changed.
>>>>>>>>>>>>>>>
>>>>>>> Changes may include the
>>>>>>>>>>>>>>>
>>>>>>> participant
>>>>>>>>>>>>>>>
>>>>>>> - * being kicked, banned,
or granted admin
>>>>>>>>>>>>>>>
>>>>>>> permissions.
>>>>>>>>>>>>>>>
>>>>>>> - */
>>>>>>>>>>>>>>>
>>>>>>> - public void
memberStatusChanged(
>>>>>>>>>>>>>>>
>>>>>>> ChatRoomMemberEvent evt );
>>>>>>>>>>>>>>>
>>>>>>> -
>>>>>>>>>>>>>>>
>>>>>>> -}
>>>>>>>>>>>>>>>
>>>>>>> Index:
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mPropertyChangeEvent.java
>>>>>>>>>>>>>>>
>>>>>>>
============================================================
=======
>>>>>>>>>>>>>>>
>>>>>>> RCS file:
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>
/cvs/sip-communicator/src/net/java/sip/communicator/service/
protocol/event/ChatRoomPropertyChangeEvent.java,v
>>>>>>>>>>>>>>>
>>>>>>> retrieving revision
1.1
>>>>>>>>>>>>>>>
>>>>>>> diff -u -r1.1
ChatRoomPropertyChangeEvent.java
>>>>>>>>>>>>>>>
>>>>>>> ---
>>>>>>>>>>>>>>>
>>>>>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mPropertyChangeEvent.java
>>>>>>>>>>>>>>>
>>>>>>> 22 Feb 2007
12:37:18
>>>>>>>>>>>>>>>
>>>>>>> -0000 1.1
>>>>>>>>>>>>>>>
>>>>>>> +++
>>>>>>>>>>>>>>>
>>>>>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mPropertyChangeEvent.java
>>>>>>>>>>>>>>>
>>>>>>> 21 May 2007
07:05:35
>>>>>>>>>>>>>>>
>>>>>>> -0000
>>>>>>>>>>>>>>>
>>>>>>>  -6,22 +6,114 
>>>>>>>>>>>>>>>
>>>>>>> */
>>>>>>>>>>>>>>>
>>>>>>> package
>>>>>>>>>>>>>>>
>>>>>>>
net.java.sip.communicator.service.protocol.event;
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>> -import java.util.*;
>>>>>>>>>>>>>>>
>>>>>>> +import
>>>>>>>>>>>>>>>
>>>>>>>
net.java.sip.communicator.service.protocol.ChatRoom;
>>>>>>>>>>>>>>>
>>>>>>> +import
>>>>>>>>>>>>>>>
>>>>>>>
net.java.sip.communicator.service.protocol.ProtocolProviderS
ervice
>>>>>>>>>>>>>>>
>>>>>>> ;
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>> /**
>>>>>>>>>>>>>>>
>>>>>>> *
<tt>ChatRoomChangeEvent</tt>s are fired to
>>>>>>>>>>>>>>>
>>>>>>> indicate that a property
>>>>>>>>>>>>>>>
>>>>>>> of
>>>>>>>>>>>>>>>
>>>>>>> - * the corresponding chat room
(e.g. its
>>>>>>>>>>>>>>>
>>>>>>> subject or type) have
been
>>>>>>>>>>>>>>>
>>>>>>> modified.
>>>>>>>>>>>>>>>
>>>>>>> + * the corresponding chat room
(e.g. its
>>>>>>>>>>>>>>>
>>>>>>> subject or state) have
been
>>>>>>>>>>>>>>>
>>>>>>> modified.
>>>>>>>>>>>>>>>
>>>>>>> * The event contains references
to the source
>>>>>>>>>>>>>>>
>>>>>>> chat room and
>>>>>>>>>>>>>>>
>>>>>>> provider, the name
>>>>>>>>>>>>>>>
>>>>>>> * of the property that has just
changed as well
>>>>>>>>>>>>>>>
>>>>>>> as its old and new
>>>>>>>>>>>>>>>
>>>>>>> values.
>>>>>>>>>>>>>>>
>>>>>>> *
>>>>>>>>>>>>>>>
>>>>>>> - * author Emil Ivov
>>>>>>>>>>>>>>>
>>>>>>> + * author Stéphane Remy
>>>>>>>>>>>>>>>
>>>>>>> */
>>>>>>>>>>>>>>>
>>>>>>> public class
ChatRoomPropertyChangeEvent
>>>>>>>>>>>>>>>
>>>>>>> - extends EventObject
>>>>>>>>>>>>>>>
>>>>>>> + extends
java.beans.PropertyChangeEvent
>>>>>>>>>>>>>>>
>>>>>>> {
>>>>>>>>>>>>>>>
>>>>>>> - public
ChatRoomPropertyChangeEvent(Object
>>>>>>>>>>>>>>>
>>>>>>> source)
>>>>>>>>>>>>>>>
>>>>>>> + /**
>>>>>>>>>>>>>>>
>>>>>>> + * Indicates that this
event was triggered
>>>>>>>>>>>>>>>
>>>>>>> as a result of the
source
>>>>>>>>>>>>>>>
>>>>>>> + * chat room subject being
changed.
>>>>>>>>>>>>>>>
>>>>>>> + */
>>>>>>>>>>>>>>>
>>>>>>> + public static final String
>>>>>>>>>>>>>>>
>>>>>>> PROPERTY_SUBJECT_CHANGED =
>>>>>>>>>>>>>>>
>>>>>>> "SubjectChanged";
>>>>>>>>>>>>>>>
>>>>>>> +
>>>>>>>>>>>>>>>
>>>>>>> + /**
>>>>>>>>>>>>>>>
>>>>>>> + * Indicates that this
event was triggered
>>>>>>>>>>>>>>>
>>>>>>> as a result of the
source
>>>>>>>>>>>>>>>
>>>>>>> + * chat room ban list
being changed.
>>>>>>>>>>>>>>>
>>>>>>> + */
>>>>>>>>>>>>>>>
>>>>>>> + public static final String
>>>>>>>>>>>>>>>
>>>>>>> PROPERTY_BAN_LIST_CHANGED =
>>>>>>>>>>>>>>>
>>>>>>> "BanListChanged";
>>>>>>>>>>>>>>>
>>>>>>> +
>>>>>>>>>>>>>>>
>>>>>>> + /**
>>>>>>>>>>>>>>>
>>>>>>> + * Indicates that this
event was triggered
>>>>>>>>>>>>>>>
>>>>>>> as a result of the
source
>>>>>>>>>>>>>>>
>>>>>>> + * chat room user limit
being changed.
>>>>>>>>>>>>>>>
>>>>>>> + */
>>>>>>>>>>>>>>>
>>>>>>> + public static final String
>>>>>>>>>>>>>>>
>>>>>>> PROPERTY_USER_LIMIT_CHANGED =
>>>>>>>>>>>>>>>
>>>>>>> "UserLimitChanged";
>>>>>>>>>>>>>>>
>>>>>>> +
>>>>>>>>>>>>>>>
>>>>>>> + /**
>>>>>>>>>>>>>>>
>>>>>>> + * Indicates that this
event was triggered
>>>>>>>>>>>>>>>
>>>>>>> as a result of the
source
>>>>>>>>>>>>>>>
>>>>>>> + * chat room state
changed.
>>>>>>>>>>>>>>>
>>>>>>> + */
>>>>>>>>>>>>>>>
>>>>>>> + public static final String
>>>>>>>>>>>>>>>
>>>>>>> PROPERTY_STATE_CHANGED =
"StateChanged";
>>>>>>>>>>>>>>>
>>>>>>> +
>>>>>>>>>>>>>>>
>>>>>>> + /**
>>>>>>>>>>>>>>>
>>>>>>> + * Indicates that this
event was triggered
>>>>>>>>>>>>>>>
>>>>>>> as a result of the
source
>>>>>>>>>>>>>>>
>>>>>>> + * chat room password
being changed.
>>>>>>>>>>>>>>>
>>>>>>> + */
>>>>>>>>>>>>>>>
>>>>>>> + public static final String
>>>>>>>>>>>>>>>
>>>>>>> PROPERTY_PASSWORD_CHANGED =
>>>>>>>>>>>>>>>
>>>>>>> "PasswordChanged";
>>>>>>>>>>>>>>>
>>>>>>> +
>>>>>>>>>>>>>>>
>>>>>>> + /**
>>>>>>>>>>>>>>>
>>>>>>> + * An optional String
indicating a possible
>>>>>>>>>>>>>>>
>>>>>>> reason why the event
>>>>>>>>>>>>>>>
>>>>>>> + * might have occurred.
>>>>>>>>>>>>>>>
>>>>>>> + */
>>>>>>>>>>>>>>>
>>>>>>> + private String reason =
null;
>>>>>>>>>>>>>>>
>>>>>>> +
>>>>>>>>>>>>>>>
>>>>>>> + public
ChatRoomPropertyChangeEvent(ChatRoom
>>>>>>>>>>>>>>>
>>>>>>> source,
>>>>>>>>>>>>>>>
>>>>>>> +
>>>>>>>>>>>>>>>
>>>>>>> String
>>>>>>>>>>>>>>>
>>>>>>> propertyName,
>>>>>>>>>>>>>>>
>>>>>>> +
>>>>>>>>>>>>>>>
>>>>>>> Object oldValue,
>>>>>>>>>>>>>>>
>>>>>>> +
>>>>>>>>>>>>>>>
>>>>>>> Object newValue,
>>>>>>>>>>>>>>>
>>>>>>> +
String reason)
>>>>>>>>>>>>>>>
>>>>>>> + {
>>>>>>>>>>>>>>>
>>>>>>> + super(source,
propertyName, oldValue,
>>>>>>>>>>>>>>>
>>>>>>> newValue);
>>>>>>>>>>>>>>>
>>>>>>> + this.reason = reason;
>>>>>>>>>>>>>>>
>>>>>>> + }
>>>>>>>>>>>>>>>
>>>>>>> +
>>>>>>>>>>>>>>>
>>>>>>> + /**
>>>>>>>>>>>>>>>
>>>>>>> + * Returns the source chat
room for this event.
>>>>>>>>>>>>>>>
>>>>>>> + *
>>>>>>>>>>>>>>>
>>>>>>> + * return the
<tt>ChatRoom</tt> associated
>>>>>>>>>>>>>>>
>>>>>>> with this
>>>>>>>>>>>>>>>
>>>>>>> + * event.
>>>>>>>>>>>>>>>
>>>>>>> + */
>>>>>>>>>>>>>>>
>>>>>>> + public ChatRoom
getSourceChatRoom()
>>>>>>>>>>>>>>>
>>>>>>> + {
>>>>>>>>>>>>>>>
>>>>>>> + return
(ChatRoom)getSource();
>>>>>>>>>>>>>>>
>>>>>>> + }
>>>>>>>>>>>>>>>
>>>>>>> +
>>>>>>>>>>>>>>>
>>>>>>> + /**
>>>>>>>>>>>>>>>
>>>>>>> + * Returns a reference to
the protocol
>>>>>>>>>>>>>>>
>>>>>>> provider where the event
has
>>>>>>>>>>>>>>>
>>>>>>> + * originated.
>>>>>>>>>>>>>>>
>>>>>>> + * <p>
>>>>>>>>>>>>>>>
>>>>>>> + * return a reference to the
>>>>>>>>>>>>>>>
>>>>>>> ProtocolProviderService
instance where
>>>>>>>>>>>>>>>
>>>>>>> this
>>>>>>>>>>>>>>>
>>>>>>> + * event originated.
>>>>>>>>>>>>>>>
>>>>>>> + */
>>>>>>>>>>>>>>>
>>>>>>> + public
ProtocolProviderService
>>>>>>>>>>>>>>>
>>>>>>> getProtocolProvider()
>>>>>>>>>>>>>>>
>>>>>>> + {
>>>>>>>>>>>>>>>
>>>>>>> + return
>>>>>>>>>>>>>>>
>>>>>>>
getSourceChatRoom().getParentProvider();
>>>>>>>>>>>>>>>
>>>>>>> + }
>>>>>>>>>>>>>>>
>>>>>>> +
>>>>>>>>>>>>>>>
>>>>>>> + /**
>>>>>>>>>>>>>>>
>>>>>>> + * A reason string
indicating a human
>>>>>>>>>>>>>>>
>>>>>>> readable reason for this
event.
>>>>>>>>>>>>>>>
>>>>>>> + *
>>>>>>>>>>>>>>>
>>>>>>> + * return a human readable
String
>>>>>>>>>>>>>>>
>>>>>>> containing the reason for
this
>>>>>>>>>>>>>>>
>>>>>>> event,
>>>>>>>>>>>>>>>
>>>>>>> + * or null if no
particular reason was
>>>>>>>>>>>>>>>
>>>>>>> specified.
>>>>>>>>>>>>>>>
>>>>>>> + */
>>>>>>>>>>>>>>>
>>>>>>> + public String getReason()
>>>>>>>>>>>>>>>
>>>>>>> + {
>>>>>>>>>>>>>>>
>>>>>>> + return reason;
>>>>>>>>>>>>>>>
>>>>>>> + }
>>>>>>>>>>>>>>>
>>>>>>> +
>>>>>>>>>>>>>>>
>>>>>>> + /**
>>>>>>>>>>>>>>>
>>>>>>> + * Returns a String
representation of this
>>>>>>>>>>>>>>>
>>>>>>> event.
>>>>>>>>>>>>>>>
>>>>>>> + */
>>>>>>>>>>>>>>>
>>>>>>> + public String toString()
>>>>>>>>>>>>>>>
>>>>>>> {
>>>>>>>>>>>>>>>
>>>>>>> - super(source);
>>>>>>>>>>>>>>>
>>>>>>> + return
"ChatRoomPropertyChangeEvent[type="
>>>>>>>>>>>>>>>
>>>>>>> + +
this.getPropertyName()
>>>>>>>>>>>>>>>
>>>>>>> + + "
sourceRoom="
>>>>>>>>>>>>>>>
>>>>>>> + +
this.getSource().toString()
>>>>>>>>>>>>>>>
>>>>>>> + +
"oldValue="
>>>>>>>>>>>>>>>
>>>>>>> + +
this.getOldValue().toString()
>>>>>>>>>>>>>>>
>>>>>>> + +
"newValue="
>>>>>>>>>>>>>>>
>>>>>>> + +
this.getNewValue().toString()
>>>>>>>>>>>>>>>
>>>>>>> + + "]";
>>>>>>>>>>>>>>>
>>>>>>> }
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>> }
>>>>>>>>>>>>>>>
>>>>>>> Index:
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberEvent.java
>>>>>>>>>>>>>>>
>>>>>>>
============================================================
=======
>>>>>>>>>>>>>>>
>>>>>>> RCS file:
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberEvent.java
>>>>>>>>>>>>>>>
>>>>>>> diff -N
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberEvent.java
>>>>>>>>>>>>>>>
>>>>>>> ---
>>>>>>>>>>>>>>>
>>>>>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberEvent.java
>>>>>>>>>>>>>>>
>>>>>>> 23 Apr 2007
18:11:22
>>>>>>>>>>>>>>>
>>>>>>> -0000 1.1
>>>>>>>>>>>>>>>
>>>>>>> +++ /dev/null 1 Jan 1970
00:00:00 -0000
>>>>>>>>>>>>>>>
>>>>>>>  -1,124 +0,0 
>>>>>>>>>>>>>>>
>>>>>>> -/*
>>>>>>>>>>>>>>>
>>>>>>> - * 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.*;
>>>>>>>>>>>>>>>
>>>>>>> -
>>>>>>>>>>>>>>>
>>>>>>> -/**
>>>>>>>>>>>>>>>
>>>>>>> - * Dispatched to notify
interested parties that
>>>>>>>>>>>>>>>
>>>>>>> a change in the status
of
>>>>>>>>>>>>>>>
>>>>>>> the
>>>>>>>>>>>>>>>
>>>>>>> - * source room participant has
changed. Changes
>>>>>>>>>>>>>>>
>>>>>>> may include the
>>>>>>>>>>>>>>>
>>>>>>> participant
>>>>>>>>>>>>>>>
>>>>>>> - * being kicked, banned, or
granted admin
>>>>>>>>>>>>>>>
>>>>>>> permissions.
>>>>>>>>>>>>>>>
>>>>>>> - *
>>>>>>>>>>>>>>>
>>>>>>> - * author Emil Ivov
>>>>>>>>>>>>>>>
>>>>>>> - */
>>>>>>>>>>>>>>>
>>>>>>> -public class
ChatRoomMemberEvent
>>>>>>>>>>>>>>>
>>>>>>> - extends EventObject
>>>>>>>>>>>>>>>
>>>>>>> -{
>>>>>>>>>>>>>>>
>>>>>>> - /**
>>>>>>>>>>>>>>>
>>>>>>> - * Indicates that this
event was triggered
>>>>>>>>>>>>>>>
>>>>>>> as a result of the
source
>>>>>>>>>>>>>>>
>>>>>>> - * participant joining the
source chat room.
>>>>>>>>>>>>>>>
>>>>>>> - */
>>>>>>>>>>>>>>>
>>>>>>> - public static final String
MEMBER_JOINED =
>>>>>>>>>>>>>>>
>>>>>>> "MemberJoined";
>>>>>>>>>>>>>>>
>>>>>>> -
>>>>>>>>>>>>>>>
>>>>>>> - /**
>>>>>>>>>>>>>>>
>>>>>>> - * Indicates that this
event was triggered
>>>>>>>>>>>>>>>
>>>>>>> as a result of the
source
>>>>>>>>>>>>>>>
>>>>>>> - * participant being
"kicked" out of the chat
>>>>>>>>>>>>>>>
>>>>>>> room.
>>>>>>>>>>>>>>>
>>>>>>> - */
>>>>>>>>>>>>>>>
>>>>>>> - public static final String
MEMBER_LEFT =
>>>>>>>>>>>>>>>
>>>>>>> "MemberJoined";
>>>>>>>>>>>>>>>
>>>>>>> -
>>>>>>>>>>>>>>>
>>>>>>> - /**
>>>>>>>>>>>>>>>
>>>>>>> - * Indicates that this
event was triggered
>>>>>>>>>>>>>>>
>>>>>>> as a result of the
source
>>>>>>>>>>>>>>>
>>>>>>> - * participant leaving the
source chat room.
>>>>>>>>>>>>>>>
>>>>>>> - */
>>>>>>>>>>>>>>>
>>>>>>> - public static final String
MEMBER_KICKED =
>>>>>>>>>>>>>>>
>>>>>>> "MemberKicked";
>>>>>>>>>>>>>>>
>>>>>>> -
>>>>>>>>>>>>>>>
>>>>>>> - /**
>>>>>>>>>>>>>>>
>>>>>>> - * The member that the
event relates to.
>>>>>>>>>>>>>>>
>>>>>>> - */
>>>>>>>>>>>>>>>
>>>>>>> - private ChatRoomMember
sourceMember = null;
>>>>>>>>>>>>>>>
>>>>>>> -
>>>>>>>>>>>>>>>
>>>>>>> - /**
>>>>>>>>>>>>>>>
>>>>>>> - * The type of this event.
Values can be
>>>>>>>>>>>>>>>
>>>>>>> any of the MEMBER_XXX-ED
>>>>>>>>>>>>>>>
>>>>>>> fields.
>>>>>>>>>>>>>>>
>>>>>>> - */
>>>>>>>>>>>>>>>
>>>>>>> - private String eventType =
null;
>>>>>>>>>>>>>>>
>>>>>>> -
>>>>>>>>>>>>>>>
>>>>>>> - /**
>>>>>>>>>>>>>>>
>>>>>>> - * An optional String
indicating a possible
>>>>>>>>>>>>>>>
>>>>>>> reason as to why the
>>>>>>>>>>>>>>>
>>>>>>> event
>>>>>>>>>>>>>>>
>>>>>>> - * might have occurred.
>>>>>>>>>>>>>>>
>>>>>>> - */
>>>>>>>>>>>>>>>
>>>>>>> - private String reason =
null;
>>>>>>>>>>>>>>>
>>>>>>> -
>>>>>>>>>>>>>>>
>>>>>>> -
>>>>>>>>>>>>>>>
>>>>>>> - public
ChatRoomMemberEvent(ChatRoom
>>>>>>>>>>>>>>>
>>>>>>> sourceRoom,
>>>>>>>>>>>>>>>
>>>>>>> -
ChatRoomMember
>>>>>>>>>>>>>>>
>>>>>>> sourceMember,
>>>>>>>>>>>>>>>
>>>>>>> -
String
>>>>>>>>>>>>>>>
>>>>>>> eventType,
>>>>>>>>>>>>>>>
>>>>>>> -
String
>>>>>>>>>>>>>>>
>>>>>>> reason )
>>>>>>>>>>>>>>>
>>>>>>> - {
>>>>>>>>>>>>>>>
>>>>>>> - super(sourceRoom);
>>>>>>>>>>>>>>>
>>>>>>> - this.sourceMember =
sourceMember;
>>>>>>>>>>>>>>>
>>>>>>> - this.eventType =
eventType;
>>>>>>>>>>>>>>>
>>>>>>> - this.reason = reason;
>>>>>>>>>>>>>>>
>>>>>>> - }
>>>>>>>>>>>>>>>
>>>>>>> -
>>>>>>>>>>>>>>>
>>>>>>> - /**
>>>>>>>>>>>>>>>
>>>>>>> - * Returns the source chat
room for this event.
>>>>>>>>>>>>>>>
>>>>>>> - *
>>>>>>>>>>>>>>>
>>>>>>> - * return the
<tt>ChatRoom</tt> associated
>>>>>>>>>>>>>>>
>>>>>>> with that is the
>>>>>>>>>>>>>>>
>>>>>>> source of this
>>>>>>>>>>>>>>>
>>>>>>> - * event and that the
corresponding
>>>>>>>>>>>>>>>
>>>>>>> ChatRoomMemberBelongs to.
>>>>>>>>>>>>>>>
>>>>>>> - */
>>>>>>>>>>>>>>>
>>>>>>> - public ChatRoom
getChatRoom()
>>>>>>>>>>>>>>>
>>>>>>> - {
>>>>>>>>>>>>>>>
>>>>>>> - return
(ChatRoom)getSource();
>>>>>>>>>>>>>>>
>>>>>>> - }
>>>>>>>>>>>>>>>
>>>>>>> -
>>>>>>>>>>>>>>>
>>>>>>> - /**
>>>>>>>>>>>>>>>
>>>>>>> - * Returns the member that
this event is
>>>>>>>>>>>>>>>
>>>>>>> pertaining to.
>>>>>>>>>>>>>>>
>>>>>>> - * return the
<tt>ChatRoomMember</tt> that
>>>>>>>>>>>>>>>
>>>>>>> this event is
pertaining
>>>>>>>>>>>>>>>
>>>>>>> to.
>>>>>>>>>>>>>>>
>>>>>>> - */
>>>>>>>>>>>>>>>
>>>>>>> - public ChatRoomMember
getChatRoomMember()
>>>>>>>>>>>>>>>
>>>>>>> - {
>>>>>>>>>>>>>>>
>>>>>>> - return sourceMember;
>>>>>>>>>>>>>>>
>>>>>>> - }
>>>>>>>>>>>>>>>
>>>>>>> -
>>>>>>>>>>>>>>>
>>>>>>> - /**
>>>>>>>>>>>>>>>
>>>>>>> - * A reason string
indicating a human
>>>>>>>>>>>>>>>
>>>>>>> readable reason for this
event.
>>>>>>>>>>>>>>>
>>>>>>> - *
>>>>>>>>>>>>>>>
>>>>>>> - * return a human readable
String
>>>>>>>>>>>>>>>
>>>>>>> containing the reason for
this
>>>>>>>>>>>>>>>
>>>>>>> event,
>>>>>>>>>>>>>>>
>>>>>>> - * or null if no
particular reason was
>>>>>>>>>>>>>>>
>>>>>>> specified.
>>>>>>>>>>>>>>>
>>>>>>> - */
>>>>>>>>>>>>>>>
>>>>>>> - public String getReason()
>>>>>>>>>>>>>>>
>>>>>>> - {
>>>>>>>>>>>>>>>
>>>>>>> - return reason;
>>>>>>>>>>>>>>>
>>>>>>> - }
>>>>>>>>>>>>>>>
>>>>>>> -
>>>>>>>>>>>>>>>
>>>>>>> - /**
>>>>>>>>>>>>>>>
>>>>>>> - * Returns the type of
this event which
>>>>>>>>>>>>>>>
>>>>>>> could be one of the
>>>>>>>>>>>>>>>
>>>>>>> MEMBER_XXX-ed
>>>>>>>>>>>>>>>
>>>>>>> - * member field values.
>>>>>>>>>>>>>>>
>>>>>>> - *
>>>>>>>>>>>>>>>
>>>>>>> - * return one of the
MEMBER_XXXed member
>>>>>>>>>>>>>>>
>>>>>>> field values indicating
>>>>>>>>>>>>>>>
>>>>>>> the type
>>>>>>>>>>>>>>>
>>>>>>> - * of this event.
>>>>>>>>>>>>>>>
>>>>>>> - */
>>>>>>>>>>>>>>>
>>>>>>> - public String
getEventType()
>>>>>>>>>>>>>>>
>>>>>>> - {
>>>>>>>>>>>>>>>
>>>>>>> - return eventType;
>>>>>>>>>>>>>>>
>>>>>>> - }
>>>>>>>>>>>>>>>
>>>>>>> -
>>>>>>>>>>>>>>>
>>>>>>> - /**
>>>>>>>>>>>>>>>
>>>>>>> - * Returns a String
representation of this
>>>>>>>>>>>>>>>
>>>>>>> event.
>>>>>>>>>>>>>>>
>>>>>>> - */
>>>>>>>>>>>>>>>
>>>>>>> - public String toString()
>>>>>>>>>>>>>>>
>>>>>>> - {
>>>>>>>>>>>>>>>
>>>>>>> - return
"ChatRoomMemberEvent[type="
>>>>>>>>>>>>>>>
>>>>>>> - + getEventType()
>>>>>>>>>>>>>>>
>>>>>>> - + "
sourceRoom="
>>>>>>>>>>>>>>>
>>>>>>> - + getChatRoom()
>>>>>>>>>>>>>>>
>>>>>>> - + "
member="
>>>>>>>>>>>>>>>
>>>>>>> - +
getChatRoomMember()
>>>>>>>>>>>>>>>
>>>>>>> - + "]";
>>>>>>>>>>>>>>>
>>>>>>> - }
>>>>>>>>>>>>>>>
>>>>>>> -}
>>>>>>>>>>>>>>>
>>>>>>> Index:
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserStatusListener.java
>>>>>>>>>>>>>>>
>>>>>>>
============================================================
=======
>>>>>>>>>>>>>>>
>>>>>>> RCS file:
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserStatusListener.java
>>>>>>>>>>>>>>>
>>>>>>> diff -N
>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserStatusListener.java
>>>>>>>>>>>>>>>
>>>>>>> ---
>>>>>>>>>>>>>>>
>>>>>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserStatusListener.java
>>>>>>>>>>>>>>>
>>>>>>> 22 Feb 2007
12:36:09
>>>>>>>>>>>>>>>
>>>>>>> -0000 1.1
>>>>>>>>>>>>>>>
>>>>>>> +++ /dev/null 1 Jan 1970
00:00:00 -0000
>>>>>>>>>>>>>>>
>>>>>>>  -1,25 +0,0 
>>>>>>>>>>>>>>>
>>>>>>> -/*
>>>>>>>>>>>>>>>
>>>>>>> - * 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.*;
>>>>>>>>>>>>>>>
>>>>>>> -
>>>>>>& |