📄 menuhelper.java
字号:
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 + -