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

📄 receivesystemmessageshell.java

📁 lumaQQ的源文件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
			case QQ.QQ_SYS_ADD_FRIEND_REQUEST:
			case QQ.QQ_SYS_ADD_FRIEND_REQUEST_EX:
				setSystemMessage(packet.from,
						packet.from,
						packet.message,
						false,
						false,
						true,
						true,
						true);
				break;
			case QQ.QQ_SYS_ADD_FRIEND_APPROVED:
			case QQ.QQ_SYS_ADD_FRIEND_REJECTED:
			case QQ.QQ_SYS_ADD_FRIEND_APPROVED_AND_ADD:
				setSystemMessage(packet.from,
						packet.from,
						packet.message,
						false,
						false,
						false,
						false,
						false);
				break;
		}
	}
	
	/**
	 * 设置要显示的系统消息
	 * 
	 * @param entry
	 * 		记录内容
	 */
	public void setSystemMessage(RecordEntry entry) {
		switch(entry.subType) {
			case IKeyConstants.SUB_BEING_ADDED:
			case IKeyConstants.SUB_BEING_ADDED_EX:
				setSystemMessage(entry.sender, 
						0,
						entry.message,
						false,
						false,
						false,
						false,
						true);
				break;
			case IKeyConstants.SUB_ADD_FRIEND_REQUEST:
			case IKeyConstants.SUB_ADD_FRIEND_REQUEST_EX:
				setSystemMessage(entry.sender,
						entry.sender,
						entry.message,
						false,
						false,
						true,
						true,
						true);
				break;
			case IKeyConstants.SUB_ADD_FRIEND_APPROVED:
			case IKeyConstants.SUB_ADD_FRIEND_REJECTED:
			case IKeyConstants.SUB_ADD_FRIEND_APPROVED_AND_ADD:
				setSystemMessage(entry.sender,
						0,
						entry.message,
						false,
						false,
						false,
						false,
						false);
				break;
			case IKeyConstants.SUB_ADDED_TO_CLUSTER:
			case IKeyConstants.SUB_CREATE_CLUSTER:
			case IKeyConstants.SUB_APPROVE_JOIN_CLUSTER:
			case IKeyConstants.SUB_REJECT_JOIN_CLUSTER:
			case IKeyConstants.SUB_CLUSTER_NOTIFICATION_SET_ADMIN:
			case IKeyConstants.SUB_CLUSTER_NOTIFICATION_UNSET_ADMIN:
				setSystemMessage(entry.sender,
						0,
						entry.message,
						true,
						false,
						false,
						false,
						false);
				break;
			case IKeyConstants.SUB_DELETED_FROM_CLUSTER:
				if(entry.receiver == main.getMyModel().qq) 
					setSystemMessage(entry.sender,
							0, 
							entry.message,
							true,
							false,
							false,
							false,
							false);
				else
					setSystemMessage(entry.senderParent,
							0,
							entry.message,
							false,
							false,
							false,
							false,
							false);
				break;
			case IKeyConstants.SUB_REQUEST_JOIN_CLUSTER:		
				setSystemMessage(entry.sender,
						entry.senderParent,
						entry.message,
						false,
						true,
						true,
						true,
						false);
				break;
		}
	}
	
	/**
	 * 设置系统消息参数
	 * 
	 * @param infoFrom
	 * 		应该查看谁的消息
	 * @param authTo
	 * 		验证消息应该发送给谁
	 * @param message
	 * 		消息的内容
	 * @param isCluster
	 * 		infoFrom是不是群
	 * @param isClusterAuth
	 * 		是不是群验证
	 * @param approveVisible
	 * 		通过验证按钮的可见性
	 * @param rejectVisible
	 * 		拒绝验证按钮的可见性
	 * @param addVisible
	 * 		添加好友按钮的可见性
	 */
	public void setSystemMessage(int infoFrom, 
			int authTo, 
			String message, 
			boolean isCluster,
			boolean isClusterAuth,
			boolean approveVisible,
			boolean rejectVisible,
			boolean addVisible) {
		setQQ(infoFrom, authTo, String.valueOf(infoFrom));
		if(isCluster) {
			Cluster c = ModelRegistry.getCluster(infoFrom);
			if(c == null || c.name.equals(""))
				setNick(String.valueOf(infoFrom));
			else
				setNick(c.name);
			if(c != null && c.externalId != 0)
				textQQ.setText(String.valueOf(c.externalId));
		} else {
			User u = ModelRegistry.getUser(infoFrom);
			if(u == null || u.displayName.equals(""))
				setNick(String.valueOf(infoFrom));
			else
				setNick(u.displayName);
		}
		this.isCluster = isCluster;
		this.isClusterAuth = isClusterAuth;
		btnApprove.setVisible(approveVisible);
		btnReject.setVisible(rejectVisible);
		btnAdd.setVisible(addVisible);
		textMsg.setText(message);
	}
	
	/**
	 * 设置QQ号
	 */
	public void setQQ(int infoQQ, int authQQ, String qq) {
		this.infoQQ = infoQQ;
		this.authQQ = authQQ;
		textQQ.setText(qq);
	}
	
	/**
	 * 设置昵称
	 * @param nick
	 */
	public void setNick(String nick) {
		textNick.setText(nick);
	}
	
	/**
	 * 关闭窗口
	 */
	public void close() {
		btnUserInfo.stopAnimate();
		shell.close();
	}

	/* (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_ADD_FRIEND_AUTH_SEND_SUCCESS:
				processAddFriendAuthSendSuccess(e);
				break;			
			case QQEvent.QQ_ADD_FRIEND_AUTH_SEND_FAIL:
				processAddFriendAuthSendFail(e);
				break;
			case QQEvent.QQ_AUTHORIZE_SEND_SUCCESS:
				processAuthorizeSendSuccess(e);
				break;
			case QQEvent.QQ_AUTHORIZE_SEND_FAIL:
				processAuthorizeSendFail(e);
				break;
			case QQEvent.QQ_ADD_FRIEND_SUCCESS:
			case QQEvent.QQ_ADD_FRIEND_ALREADY:
				processAddFriendSuccess(e);
				break;
			case QQEvent.QQ_ADD_FRIEND_NEED_AUTH:
				processAddFriendNeedAuth(e);
				break;
			case QQEvent.QQ_ADD_FRIEND_DENY:
				processAddFriendForbidden(e);
				break;
			case QQEvent.QQ_DELETE_FRIEND_SUCCESS:
			case QQEvent.QQ_DELETE_FRIEND_FAIL:
				processDeleteFriendSuccess(e);
				break;
			case QQEvent.QQ_JOIN_CLUSTER_AUTH_SEND_SUCCESS:
				processJoinClusterAuthSendSuccess(e);
				break;
			case QQEvent.QQ_JOIN_CLUSTER_AUTH_SEND_FAIL:
				processJoinClusterAuthSendFail(e);
				break;
			case QQEvent.QQ_OPERATION_TIMEOUT:
				if(e.operation == QQ.QQ_CMD_ADD_FRIEND_AUTH)
					processAddFriendAuthSendFail(e);
				else if(e.operation == QQ.QQ_CMD_DELETE_FRIEND)
					processDeleteFriendTimeout();
				else if(e.operation == QQ.QQ_CMD_CLUSTER_CMD)
					processClusterCommandTimeout(e);
				break;
		}
	}

	/**
	 * 处理认证消息发送失败事件
	 * 
	 * @param e
	 */
	private void processAuthorizeSendFail(QQEvent e) {
		AuthorizeReplyPacket packet = (AuthorizeReplyPacket)e.getSource();
		if(authQQ == packet.to) {
			main.getDisplay().syncExec(new Runnable() {
				public void run() {
					textMsg.setEditable(true);
					textMsg.setBackground(main.getDisplay().getSystemColor(SWT.COLOR_WHITE));							
					btnApprove.setEnabled(true);
					btnReject.setEnabled(true);
					btnAdd.setEnabled(true);
					lblHint.setText(receive_system_message_fail_label);
					textMsg.setText(receive_system_message_send_fail);
					btnUserInfo.stopAnimate();
				}				
			});			
		}
	}

	/**
	 * 处理认证消息发送成功事件
	 * 
	 * @param e
	 */
	private void processAuthorizeSendSuccess(QQEvent e) {
		AuthorizeReplyPacket packet = (AuthorizeReplyPacket)e.getSource();
		if(authQQ == packet.to) {
			main.getDisplay().syncExec(new Runnable() {
				public void run() {
					btnApprove.setEnabled(true);
					btnReject.setEnabled(true);
					btnAdd.setEnabled(true);
					lblHint.setText(receive_system_message_success_label);
					textMsg.setText(receive_system_message_submited);
					btnUserInfo.stopAnimate();
				}				
			});			
		}
	}

	/**
	 * 处理群操作超时事件
	 * @param e
	 */
	private void processClusterCommandTimeout(QQEvent e) {
		ClusterCommandPacket packet = (ClusterCommandPacket)e.getSource();
		if(packet.getSubCommand() == QQ.QQ_CLUSTER_CMD_JOIN_CLUSTER_AUTH)
			processJoinClusterAuthSendFail(e);
	}

	/**
	 * 处理群认证消息发送失败事件
	 * @param e
	 */
	private void processJoinClusterAuthSendFail(QQEvent e) {
		ClusterCommandReplyPacket packet = (ClusterCommandReplyPacket)e.getSource();
		if(authQQ == packet.clusterId) {
			main.getDisplay().syncExec(new Runnable() {
				public void run() {
					textMsg.setEditable(true);
					textMsg.setBackground(main.getDisplay().getSystemColor(SWT.COLOR_WHITE));							
					btnApprove.setEnabled(true);
					btnReject.setEnabled(true);
					lblHint.setText(receive_system_message_fail_label);
					textMsg.setText(receive_system_message_send_fail);
					btnUserInfo.stopAnimate();
				}				
			});			
		}
	}

	/**
	 * 处理群认证消息发送成功事件
	 * @param e
	 */
	private void processJoinClusterAuthSendSuccess(QQEvent e) {
		ClusterCommandReplyPacket packet = (ClusterCommandReplyPacket)e.getSource();
		if(authQQ == packet.clusterId) {
			main.getDisplay().syncExec(new Runnable() {
				public void run() {
					btnApprove.setVisible(false);
					btnReject.setVisible(false);
					lblHint.setText(receive_system_message_success_label);
					textMsg.setText(receive_system_message_submited);
					btnUserInfo.stopAnimate();
					// 请求得到群信息
					main.getClient().getClusterInfo(authQQ);
				}				
			});			
		}
	}

	/**
	 * 处理删除好友超时事件
	 */
	private void processDeleteFriendTimeout() {
		main.getDisplay().syncExec(new Runnable() {
			public void run() {
				textMsg.setText(receive_system_message_timeout);
			}
		});
	}

	/**
	 * 处理删除好友成功事件
	 * 
	 * @param e
	 */
	private void processDeleteFriendSuccess(QQEvent e) {
		main.getDisplay().syncExec(new Runnable() {
			public void run() {
				close();
			}
		});
	}

	/**
	 * 处理对方禁止添加好友事件
	 * 
	 * @param e
	 */
	private void processAddFriendForbidden(QQEvent e) {
		AddFriendExReplyPacket packet = (AddFriendExReplyPacket)e.getSource();
		if(authQQ == packet.friendQQ) {
			main.getDisplay().syncExec(new Runnable() {
				public void run() {
					textMsg.setText(receive_system_message_forbidden);
					btnUserInfo.stopAnimate();
				}					
			});
		}
	}

	/**
	 * 处理添加好友需要认证事件
	 * 
	 * @param e
	 */
	private void processAddFriendNeedAuth(QQEvent e) {
		AddFriendExReplyPacket packet = (AddFriendExReplyPacket)e.getSource();
		if(authQQ == packet.friendQQ) {
			main.getDisplay().syncExec(new Runnable() {
				public void run() {
					btnApprove.setEnabled(true);
					btnReject.setEnabled(true);
					btnAdd.setEnabled(true);
					btnAdd.setVisible(true);
					textMsg.setEditable(true);
					textMsg.setBackground(main.getDisplay().getSystemColor(SWT.COLOR_WHITE));
					textMsg.setText("");
					btnAdd.setEnabled(true);
					lblHint.setText(receive_system_message_auth_label);
					addSecondStep = true;
					rejectSecondStep = false;
					btnUserInfo.stopAnimate();
				}					
			});
		}
	}

	/**
	 * 处理添加好友成功事件
	 * 
	 * @param e
	 */
	private void processAddFriendSuccess(QQEvent e) {
		AddFriendExReplyPacket packet = (AddFriendExReplyPacket)e.getSource();
		if(authQQ == packet.friendQQ) {
			main.getDisplay().asyncExec(new Runnable() {
				public void run() {
					btnAdd.setVisible(false);
					textMsg.setText(receive_system_message_add_success);
					btnUserInfo.stopAnimate();
				}					
			});
		}
	}

	/**
	 * 处理认证消息发送失败事件
	 * 
	 * @param e
	 */
	private void processAddFriendAuthSendFail(QQEvent e) {
		AddFriendAuthResponsePacket packet = (AddFriendAuthResponsePacket)e.getSource();
		type = packet.getAction();
		if(authQQ == packet.getTo()) {
			main.getDisplay().syncExec(new Runnable() {
				public void run() {
					if(type == QQ.QQ_MY_AUTH_REQUEST || type == QQ.QQ_MY_AUTH_REJECT) {
						textMsg.setEditable(true);
						textMsg.setBackground(main.getDisplay().getSystemColor(SWT.COLOR_WHITE));							
					} 
					btnApprove.setEnabled(true);
					btnReject.setEnabled(true);
					btnAdd.setEnabled(true);
					lblHint.setText(receive_system_message_fail_label);
					textMsg.setText(receive_system_message_send_fail);
					btnUserInfo.stopAnimate();
				}				
			});			
		}
	}

	/**
	 * 处理认证消息送出成功事件
	 * 
	 * @param e
	 */
	private void processAddFriendAuthSendSuccess(QQEvent e) {
		AddFriendAuthResponsePacket packet = (AddFriendAuthResponsePacket)e.getSource();
		type = packet.getAction();
		if(authQQ == packet.getTo()) {
			main.getDisplay().syncExec(new Runnable() {
				public void run() {
					if(type == QQ.QQ_MY_AUTH_APPROVE || type == QQ.QQ_MY_AUTH_REJECT) {
						btnApprove.setVisible(false);
						btnReject.setVisible(false);
					}
					btnApprove.setEnabled(true);
					btnReject.setEnabled(true);
					btnAdd.setEnabled(true);
					lblHint.setText(receive_system_message_success_label);
					textMsg.setText(receive_system_message_submited);
					btnUserInfo.stopAnimate();
				}				
			});			
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -