List Info

Thread: Re: Chat room related services...




Re: Chat room related services...
user name
2007-07-02 09:07:20
Hi Stephane,

thanks for the quick reply.

Stéphane Remy wrote:
> Hi Yana,
> 
> Yana Stamcheva <yanasip-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 <yanasip-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 <emchoemcho.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 <emchoemcho.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
<yanasip-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.remyulp.u-strasbg.fr> a écrit :
>>>>>>>>>>>
>>>>>>>>>>>> Hi Yana,
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks
that's what i wanted to know 
>>>>>>>>>>>>
>>>>>>>>>>>> Stéphane
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Yana
Stamcheva <yanasip-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 <yanasip-communicator.org> a écrit :
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
Hi Stephane,
>>>>>>>>>>>>>>>

>>>>>>>>>>>>>>>
I've added some inline comments.
>>>>>>>>>>>>>>>

>>>>>>>>>>>>>>>
Yana
>>>>>>>>>>>>>>>

>>>>>>>>>>>>>>>
Stéphane Remy wrote:
>>>>>>>>>>>>>>>
> Hi Yana
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
> Yana Stamcheva <yanasip-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 <yanasip-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 <yanasip-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.remyulp.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
<yanasip-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.*;
>>>>>>>>>>>>>>>
>>>>>>> -
>>>>>>&