List Info

Thread: Re: Chat room related services...




Re: Chat room related services...
user name
2007-06-26 10:15:47
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.

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?

Emil

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.*;
>>>>>>>>>>>>>>>
> -
>>>>>>>>>>>>>>>
> -/**
>>>>>>>>>>>>>>>
> - * Adds a listener that will be notified of changes  

>>>>>>>>>>>>>>>
> in   our   status in the
>>>>>>>>>>>>>>>
> room
>>>>>>>>>>>>>>>
> - * such as us being kicked, banned, or granted admin  

>>>>>>>>>>>>>>>
>   permissions.
>>>>>>>>>>>>>>>
> - * author Emil Ivov
>>>>>>>>>>>>>>>
> - */
>>>>>>>>>>>>>>>
> -public interface ChatRoomLocalUserStatusListener
>>>>>>>>>>>>>>>
> -    extends EventListener
>>>>>>>>>>>>>>>
> -{
>>>>>>>>>>>>>>>
> -    /**
>>>>>>>>>>>>>>>
> -     * Called to notify interested parties that a    

>>>>>>>>>>>>>>>
> change   in  our status in
>>>>>>>>>>>>>>>
> the
>>>>>>>>>>>>>>>
> -     * source soom has changed. Changes may include  

>>>>>>>>>>>>>>>
> us    being kicked,
>>>>>>>>>>>>>>>
> banned, or
>>>>>>>>>>>>>>>
> -     * granted admin permissions.
>>>>>>>>>>>>>>>
> -     */
>>>>>>>>>>>>>>>
> -    public void
>>>>>>>>>>>>>>>
>
localUserStatusChanged(ChatRoomLocalUserStatusChangeEvent
evt);
>>>>>>>>>>>>>>>
> -}
>>>>>>>>>>>>>>>
> Index:
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberRoleChangeEvent.java   
============================================================
======= RCS       
>>>>>>>>>>>>>>>
> file:
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
>
/cvs/sip-communicator/src/net/java/sip/communicator/service/
protocol/event/ChatRoomMemberRoleChangeEvent.java,v
retrieving revision          
>>>>>>>>>>>>>>>
> 1.1
>>>>>>>>>>>>>>>
> diff -u -r1.1 ChatRoomMemberRoleChangeEvent.java
>>>>>>>>>>>>>>>
> ---
>>>>>>>>>>>>>>>
>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberRoleChangeEvent.java 23 Apr 2007          
>>>>>>>>>>>>>>>
> 18:11:36
>>>>>>>>>>>>>>>
> -0000   1.1
>>>>>>>>>>>>>>>
> +++
>>>>>>>>>>>>>>>
>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberRoleChangeEvent.java 21 May 2007          
>>>>>>>>>>>>>>>
> 07:05:35
>>>>>>>>>>>>>>>
> -0000
>>>>>>>>>>>>>>>
>  -1,23 +1,94 
>>>>>>>>>>>>>>>
> +/*
>>>>>>>>>>>>>>>
> + * 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.*;
>>>>>>>>>>>>>>>
> +
>>>>>>>>>>>>>>>
> /**
>>>>>>>>>>>>>>>
> - * <p> </p>
>>>>>>>>>>>>>>>
> - *
>>>>>>>>>>>>>>>
> - * <p> </p>
>>>>>>>>>>>>>>>
> - *
>>>>>>>>>>>>>>>
> - * <p> </p>
>>>>>>>>>>>>>>>
> - *
>>>>>>>>>>>>>>>
> - * <p> </p>
>>>>>>>>>>>>>>>
> + * Dispatched to notify interested parties that a    

>>>>>>>>>>>>>>>
> change   in our role in
>>>>>>>>>>>>>>>
> the
>>>>>>>>>>>>>>>
> + * source room has changed. Changes may include us   
>>>>>>>>>>>>>>>
> being granted
>>>>>>>>>>>>>>>
> admin permissions,
>>>>>>>>>>>>>>>
> + * or other permissions.
>>>>>>>>>>>>>>>
> + *
>>>>>>>>>>>>>>>
> + * see ChatRoomMemberRole
>>>>>>>>>>>>>>>
> *
>>>>>>>>>>>>>>>
> * author Emil Ivov
>>>>>>>>>>>>>>>
> + * author Stéphane Remy
>>>>>>>>>>>>>>>
> */
>>>>>>>>>>>>>>>
> public class ChatRoomMemberRoleChangeEvent
>>>>>>>>>>>>>>>
> extends EventObject
>>>>>>>>>>>>>>>
> {
>>>>>>>>>>>>>>>
> -    public ChatRoomMemberRoleChangeEvent(Object
source)
>>>>>>>>>>>>>>>
> +    /**
>>>>>>>>>>>>>>>
> +     * The member that the event relates to.
>>>>>>>>>>>>>>>
> +     */
>>>>>>>>>>>>>>>
> +       private ChatRoomMember sourceMember = null;
>>>>>>>>>>>>>>>
> +
>>>>>>>>>>>>>>>
> +    /**
>>>>>>>>>>>>>>>
> +     * The previous role that this member had.
>>>>>>>>>>>>>>>
> +     */
>>>>>>>>>>>>>>>
> +       private ChatRoomMemberRole previousRole =
null;
>>>>>>>>>>>>>>>
> +
>>>>>>>>>>>>>>>
> +       /**
>>>>>>>>>>>>>>>
> +        * The new role that this member get.
>>>>>>>>>>>>>>>
> +        */
>>>>>>>>>>>>>>>
> +       private ChatRoomMemberRole newRole = null;
>>>>>>>>>>>>>>>
> +
>>>>>>>>>>>>>>>
> +    public ChatRoomMemberRoleChangeEvent(ChatRoom
sourceRoom,
>>>>>>>>>>>>>>>
> +
>>>>>>>>>>>>>>>
> ChatRoomMember sourceMember,
>>>>>>>>>>>>>>>
> +
>>>>>>>>>>>>>>>
> ChatRoomMemberRole previousRole,
>>>>>>>>>>>>>>>
> +
>>>>>>>>>>>>>>>
> ChatRoomMemberRole newRole)
>>>>>>>>>>>>>>>
> {
>>>>>>>>>>>>>>>
> -        super(source);
>>>>>>>>>>>>>>>
> +       super(sourceRoom);
>>>>>>>>>>>>>>>
> +       this.sourceMember = sourceMember;
>>>>>>>>>>>>>>>
> +       this.previousRole = previousRole;
>>>>>>>>>>>>>>>
> +       this.newRole = newRole;
>>>>>>>>>>>>>>>
> }
>>>>>>>>>>>>>>>
> +
>>>>>>>>>>>>>>>
> +    /**
>>>>>>>>>>>>>>>
> +     * Returns the new role given to this member.
>>>>>>>>>>>>>>>
> +     *
>>>>>>>>>>>>>>>
> +     * return newRole the new role given to this 
   
>>>>>>>>>>>>>>>
> member   for  this chat
>>>>>>>>>>>>>>>
> +     * room.
>>>>>>>>>>>>>>>
> +     */
>>>>>>>>>>>>>>>
> +    public ChatRoomMemberRole getNewRole()
>>>>>>>>>>>>>>>
> +    {
>>>>>>>>>>>>>>>
> +               return newRole;
>>>>>>>>>>>>>>>
> +       }
>>>>>>>>>>>>>>>
> +
>>>>>>>>>>>>>>>
> +    /**
>>>>>>>>>>>>>>>
> +     * Returns the previous role that this member had
in this
>>>>>>>>>>>>>>>
> +     * chat room.
>>>>>>>>>>>>>>>
> +     *
>>>>>>>>>>>>>>>
> +     * return previousRole the previous role that
this member
>>>>>>>>>>>>>>>
> +     * had in this chat room.
>>>>>>>>>>>>>>>
> +     */
>>>>>>>>>>>>>>>
> +    public ChatRoomMemberRole getPreviousRole()
>>>>>>>>>>>>>>>
> +    {
>>>>>>>>>>>>>>>
> +               return previousRole;
>>>>>>>>>>>>>>>
> +       }
>>>>>>>>>>>>>>>
> +
>>>>>>>>>>>>>>>
> +    /**
>>>>>>>>>>>>>>>
> +     * 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 getSourceChatRoom()
>>>>>>>>>>>>>>>
> +    {
>>>>>>>>>>>>>>>
> +        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 getSourceMember()
>>>>>>>>>>>>>>>
> +    {
>>>>>>>>>>>>>>>
> +               return sourceMember;
>>>>>>>>>>>>>>>
> +       }
>>>>>>>>>>>>>>>
> }
>>>>>>>>>>>>>>>
> Index:
>>>>>>>>>>>>>>>
>
src/net/java/sip/communicator/service/protocol/ChatRoomInvit
ation.java 
============================================================
======= RCS       
>>>>>>>>>>>>>>>
> file:
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
>
/cvs/sip-communicator/src/net/java/sip/communicator/service/
protocol/ChatRoomInvitation.java,v retrieving revision      
   
>>>>>>>>>>>>>>>
> 1.1
>>>>>>>>>>>>>>>
> diff -u -r1.1 ChatRoomInvitation.java
>>>>>>>>>>>>>>>
> ---
>>>>>>>>>>>>>>>
>
src/net/java/sip/communicator/service/protocol/ChatRoomInvit
ation.java         
>>>>>>>>>>>>>>>
> 22
>>>>>>>>>>>>>>>
> Feb
>>>>>>>>>>>>>>>
> 2007 12:35:34 -0000     1.1
>>>>>>>>>>>>>>>
> +++
>>>>>>>>>>>>>>>
>
src/net/java/sip/communicator/service/protocol/ChatRoomInvit
ation.java         
>>>>>>>>>>>>>>>
> 21
>>>>>>>>>>>>>>>
> May
>>>>>>>>>>>>>>>
> 2007 07:05:34 -0000
>>>>>>>>>>>>>>>
>  -7,13 +7,42 
>>>>>>>>>>>>>>>
> package net.java.sip.communicator.service.protocol;
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
> /**
>>>>>>>>>>>>>>>
> - * author Emil Ivov
>>>>>>>>>>>>>>>
> + * This interface representes an invitation, which is 

>>>>>>>>>>>>>>>
>    send from a
>>>>>>>>>>>>>>>
> chat room member
>>>>>>>>>>>>>>>
> + * to an other in order to invite this chat room   
>>>>>>>>>>>>>>>
> member   to join the
>>>>>>>>>>>>>>>
> chat room this invitation
>>>>>>>>>>>>>>>
> + * have for target.
>>>>>>>>>>>>>>>
> + *
>>>>>>>>>>>>>>>
> + * author Stéphane Remy
>>>>>>>>>>>>>>>
> */
>>>>>>>>>>>>>>>
> -public class ChatRoomInvitation
>>>>>>>>>>>>>>>
> +public interface ChatRoomInvitation
>>>>>>>>>>>>>>>
> {
>>>>>>>>>>>>>>>
> -    public ChatRoomInvitation()
>>>>>>>>>>>>>>>
> -    {
>>>>>>>>>>>>>>>
> -        super();
>>>>>>>>>>>>>>>
> -    }
>>>>>>>>>>>>>>>
> -
>>>>>>>>>>>>>>>
> +       /**
>>>>>>>>>>>>>>>
> +     * Returns the chat room target of this
invitation
>>>>>>>>>>>>>>>
> +     *
>>>>>>>>>>>>>>>
> +     * return the <tt>ChatRoom</tt>
target of this invitation
>>>>>>>>>>>>>>>
> +     */
>>>>>>>>>>>>>>>
> +       public ChatRoom getTarget();
>>>>>>>>>>>>>>>
> +
>>>>>>>>>>>>>>>
> +       /**
>>>>>>>>>>>>>>>
> +     * Returns the reason of this invitation, or null 

>>>>>>>>>>>>>>>
>    if   there is no
>>>>>>>>>>>>>>>
> reason
>>>>>>>>>>>>>>>
> +     *
>>>>>>>>>>>>>>>
> +     * return the reason of this invitation, or
null  
>>>>>>>>>>>>>>>
>    if   there is no
>>>>>>>>>>>>>>>
> reason
>>>>>>>>>>>>>>>
> +     */
>>>>>>>>>>>>>>>
> +    public String getReason();
>>>>>>>>>>>>>>>
> +
>>>>>>>>>>>>>>>
> +    /**
>>>>>>>>>>>>>>>
> +     * Returns the subject of this invitation or null
if the
>>>>>>>>>>>>>>>
> invitation contains no
>>>>>>>>>>>>>>>
> +     * subject.
>>>>>>>>>>>>>>>
> +     * return the subject of this invitation or
null if the
>>>>>>>>>>>>>>>
> invitation contains no
>>>>>>>>>>>>>>>
> +     * subject.
>>>>>>>>>>>>>>>
> +     */
>>>>>>>>>>>>>>>
> +    public String getSubject();
>>>>>>>>>>>>>>>
> +
>>>>>>>>>>>>>>>
> +       /**
>>>>>>>>>>>>>>>
> +     * Returns the protocol provider instance that   
>>>>>>>>>>>>>>>
> this  invitation
>>>>>>>>>>>>>>>
> has originated
>>>>>>>>>>>>>>>
> +     * in.
>>>>>>>>>>>>>>>
> +     *
>>>>>>>>>>>>>>>
> +     * return the
<tt>ProtocolProviderService</tt>    
>>>>>>>>>>>>>>>
>  instance that
>>>>>>>>>>>>>>>
> created this
>>>>>>>>>>>>>>>
> +     * invitation
>>>>>>>>>>>>>>>
> +     */
>>>>>>>>>>>>>>>
> +    public ProtocolProviderService
getProtocolProvider();
>>>>>>>>>>>>>>>
> }
>>>>>>>>>>>>>>>
> Index:
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
>
src/net/java/sip/communicator/service/protocol/InvitationRec
eivedEvent.java   
============================================================
======= RCS       
>>>>>>>>>>>>>>>
> file:
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
>
src/net/java/sip/communicator/service/protocol/InvitationRec
eivedEvent.java diff          
>>>>>>>>>>>>>>>
> -N
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
>
src/net/java/sip/communicator/service/protocol/InvitationRec
eivedEvent.java          
>>>>>>>>>>>>>>>
> ---
>>>>>>>>>>>>>>>
>
src/net/java/sip/communicator/service/protocol/InvitationRec
eivedEvent.java          
>>>>>>>>>>>>>>>
> 22
>>>>>>>>>>>>>>>
> Feb 2007 12:35:41 -0000 1.1
>>>>>>>>>>>>>>>
> +++ /dev/null   1 Jan 1970 00:00:00 -0000
>>>>>>>>>>>>>>>
>  -1,26 +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;
>>>>>>>>>>>>>>>
> -
>>>>>>>>>>>>>>>
> -/**
>>>>>>>>>>>>>>>
> - * Delivered when we receive an invitation for   
>>>>>>>>>>>>>>>
> joining   an   existing chat
>>>>>>>>>>>>>>>
> room.
>>>>>>>>>>>>>>>
> - * If the corresponding chat room requires a   
>>>>>>>>>>>>>>>
> password,    then it could be
>>>>>>>>>>>>>>>
> - * retreived by the getPassword() method. The method  

>>>>>>>>>>>>>>>
>    would   return null if
>>>>>>>>>>>>>>>
> no
>>>>>>>>>>>>>>>
> - * password is necessary to join the specified chat
room.
>>>>>>>>>>>>>>>
> - *
>>>>>>>>>>>>>>>
> - * author Emil Ivov
>>>>>>>>>>>>>>>
> - */
>>>>>>>>>>>>>>>
> -public class InvitationReceivedEvent
>>>>>>>>>>>>>>>
> -    extends java.util.EventObject
>>>>>>>>>>>>>>>
> -{
>>>>>>>>>>>>>>>
> -
>>>>>>>>>>>>>>>
> -    public      
>>>>>>>>>>>>>>>
> InvitationReceivedEvent(ProtocolProviderService       

>>>>>>>>>>>>>>>
> srcProvider,
>>>>>>>>>>>>>>>
> -                                   ChatRoom chatRoom)
>>>>>>>>>>>>>>>
> -    {
>>>>>>>>>>>>>>>
> -        super(srcProvider);
>>>>>>>>>>>>>>>
> -    }
>>>>>>>>>>>>>>>
> -}
>>>>>>>>>>>>>>>
> Index:     
>>>>>>>>>>>>>>>
>
src/net/java/sip/communicator/service/protocol/ChatRoom.java

>>>>>>>>>>>>>>>
>
============================================================
=======  RCS      
>>>>>>>>>>>>>>>
> file:
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
>
/cvs/sip-communicator/src/net/java/sip/communicator/service/
protocol/ChatRoom.java,v retrieving revision          
>>>>>>>>>>>>>>>
> 1.4
>>>>>>>>>>>>>>>
> diff -u -r1.4 ChatRoom.java
>>>>>>>>>>>>>>>
> ---         
>>>>>>>>>>>>>>>
>
src/net/java/sip/communicator/service/protocol/ChatRoom.java
   
>>>>>>>>>>>>>>>
>       24
>>>>>>>>>>>>>>>
> Apr 2007 12:31:25 -0000 1.4
>>>>>>>>>>>>>>>
> +++         
>>>>>>>>>>>>>>>
>
src/net/java/sip/communicator/service/protocol/ChatRoom.java
   
>>>>>>>>>>>>>>>
>       21
>>>>>>>>>>>>>>>
> May 2007 07:05:34 -0000
>>>>>>>>>>>>>>>
>  -17,7 +17,6 
>>>>>>>>>>>>>>>
> */
>>>>>>>>>>>>>>>
> public interface ChatRoom
>>>>>>>>>>>>>>>
> {
>>>>>>>>>>>>>>>
> -
>>>>>>>>>>>>>>>
> /**
>>>>>>>>>>>>>>>
> * Returns the name of this
<tt>ChatRoom</tt>.
>>>>>>>>>>>>>>>
> *
>>>>>>>>>>>>>>>
>  -95,25 +94,6 
>>>>>>>>>>>>>>>
> public void leave();
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
> /**
>>>>>>>>>>>>>>>
> -     * Adds <tt>listener</tt> to the list
of   
>>>>>>>>>>>>>>>
> listeners    registered to
>>>>>>>>>>>>>>>
> receive
>>>>>>>>>>>>>>>
> -     * events upon modification of chat room   
>>>>>>>>>>>>>>>
> properties   such as its
>>>>>>>>>>>>>>>
> subject
>>>>>>>>>>>>>>>
> -     * for example.
>>>>>>>>>>>>>>>
> -     *
>>>>>>>>>>>>>>>
> -     * param listener ChatRoomChangeListener
>>>>>>>>>>>>>>>
> -     */
>>>>>>>>>>>>>>>
> -    public void addChatRoomPropertyChangeListener(
>>>>>>>>>>>>>>>
> -                                        
>>>>>>>>>>>>>>>
> ChatRoomPropertyChangeListener
>>>>>>>>>>>>>>>
> listener);
>>>>>>>>>>>>>>>
> -
>>>>>>>>>>>>>>>
> -    /**
>>>>>>>>>>>>>>>
> -     * Removes <tt>listener</tt> from the
list of      
>>>>>>>>>>>>>>>
>  listeneres current
>>>>>>>>>>>>>>>
> registered
>>>>>>>>>>>>>>>
> -     * for chat room modification events.
>>>>>>>>>>>>>>>
> -     *
>>>>>>>>>>>>>>>
> -     * param listener the      
>>>>>>>>>>>>>>>
> <tt>ChatRoomChangeListener</tt>  to
remove.
>>>>>>>>>>>>>>>
> -     */
>>>>>>>>>>>>>>>
> -    public void removeChatRoomPropertyChangeListener(
>>>>>>>>>>>>>>>
> -                                        
>>>>>>>>>>>>>>>
> ChatRoomPropertyChangeListener
>>>>>>>>>>>>>>>
> listener);
>>>>>>>>>>>>>>>
> -
>>>>>>>>>>>>>>>
> -    /**
>>>>>>>>>>>>>>>
> * Returns the last known room subject/theme or       
>>>>>>>>>>>>>>>
> <tt>null</tt> if the
>>>>>>>>>>>>>>>
> user
>>>>>>>>>>>>>>>
> * hasn't joined the room or the room does not have a  

>>>>>>>>>>>>>>>
> subject yet.
>>>>>>>>>>>>>>>
> * <p>
>>>>>>>>>>>>>>>
>  -163,41 +143,88 
>>>>>>>>>>>>>>>
>  throws OperationFailedException;
>>>>>>>>>>>>>>>
>
>>>>>>>>>>>>>>>
> /**
>>>>>>>>>>>>>>>
> -    * Adds a listener that will be notified of   
>>>>>>>>>>>>>>>
> changes   in  our status
>>>>>>>>>>>>>>>
> in the room
>>>>>>>>>>>>>>>
> -    * such as us being kicked, banned, or granted   
>>>>>>>>>>>>>>>
> admin    permissions.
>>>>>>>>>>>>>>>
> +    * Adds a listener that will be notified of changes
in our
>>>>>>>>>>>>>>>
> participation in the room
>>>>>>>>>>>>>>>
> +    * such as us being kicked, join, left.
>>>>>>>>>>>>>>>
> *
>>>>>>>>>>>>>>>
> -    * param listener a local user status listener.
>>>>>>>>>>>>>>>
> +    * param listener a local user participation listener.
>>>>>>>>>>>>>>>
> */
>>>>>>>>>>>>>>>
> -    public void addLocalUserStatusListener(
>>>>>>>>>>>>>>>
> -                                         
>>>>>>>>>>>>>>>
> ChatRoomLocalUserStatusListener
>>>>>>>>>>>>>>>
> listener);
>>>>>>>>>>>>>>>
> +    public void addLocalUserParticipationListener(
>>>>>>>>>>>>>>>
> +
>>>&