diff options
| author | 2026-03-16 16:41:25 +0100 | |
|---|---|---|
| committer | 2026-07-09 09:59:28 +0200 | |
| commit | 7946b8aae3427b180d28441f8a02ae6665ac215c (patch) | |
| tree | f10deda6e765715a68d37981a5ab0a6c73744dc6 /src/main/java/com/it_jaros/networkScanner/ProgressBar.java | |
| parent | 98a62828f7305fc3a2a36a9b19f0ae98ce78904b (diff) | |
Renamed package
Diffstat (limited to 'src/main/java/com/it_jaros/networkScanner/ProgressBar.java')
| -rw-r--r-- | src/main/java/com/it_jaros/networkScanner/ProgressBar.java | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/src/main/java/com/it_jaros/networkScanner/ProgressBar.java b/src/main/java/com/it_jaros/networkScanner/ProgressBar.java deleted file mode 100644 index ca755a6..0000000 --- a/src/main/java/com/it_jaros/networkScanner/ProgressBar.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.it_jaros.networkScanner; - -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.locks.ReentrantLock; - -public class ProgressBar { - - private final ScheduledExecutorService ui = Executors.newSingleThreadScheduledExecutor(); - private final ReentrantLock lock = new ReentrantLock(); - - private List<Progress> hosts; - - public void start() { - this.hosts = new ArrayList<>(); - System.out.print("Scanning targets...\n\n"); - ui.scheduleAtFixedRate(() -> { - lock.lock(); - drawProgress(false); - lock.unlock(); - }, 1, 200, TimeUnit.MILLISECONDS); - } - - private void drawProgress(boolean last) { - // paint a bar per host - for (Progress progress : hosts) { - drawBar(progress); - } - - if (!last) { - // move cursor up again - System.out.print("\u001b[" + hosts.size() + "A"); - } - } - - public void submit(Progress progress) { - lock.lock(); - hosts.add(progress); - lock.unlock(); - } - - private void drawBar(Progress progress) { - System.out.print("\u001b[2K\r"); - System.out.println(createBar( - progress.host(), - progress.open().get(), - progress.done().get(), - progress.total())); - } - - public String createBar(String label, int open, int done, int total) { - int width = 30; - double pct = total == 0 ? 1.0 : (done / (double) total); - int filled = (int) (pct * width); - - String brackets = "[" + "#".repeat(filled) + "-".repeat(width - filled) + "]"; - int percent = (int) (pct * 100); - - return String.format("%-40s open=%s %s %3d%% (%d/%d)", label, open, brackets, percent, done, total); - } - - public void stop() { - ui.shutdown(); - try { - ui.awaitTermination(10, TimeUnit.SECONDS); - // we need to draw one last time for the 100% to appear - drawProgress(true); - } catch (InterruptedException ignored) { - Thread.currentThread().interrupt(); - } - } -} |
