Frage

Ist es möglich, eine Fortschrittsleiste mit einem zu verwenden? mxIGraphLayout? Ich habe ein Diagramm, das eine nicht triviale Zeit zum Layout benötigt, und ich möchte, dass der Benutzer sehen kann, ja, ja, etwas passiert.

Im Idealfall möchte ich etwas, das ich (sogar grob) als Prozentsatz interpretieren kann, aber es scheint nicht einmal eine Möglichkeit zu geben, Zuhörer hinzuzufügen, die während des Layouts aufgerufen werden.

Wenn es wichtig ist, benutze ich mxOrganicLayout Aber ich könnte mich in Zukunft ändern.

War es hilfreich?

Lösung

Das kann etwas erreicht werden, indem Sie sich erstrecken mxOrganicLayout und überschreiben die folgenden Methoden

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

Offensichtlich müssen Sie einstellen progress Irgendwann auch. execute Benachrichtigt den Fortschrittsmonitor, dass die Ausführung begonnen hat, und schließt ihn, wenn dies erledigt ist.

performRound wird aufgerufen, um die tatsächlichen Aktualisierungen durchzuführen, sodass die Fortschrittsanlagen dazu führen, dass die Fortschrittsleiste voranschreiten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top