📄 userinfowindow.java
字号:
* 设置好友model
*
* @param model
* FriendModel对象
*/
public void setFriendModel(User model) {
if(this.model != model)
this.model.infoCopy(model);
refreshPageModels(model);
refreshPageValues();
}
/**
* 设置QQ秀
*
* @param showImage
*/
public void setQQShow(Image showImage) {
((QQShowPage)getPage(QQ_SHOW)).setQQShow(showImage);
}
/* (non-Javadoc)
* @see edu.tsinghua.lumaqq.qq.events.QQListener#qqEvent(edu.tsinghua.lumaqq.qq.events.QQEvent)
*/
public void qqEvent(QQEvent e) {
switch(e.type) {
case QQEvent.QQ_UPLOAD_FRIEND_REMARK_SUCCESS:
processUploadFriendRemarkSuccess(e);
break;
case QQEvent.QQ_MODIFY_INFO_SUCCESS:
processModifyInfoSuccess(e);
break;
case QQEvent.QQ_DOWNLOAD_FRIEND_REMARK_SUCCESS:
processDownloadFriendRemarkSuccess(e);
break;
case QQEvent.QQ_MODIFY_CARD_SUCCESS:
processModifyCardSuccess(e);
break;
case QQEvent.QQ_GET_CARD_SUCCESS:
processGetCardSuccess(e);
break;
case QQEvent.QQ_MODIFY_SIGNATURE_SUCCESS:
case QQEvent.QQ_DELETE_SIGNATURE_SUCCESS:
processSignatureOpSuccess(e);
break;
case QQEvent.QQ_OPERATION_TIMEOUT:
switch(e.operation) {
case QQ.QQ_CMD_FRIEND_DATA_OP:
processFriendRemarkOpTimeout(e);
break;
}
break;
}
}
/**
* 处理修改个性签名成功事件
*
* @param e
*/
private void processSignatureOpSuccess(QQEvent e) {
SignatureOpReplyPacket packet = (SignatureOpReplyPacket)e.getSource();
if(packet.getSequence() == sigSequence) {
sigModified = true;
if(infoModified) {
main.getDisplay().syncExec(new Runnable() {
public void run() {
MessageDialog.openInformation(parentShell, message_box_success_modify_info_title, success_modify_info);
close();
}
});
}
}
}
/**
* 处理得到群名片成功事件
*
* @param e
*/
private void processGetCardSuccess(QQEvent e) {
ClusterCommandReplyPacket packet = (ClusterCommandReplyPacket)e.getSource();
if(packet.memberQQ == model.qq) {
model.cardName = packet.card.name;
model.cardEmail = packet.card.email;
model.cardPhone = packet.card.phone;
model.cardRemark = packet.card.remark;
model.cardGenderIndex = packet.card.genderIndex;
main.getDisplay().syncExec(new Runnable() {
public void run() {
setFriendModel(model);
}
});
}
}
/**
* 处理修改群名片成功事件
*
* @param e
*/
private void processModifyCardSuccess(QQEvent e) {
if(cmcp == null || isReadOnly())
return;
ClusterCommandReplyPacket reply = (ClusterCommandReplyPacket)e.getSource();
if(reply.getSequence() == cmcp.getSequence()) {
main.getDisplay().syncExec(new Runnable() {
public void run() {
setOKButtonEnabled(true);
Card card = cmcp.getCard();
model.cardName = card.name;
model.cardEmail = card.email;
model.cardPhone = card.phone;
model.cardRemark = card.remark;
model.cardGenderIndex = card.genderIndex;
model.displayName = model.cardName;
cmcp = null;
main.getBlindHelper().refreshModel(model);
MessageDialog.openInformation(shell, message_box_common_success_title, NLS.bind(message_box_card_modified, model.cluster.name));
}
});
}
}
/**
* 处理上传好友备注信息成功事件
*
* @param e
*/
private void processUploadFriendRemarkSuccess(QQEvent e) {
FriendDataOpPacket packet = (FriendDataOpPacket)e.getSource();
if(packet.getQQ() == model.qq) {
main.getDisplay().syncExec(new Runnable() {
public void run() {
RemarkPage page = (RemarkPage)getPage(REMARK);
page.setUploadRemarkEnable(true);
MessageDialog.openInformation(shell, message_box_common_success_title, message_box_upload_remark_success);
}
});
}
}
/**
* 处理备注操作超时事件
*
* @param e
*/
private void processFriendRemarkOpTimeout(QQEvent e) {
final FriendDataOpPacket packet = (FriendDataOpPacket)e.getSource();
if(packet.getQQ() == model.qq) {
main.getDisplay().asyncExec(new Runnable() {
public void run() {
if(packet.getSubCommand() == QQ.QQ_SUB_CMD_DOWNLOAD_FRIEND_REMARK)
((RemarkPage)getPage(REMARK)).setDownloadRemarkEnable(true);
MessageDialog.openError(shell, message_box_common_fail_title, message_box_common_timeout);
}
});
}
}
/**
* 处理更新用户信息成功事件,更新信息肯定是自己,因为只有自己能更新自己的
*/
private void processModifyInfoSuccess(QQEvent e) {
if(mip == null || isReadOnly())
return;
if(mip.getSequence() == ((ModifyInfoPacket)e.getSource()).getSequence()) {
main.getDisplay().syncExec(new Runnable() {
public void run() {
// 刷新自己的信息
ContactInfo info = mip.getContactInfo();
User me = main.getMyModel();
me.info = info;
me.headId = getFaceId();
me.nick = info.nick;
me.displayName = me.nick;
// 保存新密码,关闭资料窗口
saveNewPassword();
infoModified = true;
if(!modifySignature || modifySignature && sigModified) {
MessageDialog.openInformation(parentShell, message_box_success_modify_info_title, success_modify_info);
close();
}
}
});
}
}
/**
* 处理下载好友备注信息成功事件
*
* @param e
*/
private void processDownloadFriendRemarkSuccess(QQEvent e) {
if(isEditable())
return;
FriendDataOpReplyPacket packet = (FriendDataOpReplyPacket)e.getSource();
if(packet.hasRemark) {
if(packet.qqNum == model.qq) {
// 把下载到的信息保存到xml
final Remark remark = createRemarkElement(packet.remark);
((RemarkPage)getPage(REMARK)).saveToXML(remark);
// 设置下载按钮为enable
main.getDisplay().syncExec(new Runnable() {
public void run() {
((RemarkPage)getPage(REMARK)).setDownloadRemarkEnable(true);
// 设置各文本框内容
((RemarkPage)getPage(REMARK)).setRemarkInfo(remark);
}
});
}
} else {
// 好友没有备注,把按钮使能
main.getDisplay().syncExec(new Runnable() {
public void run() {
((RemarkPage)getPage(REMARK)).setDownloadRemarkEnable(true);
}
});
}
}
/**
* 从FriendRemark中创建Remark对象
* @param fr
* @return
*/
private Remark createRemarkElement(FriendRemark fr) {
Remark remark = RemarkFactory.eINSTANCE.createRemark();
remark.setName(fr.name.trim());
remark.setZipcode(fr.zipcode);
remark.setTelephone(fr.telephone);
remark.setMobile(fr.mobile);
remark.setEmail(fr.email);
remark.setAddress(fr.address);
remark.setNote(fr.note);
remark.setQq(model.qq);
return remark;
}
/**
* @return
* 头像ID
*/
private int getFaceId() {
return ((PersonalPage)getPage(PERSONAL_INFO)).getHeadId();
}
/**
* 如果用户修改了密码,且用户选择了记住密码,则把新密码保存到logins.xml中
*/
public void saveNewPassword() {
if(mip.getOldPassword() == null)
return;
// 读入登陆信息文件
File loginHistory = new File(LumaQQ.LOGIN_HISTORY);
Logins logins = LoginUtil.load(loginHistory);
if(logins == null)
return;
// 得到自己的Login对象
Login login = LoginUtil.findLogin(logins, String.valueOf(main.getMyModel().qq));
if(login == null)
return;
// 检查是否设置了记住密码
if(!login.isRememberPassword())
return;
// 保存新密码
login.setPassword(new String(new Base64().encode(md5(md5(mip.getNewPassword().getBytes())))));
// 写入文件
LoginUtil.save(loginHistory, logins);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -