Pregunta

¿Es posible usar una barra de progreso con un mxIGraphLayout? Tengo un gráfico que toma un tiempo no trivial para diseñar, y me gustaría que el usuario pueda ver que sí, algo está sucediendo.

Idealmente, me gustaría algo que pueda interpretar (incluso aproximadamente) como un porcentaje hecho, pero ni siquiera parece haber una forma de agregar ningún oyente que se llame durante el diseño.

Si es importante, estoy usando mxOrganicLayout Pero podría cambiar en el futuro.

¿Fue útil?

Solución

Se puede lograr un poco extendiendo mxOrganicLayout y anular los siguientes métodos

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

Obviamente, necesitas establecer progress en algún momento también. execute Notifica el monitor de progreso de que la ejecución ha comenzado y la cierra cuando está hecho.

performRound está llamado a hacer las actualizaciones reales, por lo que incrementar el progreso allí hará que la barra de progreso avance.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top