📄 searchwizard.java
字号:
/**
* @return
* 得到一个标志model的id,对于用户,就是qq号,对于群,就是内部id
*/
private int getSelectedModelId() {
if(selectedModel == null)
return 0;
if(selectedModel instanceof UserInfo)
return ((UserInfo)selectedModel).qqNum;
if(selectedModel instanceof AdvancedUserInfo)
return ((AdvancedUserInfo)selectedModel).qqNum;
if(selectedModel instanceof ClusterInfo)
return ((ClusterInfo)selectedModel).clusterId;
return 0;
}
/**
* 处理群命令超时事件
*
* @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;
openError(LumaQQ.getString("message.box.common.timeout"));
}
}
);
}
/**
* 处理搜索群失败事件
*
* @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;
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;
openError(LumaQQ.getString("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 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;
openError(LumaQQ.getString("error.timeout"));
}
}
);
}
private void openError(String message) {
MessageDialog.openError(getShell(), LumaQQ.getString("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 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 p) {
SearchUserResultWizardPage page = (SearchUserResultWizardPage)getPage(SEARCH_USER_RESULT);
page.addPage(p);
}
/**
* 显示一页结果
*
* @param p
*/
private void showClusterPage(List p) {
SearchClusterResultWizardPage page = (SearchClusterResultWizardPage)getPage(SEARCH_CLUSTER_RESULT);
page.addPage(p);
}
/**
* 设置好友结果框的下一页按钮使能状态
*
* @param b
*/
private void updateSearchUserResultPage() {
SearchUserResultWizardPage page = (SearchUserResultWizardPage)getPage(SEARCH_USER_RESULT);
page.update();
}
/**
* 在搜索用户结束时调用
*/
private void onSearchUserEnd() {
SearchUserResultWizardPage page = (SearchUserResultWizardPage)getPage(SEARCH_USER_RESULT);
page.onSearchEnd();
}
/**
* 设置添加页面的状态
*
* @param status
*/
private void setAddPageStatus(int status) {
AddFriendClusterWizardPage page = (AddFriendClusterWizardPage)getPage(ADD);
page.setStatus(status);
}
/* (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;
switch(searchMode) {
case ONLINE:
searchOnline(page);
break;
case ACCURATE:
searchAccurate(page);
break;
case ADVANCED:
searchAdvanced(page);
break;
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;
if(selectedModel == null)
return;
if(selectedModel instanceof UserInfo) {
UserInfo user = (UserInfo)selectedModel;
expected = main.getClient().sendAddFriendAuth(user.qqNum, message);
setAddPageStatus(AddFriendClusterWizardPage.AUTH_SENDING);
} else if(selectedModel instanceof AdvancedUserInfo) {
AdvancedUserInfo user = (AdvancedUserInfo)selectedModel;
expected = main.getClient().sendAddFriendAuth(user.qqNum, message);
setAddPageStatus(AddFriendClusterWizardPage.AUTH_SENDING);
} else if(selectedModel instanceof ClusterInfo) {
ClusterInfo cluster = (ClusterInfo)selectedModel;
expected = main.getClient().requestJoinCluster(cluster.clusterId, message);
setAddPageStatus(AddFriendClusterWizardPage.AUTH_SENDING);
} else
operating = false;
}
/**
* 添加好友或群
*/
public void doAdd() {
if(operating)
return;
operating = true;
if(selectedModel == null)
return;
if(selectedModel instanceof UserInfo) {
UserInfo user = (UserInfo)selectedModel;
expected = main.getClient().addFriend(user.qqNum);
setAddPageStatus(AddFriendClusterWizardPage.ADDING);
} else if(selectedModel instanceof AdvancedUserInfo) {
AdvancedUserInfo user = (AdvancedUserInfo)selectedModel;
expected = main.getClient().addFriend(user.qqNum);
setAddPageStatus(AddFriendClusterWizardPage.ADDING);
} else if(selectedModel instanceof ClusterInfo) {
ClusterInfo cluster = (ClusterInfo)selectedModel;
expected = main.getClient().joinCluster(cluster.clusterId);
setAddPageStatus(AddFriendClusterWizardPage.JOINING);
} else
operating = false;
}
/**
* 搜索示范群
*/
public void searchDemoCluster() {
expected = ((HowToSearchClusterWizardPage)getPage(HOW_TO_SEARCH_CLUSTER)).doSearch();
}
/**
* 根据群ID搜索
*/
public void searchClusterById() {
expected = ((HowToSearchClusterWizardPage)getPage(HOW_TO_SEARCH_CLUSTER)).doSearch();
}
/**
* 高级搜索
*
* @param page
*/
public void searchAdvanced(int page) {
expected = ((SearchUserAdvancedWizardPage)getPage(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(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;
}
/**
* @return Returns the searchMode.
*/
public int getSearchMode() {
return searchMode;
}
/**
* @param searchMode The searchMode to set.
*/
public void setSearchMode(int searchMode) {
this.searchMode = searchMode;
}
/**
* @param end The end to set.
*/
public void setEnd(boolean end) {
this.end = end;
}
/**
* @return Returns the selectedModel.
*/
public Object getSelectedModel() {
return selectedModel;
}
/**
* @param selectedModel The selectedModel to set.
*/
public void setSelectedModel(Object selectedModel) {
this.selectedModel = selectedModel;
}
/**
* @return Returns the enterResultPage.
*/
public boolean isEnterResultPage() {
return enterResultPage;
}
/**
* @param enterResultPage The enterResultPage to set.
*/
public void setEnterResultPage(boolean enterResultPage) {
this.enterResultPage = enterResultPage;
}
/* (non-Javadoc)
* @see org.eclipse.jface.wizard.IWizard#canFinish()
*/
public boolean canFinish() {
return ((AddFriendClusterWizardPage)getPage(ADD)).isPageComplete();
}
/**
* @param startPage The startPage to set.
*/
public void setStartPage(String startPage) {
this.startPage = startPage;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -