Bilah kemajuan untuk tata letak JGraphX

Apakah mungkin menggunakan bilah kemajuan dengan mxIGraphLayout? Saya memiliki grafik yang memerlukan waktu yang tidak lama untuk tata letaknya, dan saya ingin pengguna dapat melihatnya, ya, ada sesuatu yang sedang terjadi.

Idealnya, saya ingin sesuatu yang dapat saya tafsirkan (bahkan secara kasar) sebagai persentase selesai, tetapi sepertinya tidak ada cara untuk menambahkan pendengar apa pun yang dipanggil selama tata letak.

Jika itu penting, saya menggunakan mxOrganicLayout tetapi saya mungkin akan mengubahnya di masa mendatang.


person Troy Daniels    schedule 07.11.2013    source sumber


Jawaban (1)


Hal ini dapat dicapai dengan memperluas mxOrganicLayout dan mengganti metode berikut

    @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;

Jelasnya, Anda perlu menyetel progress pada titik tertentu juga. execute memberi tahu monitor kemajuan bahwa eksekusi telah dimulai, dan menutupnya setelah selesai.

performRound dipanggil untuk melakukan pembaruan sebenarnya, jadi menambah kemajuan di sana akan menyebabkan bilah kemajuan meningkat.

person Troy Daniels    schedule 19.11.2013