Domanda

È possibile utilizzare una barra di avanzamento con un mxIGraphLayout? Ho un grafico che richiede un tempo non banale per layout e vorrei che l'utente potesse vedere che, sì, sta succedendo qualcosa.

Idealmente, vorrei qualcosa che posso interpretare (anche approssimativamente) come una percentuale, ma non sembra esserci nemmeno un modo per aggiungere eventuali ascoltatori che vengono chiamati durante il layout.

Se è importante, sto usando mxOrganicLayout Ma potrei cambiare in futuro.

È stato utile?

Soluzione

Può essere realizzato in qualche modo estendendo mxOrganicLayout e sovrascrivere i seguenti metodi

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

Ovviamente, devi impostare progress Anche ad un certo punto. execute Notifica il monitor Progress che l'esecuzione è iniziata e la chiude quando è stata eseguita.

performRound è chiamato a fare gli aggiornamenti effettivi, quindi incrementando i progressi lì farà avanzare la barra di avanzamento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top