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

📄 menuhelper.java

📁 lumaQQ的源文件
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
					miSwitchMode.setImage(res.getImage(Resources.icoTraditionalMode));
				} else {
					miSwitchMode.setText(menu_group_tree_mode);
					miSwitchMode.setImage(res.getImage(Resources.icoTreeMode));
				}
				// 得到当前组的model
				Group g = (Group)groupMenu.getData();
				// 设置名称显示子菜单的使能状态和选择状态
				// 显示昵称还是显示备注的选择状态
				if(options.isShowNick()) {
					miShowNick.setSelected(true);
					miShowRemark.setSelected(false);
				} else {
					miShowNick.setSelected(false);
					miShowRemark.setSelected(true);
				}						
				// 设置群操作菜单的使能性
				miCluster.setEnabled(g.isCluster());			
				// 设置用户提示菜单
				if(main.getOptionHelper().isShowFriendTip()) {
					miSwitchFriendTip.setImage(res.getImage(Resources.icoDisableFriendTip));
					miSwitchFriendTip.setText(menu_group_disable_user_tip);
				} else {
					miSwitchFriendTip.setImage(res.getImage(Resources.icoEnableFriendTip));
					miSwitchFriendTip.setText(menu_group_enable_user_tip);
				}
				// 设置只显示在线用户还是显示所有用户菜单的文字标签
				miShowOnlineOnly.setText(options.isShowOnlineOnly() ? menu_group_showall : menu_group_showonlineonly);
				// 设置组改名组删除菜单的使能性				
				if(g.isFriendly() && !g.isDefaultFriend()) {
					miRename.setEnabled(true);
					miDelete.setEnabled(true);
				} else {
					miRename.setEnabled(false);
					miDelete.setEnabled(false);		
				}
				// 设置黑名单操作项的使能性
				miAddBadGuy.setEnabled(g.isBlackList());
				// 设置隐藏显示黑名单的图标和文字
				if(options.isShowBlacklist()) {
					miSwitchBlacklist.setText(menu_group_hideblacklist);
					miSwitchBlacklist.setImage(res.getImage(Resources.icoHideBlackList));
				} else {
					miSwitchBlacklist.setText(menu_group_showblacklist);
					miSwitchBlacklist.setImage(res.getImage(Resources.icoShowBlackList));						
				}
			}
		});
	}	

	/**
	 * 初始化在好友上点右键出现的菜单
	 */
	private void initFriendMenu() {
		friendMenu = new CMenu();
		// 收发消息
		CMenuItem mi = new CMenuItem(friendMenu, SWT.PUSH);
		mi.setText(menu_friend_sendreceive);
		mi.setImage(res.getImage(Resources.icoSendReceiveMessage));
		mi.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				// 得到当前选择用户的view part,打开消息窗口
			    shellLauncher.openNormalIMWindow((User)friendMenu.getData());
			}
		});
		// 发送短信
		mi = new CMenuItem(friendMenu, SWT.PUSH);
		mi.setText(menu_friend_sendsms);
		mi.setImage(res.getImage(Resources.icoMobile));
		mi.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				User f = (User)friendMenu.getData();
				SMSWindow window = shellLauncher.openSMSWindow(f);
				window.setReceiver(String.valueOf(f.qq));
			}
		});
		// 临时会话
		mi = new CMenuItem(friendMenu, SWT.PUSH);
		mi.setImage(res.getImage(Resources.icoTempSessionIM));
		mi.setText(menu_friend_temp_session);
		mi.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				User u = (User)friendMenu.getData();
				shellLauncher.openTempSessionIMWindow(u.qq);
			}
		});
		// separator
		mi = new CMenuItem(friendMenu, SWT.SEPARATOR);
		// 查看资料
		mi = new CMenuItem(friendMenu, SWT.PUSH);
		mi.setText(menu_friend_viewinfo);
		mi.setImage(res.getImage(Resources.icoPersonInfo));
		mi.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				// 得到当前选择用户的view part,打开资料窗口
				shellLauncher.openUserInfoWindow((User)friendMenu.getData(), UserInfoWindow.READ_ONLY);
			}
		});
		// 消息管理菜单
		mi = new CMenuItem(friendMenu, SWT.CASCADE);
		mi.setText(menu_friend_message_manage);
		mi.setImage(res.getImage(Resources.icoMessageManage));
		CMenu msgMenu = new CMenu(mi);
		// 导出为文本文件菜单
		mi = new CMenuItem(msgMenu, SWT.PUSH);
		mi.setText(menu_friend_message_export);
		mi.setImage(res.getImage(Resources.icoTxtFile));
		mi.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				// 得到好友的model
				User f = (User)friendMenu.getData();
				// 导出
				exportHelper.exportMessage(f);
			}
		});
		// separator
		mi = new CMenuItem(friendMenu, SWT.SEPARATOR);
		// 显示大/小头像
		final CMenuItem miSwitchHead = new CMenuItem(friendMenu, SWT.PUSH);
		miSwitchHead.setText(menu_friend_showsmall);
		miSwitchHead.setImage(res.getImage(Resources.icoSmallHead));
		miSwitchHead.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				boolean b = options.isShowSmallHead();
				blindHelper.setShowSmallHead(!b);
				options.setShowSmallHead(!b);
			}
		});
		// 添加组
		mi = new CMenuItem(friendMenu, SWT.PUSH);
		mi.setText(menu_friend_addgroup);
		mi.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				blindHelper.addGroup();
			}
		});
		// separator
		mi = new CMenuItem(friendMenu, SWT.SEPARATOR);
		// 只显示在线好友
		final CMenuItem miShowOnlineOnly = new CMenuItem(friendMenu, SWT.PUSH);
		miShowOnlineOnly.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				boolean b = options.isShowOnlineOnly();
				blindHelper.setShowOnlineOnly(!b);
				options.setShowOnlineOnly(!b);
				blindHelper.refreshAll();
			}
		});
		// separator
		mi = new CMenuItem(friendMenu, SWT.SEPARATOR);
		// 从该组删除
		mi = new CMenuItem(friendMenu, SWT.PUSH);
		mi.setText(menu_friend_delfriend);
		mi.setImage(res.getImage(Resources.icoDelFriend));
		mi.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				User f = (User)friendMenu.getData();					
				// 检查要删除的这个好友是否在一个好友组中,如果是,需要从服务器删除,如果不是
				// 直接删除即可
				if(!f.isInFriendGroup()) {
					blindHelper.simpleMove(f, f.group, null);		
				} else {
					MessageBox box = new MessageBox(shell, SWT.ICON_QUESTION | SWT.YES | SWT.NO);
					box.setText(message_box_common_question_title);
					box.setMessage(NLS.bind(hint_delete_friend, f.displayName));
					if(box.open() == SWT.YES) {
					    shellLauncher.openDeleteReceiveSystemMessageShell(f);
					    main.deleteFriend(f, false, false);
					}
				}
			}
		});
		// 改名
		final CMenuItem miRename = new CMenuItem(friendMenu, SWT.PUSH);
		miRename.setText(menu_friend_rename);
		miRename.setImage(res.getImage(Resources.icoRename));
		miRename.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				User f = (User)friendMenu.getData();
				blindHelper.getViewer(f).editText(f);
			}
		});
		// 置顶
		final CMenuItem miPin = new CMenuItem(friendMenu, SWT.PUSH);
		miPin.setImage(res.getImage(Resources.icoPin));
		miPin.addSelectionListener(new ISelectionListener() {
			
			public void widgetSelected(SelectionEvent e) {
				User f = (User)friendMenu.getData();
				f.pinned = !f.pinned;
				blindHelper.refreshGroup(f.group);
			}
		});
		// 添加事件监听器,因为需要判断当前显示的是小头像还是大头像,从而使相应的菜单disable
		friendMenu.addMenuListener(new IMenuListener() {
			public void menuShown(MenuEvent e) {
				// 显示什么头像的菜单
				if(options.isShowSmallHead()) {
					miSwitchHead.setText(menu_friend_showlarge);
					miSwitchHead.setImage(res.getImage(Resources.icoLargeHead));
				} else {
					miSwitchHead.setText(menu_friend_showsmall);
					miSwitchHead.setImage(res.getImage(Resources.icoSmallHead));				
				}
				// 显示在线用户还是全部用户的选项
				if(options.isShowOnlineOnly())
					miShowOnlineOnly.setText(menu_friend_showall);
				else
					miShowOnlineOnly.setText(menu_friend_showonlineonly);
				// 改名
				User f = (User)friendMenu.getData();
				miRename.setEnabled(!f.group.isBlackList());
				// 置顶
				miPin.setText(f.pinned ? menu_friend_unpin : menu_friend_pin);
			}
		});
	}

	/**
	 * 初始化系统菜单
	 */
	private void initSysMenu() {
		// 系统弹出菜单
		sysMenu = new CMenu();
		// 分组管理菜单
		final CMenuItem miGroupManage = new CMenuItem(sysMenu, SWT.CASCADE);
		miGroupManage.setText(menu_sys_group);
		miGroupManage.setImage(res.getImage(Resources.icoGroup));
		CMenu groupManageMenu = new CMenu(miGroupManage);
		// 上传分组
		CMenuItem sub = new CMenuItem(groupManageMenu, SWT.PUSH);
		sub.setText(menu_sys_group_upload);
		sub.setImage(res.getImage(Resources.icoUploadGroup));
		sub.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				// 检查是否已经登陆,没有则返回
				if(!client.getUser().isLoggedIn()) return;
				IExecutor executor = new DialogJobExecutor(main);
			    executor.addJob(new UploadGroupJob());
			    executor.execute();
			}
		});
		// 下载分组
		sub = new CMenuItem(groupManageMenu, SWT.PUSH);
		sub.setText(menu_sys_group_download);
		sub.setImage(res.getImage(Resources.icoDownloadGroup));
		sub.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				if(client.getUser().isLoggedIn()) {
					main.getMessageQueue().setPostpone(true);
					blindHelper.stopAllEffectOnBlind();			
					IExecutor executor = new DialogJobExecutor(main);
				    executor.addJob(new DownloadGroupJob());
				    executor.execute();		
					blindHelper.resetAllImageEffect();
					main.getMessageQueue().setPostpone(false);
					main.getMessageHelper().processPostponedIM();
				}
			}
		});
		// 好友与资料
		final CMenuItem miFriend = new CMenuItem(sysMenu, SWT.CASCADE);
		miFriend.setText(menu_sys_friend);
		miFriend.setImage(res.getImage(Resources.icoFriendInfoManage));
		CMenu infoMenu = new CMenu(miFriend);
		// 批量下载好友备注
		CMenuItem mi = new CMenuItem(infoMenu, SWT.PUSH);
		mi.setText(menu_sys_friend_download_remark);
		mi.setImage(res.getImage(Resources.icoDownloadRemark));
		mi.addSelectionListener(new ISelectionListener() {
            public void widgetSelected(SelectionEvent e) {
				// 检查是否已经登陆,没有则返回
				if(!client.getUser().isLoggedIn()) return;
				DialogJobExecutor executor = new DialogJobExecutor(main);
				executor.setModeless(true);
				executor.setCancelable(true);
				executor.addJob(new DownloadFriendRemarkJob());
				executor.execute();
            }
		});
		// 信息管理器
		mi = new CMenuItem(infoMenu, SWT.PUSH);
		mi.setText(menu_sys_info_window);
		mi.setImage(res.getImage(Resources.icoMessageManage));
		mi.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				shellLauncher.openInfoManagerWindow();
			}
		});
		// 导出聊天记录
		mi = new CMenuItem(infoMenu, SWT.PUSH);
		mi.setText(menu_sys_friend_export_record);
		mi.setImage(res.getImage(Resources.icoTxtFile));
		mi.addSelectionListener(new ISelectionListener() {
            public void widgetSelected(SelectionEvent e) {
                exportHelper.exportAllMessage();
            }
		});
		// 工具
		final CMenuItem miTool = new CMenuItem(sysMenu, SWT.CASCADE);
		miTool.setText(menu_sys_tool);
		miTool.setImage(res.getImage(Resources.icoTool));
		CMenu toolMenu = new CMenu(miTool);
		// 申请QQ号码
		mi = new CMenuItem(toolMenu, SWT.PUSH);
		mi.setText(menu_sys_apply);
		mi.setImage(res.getImage(Resources.icoApply));
		mi.addSelectionListener(new ISelectionListener() {
            public void widgetSelected(SelectionEvent e) {
                shellLauncher.goApply();
            }
		});
		// IP查询
		mi = new CMenuItem(toolMenu, SWT.PUSH);
		mi.setText(menu_sys_searchip);
		mi.setImage(res.getImage(Resources.icoSearchIp));
		mi.addSelectionListener(new ISelectionListener() {
            public void widgetSelected(SelectionEvent e) {
                shellLauncher.openIPSeekerWindow();
            }
		});
		// 天气查询
		mi = new CMenuItem(toolMenu, SWT.PUSH);
		mi.setText(menu_sys_weather);
		mi.setImage(res.getImage(Resources.icoSun));
		mi.addSelectionListener(new ISelectionListener() {
            public void widgetSelected(SelectionEvent e) {
                shellLauncher.openWeatherWindow();
            }
		});
		// 临时会话
		mi = new CMenuItem(toolMenu, SWT.PUSH);
		mi.setText(menu_sys_temp_session);
		mi.setImage(res.getImage(Resources.icoTempSessionIM));
		mi.addSelectionListener(new ISelectionListener() {
            public void widgetSelected(SelectionEvent e) {
                InputDialog dialog = new InputDialog(main.getShell(),
                		"Input QQ Number",
                		"Input the QQ number which you want to talk",
                		null,
                		null);
                if(IDialogConstants.OK_ID == dialog.open()) {
                	String value = dialog.getValue();
                	if(value == null)
                		return;
                	int qq = Util.getInt(value, 0);
                	if(qq == 0)
                		return;
                	shellLauncher.openTempSessionIMWindow(qq);
                }
            }
		});
		// separator
		final CMenuItem miSep1 = new CMenuItem(sysMenu, SWT.SEPARATOR);
		// 个人设定
		final CMenuItem miPersonalInfo = new CMenuItem(sysMenu, SWT.PUSH);
		miPersonalInfo.setText(menu_sys_personinfo);
		miPersonalInfo.setImage(res.getImage(Resources.icoPersonInfo));
		miPersonalInfo.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e)  {
			    shellLauncher.openUserInfoWindow(main.getMyModel(), UserInfoWindow.EDITABLE);
			}
		});
		// 系统参数
		mi = new CMenuItem(sysMenu, SWT.PUSH);
		mi.setText(menu_sys_sysopt);
		mi.setImage(res.getImage(Resources.icoSysOpt));

⌨️ 快捷键说明

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