/* * ChatMember.java * * Created on 31 January 2001, 01:39 */ package senseiTests.chat.rmi; import java.rmi.RemoteException; import sensei.gms.ActiveGroupMember; import sensei.middleware.gms.GroupHandler; import sensei.middleware.gms.Message; import sensei.middleware.gms.SenseiGMSMember; import sensei.middleware.gms.View; /** * * @author Administrator * @version */ public class ChatMember extends sensei.middleware.gms.GroupMemberImpl { /** Creates new ChatMember */ public ChatMember() throws Exception { handler=null; gui = new ChatFrame(this); } public SenseiGMSMember connect(SenseiGMSMember toJoin) { SenseiGMSMember created=null; try { created=new ActiveGroupMember(this); boolean ok= (toJoin==null)? created.createGroup() : created.joinGroup(toJoin); if (!ok) gui.error("Error creating / joining group"); } catch(Exception ex){gui.error(ex.getMessage());} return created; } /** * The member is excluded from the group, because it has requested it or because * it's considered to be faulty. */ public void excludedFromGroup() { gui.error("Member excluded from the group"); } public void changingView() { } /** * The member receives a new view, including the list of members * @param message The message to process */ public void installView(View view) throws RemoteException { } /** * The member is accepted in the group, and receives the first view and its identity * It receives as well the GroupHandler to use for communications */ public void memberAccepted(int identity,GroupHandler handler,View view) { this.handler=handler; gui.enableMessages(true); } /** * The member receives a group message to be processed * @param message The message to process */ public void processCastMessage(int sender,Message message) { ChatMessage msg = (ChatMessage) message; gui.addChatMessage(msg.getChatMessage()); } /** * The member receives a point to point message to be processed * @param message The message to process */ public void processPTPMessage(int sender,Message message) { } /** * Called by the ChatFrame instance when the Send button is pressed **/ public void ownMessage(java.lang.String message) { try {handler.castMessage(new ChatMessage(message));} catch(Exception ex){gui.error(ex.getMessage());} } /** * Called by the ChatFrame instance when closing the frame **/ public void exiting() { try {handler.leaveGroup();} catch(Exception ex){gui.error(ex.getMessage());} } ChatFrame gui; GroupHandler handler; }