Ticket #17035: 17035-progress-monitor.patch

File 17035-progress-monitor.patch, 3.1 KB (added by GerdP, 8 years ago)
  • src/org/openstreetmap/josm/actions/ValidateAction.java

     
    168168            }
    169169            tests = null;
    170170            if (ValidatorPrefHelper.PREF_USE_IGNORE.get()) {
     171                getProgressMonitor().setCustomText("");
    171172                getProgressMonitor().subTask(tr("Updating ignored errors ..."));
    172173                for (TestError error : errors) {
    173174                    if (canceled) return;
  • src/org/openstreetmap/josm/data/validation/Test.java

     
    7676    /** the start time to compute elapsed time when test finishes */
    7777    protected long startTime;
    7878
     79    private boolean showElementCount;
     80
    7981    /**
    8082     * Constructor
    8183     * @param name Name of the test
     
    202204        if (progressMonitor != null) {
    203205            progressMonitor.setTicksCount(selection.size());
    204206        }
     207        long cnt = 0;
    205208        for (OsmPrimitive p : selection) {
    206209            if (isCanceled()) {
    207210                break;
     
    211214            }
    212215            if (progressMonitor != null) {
    213216                progressMonitor.worked(1);
     217                cnt++;
     218                // add frequently changing info to progress monitor so that it
     219                // doesn't seem to hang when test takes long
     220                if (showElementCount && cnt % 1000 == 0 ) {
     221                    progressMonitor.setExtraText(tr("{0} of {1} elements done", cnt, selection.size()));
     222                }
    214223            }
    215224        }
    216225    }
     
    373382    public int compareTo(Test t) {
    374383        return name.compareTo(t.name);
    375384    }
     385
     386    protected void setShowElements(boolean b) {
     387        showElementCount = b;
     388    }
     389
    376390}
  • src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java

     
    6060import org.openstreetmap.josm.gui.mappaint.mapcss.parsergen.MapCSSParser;
    6161import org.openstreetmap.josm.gui.mappaint.mapcss.parsergen.ParseException;
    6262import org.openstreetmap.josm.gui.mappaint.mapcss.parsergen.TokenMgrError;
     63import org.openstreetmap.josm.gui.progress.ProgressMonitor;
    6364import org.openstreetmap.josm.io.CachedFile;
    6465import org.openstreetmap.josm.io.FileWatcher;
    6566import org.openstreetmap.josm.io.IllegalDataException;
     
    841842            }
    842843        }
    843844    }
     845
     846    @Override
     847    public void startTest(ProgressMonitor progressMonitor) {
     848        super.startTest(progressMonitor);
     849        super.setShowElements(true);
     850    }
    844851}