1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.xnap.commons.io;
21
22 import java.awt.Component;
23
24
25 /***
26 * A progress monitor that acts as a proxy and throws
27 * {@link org.xnap.commons.io.UserAbortException} the proxied monitor has been
28 * cancelled.
29 *
30 * @author Steffen Pingel
31 */
32 public class UserAbortProgressMonitor implements ProgressMonitor {
33
34 protected ProgressMonitor monitor;
35
36 public UserAbortProgressMonitor(ProgressMonitor monitor)
37 {
38 this.monitor = monitor;
39 }
40
41 public boolean isCancelled()
42 {
43 return monitor.isCancelled();
44 }
45
46 public void setCancelEnabled(boolean enabled)
47 {
48 monitor.setCancelEnabled(enabled);
49 }
50
51 public void setTotalSteps(long max)
52 {
53 if (monitor.isCancelled()) {
54 throw new UserAbortException();
55 }
56
57 monitor.setTotalSteps(max);
58 }
59
60 public void setValue(long value)
61 {
62 if (monitor.isCancelled()) {
63 throw new UserAbortException();
64 }
65
66 monitor.setValue(value);
67 }
68
69 public void setText(String text)
70 {
71 monitor.setText(text);
72 }
73
74 public void work(long amount)
75 {
76 if (monitor.isCancelled()) {
77 throw new UserAbortException();
78 }
79
80 monitor.work(amount);
81 }
82
83 public Component getComponent()
84 {
85 return monitor.getComponent();
86 }
87
88 }