summaryrefslogtreecommitdiff
path: root/src/main/java/com/it_jaros/network_scanner
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/it_jaros/network_scanner')
-rw-r--r--src/main/java/com/it_jaros/network_scanner/ProgressBar.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/main/java/com/it_jaros/network_scanner/ProgressBar.java b/src/main/java/com/it_jaros/network_scanner/ProgressBar.java
index 7743ed1..72f762a 100644
--- a/src/main/java/com/it_jaros/network_scanner/ProgressBar.java
+++ b/src/main/java/com/it_jaros/network_scanner/ProgressBar.java
@@ -1,6 +1,8 @@
package com.it_jaros.network_scanner;
import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Iterator;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
@@ -25,7 +27,17 @@ public class ProgressBar {
}
private void drawProgress(boolean last) {
- // paint a bar per host
+ // find and print finished hosts one last time
+ for (Iterator<Progress> it = hosts.iterator(); it.hasNext();) {
+ Progress p = it.next();
+ if (p.done().get() == p.total()) {
+ it.remove();
+ drawBar(p);
+ }
+ }
+
+ // the more progressed the host the more up it is
+ hosts.sort(Comparator.comparingInt((Progress p) -> p.done().get()).reversed());
for (Progress progress : hosts) {
drawBar(progress);
}
@@ -43,7 +55,7 @@ public class ProgressBar {
}
private void drawBar(Progress progress) {
- System.out.print("\u001b[2K\r");
+ System.out.print("\u001b[2K\r"); // clear whole line
System.out.println(createBar(
progress.host(),
progress.open().get(),