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

📄 menuhelper.java

📁 lumaQQ的源文件
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
		
		// 添加菜单监听器
		organizationContainerMenu.addMenuListener(new IMenuListener() {
			
			public void menuShown(MenuEvent e) {
				Dummy dummy = (Dummy)organizationContainerMenu.getData();
				miAdd.setEnabled(dummy.cluster.isSuperMember(main.getMyModel().qq));
			}
		});
	}

	/**
	 * 初始化群菜单
	 */
	private void initClusterMenu() {
		clusterMenu = new CMenu();
		// 发群组消息
		CMenuItem mi = new CMenuItem(clusterMenu, SWT.PUSH);
		mi.setText(menu_cluster_send);
		mi.setImage(res.getImage(Resources.icoSendReceiveMessage));
		mi.addSelectionListener(
			new ISelectionListener() {
				public void widgetSelected(SelectionEvent e) {					
					shellLauncher.openClusterIMWindow((Cluster)clusterMenu.getData());
				}
			}
		);
		// 查看群组资料
		final CMenuItem miInfo = new CMenuItem(clusterMenu, SWT.PUSH);
		miInfo.setImage(res.getImage(Resources.icoClusterInfo));
		miInfo.addSelectionListener(
			new ISelectionListener() {
				public void widgetSelected(SelectionEvent e) {	
					// 得到群的model
					Cluster c = (Cluster)clusterMenu.getData();
					if(c.isPermanent())
						shellLauncher.openClusterInfoWindow(c);
					else
						shellLauncher.openMemberEditShell(MemberEditShell.TEMP_CLUSTER, c.getParentCluster(), null, c);
				}
			}
		);
		// separator
		mi = new CMenuItem(clusterMenu, SWT.SEPARATOR);
		// 消息管理菜单
		mi = new CMenuItem(clusterMenu, SWT.CASCADE);
		mi.setText(menu_cluster_message_manage);
		mi.setImage(res.getImage(Resources.icoMessageManage));
		CMenu msgMenu = new CMenu(mi);
		// 导出为文本文件菜单
		mi = new CMenuItem(msgMenu, SWT.PUSH);
		mi.setText(menu_cluster_message_export);
		mi.setImage(res.getImage(Resources.icoTxtFile));
		mi.addSelectionListener(
			new ISelectionListener() {
				public void widgetSelected(SelectionEvent e) {
					// 得到群的model
					Cluster c = (Cluster)clusterMenu.getData();
					// 导出
					exportHelper.exportMessage(c);
				}
			}
		);
		// separator
		mi = new CMenuItem(clusterMenu, SWT.SEPARATOR);
		// 退出该群
		mi = new CMenuItem(clusterMenu, SWT.PUSH);
		mi.setText(menu_cluster_exit);
		mi.setImage(res.getImage(Resources.icoExit));
		mi.addSelectionListener(
			new ISelectionListener() {
				public void widgetSelected(SelectionEvent e) {				    
					Cluster c = (Cluster)clusterMenu.getData();
					boolean yes = false;
					if(c.creator == main.getMyModel().qq)
					    yes = MessageDialog.openQuestion(shell, message_box_common_question_title, message_box_exit_my_cluster);
					else
					    yes = MessageDialog.openQuestion(shell, message_box_common_question_title, message_box_exit_cluster);
					if(yes) {
						if(c.isPermanent()) {
							if(c.creator == main.getMyModel().qq)
								client.dismissCluster(c.clusterId);
							else
								client.exitCluster(c.clusterId);													
						} else
						    client.exitTempCluster(c.clusterType.toQQConstant(), c.clusterId, c.parentClusterId);			
					}
				}
			}
		);
		// 菜单事件监听器
		clusterMenu.addMenuListener(new IMenuListener() {
            public void menuShown(MenuEvent e) {
				// 得到群的model
				Cluster c = (Cluster)clusterMenu.getData();
				
				if(!c.isPermanent() || c.isSuperMember(main.getMyModel().qq))
				    miInfo.setText(menu_cluster_modifyinfo);
				else
				    miInfo.setText(menu_cluster_viewinfo);
            }
		});		
	}

	/**
	 * 初始化组菜单
	 */
	private void initGroupMenu() {
		groupMenu = new CMenu();
		// 显示大/小头像
		final CMenuItem miHeadSize = new CMenuItem(groupMenu, SWT.PUSH);
		miHeadSize.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				boolean b = options.isShowSmallHead();
			    blindHelper.setShowSmallHead(!b);
			    options.setShowSmallHead(!b);
			}
		});
		// 群操作菜单
		final CMenuItem miCluster = new CMenuItem(groupMenu, SWT.CASCADE);
		miCluster.setText(menu_group_cluster);
		miCluster.setImage(res.getImage(Resources.icoCluster));
		CMenu subMenu = new CMenu(miCluster);
		// 查找一个群
		CMenuItem mi = new CMenuItem(subMenu, SWT.PUSH);
		mi.setText(menu_group_cluster_search);
		mi.setImage(res.getImage(Resources.icoSearchCluster));
		mi.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				if(main.getClient().getUser().isLoggedIn()) {
					WizardWindow window = shellLauncher.openSearchWizard();
					SearchWizardModel model = (SearchWizardModel)window.getModel();
					model.setSearchWhat(SearchWizardModel.CLUSTER);
					model.setStartingPage(SearchWizardModel.PAGE_HOW_TO_SEARCH_CLUSTER);
					window.showStartingPage();
				}
			}
		});	
		// 创建一个群
		mi = new CMenuItem(subMenu, SWT.PUSH);
		mi.setText(menu_group_cluster_create);
		mi.setImage(res.getImage(Resources.icoAddCluster));
		mi.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				shellLauncher.openClusterWizard();
			}
		});	
		// 查找校友录
		mi = new CMenuItem(subMenu, SWT.PUSH);
		mi.setText(menu_group_alumni_search);
		mi.setImage(res.getImage(Resources.icoSearchCluster));
		mi.addSelectionListener(new ISelectionListener() {
            public void widgetSelected(SelectionEvent e) {
                shellLauncher.goAlumni();
            }
		});
		// 创建校友录
		mi = new CMenuItem(subMenu, SWT.PUSH);
		mi.setText(menu_group_alumni_create);
		mi.setImage(res.getImage(Resources.icoAddAlbum));
		mi.addSelectionListener(new ISelectionListener() {
            public void widgetSelected(SelectionEvent e) {
                shellLauncher.goAlumni();
            }
		});
		// separator
		mi = new CMenuItem(subMenu, SWT.SEPARATOR);
		// 登录群社区
		mi = new CMenuItem(subMenu, SWT.PUSH);
		mi.setText(menu_group_community);
		mi.setImage(res.getImage(Resources.icoCluster));
		mi.addSelectionListener(new ISelectionListener() {
            public void widgetSelected(SelectionEvent e) {
                shellLauncher.goClusterCommunity();
            }
		});
		// 颜色设置
		mi = new CMenuItem(groupMenu, SWT.CASCADE);
		mi.setText(menu_group_color);
		mi.setImage(res.getImage(Resources.icoColor));
		// 设置背景颜色
		CMenu colorMenu = new CMenu(mi);
		CMenuItem sub = new CMenuItem(colorMenu, SWT.PUSH);
		sub.setText(menu_group_group_color);
		sub.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
			    // 创建颜色对话框
			    ColorDialog dialog = new ColorDialog(shell);
			    // 设置当前颜色
			    RGB oldRGB = options.getGroupBackgroup();
			    dialog.setRGB(oldRGB);
			    // 打开对话框,如果返回值不为null,设置新颜色
			    RGB rgb = dialog.open();
			    if(rgb != null) {
			        options.setGroupBackgroup(rgb);
			        if(main.getGroupColor() != null)
			            main.getGroupColor().dispose();
			        main.setGroupColor(new Color(display, rgb));
			    }
			}
		});
		// 名称显示
		final CMenuItem miName = new CMenuItem(groupMenu, SWT.CASCADE);
		miName.setText(menu_group_displayname);
		// 显示昵称
		displayMenu = new CMenu(miName);
		final CMenuItem miShowNick = new CMenuItem(displayMenu, SWT.RADIO);
		miShowNick.setText(menu_group_displayname_nick);
		miShowNick.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				if(miShowNick.isSelected()) {
					blindHelper.setShowNick(true);
					blindHelper.refreshAll();
					options.setShowNick(true);					
				}
			}
		});
		// 显示备注名称
		final CMenuItem miShowRemark = new CMenuItem(displayMenu, SWT.RADIO);
		miShowRemark.setText(menu_group_displayname_remark);
		miShowRemark.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				if(miShowRemark.isSelected()) {
					blindHelper.setShowNick(false);
					blindHelper.refreshAll();
					options.setShowNick(false);					
				}
			}
		});
		// 显示/不显示用户提示
		final CMenuItem miSwitchFriendTip = new CMenuItem(groupMenu, SWT.PUSH);
		miSwitchFriendTip.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				main.getOptionHelper().setShowFrientTip(!main.getOptionHelper().isShowFriendTip());
			}
		});
		// Blind模式切换
		final CMenuItem miSwitchMode = new CMenuItem(groupMenu, SWT.PUSH);
		miSwitchMode.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				main.getMessageQueue().setPostpone(true);
				blindHelper.stopAllEffectOnBlind();			
				boolean b = options.isTreeMode();
				options.setTreeModel(!b);
				blindHelper.setTreeMode(!b);		
				blindHelper.resetAllImageEffect();
				main.getMessageQueue().setPostpone(false);
				main.getMessageHelper().processPostponedIM();
			}
		});
		// separator
		mi = new CMenuItem(groupMenu, SWT.SEPARATOR);
		// 添加组
		mi = new CMenuItem(groupMenu, SWT.PUSH);
		mi.setText(menu_friend_addgroup);
		mi.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				blindHelper.addGroup();
				
				// 这个功能不再使用,因为LumaQQ会允许不自动更新分组信息,所以,这里搞成自动的会带来问题
				//main.getMVCHelper().updateGroupInServer();
			}
		});
		// 添加用户
		mi = new CMenuItem(groupMenu, SWT.PUSH);
		mi.setText(menu_group_addfriend);
		mi.setImage(res.getImage(Resources.icoAddFriend));
		mi.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				shellLauncher.openSearchWizard();
			}
		});
		// separator
		mi = new CMenuItem(groupMenu, SWT.SEPARATOR);
		// 只显示在线好友
		final CMenuItem miShowOnlineOnly = new CMenuItem(groupMenu, 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(groupMenu, SWT.SEPARATOR);
		// 重命名
		final CMenuItem miRename = new CMenuItem(groupMenu, SWT.PUSH);
		miRename.setText(menu_group_rename);
		miRename.setImage(res.getImage(Resources.icoRename));
		miRename.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				if(blindHelper.isTreeMode()) {
					QTreeViewer<Model> viewer = blindHelper.getCurrentViewer();
					if(viewer == null)
						return;
					Group g = (Group)groupMenu.getData();
					viewer.editText(g);
				} else
					blindHelper.editCurrentSlatText();
			}
		});
		// 删除该组
		final CMenuItem miDelete = new CMenuItem(groupMenu, SWT.PUSH);
		miDelete.setText(menu_group_delete);
		miDelete.setImage(res.getImage(Resources.icoDelGroup));
		miDelete.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				Group g = (Group)groupMenu.getData();
				if(g.users.size() > 0) {
					MessageBox box = new MessageBox(shell, SWT.ICON_WARNING | SWT.OK);
					box.setText(message_box_common_warning_title);
					box.setMessage(hint_please_clear_friend);
					box.open();
				} else {
					blindHelper.removeGroup(g);
					
					// 这个功能不再使用,因为LumaQQ会允许不自动更新分组信息,所以,这里搞成自动的会带来问题
					//main.getMVCHelper().updateGroupInServer();
				}
			}
		});
		// 黑名单组特定操作项,包括添加坏人名单,隐藏显示黑名单等等
		// separator
		mi = new CMenuItem(groupMenu, SWT.SEPARATOR);
		// 添加坏人名单
		final CMenuItem miAddBadGuy = new CMenuItem(groupMenu, SWT.PUSH);
		miAddBadGuy.setText(menu_group_addbadguy);
		miAddBadGuy.setImage(res.getImage(Resources.icoAddFriend));
		miAddBadGuy.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				User f = new User();
				f.qq = 0;
				f.nick = "Input His QQ";
				f.displayName = f.nick;
				blindHelper.addUser(f, GroupType.BLACKLIST_GROUP);
				QTreeViewer<Model> viewer = blindHelper.getViewer(f);
				blindHelper.refreshGroup(f.group);
				blindHelper.expandGroup(f.group);
				viewer.editText(f);
			}
		});
		// 隐藏显示黑名单
		final CMenuItem miSwitchBlacklist = new CMenuItem(groupMenu, SWT.PUSH);
		miSwitchBlacklist.addSelectionListener(new ISelectionListener() {
			public void widgetSelected(SelectionEvent e) {
				boolean b = options.isShowBlacklist();
				options.setShowBlacklist(!b);
				blindHelper.setBlacklistGroupVisible(!b);
			}
		});
		
		// 添加菜单显示事件监听器
		groupMenu.addMenuListener(new IMenuListener() {
			public void menuShown(MenuEvent e) {
				// 显示什么头像的菜单使能状态
				if(options.isShowSmallHead()) {
					miHeadSize.setText(menu_friend_showlarge);
					miHeadSize.setImage(res.getImage(Resources.icoLargeHead));
				} else {
					miHeadSize.setText(menu_friend_showsmall);
					miHeadSize.setImage(res.getImage(Resources.icoSmallHead));				
				}
				// 模式菜单
				if(options.isTreeMode()) {
					miSwitchMode.setText(menu_group_traditional_mode);

⌨️ 快捷键说明

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