是否可以使用一个进度栏与 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 被要求进行实际更新,因此增加进度将导致进度栏的进步。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top