⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userinfowindow.java

📁 lumaQQ的源文件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     * 设置好友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 + -