@Override public void progressChanged(ExperimentProgress algorithmExperiment) { String executionTask = algorithmExperiment.getExecutionProgressTask(); int executionPercent = algorithmExperiment.getExecutionProgressPercent(); boolean begin = executionPercent == 0; boolean finish = executionPercent == 100; boolean repeated = executionPercent == executionLastPercent && executionTask.equals(executionLastTask); boolean timeTrigger = chronometer.getTotalElapsed() >= verbosePeriod; if (((begin || finish) && !repeated) || timeTrigger) { printProgress(algorithmExperiment); executionLastPercent = executionPercent; executionLastTask = executionTask; chronometer.reset(); } }