package org.lodder.subtools.multisubdownloader.cli.progress; abstract class CLIProgress { protected int progress; protected boolean isEnabled; protected boolean isVerbose; protected CLIProgress(){ isEnabled = true; isVerbose = false; progress = 0; } public void disable() { this.isEnabled = false; /* Print a line */ System.out.println(""); } public void setVerbose(boolean isVerbose) { this.isVerbose = isVerbose; } protected abstract void printProgress(); protected void printProgBar(int percent) { // http://nakkaya.com/2009/11/08/command-line-progress-bar/ StringBuilder bar = new StringBuilder("["); for (int i = 0; i < 50; i++) { if (i < (percent / 2)) { bar.append("="); } else if (i == (percent / 2)) { bar.append(">"); } else { bar.append(" "); } } bar.append("] ").append(percent).append("% "); System.out.print("\r" + bar.toString()); } }