KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > core > command > StatusObservableImpl


1 //The contents of this file are subject to the Mozilla Public License Version 1.1
2
//(the "License"); you may not use this file except in compliance with the
3
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
4
//
5
//Software distributed under the License is distributed on an "AS IS" basis,
6
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
7
//for the specific language governing rights and
8
//limitations under the License.
9
//
10
//The Original Code is "The Columba Project"
11
//
12
//The Initial Developers of the Original Code are Frederik Dietz and Timo
13
// Stich.
14
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
15
//
16
//All Rights Reserved.
17
package org.columba.core.command;
18
19 import org.columba.api.command.IStatusObservable;
20 import org.columba.api.command.IWorkerStatusController;
21
22 /**
23  *
24  * Represents the clue between the gui and all the folders which want to notify
25  * the statusbar.
26  *
27  * <p>
28  * We want the folders to be independent from the gui code. So, the folders
29  * should communicate with the Observable, whereas the status observers with the
30  * Observable.
31  *
32  * </p>
33  * This makes it necessary of course to register as Observer.
34  *
35  * </p>
36  * This implementation of <class>StatusObserver </class> encapsulates a
37  * <class>Worker </class>, which is more tightly coupled to the gui in Columba.
38  *
39  * @author fdietz
40  */

41 public class StatusObservableImpl implements IStatusObservable {
42     /**
43          * encapsulated worker
44          */

45     private IWorkerStatusController worker;
46
47     public StatusObservableImpl() {
48     // nothing to do
49
}
50
51     public StatusObservableImpl(IWorkerStatusController theWorker) {
52     this.worker = theWorker;
53     }
54
55     /**
56          * Sets the current value of the progress bar.
57          *
58          * @param i
59          * New current value of progress bar
60          */

61     public void setCurrent(int i) {
62     if (worker != null) {
63         worker.setProgressBarValue(i);
64     }
65     }
66
67     /**
68          * Sets the maximum value for the progress bar.
69          *
70          * @param i
71          * New max. value for progress bar
72          */

73     public void setMax(int i) {
74     if (worker != null) {
75         worker.setProgressBarMaximum(i);
76     }
77     }
78
79     /**
80          * Sets the progress bar value to zero, i.e. clears the progress bar.
81          * This is the same as calling setCurrent(0)
82          */

83     public void resetCurrent() {
84     setCurrent(0);
85     }
86
87     /**
88          * Set the text to be displayed in the status bar
89          *
90          * @param string
91          * Text to display in status bar
92          */

93     public void setMessage(String JavaDoc string) {
94     if (worker != null) {
95         worker.setDisplayText(string);
96     }
97     }
98
99     /**
100          * Clears the text displayed in the status bar.
101          */

102     public void clearMessage() {
103     if (worker != null) {
104         worker.clearDisplayText();
105     }
106     }
107
108     /**
109          * Clears the text displayed in the status bar - with a given delay. The
110          * delay used is 500 ms. <br>
111          * If a new text is set within this delay, the text is not cleared.
112          */

113     public void clearMessageWithDelay() {
114     if (worker != null) {
115         worker.clearDisplayTextWithDelay();
116     }
117     }
118
119     /**
120          * Returns the encapsulated worker object
121          *
122          * @return
123          */

124     public IWorkerStatusController getWorker() {
125     return worker;
126     }
127
128     /**
129          * Sets the encapsulated worker object
130          *
131          * @param theWorker
132          */

133     public void setWorker(IWorkerStatusController theWorker) {
134     this.worker = theWorker;
135     }
136
137     /*
138          * (non-Javadoc)
139          *
140          * @see org.columba.api.command.IStatusObservable#getCancelled()
141          */

142     public boolean isCancelled() {
143     return worker.cancelled();
144     }
145
146     public void cancel(boolean b) {
147     if (b) {
148         worker.cancel();
149     }
150     }
151
152 }
153
Popular Tags