3

是否可以使用带有 的进度条mxIGraphLayout?我有一个图表需要花费大量时间来布局,我希望用户能够看到,是的,正在发生一些事情。

理想情况下,我想要一些我可以(甚至粗略地)解释为完成百分比的东西,但似乎甚至没有办法添加在布局期间调用的任何侦听器。

如果重要的话,我正在使用,mxOrganicLayout但我将来可能会改变。

4

1 回答 1

3

可以通过扩展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被调用来进行实际更新,因此增加进度将导致进度条前进。

于 2013-11-19T19:02:12.120 回答