git://git.nikiroo.be
/
nikiroo-utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Version 1.3.5: better ProgressBar
[nikiroo-utils.git]
/
src
/
be
/
nikiroo
/
utils
/
Progress.java
diff --git
a/src/be/nikiroo/utils/Progress.java
b/src/be/nikiroo/utils/Progress.java
index 8b6e10e5fc97ca6e5b2748aeb58c4829d80a3287..b31cde49456174ef5fd5487f2feab00324a451f6 100644
(file)
--- a/
src/be/nikiroo/utils/Progress.java
+++ b/
src/be/nikiroo/utils/Progress.java
@@
-6,6
+6,7
@@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Set;
/**
* Progress reporting system, possibly nested.
/**
* Progress reporting system, possibly nested.
@@
-18,7
+19,7
@@
public class Progress {
* A progression event.
*
* @param progress
* A progression event.
*
* @param progress
- * the {@link Progress} object that generated it
, or a parent
+ * the {@link Progress} object that generated it
* @param name
* the first non-null name of the {@link Progress} step that
* generated this event
* @param name
* the first non-null name of the {@link Progress} step that
* generated this event
@@
-188,7
+189,7
@@
public class Progress {
public void setProgress(int progress) {
int diff = this.progress - this.localProgress;
this.localProgress = progress;
public void setProgress(int progress) {
int diff = this.progress - this.localProgress;
this.localProgress = progress;
- setTotalProgress(name, progress + diff);
+ setTotalProgress(
this,
name, progress + diff);
}
/**
}
/**
@@
-211,22
+212,34
@@
public class Progress {
return (((double) progress) / (max - min));
}
return (((double) progress) / (max - min));
}
+ /**
+ * Return the list of direct children of this {@link Progress}.
+ *
+ * @return the children (who will think of them??)
+ */
+ public Set<Progress> getChildren() {
+ return children.keySet();
+ }
+
/**
* Set the total progress value (including the optional children
* {@link Progress}), on a {@link Progress#getMin()} to
* {@link Progress#getMax()} scale.
*
/**
* Set the total progress value (including the optional children
* {@link Progress}), on a {@link Progress#getMin()} to
* {@link Progress#getMax()} scale.
*
+ * @param pg
+ * the {@link Progress} to report as the progression emitter
* @param name
* the current name (if it is NULL, the first non-null name in
* @param name
* the current name (if it is NULL, the first non-null name in
- * the hierarchy will overwrite it)
+ * the hierarchy will overwrite it) of the {@link Progress} who
+ * emitted this change
* @param progress
* the progress to set
*/
* @param progress
* the progress to set
*/
- private void setTotalProgress(String name, int progress) {
+ private void setTotalProgress(
Progress pg,
String name, int progress) {
this.progress = progress;
for (ProgressListener l : listeners) {
this.progress = progress;
for (ProgressListener l : listeners) {
- l.progress(
this
, name);
+ l.progress(
pg
, name);
}
}
}
}
@@
-270,7
+283,8
@@
public class Progress {
name = Progress.this.name;
}
name = Progress.this.name;
}
- setTotalProgress(name, (int) (total * (max - min)));
+ setTotalProgress(progress, name,
+ (int) Math.round(total * (max - min)));
}
});
}
});