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 に答える