X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Fui%2FProgressBar.java;h=219cde9a2d2f5fc2555aa8cd7519b573e73e232d;hb=087a6e8e7f1b0e63633831948e99ae110b92ae45;hp=6e1e7cef151c5fd561c953a58bf3bf7565667e1e;hpb=88b36f83bb4bb9201339432c97e6d826aa9e1903;p=fanfix.git diff --git a/src/be/nikiroo/utils/ui/ProgressBar.java b/src/be/nikiroo/utils/ui/ProgressBar.java deleted file mode 100644 index 6e1e7ce..0000000 --- a/src/be/nikiroo/utils/ui/ProgressBar.java +++ /dev/null @@ -1,125 +0,0 @@ -package be.nikiroo.utils.ui; - -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.swing.JPanel; -import javax.swing.JProgressBar; -import javax.swing.SwingUtilities; - -import be.nikiroo.utils.Progress; - -public class ProgressBar extends JPanel { - private static final long serialVersionUID = 1L; - - private Map bars; - private List listeners; - private Progress pg; - - public ProgressBar() { - bars = new HashMap(); - listeners = new ArrayList(); - } - - public void setProgress(final Progress pg) { - this.pg = pg; - - if (pg == null) { - setPresent(false); - } else { - final JProgressBar bar = new JProgressBar(); - bar.setStringPainted(true); - - bars.clear(); - bars.put(pg, bar); - - bar.setMinimum(pg.getMin()); - bar.setMaximum(pg.getMax()); - bar.setValue(pg.getProgress()); - bar.setString(pg.getName()); - - pg.addProgressListener(new Progress.ProgressListener() { - public void progress(Progress progress, String name) { - - SwingUtilities.invokeLater(new Runnable() { - public void run() { - Map newBars = new HashMap(); - newBars.put(pg, bar); - - bar.setMinimum(pg.getMin()); - bar.setMaximum(pg.getMax()); - bar.setValue(pg.getProgress()); - bar.setString(pg.getName()); - - for (Progress pg : getChildrenAsOrderedList(pg)) { - JProgressBar bar = bars.get(pg); - if (bar == null) { - bar = new JProgressBar(); - bar.setStringPainted(true); - } - - newBars.put(pg, bar); - - bar.setMinimum(pg.getMin()); - bar.setMaximum(pg.getMax()); - bar.setValue(pg.getProgress()); - bar.setString(pg.getName()); - } - - bars = newBars; - - if (pg.isDone()) { - for (ActionListener listener : listeners) { - listener.actionPerformed(new ActionEvent( - ProgressBar.this, 0, "done")); - } - } - - setPresent(true); - } - }); - } - }); - - setPresent(true); - } - } - - public void addActioListener(ActionListener l) { - listeners.add(l); - } - - public void clearActionListeners() { - listeners.clear(); - } - - private List getChildrenAsOrderedList(Progress pg) { - List children = new ArrayList(); - for (Progress child : pg.getChildren()) { - children.add(child); - children.addAll(getChildrenAsOrderedList(child)); - } - - return children; - } - - private void setPresent(boolean present) { - removeAll(); - - if (present) { - setLayout(new GridLayout(bars.size(), 1)); - add(bars.get(pg), 0); - for (Progress child : getChildrenAsOrderedList(pg)) { - add(bars.get(child)); - } - } - - revalidate(); - repaint(); - } -}