📄 msnmessenger.java
字号:
* @param friend MsnFriend 好友帐户
* @param oldIndex int 老原分组序号
* @param newIndex int 新分组序号
* @throws IOException
*/
public void moveGroupAsFriend(MsnFriend friend, int oldIndex, int newIndex) throws
IOException {
ns.requestMoveGroup(friend, oldIndex, newIndex);
}
/**
*
* @param loginName String
* @throws IOException
* @throws InterruptedException
* @return SwitchboardSession
*/
public SwitchboardSession doCallWait(String loginName) throws IOException,
InterruptedException {
return ns.doCallFriendWait(loginName);
}
/**
*
* @param loginName String
* @return SwitchboardSession
*/
public SwitchboardSession findSwitchboardSession(String loginName) {
Enumeration e = sessionMap.elements();
while (e.hasMoreElements()) {
SwitchboardSession ss = (SwitchboardSession) e.nextElement();
if (ss.isInFriend(loginName))
return ss;
}
return null;
}
/**
*
* @param loginName String
* @return SwitchboardSession
*/
public SwitchboardSession findSwitchboardSessionAt(String loginName) {
Enumeration e = sessionMap.elements();
while (e.hasMoreElements()) {
SwitchboardSession ss = (SwitchboardSession) e.nextElement();
if (ss.getFriendCount() == 1 && ss.isInFriend(loginName))
return ss;
}
return null;
}
/**
* 向好友发送信息
* @param loginName String 好友帐户
* @param msg MimeMessage Mime格式信息
* @throws IOException
* @return boolean 是否可发送
*/
public boolean sendMessage(String loginName, MimeMessage msg) throws
IOException {
SwitchboardSession ss = findSwitchboardSession(loginName);
if (ss != null) {
ss.sendMessage(msg);
return true;
}
return false;
}
/**
* 通过指定Switchboard服务器id,发送消息.如果未找到指定id,用sendMessage(String loginName, MimeMessage msg)发送
* @param loginName String
* @param msg MimeMessage
* @param sessionId String
* @throws IOException
* @return boolean
*/
public boolean sendMessage(String loginName, MimeMessage msg,
String sessionId) throws IOException {
SwitchboardSession ss = (SwitchboardSession) sessionMap.get(sessionId);
if (ss == null) {
return sendMessage(loginName, msg);
}
ss.sendMessage(msg);
return true;
}
/**
* 指定Switchboard,发送消息
* @param msg MimeMessage
* @param session SwitchboardSession
* @throws IOException
* @return boolean
*/
public boolean sendMessage(MimeMessage msg, SwitchboardSession session) throws
IOException {
if (session != null) {
session.sendMessage(msg);
return true;
}
return false;
}
///////////////一下为事件分发函数//////////////////
public void fireInstantMessageEvent(SwitchboardSession ss, MsnFriend friend,
MimeMessage mime) {
base.instantMessageReceived(ss, friend, mime);
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).instantMessageReceived(ss, friend,
mime);
}
public void fireJoinSessionEvent(SwitchboardSession ss, MsnFriend friend) {
base.whoJoinSession(ss, friend);
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).whoJoinSession(ss, friend);
}
public void fireListOnlineEvent(MsnFriend friend) {
base.listOnline(friend);
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).listOnline(friend);
}
public void fireLoginCompleteEvent(MsnFriend own) {
base.loginComplete(own);
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).loginComplete(own);
}
public void firePartSessionEvent(SwitchboardSession ss, MsnFriend friend) {
base.whoPartSession(ss, friend);
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).whoPartSession(ss, friend);
}
public void fireProgressTypingEvent(SwitchboardSession ss, MsnFriend friend,
String typeuser) {
base.progressTyping(ss, friend, typeuser);
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).progressTyping(ss, friend,
typeuser);
}
public void fireSwitchboardSessionStartedEvent(SwitchboardSession ss) {
base.switchboardSessionStarted(ss);
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).switchboardSessionStarted(ss);
}
public void fireSwitchboardSessionEndedEvent(SwitchboardSession ss) {
base.switchboardSessionEnded(ss);
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).switchboardSessionEnded(ss);
}
public void fireSwitchboardSessionAbandonEvent(SwitchboardSession ss,
String targetName) {
base.switchboardSessionAbandon(ss, targetName);
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).switchboardSessionAbandon(ss,
targetName);
}
public void fireUserOnlineEvent(MsnFriend friend) {
System.out.println("fireUserOnlineEvent :" + friend.getLoginName());
base.userOnline(friend);
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).userOnline(friend);
}
public void fireUserOfflineEvent(String loginName) {
base.userOffline(loginName);
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).userOffline(loginName);
}
public void fireWhoAddedMeEvent(MsnFriend friend) {
base.whoAddedMe(friend);
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).whoAddedMe(friend);
}
public void fireWhoRemovedMeEvent(MsnFriend friend) {
base.whoRemovedMe(friend);
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).whoRemovedMe(friend);
}
public void fireBuddyListModifiedEvent() {
base.buddyListModified();
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).buddyListModified();
}
public void fireAddFailedEvent(int errcode) {
base.addFailed(errcode);
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).addFailed(errcode);
}
public void fireLoginErrorEvent(String header) {
base.loginError(header);
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).loginError(header);
}
public void fireRenameNotifyEvent(MsnFriend friend) {
base.renameNotify(friend);
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).renameNotify(friend);
}
public void fireAllListUpdatedEvent() {
base.allListUpdated();
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).allListUpdated();
}
public void fireLogoutNotifyEvent() {
base.logoutNotify();
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).logoutNotify();
}
public void fireNotifyUnreadMail(Hashtable mime, int unread) {
base.notifyUnreadMail(mime, unread);
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).notifyUnreadMail(mime, unread);
}
public void fireConnectFailEvent(short errCode, boolean isNotify) {
base.connectError(errCode, isNotify);
for (int i = listeners.size() - 1; i >= 0; i--)
( (MsnListener) listeners.elementAt(i)).connectError(errCode, isNotify);
}
//
// public void fireFileSendStartedEvent( VolatileTransferServer server )
// {
// base.fileSendStarted(server);
// for(int i=listeners.size()-1; i>=0; i--)
// ((MsnListener)listeners.get(i)).fileSendStarted(server);
// }
//
// public void fireFileSendEndedEvent( VolatileTransferServer server )
// {
// base.fileSendEnded(server);
// for(int i=listeners.size()-1; i>=0; i--)
// ((MsnListener)listeners.get(i)).fileSendEnded(server);
// }
//
// public void fireFileReceiveStartedEvent( VolatileDownloader down )
// {
// base.fileReceiveStarted(down);
// for(int i=listeners.size()-1; i>=0; i--)
// ((MsnListener)listeners.get(i)).fileReceiveStarted(down);
// }
//
// public void fireFileSendErrorEvent( VolatileTransferServer server, Throwable e )
// {
// base.fileSendError(server, e);
// for(int i=listeners.size()-1; i>=0; i--)
// ((MsnListener)listeners.get(i)).fileSendError(server, e);
// }
//
// public void fireFileReceiveErrorEvent( VolatileDownloader down, Throwable e )
// {
// base.fileReceiveError(down, e);
// for(int i=listeners.size()-1; i>=0; i--)
// ((MsnListener)listeners.get(i)).fileReceiveError(down, e);
// }
// public void fireFilePostedEvent(SwitchboardSession ss, int cookie,
// String filename,
// int filesize) {
// base.filePosted(ss, cookie, filename, filesize);
// for (int i = listeners.size() - 1; i >= 0; i--)
// ( (MsnListener) listeners.elementAt(i)).filePosted(ss, cookie, filename,
// filesize);
// }
//
// public void fireFileSendAcceptedEvent(SwitchboardSession ss, int cookie) {
// base.fileSendAccepted(ss, cookie);
// for (int i = listeners.size() - 1; i >= 0; i--)
// ( (MsnListener) listeners.elementAt(i)).fileSendAccepted(ss, cookie);
// }
//
// public void fireFileSendRejectedEvent(SwitchboardSession ss, int cookie,
// String reason) {
// base.fileSendRejected(ss, cookie, reason);
// for (int i = listeners.size() - 1; i >= 0; i--)
// ( (MsnListener) listeners.elementAt(i)).fileSendRejected(ss, cookie,
// reason);
// }
// /**
// * ??? sessionId ????8?? ????; ?????? '?? loginName????
// * ????; ????? ????? ??????.
// *
// */
// public void sendFileRequest( String loginName, File file, String sessionId )
// throws IOException
// {
// if( sessionId==null )
// throw new IllegalArgumentException( "session id must not be null" );
//
// sendFileRequest( loginName, file, (SwitchboardSession)sessionMap.get(sessionId) );
// }
// /**
// * ??? sessionId ????8?? ????; ?????? '?? loginName????
// * ????; ????? ????? ??????.
// *
// */
// public void sendFileRequest( String loginName, File file, SwitchboardSession session )
// throws IOException
// {
// if( session==null )
// throw new IllegalArgumentException( "session must not be null" );
//
// FileTransferMessage msg = FileTransferMessage.createInviteMessage(file);
// ToSendFile toSend = new ToSendFile( msg.getProperty("Invitation-Cookie"), loginName, file );
// session.sendFileRequest( toSend, msg );
// }
/////////////////////////////////////////////////////////////////////
private class Listener
extends MsnAdapter {
public void renameNotify(MsnFriend own) {
if (own != null && owner.getLoginName().equals(own.getLoginName()))
owner.setFriendlyName(own.getFriendlyName());
}
public void loginComplete(MsnFriend own) {
isLogged = true;
owner = own;
}
public void listOnline(MsnFriend friend) {
forwardList.add(friend);
}
public void userOnline(MsnFriend friend) {
forwardList.add(friend);
// onlineList.add(friend);
}
public void userOffline(String loginName) {
forwardList.setOffline(loginName);
// onlineList.setOffline(loginName);
}
public void switchboardSessionStarted(SwitchboardSession ss) {
String sid = ss.getSessionId();
if (sid == null)
return;
sessionMap.put(sid, ss);
/* ?????? ???????? ?????? ???? ???°?: ??? ????. */
}
public void switchboardSessionEnded(SwitchboardSession ss) {
String sid = ss.getSessionId();
sessionMap.remove(sid);
}
public void whoAddedMe(MsnFriend friend) {
System.out.println(friend + " Add me.");
}
public void whoRemovedMe(MsnFriend friend) {
System.out.println(friend.getLoginName() + " remove me.");
}
public void connectError(short errCode, boolean isNotify) {
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -