source: josm/trunk/src/org/openstreetmap/josm/io/StreamProgressUpdater.java@ 9197

Last change on this file since 9197 was 9197, checked in by Don-vip, 8 years ago

checkstyle

File size: 1.5 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.io;
3
4import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
5import org.openstreetmap.josm.gui.progress.ProgressMonitor;
6
7final class StreamProgressUpdater {
8
9 private final long size;
10 private final ProgressMonitor progressMonitor;
11 private final String taskTitle;
12 private int soFar;
13 private int lastDialogUpdate;
14
15 StreamProgressUpdater(long size, ProgressMonitor progressMonitor, String taskTitle) {
16 if (progressMonitor == null) {
17 progressMonitor = NullProgressMonitor.INSTANCE;
18 }
19 this.size = size;
20 this.progressMonitor = progressMonitor;
21 this.taskTitle = taskTitle;
22 initProgressMonitor();
23 }
24
25 private void initProgressMonitor() {
26 if (size > 0) {
27 progressMonitor.subTask(taskTitle);
28 progressMonitor.setTicksCount((int) size);
29 } else {
30 progressMonitor.indeterminateSubTask(taskTitle);
31 }
32 }
33
34 /**
35 * Increase ticker (progress counter and displayed text) by the given amount.
36 *
37 * @param amount number of ticks
38 */
39 void advanceTicker(int amount) {
40 soFar += amount;
41
42 if (soFar / 1024 != lastDialogUpdate) {
43 lastDialogUpdate++;
44 if (size > 0) {
45 progressMonitor.setTicks(soFar);
46 }
47 progressMonitor.setExtraText(soFar / 1024 + " KB");
48 }
49 }
50
51 void finishTask() {
52 progressMonitor.finishTask();
53 }
54}
Note: See TracBrowser for help on using the repository browser.