我正在使用“取消”按钮实现搜索对话框。 当用户开始搜索时,结果将被填充 在DBView中的TableViewer中,逐个显示进度 在进度条中。
假设用户想取消搜索,他将点击取消按钮。
如何停止数据填充过程??
SearchProgressBar dlg=new SearchProgressBar(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
dlg.open();
for(int i=0;i<result.length;i++) {
String str=FillGistTable(result[i].toString().split("\\~"),i);
COUNT++;
}
dlg.close()
答案 0 :(得分:1)
执行此操作的一种方法是使用IProgressService
IProgressService service = PlatformUI.getWorkbench().getProgressService();
service.busyCursorWhile(runnableWithProgress);
runnableWithProgess
是一个实现IRunnableWithProgress
的类,它是您放置循环的地方。您将通过IProgressMonitor
- 检查isCanceled()
方法以检查取消。
如果循环快速完成,则不会显示任何对话框,但如果显示的时间较长,则会显示带取消的进度对话框。
注意:纯{e4'Eclipse 4应用程序中没有IProgressService
。