diff options
| author | 2026-03-23 11:38:29 +0100 | |
|---|---|---|
| committer | 2026-07-09 09:59:28 +0200 | |
| commit | 1ec785cf30afe9e83a81cf1b7e7f402fda295bbf (patch) | |
| tree | d1f59cfa5c8da08acf56f72361c928e8d906af70 /src | |
| parent | 848fd74e79774e5c5c12928f8673376973281f04 (diff) | |
Fixed progress bar duplicates and now only redraw lines that actually
changes and the rest is fixed
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/com/it_jaros/network_scanner/ProgressBar.java | 16 |
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(), |
