aboutsummaryrefslogtreecommitdiff
path: root/src/uk/ac/ox/cs/pagoda/util/SimpleProgressBar.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/uk/ac/ox/cs/pagoda/util/SimpleProgressBar.java')
-rw-r--r--src/uk/ac/ox/cs/pagoda/util/SimpleProgressBar.java48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/uk/ac/ox/cs/pagoda/util/SimpleProgressBar.java b/src/uk/ac/ox/cs/pagoda/util/SimpleProgressBar.java
new file mode 100644
index 0000000..3c4aad7
--- /dev/null
+++ b/src/uk/ac/ox/cs/pagoda/util/SimpleProgressBar.java
@@ -0,0 +1,48 @@
1package uk.ac.ox.cs.pagoda.util;
2
3import uk.ac.ox.cs.pagoda.util.disposable.Disposable;
4
5public class SimpleProgressBar extends Disposable {
6
7 private final String name;
8 private int lastPercent;
9 private int maxValue;
10
11 public SimpleProgressBar() {
12 this("");
13 }
14
15 public SimpleProgressBar(String name) {
16 this(name, 100);
17 }
18
19 public SimpleProgressBar(String name, int maxValue) {
20 this.name = name;
21 this.maxValue = maxValue;
22 }
23
24 public void update(int value) {
25 int percent = value * 100 / maxValue;
26 StringBuilder template = new StringBuilder("\r" + name + " [");
27 for (int i = 0; i < 50; i++) {
28 if (i < percent * .5) {
29 template.append("=");
30 } else if (i == percent * .5) {
31 template.append(">");
32 } else {
33 template.append(" ");
34 }
35 }
36 template.append("] %s ");
37 System.out.printf(template.toString(), percent + "%");
38 System.out.flush();
39 lastPercent = percent;
40 }
41
42 @Override
43 public void dispose() {
44 super.dispose();
45
46 System.out.println();
47 }
48}