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

📄 menuhelper.java

📁 java写的qq代码实现qq的部分功能
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
		sub.setImage(icons.getImage(IconHolder.icoColor));
		sub.addSelectionListener(
			new SelectionAdapter() {
				public void widgetSelected(SelectionEvent e) {
				    // 创建颜色对话框
				    ColorDialog dialog = new ColorDialog(shell);
				    // 设置当前颜色
				    RGB oldRGB = Util.stringToRGB(options.getGroupBackgroup());
				    if(oldRGB == null)
				        oldRGB = Util.stringToRGB(LumaQQ.DEFAULT_GROUP_COLOR);
				    dialog.setRGB(oldRGB);
				    // 打开对话框,如果返回值不为null,设置新颜色
				    RGB rgb = dialog.open();
				    if(rgb != null) {
				        options.setGroupBackgroup(Util.rgbToString(rgb));
				        if(main.getGroupColor() != null)
				            main.getGroupColor().dispose();
				        main.setGroupColor(new Color(display, rgb));
				    }
				}
			}
		);
		// 名称显示
		mi = new MenuItem(groupMenu, SWT.CASCADE);
		mi.setText(LumaQQ.getString("menu.group.displayname"));
		mi.setImage(icons.getImage(IconHolder.icoDisplayName));
		// 显示昵称
		displayMenu = new Menu(mi);
		mi.setMenu(displayMenu);
		sub = new MenuItem(displayMenu, SWT.RADIO);
		sub.setText(LumaQQ.getString("menu.group.displayname.nick"));
		sub.addSelectionListener(
			new SelectionAdapter() {
				public void widgetSelected(SelectionEvent e) {
				    uiHelper.displayName(IQQNode.NICK);
					options.setShowNick(true);
				}
			}
		);
		// 显示备注名称
		sub = new MenuItem(displayMenu, SWT.RADIO);
		sub.setText(LumaQQ.getString("menu.group.displayname.remark"));
		sub.addSelectionListener(
			new SelectionAdapter() {
				public void widgetSelected(SelectionEvent e) {
				    uiHelper.displayName(IQQNode.REAL_NAME);
					options.setShowNick(false);
				}
			}
		);
		// 添加组
		mi = new MenuItem(groupMenu, SWT.PUSH);
		mi.setText(LumaQQ.getString("menu.friend.addgroup"));
		mi.setImage(icons.getImage(IconHolder.icoAddGroup));
		mi.addSelectionListener(
			new SelectionAdapter() {
				public void widgetSelected(SelectionEvent e) {
					main.getMVCHelper().addGroup();
					
					// 这个功能不再使用,因为LumaQQ会允许不自动更新分组信息,所以,这里搞成自动的会带来问题
					//main.getMVCHelper().updateGroupInServer();
				}
			}
		);
		// separator
		mi = new MenuItem(groupMenu, SWT.SEPARATOR);
		// 添加用户
		mi = new MenuItem(groupMenu, SWT.PUSH);
		mi.setText(LumaQQ.getString("menu.group.addfriend"));
		mi.setImage(icons.getImage(IconHolder.icoAddFriend));
		mi.addSelectionListener(
			new SelectionAdapter() {
				public void widgetSelected(SelectionEvent e) {
					shellLauncher.openSearchWizard();
				}
			}
		);
		// 只显示在线好友
		mi = new MenuItem(groupMenu, SWT.PUSH);
		mi.setImage(icons.getImage(IconHolder.icoShowOnlineOnly));
		mi.addSelectionListener(
			new SelectionAdapter() {
				public void widgetSelected(SelectionEvent e) {
					if(options.isShowOnlineOnly())
					    uiHelper.showAllFriend();
					else
					    uiHelper.showOnlineFriendOnly();
				}
			}
		);
		// 组操作区域,包括重命名,删除该组等等
		// separator
		mi = new MenuItem(groupMenu, SWT.SEPARATOR);
		// 重命名
		mi = new MenuItem(groupMenu, SWT.PUSH);
		mi.setText(LumaQQ.getString("menu.group.rename"));
		mi.setImage(icons.getImage(IconHolder.icoRename));
		mi.addSelectionListener(
			new SelectionAdapter() {
				public void widgetSelected(SelectionEvent e) {
					shutter.editTabName(shutter.getCurrentTab());
				}
			}
		);
		// 删除该组
		mi = new MenuItem(groupMenu, SWT.PUSH);
		mi.setText(LumaQQ.getString("menu.group.delete"));
		mi.setImage(icons.getImage(IconHolder.icoDelGroup));
		mi.addSelectionListener(
			new SelectionAdapter() {
				public void widgetSelected(SelectionEvent e) {
					if(model.getItemCount(shutter.getCurrentTab()) > 0) {
						MessageBox box = new MessageBox(shell, SWT.ICON_WARNING | SWT.OK);
						box.setText(LumaQQ.getString("message.box.common.warning.title"));
						box.setMessage(LumaQQ.getString("hint.please.clear.friend"));
						box.open();
					} else {
						main.getMVCHelper().removeCurrentGroup();
						
						// 这个功能不再使用,因为LumaQQ会允许不自动更新分组信息,所以,这里搞成自动的会带来问题
						//main.getMVCHelper().updateGroupInServer();
					}
				}
			}
		);
		// 黑名单组特定操作项,包括添加坏人名单,隐藏显示黑名单等等
		// separator
		mi = new MenuItem(groupMenu, SWT.SEPARATOR);
		// 添加坏人名单
		mi = new MenuItem(groupMenu, SWT.PUSH);
		mi.setText(LumaQQ.getString("menu.group.addbadguy"));
		mi.setImage(icons.getImage(IconHolder.icoAddFriend));
		mi.addSelectionListener(
			new SelectionAdapter() {
				public void widgetSelected(SelectionEvent e) {
					FriendModel f = new FriendModel(0);
					f.addProperty(INode.IMAGE, icons.getHead(0));
					f.addProperty(IQQNode.HEAD, new Integer(0));
					f.addProperty(IQQNode.STATUS, IQQNode.VALUE_OFFLINE);
					f.addProperty(INode.NAME, "xxxxxxxxx");
					f.addProperty(IQQNode.NICK, "xxxxxxxxx");
					int bIndex = shutter.getCurrentTab();
					model.addItem(bIndex, f);
					CoolButton viewPart = shutter.getItemControl(bIndex, model.getItemCount(bIndex) - 1);
					viewPart.editText();
					viewPart.addShutterLabelListener(main.getBlackListCoolButtonListener());
				}
			}
		);
		// 隐藏显示黑名单
		mi = new MenuItem(groupMenu, SWT.PUSH);
		mi.addSelectionListener(
			new SelectionAdapter() {
				public void widgetSelected(SelectionEvent e) {
					int[] indices = mvcHelper.listBlacklistGroup();
					if (indices != null) {
						GroupModel blacklistGroup = (GroupModel)model.getTab(indices[0]);
						blacklistGroup.addProperty(IQQNode.VISIBLE, main.isBlacklistVisible() ? "false" : "true");
						main.setBlacklistVisible(!main.isBlacklistVisible());
					}
				}
			}
		);
		
		// 添加菜单显示事件监听器
		groupMenu.addMenuListener(
			new MenuAdapter() {
				public void menuShown(MenuEvent e) {
					// 显示什么头像的菜单使能状态
					if(shutter.isShowSmallImage()) {
						groupMenu.getItem(0).setEnabled(false);
						groupMenu.getItem(1).setEnabled(true);
					} else {
						groupMenu.getItem(0).setEnabled(true);
						groupMenu.getItem(1).setEnabled(false);						
					}
					// 得到当前组的model
					GroupModel g = (GroupModel)model.getTab(shutter.getCurrentTab());
					// 设置名称显示子菜单的使能状态和选择状态
					// 显示昵称还是显示备注的选择状态
					if(g.isCluster())
						groupMenu.getItem(4).setEnabled(false);
					else {
						groupMenu.getItem(4).setEnabled(true);
						if(options.isShowNick()) {
							displayMenu.getItem(0).setSelection(true);
							displayMenu.getItem(1).setSelection(false);
						} else {
							displayMenu.getItem(0).setSelection(false);
							displayMenu.getItem(1).setSelection(true);
						}						
					}
					// 设置群操作菜单的使能性
					groupMenu.getItem(2).setEnabled(g.isCluster());					
					// 设置添加用户菜单的使能状态
					if (g.isFriendly() && !g.isCluster()) 
						groupMenu.getItem(7).setEnabled(true);
					else
						groupMenu.getItem(7).setEnabled(false);
					// 设置只显示在线用户还是显示所有用户菜单的文字标签
					if(options.isShowOnlineOnly())
						groupMenu.getItem(8).setText(LumaQQ.getString("menu.group.showall"));
					else
						groupMenu.getItem(8).setText(LumaQQ.getString("menu.group.showonlineonly"));
					// 设置组改名组删除菜单的使能性
					String name = (String)g.getProperty(INode.NAME);
					if(!name.equals(LumaQQ.getString("group.default.friend")) &&
						!name.equals(LumaQQ.getString("group.default.stranger")) &&
						!name.equals(LumaQQ.getString("group.default.blacklist")) &&
						!name.equals(LumaQQ.getString("group.default.cluster"))) {
						groupMenu.getItem(9).setEnabled(true);
						groupMenu.getItem(10).setEnabled(true);
						groupMenu.getItem(11).setEnabled(true);
					} else {
						groupMenu.getItem(9).setEnabled(false);
						groupMenu.getItem(10).setEnabled(false);
						groupMenu.getItem(11).setEnabled(false);			
					}
					// 设置黑名单操作项的使能性
					if(g.isBlackList()) {
						groupMenu.getItem(12).setEnabled(true);
						groupMenu.getItem(13).setEnabled(true);
					} else {
						groupMenu.getItem(12).setEnabled(false);
						groupMenu.getItem(13).setEnabled(false);
					}
					// 设置隐藏显示黑名单的图标和文字
					if(main.isBlacklistVisible()) {
						groupMenu.getItem(14).setText(LumaQQ.getString("menu.group.hideblacklist"));
						groupMenu.getItem(14).setImage(icons.getImage(IconHolder.icoHideBlackList));
					} else {
						groupMenu.getItem(14).setText(LumaQQ.getString("menu.group.showblacklist"));
						groupMenu.getItem(14).setImage(icons.getImage(IconHolder.icoShowBlackList));						
					}
				}
			}
		);
	}	

	/**
	 * 初始化在好友上点右键出现的菜单
	 */
	private void initFriendMenu() {
		friendMenu = new Menu(shell, SWT.POP_UP);
		// 显示组功能菜单
		MenuItem mi = new MenuItem(friendMenu, SWT.PUSH);
		mi.setText(LumaQQ.getString("menu.friend.show.group.menu"));
		mi.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                setGroupMenuLocation(display.getCursorLocation());
                setGroupMenuVisible(true);
            }
		});
		// separator
		mi = new MenuItem(friendMenu, SWT.SEPARATOR);
		// 收发消息
		mi = new MenuItem(friendMenu, SWT.PUSH);
		mi.setText(LumaQQ.getString("menu.friend.sendreceive"));
		mi.setImage(icons.getImage(IconHolder.icoSendReceiveMessage));
		mi.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				// 得到当前选择用户的view part,打开消息窗口
			    shellLauncher.openNormalIMWindow((CoolButton)friendMenu.getData());
			}
		});
		// 发送文件
		mi = new MenuItem(friendMenu, SWT.PUSH);
		mi.setText(LumaQQ.getString("menu.friend.sendfile"));
		mi.setImage(icons.getImage(IconHolder.icoSendFile));
		mi.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                Object obj = shellLauncher.openNormalIMWindow((CoolButton)friendMenu.getData());
                while(obj instanceof ReceiveIMWindow)
                    obj = shellLauncher.openNormalIMWindow((CoolButton)friendMenu.getData());
                SendIMWindow sms = (SendIMWindow)obj;
                sms.requestSendFile();
            }
		});
		// 发送短消息
		mi = new MenuItem(friendMenu, SWT.PUSH);
		mi.setText(LumaQQ.getString("menu.friend.sendsms"));
		mi.setImage(icons.getImage(IconHolder.icoMobile));
		mi.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                shellLauncher.openSMSShell((CoolButton)friendMenu.getData());
            }
		});
		// separator
		mi = new MenuItem(friendMenu, SWT.SEPARATOR);
		// 查看资料
		mi = new MenuItem(friendMenu, SWT.PUSH);
		mi.setText(LumaQQ.getString("menu.friend.viewinfo"));
		mi.setImage(icons.getImage(IconHolder.icoPersonInfo));
		mi.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				// 得到当前选择用户的view part,打开资料窗口
				shellLauncher.openUserInfoWindow((CoolButton)friendMenu.getData(), UserInfoWindow.READ_ONLY);
			}
		});
		// 如来神掌
		mi = new MenuItem(friendMenu, SWT.PUSH);
		mi.setText(LumaQQ.getString("menu.friend.rlsz"));
		mi.setImage(icons.getImage(IconHolder.icoPalm));
		mi.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                FriendModel f = (FriendModel)((CoolButton)friendMenu.getData()).getData();
                shellLauncher.openDetectHiddenShell(f);
            }
		});
		// 消息管理菜单
		mi = new MenuItem(friendMenu, SWT.CASCADE);
		mi.setText(LumaQQ.getString("menu.friend.message.manage"));
		mi.setImage(icons.getImage(IconHolder.icoMessageManage));
		Menu msgMenu = new Menu(mi);
		mi.setMenu(msgMenu);
		// 导出为文本文件菜单
		mi = new MenuItem(msgMenu, SWT.PUSH);
		mi.setText(LumaQQ.getString("menu.friend.message.export"));
		mi.setImage(icons.getImage(IconHolder.icoTxtFile));
		mi.addSelectionListener(
			new SelectionAdapter() {
				public void widgetSelected(SelectionEvent e) {
					// 得到好友的model
					CoolButton viewPart = (CoolButton)friendMenu.getData();
					FriendModel f = (FriendModel)viewPart.getData();
					// 导出
					exportHelper.exportMessage(f.getQQ(), new FriendMessageExporter(main.getMyModel(), f));
				}
			}
		);
		// separator
		mi = new MenuItem(friendMenu, SWT.SEPARATOR);
		// 显示小头像
		mi = new MenuItem(friendMenu, SWT.PUSH);
		mi.setText(LumaQQ.getString("menu.friend.showsmall"));
		mi.setImage(icons.getImage(IconHolder.icoSmallFace));
		mi.addSelectionListener(
			new SelectionAdapter() {
				public void widgetSelected(SelectionEvent e) {
				    uiHelper.showSmallFace(true);
				}
			}
		);
		// 显示大头像
		mi = new MenuItem(friendMenu, SWT.PUSH);
		mi.setText(LumaQQ.getString("menu.friend.showlarge"));
		mi.setImage(icons.getImage(IconHolder.icoLargeFace));
		mi.addSelectionListener(

⌨️ 快捷键说明

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