是否可以使用带有 的进度条mxIGraphLayout
?我有一个图表需要花费大量时间来布局,我希望用户能够看到,是的,正在发生一些事情。
理想情况下,我想要一些我可以(甚至粗略地)解释为完成百分比的东西,但似乎甚至没有办法添加在布局期间调用的任何侦听器。
如果重要的话,我正在使用,mxOrganicLayout
但我将来可能会改变。
是否可以使用带有 的进度条mxIGraphLayout
?我有一个图表需要花费大量时间来布局,我希望用户能够看到,是的,正在发生一些事情。
理想情况下,我想要一些我可以(甚至粗略地)解释为完成百分比的东西,但似乎甚至没有办法添加在布局期间调用的任何侦听器。
如果重要的话,我正在使用,mxOrganicLayout
但我将来可能会改变。
可以通过扩展mxOrganicLayout
和覆盖以下方法来完成
@Override
public void execute(Object cell)
{
progress.setProgress(0);
try
{
super.execute(cell);
}
finally
{
progress.setProgress(maxIterations);
}
}
@Override
protected void performRound()
{
progress.setNote("Iteration " + iteration);
progress.setProgress(iteration);
super.performRound();
}
final ProgressMonitor progress;
显然,您还需要progress
在某个时间点进行设置。 execute
通知进度监视器执行已开始,并在完成时关闭它。
performRound
被调用来进行实际更新,因此增加进度将导致进度条前进。