2abd2b7dc25d1a868a781e5ce9fbcae55fb585e2
1 package be
.nikiroo
.utils
.ui
;
3 import java
.awt
.BorderLayout
;
4 import java
.awt
.event
.ActionEvent
;
5 import java
.awt
.event
.ActionListener
;
6 import java
.util
.ArrayList
;
9 import javax
.swing
.JLabel
;
10 import javax
.swing
.JPanel
;
11 import javax
.swing
.JProgressBar
;
12 import javax
.swing
.SwingUtilities
;
14 import be
.nikiroo
.utils
.Progress
;
16 public class ProgressBar
extends JPanel
{
17 private static final long serialVersionUID
= 1L;
19 private JProgressBar bar
;
21 private List
<ActionListener
> listeners
;
23 public ProgressBar() {
24 bar
= new JProgressBar();
26 listeners
= new ArrayList
<ActionListener
>();
28 setLayout(new BorderLayout());
31 public void setProgress(Progress pg
) {
35 label
.setText(pg
.getName());
36 bar
.setMinimum(pg
.getMin());
37 bar
.setMaximum(pg
.getMax());
38 bar
.setValue(pg
.getProgress());
40 pg
.addProgressListener(new Progress
.ProgressListener() {
41 public void progress(final Progress progress
, final String name
) {
42 SwingUtilities
.invokeLater(new Runnable() {
45 bar
.setValue(progress
.getProgress());
47 if (progress
.isDone()) {
48 for (ActionListener listener
: listeners
) {
49 listener
.actionPerformed(new ActionEvent(
50 ProgressBar
.this, 0, "done"));
62 public void addActioListener(ActionListener l
) {
66 public void clearActionListeners() {
70 private void setPresent(boolean present
) {
74 add(label
, BorderLayout
.NORTH
);
75 add(bar
, BorderLayout
.CENTER
);