📄 uihelper.java
字号:
else if(pName.equals(IQQNode.REAL_NAME)) {
/* 如果f中没有这个属性,且属性名是realName,那么检查一下这个好友是否有备注信息 */
Remark r = RemarkUtil.getInstance().getRemark((Integer)f.getProperty(IQQNode.QQ_NUMBER));
if(r != null && !r.getName().equals("")) {
f.addProperty(INode.NAME, r.getName());
f.addProperty(IQQNode.REAL_NAME, r.getName());
}
}
}
}
}
}
/**
* 得到索引g指定的组,检查它目前是否需要闪烁图标,根据检查结果重置图标特效状态
*
* @param g
* 组索引
*/
public void resetGroupImageEffect(int g) {
MessageQueue mq = main.getMessageQueue();
MVCHelper mvcHelper = main.getMVCHelper();
CoolButton tab = main.getShutter().getTabControl(g);
// 检查这个组还有没有消息,没有了就停止闪烁,有就闪烁下一个消息发送者的头像
tab.stopBlinkImage();
if(mq.hasGroupMessage(g)) {
int sender = mq.nextGroupSender(g);
FriendModel nextFriend = mvcHelper.getFriendModel(sender);
if(nextFriend != null)
tab.startBlinkImage(HeadFactory.getOnlineHead(nextFriend));
else {
// 为null则可能是群
ClusterModel nextCluster = mvcHelper.getClusterModel(sender);
if(nextCluster != null)
tab.startBlinkImage(nextCluster.getImage());
}
}
}
/**
* 重设组内好友或者群的动画状态
*
* @param g
* 组索引
*/
public void resetFriendClusterImageEffect(int g) {
ShutterModel model = main.getModel();
MessageQueue mq = main.getMessageQueue();
Shutter shutter = main.getShutter();
int itemCount = model.getItemCount(g);
for(int i = 0; i < itemCount; i++) {
Object obj = model.getItem(g, i);
if(obj instanceof FriendModel) {
FriendModel f = (FriendModel)obj;
if(mq.hasMessage(f.getQQ())) {
shutter.getItemControl(g, i).startBounceImage(HeadFactory.getOnlineHead(f));
}
} else if(obj instanceof ClusterModel) {
ClusterModel c = (ClusterModel)obj;
if(mq.hasMessage(c.getClusterId()))
shutter.getItemControl(g, i).startBounceImage(c.getImage());
}
}
}
/**
* 重置所有动画状态
*/
public void resetAllImageEffect() {
int tabCount = main.getModel().getTabCount();
for(int i = 0; i < tabCount; i++) {
GroupModel gModel = (GroupModel)main.getModel().getTab(i);
if(!gModel.getName().equals(LumaQQ.getString("group.default.latest"))) {
resetGroupImageEffect(i);
resetFriendClusterImageEffect(i);
}
}
resetTrayImageEffect();
}
/**
* 这个方法检查总消息队列,根据检查的结果,重新设置系统托盘的图标特效状态
*/
public void resetTrayImageEffect() {
MessageQueue mq = main.getMessageQueue();
MVCHelper mvcHelper = main.getMVCHelper();
// 检查总队列还有没有消息,如果没有就停止闪烁,有就闪烁下一个图标,注意这里可能出现
// 系统消息,系统消息的图标的得到和头像的得到是不一样的
stopBlinkImage();
if(mq.hasNext()) {
int source = mq.nextMessageSource();
int sender = mq.nextSender();
if(source == QQ.QQ_IM_FROM_USER) {
FriendModel f = mvcHelper.getFriendModel(sender);
if(f != null)
startBlinkImage(HeadFactory.getOnlineSmallHead(f));
} else if(source == QQ.QQ_IM_FROM_CLUSTER){
ClusterModel c = mvcHelper.getClusterModel(sender);
if(c != null)
startBlinkImage(icons.getSmallClusterHead(c.getFaceId()));
} else if(source == QQ.QQ_IM_FROM_SMS) {
startBlinkImage(icons.getImage(IconHolder.icoMobile));
} else
startBlinkImage(icons.getImage(IconHolder.icoSysMsg));
}
}
/**
* 显示所有好友
*/
public void showAllFriend() {
ShutterModel model = main.getModel();
Shutter shutter = main.getShutter();
// 显示所有用户
int tabSize = model.getTabCount();
for(int i = 0; i < tabSize; i++) {
// 对于群组,我们不响应这个菜单事件
GroupModel g = (GroupModel)model.getTab(i);
if(g.isCluster() || !g.isFriendly()) continue;
// 不是群组就显示所有的用户
int itemSize = model.getItemCount(i);
if(itemSize > 0) {
// 为了提高刷新速度,这里用false,然后再统一刷新
for(int j = 0; j < itemSize; j++) {
shutter.showItem(i, j, false);
}
shutter.refreshTabView(i);
}
}
OptionUtil.getInstance().setShowOnlineOnly(false);
}
/**
* 显示大头像还是小头像
* @param b
*/
public void showSmallFace(boolean b) {
Shutter shutter = main.getShutter();
if(b) {
shutter.setShowSmallImage(true);
shutter.setTextOrientation(SWT.RIGHT);
} else {
shutter.setShowSmallImage(false);
shutter.setTextOrientation(SWT.BOTTOM);
}
OptionUtil.getInstance().setSmallFace(b);
}
/**
* 设置所有的好友状态在下线
*/
public void setAllFriendOffline() {
ShutterModel model = main.getModel();
int tabSize = model.getTabCount();
for(int i = 0; i < tabSize; i++) {
GroupModel g = (GroupModel)model.getTab(i);
if(g.isCluster()) continue;
int itemSize = model.getItemCount(i);
for(int j = 0; j < itemSize; j++) {
FriendModel f = (FriendModel)model.getItem(i, j);
f.addProperty(IQQNode.STATUS, IQQNode.VALUE_OFFLINE);
}
}
}
/**
* 设置tray icon和状态按钮的图标文字符合用户的当前状态
*/
public void setIconByStatus() {
switch(main.getClient().getUser().getStatus()) {
case QQ.QQ_FRIEND_STATUS_ONLINE:
main.setStatusImage(icons.getImage(IconHolder.icoOnline));
main.setTrayItemImage(icons.getImage(IconHolder.icoOnline));
main.setStatusText(LumaQQ.getString("menu.status.online"));
break;
case QQ.QQ_FRIEND_STATUS_AWAY:
main.setStatusImage(icons.getImage(IconHolder.icoAway));
main.setTrayItemImage(icons.getImage(IconHolder.icoAway));
main.setStatusText(LumaQQ.getString("menu.status.away"));
break;
case QQ.QQ_FRIEND_STATUS_HIDDEN:
main.setStatusImage(icons.getImage(IconHolder.icoHidden));
main.setTrayItemImage(icons.getImage(IconHolder.icoHidden));
main.setStatusText(LumaQQ.getString("menu.status.hidden"));
break;
case QQ.QQ_FRIEND_STATUS_OFFLINE:
main.setStatusImage(icons.getImage(IconHolder.icoOffline));
main.setTrayItemImage(icons.getImage(IconHolder.icoOffline));
main.setStatusText(LumaQQ.getString("menu.status.offline"));
break;
}
}
/**
* 收起群,隐藏所有成员
* <p>
* 暂时没有用到这个方法
* </p>
*
* @param c
* ClusterModel
*/
public void collapseCluster(ClusterModel c) {
ShutterModel model = main.getModel();
Shutter shutter = main.getShutter();
MVCHelper mvcHelper = main.getMVCHelper();
// 得到群组索引
int[] cluster = mvcHelper.listClusterGroup();
// 查看每一个FriendModel,如果其parent是c,则显示他
if(cluster != null && cluster.length > 0) {
int itemSize = model.getItemCount(cluster[0]);
for(int i = 0; i < itemSize; i++) {
INode node = model.getItem(cluster[0], i);
if(node instanceof FriendModel) {
if(node.getProperty(IQQNode.PARENT) == c)
shutter.hideItem(cluster[0], i, false);
}
}
shutter.refreshTabView(cluster[0]);
}
}
/**
* 展开群,显示群中的所有成员
* <p>
* 暂时没有用到这个方法
* </p>
*
* @param c
* ClusterModel
*/
public void expandCluster(ClusterModel c) {
ShutterModel model = main.getModel();
Shutter shutter = main.getShutter();
MVCHelper mvcHelper = main.getMVCHelper();
// 得到群组索引
int[] cluster = mvcHelper.listClusterGroup();
// 查看每一个FriendModel,如果其parent是c,则显示他
if(cluster != null && cluster.length > 0) {
int itemSize = model.getItemCount(cluster[0]);
for(int i = 0; i < itemSize; i++) {
INode node = model.getItem(cluster[0], i);
if(node instanceof FriendModel) {
if(node.getProperty(IQQNode.PARENT) == c)
shutter.showItem(cluster[0], i, false);
}
}
shutter.refreshTabView(cluster[0]);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -