Changeset 9172 in josm for trunk/src/org/openstreetmap/josm/io/ProgressInputStream.java
- Timestamp:
- 2015-12-26T23:42:03+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/io/ProgressInputStream.java
r8840 r9172 10 10 import org.openstreetmap.josm.gui.progress.NullProgressMonitor; 11 11 import org.openstreetmap.josm.gui.progress.ProgressMonitor; 12 import org.openstreetmap.josm.tools.HttpClient; 12 13 13 14 /** … … 18 19 19 20 private final InputStream in; 21 private final long size; 20 22 private int readSoFar; 21 23 private int lastDialogUpdate; 22 private boolean sizeKnown;23 private final URLConnection connection;24 24 private final ProgressMonitor progressMonitor; 25 25 26 public ProgressInputStream(InputStream in, long size, ProgressMonitor progressMonitor) { 27 if (progressMonitor == null) { 28 progressMonitor = NullProgressMonitor.INSTANCE; 29 } 30 this.in = in; 31 this.size = size; 32 this.progressMonitor = progressMonitor; 33 progressMonitor.beginTask(tr("Contacting OSM Server..."), 1); 34 progressMonitor.indeterminateSubTask(null); 35 initProgressMonitor(); 36 } 37 38 public ProgressInputStream(HttpClient.Response response, ProgressMonitor progressMonitor) throws IOException { 39 this(response.getContent(), response.getContentLength(), progressMonitor); 40 } 41 26 42 public ProgressInputStream(URLConnection con, ProgressMonitor progressMonitor) throws OsmTransferException { 27 this.connection = con;28 43 if (progressMonitor == null) { 29 44 progressMonitor = NullProgressMonitor.INSTANCE; … … 35 50 try { 36 51 this.in = con.getInputStream(); 52 this.size = con.getContentLength(); 37 53 } catch (IOException e) { 38 54 progressMonitor.finishTask(); … … 41 57 throw new OsmTransferException(e); 42 58 } 59 initProgressMonitor(); 60 } 43 61 44 updateSize(); 45 if (!sizeKnown) { 62 protected void initProgressMonitor() { 63 if (size > 0) { 64 progressMonitor.subTask(tr("Downloading OSM data...")); 65 progressMonitor.setTicksCount((int) size); 66 } else { 46 67 progressMonitor.indeterminateSubTask(tr("Downloading OSM data...")); 47 68 } … … 82 103 private void advanceTicker(int amount) { 83 104 readSoFar += amount; 84 updateSize();85 105 86 106 if (readSoFar / 1024 != lastDialogUpdate) { 87 107 lastDialogUpdate++; 88 if (size Known) {108 if (size > 0) { 89 109 progressMonitor.setTicks(readSoFar); 90 110 } … … 92 112 } 93 113 } 94 95 private void updateSize() {96 if (!sizeKnown && connection.getContentLength() > 0) {97 sizeKnown = true;98 progressMonitor.subTask(tr("Downloading OSM data..."));99 progressMonitor.setTicksCount(connection.getContentLength());100 }101 }102 114 }
Note:
See TracChangeset
for help on using the changeset viewer.