📄 menuhelper.java
字号:
// 添加菜单监听器
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 + -