View Javadoc

1   /*
2    *  XNap Commons
3    *
4    *  Copyright (C) 2005  Steffen Pingel
5    *
6    *  This library is free software; you can redistribute it and/or
7    *  modify it under the terms of the GNU Lesser General Public
8    *  License as published by the Free Software Foundation; either
9    *  version 2.1 of the License, or (at your option) any later version.
10   *
11   *  This library is distributed in the hope that it will be useful,
12   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14   *  Lesser General Public License for more details.
15   *
16   *  You should have received a copy of the GNU Lesser General Public
17   *  License along with this library; if not, write to the Free Software
18   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
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  }