From 7946b8aae3427b180d28441f8a02ae6665ac215c Mon Sep 17 00:00:00 2001 From: Matthias Jaros Date: Mon, 16 Mar 2026 16:41:25 +0100 Subject: Renamed package --- .../com/it_jaros/networkScanner/ProgressBar.java | 75 ---------------------- 1 file changed, 75 deletions(-) delete mode 100644 src/main/java/com/it_jaros/networkScanner/ProgressBar.java (limited to 'src/main/java/com/it_jaros/networkScanner/ProgressBar.java') 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 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(); - } - } -} -- cgit v1.3.1