Вопрос

Можно ли использовать панель прогресса с mxIGraphLayout? У меня есть график, который требует нетривиального времени для макета, и я хотел бы, чтобы пользователь мог видеть это, да, что-то происходит.

В идеале я хотел бы что -то, что я могу интерпретировать (даже примерно) как процент, но даже не может быть способ добавить любых слушателей, которые называются во время макета.

Если это важно, я использую mxOrganicLayout Но я мог бы измениться в будущем.

Это было полезно?

Решение

Это может быть сделано в некоторой степени, расширяя 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 Призван для выполнения фактических обновлений, поэтому увеличение прогресса приведет к продвижению панели прогресса.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top