@@ -36,7 +36,6 @@ public ProgressBar(ProgressBarTheme theme)
36
36
this .cu = new ConsoleUtils (this .out );
37
37
this .activeBars = new ArrayList <>();
38
38
this .cols = AnsiConsole .getTerminalWidth ();
39
- System .out .println (cols );
40
39
}
41
40
42
41
/**
@@ -58,6 +57,31 @@ private void update()
58
57
// Roll back to the first line
59
58
cu .curUp (activeBars .size ());
60
59
activeBars .forEach (bar -> out .println (bar .fmt (theme , cols )));
60
+ activeBars .stream ().toList ().stream ().filter (it -> it .completed >= it .total ).forEach (this ::finishBar );
61
+ }
62
+
63
+ /**
64
+ * Increase progress
65
+ *
66
+ * @param bar Progress row
67
+ * @param incr Increase amount
68
+ */
69
+ public void increase (ProgressRow bar , long incr )
70
+ {
71
+ bar .completed += incr ;
72
+ update ();
73
+ }
74
+
75
+ /**
76
+ * Set progress
77
+ *
78
+ * @param bar Progres bar
79
+ * @param completed Completed amount
80
+ */
81
+ public void set (ProgressRow bar , long completed )
82
+ {
83
+ bar .completed = completed ;
84
+ update ();
61
85
}
62
86
63
87
/**
@@ -68,8 +92,6 @@ private void update()
68
92
public void finishBar (ProgressRow bar )
69
93
{
70
94
this .activeBars .remove (bar );
71
- out .println ();
72
- update ();
73
95
}
74
96
75
97
/**
@@ -80,30 +102,33 @@ public void finishBar(ProgressRow bar)
80
102
@ Override
81
103
public void close ()
82
104
{
83
- System .out .println ("" );
105
+ }
106
+
107
+ public List <ProgressRow > getActiveBars ()
108
+ {
109
+ return activeBars ;
84
110
}
85
111
86
112
public static void main (String [] args )
87
113
{
88
114
try (var b = new ProgressBar (ProgressBarTheme .ASCII_THEME ))
89
115
{
90
- var r = b .appendBar (new ProgressRow (1000 , "it" ));
91
- for (int i = 0 ; i < 1000 ; i ++)
116
+ //var r = b.appendBar(new ProgressRow(1000, "it"));
117
+ //for (int i = 0; i < 1000; i++)
118
+ //{
119
+ // b.increase(r, 1);
120
+ // safeSleep(5);
121
+ //}
122
+
123
+ var all = new ArrayList <ProgressRow >();
124
+ for (int i = 0 ; i < 1300 ; i ++)
92
125
{
93
- r . completed ++ ;
94
- b . update ( );
95
- safeSleep (10 );
126
+ if ( i < 1000 && i % 100 == 0 ) all . add ( b . appendBar ( new ProgressRow ( 300 , "it" ))) ;
127
+ all . forEach ( a -> b . increase ( a , 1 ) );
128
+ safeSleep (3 );
96
129
}
97
130
98
-
99
- //var all = new ArrayList<ProgressRow>();
100
- //for (int i = 0; i < 10; i++)
101
- //{
102
- // all.add(b.appendBar(new ProgressRow(3, "it")));
103
- // all.forEach(a -> a.completed++);
104
- // b.update();
105
- // safeSleep(1000);
106
- //}
131
+ System .out .println ("Done" );
107
132
}
108
133
}
109
134
}
0 commit comments