📄 searchwizard.java
字号:
operating = false;
expected = 0;
setAddPageStatus(ADD_DENY);
}
}
);
}
/**
* 处理添加好友成功事件
*
* @param e
*/
private void processAddFriendSuccess(QQEvent e) {
AddFriendExReplyPacket packet = (AddFriendExReplyPacket)e.getSource();
if(expected != packet.getSequence())
return;
final int id = model.getSelectedModelId();
if(id == packet.friendQQ) {
main.getDisplay().asyncExec(new Runnable() {
public void run() {
operating = false;
expected = 0;
setAddPageStatus(ADD_FINISHED);
}
});
}
}
/**
* 处理群命令超时事件
*
* @param e
*/
private void processClusterCommandTimeout(QQEvent e) {
final ClusterCommandPacket packet = (ClusterCommandPacket)e.getSource();
if(expected != packet.getSequence())
return;
switch(packet.getSubCommand()) {
case QQ.QQ_CLUSTER_CMD_SEARCH_CLUSTER:
processSearchClusterTimeout(e);
break;
case QQ.QQ_CLUSTER_CMD_JOIN_CLUSTER_AUTH:
processJoinClusterAuthSendFail(e);
break;
case QQ.QQ_CLUSTER_CMD_JOIN_CLUSTER:
processJoinClusterFail(e);
break;
}
}
/**
* 处理搜索群命令超时事件
*
* @param e
*/
private void processSearchClusterTimeout(QQEvent e) {
ClusterCommandPacket packet = (ClusterCommandPacket)e.getSource();
if(expected != packet.getSequence())
return;
main.getDisplay().asyncExec(
new Runnable() {
public void run() {
operating = false;
expected = 0;
onSearchClusterError();
openError(message_box_common_timeout);
}
}
);
}
/**
* 搜索群发生错误时
*/
private void onSearchClusterError() {
SearchClusterResultWizardPage page = (SearchClusterResultWizardPage)getPage(PAGE_SEARCH_CLUSTER_RESULT);
page.onSearchClusterError();
}
/**
* 处理搜索群失败事件
*
* @param e
*/
private void processSearchClusterFail(QQEvent e) {
final ClusterCommandReplyPacket packet = (ClusterCommandReplyPacket)e.getSource();
if(expected != packet.getSequence())
return;
main.getDisplay().asyncExec(
new Runnable() {
public void run() {
operating = false;
expected = 0;
onSearchClusterError();
openError(packet.errorMessage);
}
}
);
}
/**
* 处理搜索群成功事件
*
* @param e
*/
private void processSearchClusterSuccess(QQEvent e) {
final ClusterCommandReplyPacket packet = (ClusterCommandReplyPacket)e.getSource();
if(expected != packet.getSequence())
return;
main.getDisplay().syncExec(
new Runnable() {
public void run() {
operating = false;
expected = 0;
showClusterPage(packet.clusters);
}
}
);
}
/**
* @param e
*/
private void processAdvancedSearchUserTimeout(QQEvent e) {
AdvancedSearchUserPacket packet = (AdvancedSearchUserPacket)e.getSource();
if(expected != packet.getSequence())
return;
main.getDisplay().asyncExec(
new Runnable() {
public void run() {
operating = false;
expected = 0;
onSearchUserError();
openError(error_timeout);
}
}
);
}
/**
* @param e
*/
private void processAdvancedSearchUserEnd(QQEvent e) {
AdvancedSearchUserReplyPacket packet = (AdvancedSearchUserReplyPacket)e.getSource();
if(expected != packet.getSequence())
return;
main.getDisplay().syncExec(
new Runnable() {
public void run() {
operating = false;
end = true;
expected = 0;
onSearchUserEnd();
}
}
);
}
/**
* @param e
*/
private void processAdvancedSearchUserSuccess(QQEvent e) {
AdvancedSearchUserReplyPacket packet = (AdvancedSearchUserReplyPacket)e.getSource();
if(expected != packet.getSequence())
return;
final List<? extends Object> list = packet.users;
main.getDisplay().asyncExec(
new Runnable() {
public void run() {
end = false;
operating = false;
expected = 0;
showUserPage(list);
}
}
);
}
/**
* 处理搜索用户结束事件
*/
protected void processSearchUserEnd(QQEvent e) {
SearchUserReplyPacket packet = (SearchUserReplyPacket)e.getSource();
if(expected != packet.getSequence())
return;
main.getDisplay().syncExec(
new Runnable() {
public void run() {
operating = false;
end = true;
expected = 0;
onSearchUserEnd();
}
}
);
}
/**
* 初始搜索用户超时事件
* @param e
*/
private void processSearchUserTimeout(QQEvent e) {
SearchUserPacket packet = (SearchUserPacket)e.getSource();
if(expected != packet.getSequence())
return;
main.getDisplay().asyncExec(new Runnable() {
public void run() {
operating = false;
expected = 0;
onSearchUserError();
openError(error_timeout);
}
});
}
/**
* 搜索发生错误时
*/
private void onSearchUserError() {
SearchUserResultWizardPage page = (SearchUserResultWizardPage)getPage(PAGE_SEARCH_USER_RESULT);
page.onSearchUserError();
}
/**
* 打开错误提示框
*
* @param message
* 错误消息
*/
private void openError(String message) {
MessageDialog.openError(getShell(), message_box_common_fail_title, message);
}
/**
* 处理搜索用户成功事件
*
* @param e
*/
private void processSearchUserSuccess(QQEvent e) {
SearchUserReplyPacket packet = (SearchUserReplyPacket)e.getSource();
if(expected != packet.getSequence())
return;
final List<? extends Object> list = packet.users;
main.getDisplay().asyncExec(
new Runnable() {
public void run() {
end = false;
operating = false;
expected = 0;
showUserPage(list);
}
}
);
}
/**
* 显示一页结果
*
* @param page
*/
private void showUserPage(List<? extends Object> p) {
SearchUserResultWizardPage page = (SearchUserResultWizardPage)getPage(PAGE_SEARCH_USER_RESULT);
page.addPage(p);
}
/**
* 显示一页结果
*
* @param p
*/
private void showClusterPage(List<? extends Object> p) {
SearchClusterResultWizardPage page = (SearchClusterResultWizardPage)getPage(PAGE_SEARCH_CLUSTER_RESULT);
page.addPage(p);
}
/**
* 在搜索用户结束时调用
*/
private void onSearchUserEnd() {
SearchUserResultWizardPage page = (SearchUserResultWizardPage)getPage(PAGE_SEARCH_USER_RESULT);
page.onSearchEnd();
}
/**
* 设置添加页面的状态
*
* @param status
*/
private void setAddPageStatus(int status) {
model.setStatus(status);
AddFriendClusterWizardPage page = (AddFriendClusterWizardPage)getPage(PAGE_ADD);
page.refresh();
}
/* (non-Javadoc)
* @see org.eclipse.jface.wizard.IWizard#performCancel()
*/
public boolean performCancel() {
unhookListener();
main.getShellRegistry().deregisterSearchWizard();
return true;
}
/**
* 根据搜索方式搜索
*
* @param page
*/
public void doSearch(int page) {
if(operating)
return;
operating = true;
if(model.getSearchWhat() == USER) {
switch(model.getUserSearchMode()) {
case ONLINE:
searchOnline(page);
break;
case ACCURATE:
searchAccurate(page);
break;
case ADVANCED:
searchAdvanced(page);
break;
default:
operating = false;
break;
}
} else if(model.getSearchWhat() == CLUSTER) {
switch(model.getClusterSearchMode()) {
case DEMO_CLUSTER:
searchDemoCluster();
break;
case BY_CLUSTER_ID:
searchClusterById();
break;
default:
operating = false;
break;
}
}
}
/**
* 发送认证信息
*
* @param message
*/
public void doAuth(String message) {
if(operating)
return;
operating = true;
Object selectedModel = model.getSelectedModel();
if(selectedModel == null)
return;
if(selectedModel instanceof UserInfo) {
UserInfo user = (UserInfo)selectedModel;
expected = main.getClient().sendAddFriendAuth(user.qqNum, message);
setAddPageStatus(AUTH_SENDING);
} else if(selectedModel instanceof AdvancedUserInfo) {
AdvancedUserInfo user = (AdvancedUserInfo)selectedModel;
expected = main.getClient().sendAddFriendAuth(user.qqNum, message);
setAddPageStatus(AUTH_SENDING);
} else if(selectedModel instanceof ClusterInfo) {
ClusterInfo cluster = (ClusterInfo)selectedModel;
expected = main.getClient().requestJoinCluster(cluster.clusterId, message);
setAddPageStatus(AUTH_SENDING);
} else
operating = false;
}
/**
* 添加好友或群
*/
public void doAdd() {
if(operating)
return;
operating = true;
Object selectedModel = model.getSelectedModel();
if(selectedModel == null)
return;
if(selectedModel instanceof UserInfo) {
UserInfo user = (UserInfo)selectedModel;
expected = main.getClient().addFriend(user.qqNum);
setAddPageStatus(ADDING);
} else if(selectedModel instanceof AdvancedUserInfo) {
AdvancedUserInfo user = (AdvancedUserInfo)selectedModel;
expected = main.getClient().addFriend(user.qqNum);
setAddPageStatus(ADDING);
} else if(selectedModel instanceof ClusterInfo) {
ClusterInfo cluster = (ClusterInfo)selectedModel;
expected = main.getClient().joinCluster(cluster.clusterId);
setAddPageStatus(JOINING);
} else
operating = false;
}
/**
* 搜索示范群
*/
public void searchDemoCluster() {
expected = ((HowToSearchClusterWizardPage)getPage(PAGE_HOW_TO_SEARCH_CLUSTER)).doSearch();
}
/**
* 根据群ID搜索
*/
public void searchClusterById() {
expected = ((HowToSearchClusterWizardPage)getPage(PAGE_HOW_TO_SEARCH_CLUSTER)).doSearch();
}
/**
* 高级搜索
*
* @param page
*/
public void searchAdvanced(int page) {
expected = ((SearchUserAdvancedWizardPage)getPage(PAGE_SEARCH_USER_ADVANCED)).doSearch(page);
}
/**
* 搜索用户
*
* @param page
* 页号
*/
public void searchOnline(int page) {
expected = main.getClient().searchUser(page);
}
/**
* 精确查找
*
* @param page
* 页号
*/
public void searchAccurate(int page) {
expected = ((SearchUserAccurateWizardPage)getPage(PAGE_SEARCH_USER_ACCURATE)).doSearch(page);
}
/**
* 把自己加为QQ listener
*/
private void hookListener() {
main.getClient().addQQListener(this);
}
/**
* 删除自己做为qq listener
*/
private void unhookListener() {
main.getClient().removeQQListener(this);
}
/**
* @return Returns the end.
*/
public boolean isEnd() {
return end;
}
/**
* @return Returns the operating.
*/
public boolean isOperating() {
return operating;
}
/**
* @param end The end to set.
*/
public void setEnd(boolean end) {
this.end = end;
}
/* (non-Javadoc)
* @see org.eclipse.jface.wizard.IWizard#canFinish()
*/
public boolean canFinish() {
return ((AddFriendClusterWizardPage)getPage(PAGE_ADD)).isPageComplete();
}
public Object getModel() {
return model;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -