X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2FProgress.java;h=a8940fc00816cb8a84a596faef013fcc0b35d2c8;hb=62c9ec78bcd5d7016e6d1447b4422955cb55b198;hp=b31cde49456174ef5fd5487f2feab00324a451f6;hpb=88b36f83bb4bb9201339432c97e6d826aa9e1903;p=fanfix.git diff --git a/src/be/nikiroo/utils/Progress.java b/src/be/nikiroo/utils/Progress.java index b31cde4..a8940fc 100644 --- a/src/be/nikiroo/utils/Progress.java +++ b/src/be/nikiroo/utils/Progress.java @@ -93,6 +93,18 @@ public class Progress { return name; } + /** + * The name of this {@link Progress} step. + * + * @param name + * the new name + */ + public void setName(String name) { + this.name = name; + // will fire an action event: + setProgress(this.localProgress); + } + /** * The minimum progress value. * @@ -253,6 +265,18 @@ public class Progress { this.listeners.add(l); } + /** + * Remove a {@link ProgressListener} that would trigger on progress changes. + * + * @param l + * the listener + * + * @return TRUE if it was found (and removed) + */ + public boolean removeProgressListener(ProgressListener l) { + return this.listeners.remove(l); + } + /** * Add a child {@link Progress} of the given weight. * @@ -272,7 +296,7 @@ public class Progress { // Note: this is quite inefficient, especially with many children // TODO: improve it? progress.addProgressListener(new ProgressListener() { - public void progress(Progress progress, String name) { + public void progress(Progress pg, String name) { double total = ((double) localProgress) / (max - min); for (Entry entry : children.entrySet()) { total += (entry.getValue() / (max - min)) @@ -283,7 +307,7 @@ public class Progress { name = Progress.this.name; } - setTotalProgress(progress, name, + setTotalProgress(pg, name, (int) Math.round(total * (max - min))); } });