Revision 2411 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.impl/src/main/java/org/gvsig/tools/swing/impl/task/DefaultJTaskStatusController.java
DefaultJTaskStatusController.java | ||
---|---|---|
25 | 25 |
|
26 | 26 |
import org.gvsig.tools.swing.api.task.TaskStatusController; |
27 | 27 |
import java.awt.event.ActionEvent; |
28 |
import java.awt.event.ActionListener; |
|
29 | 28 |
import java.net.URL; |
30 | 29 |
|
31 | 30 |
import javax.swing.ImageIcon; |
... | ... | |
38 | 37 |
import org.gvsig.tools.observer.Observer; |
39 | 38 |
import org.gvsig.tools.task.SimpleTaskStatus; |
40 | 39 |
import org.gvsig.tools.task.TaskStatus; |
40 |
import org.gvsig.tools.task.TaskStatusManager; |
|
41 | 41 |
|
42 | 42 |
/** |
43 | 43 |
* Default implementation of the {@link TaskStatusController}. |
... | ... | |
56 | 56 |
private boolean showCancelButton; |
57 | 57 |
private boolean showRemoveTaskButton; |
58 | 58 |
|
59 |
private TaskStatus taskStatus; |
|
60 |
|
|
59 |
private TaskStatus bindedTaskStatus; |
|
60 |
private TaskStatusManager bindedTaskStatusManager; |
|
61 |
|
|
61 | 62 |
public DefaultJTaskStatusController( |
62 | 63 |
TaskStatus taskStatus, |
63 | 64 |
JLabel titlelabel, |
... | ... | |
72 | 73 |
this.cancelRequestButton = cancelRequestButton; |
73 | 74 |
this.removeTaskButton = removeTaskButton; |
74 | 75 |
|
75 |
this.taskStatus = null;
|
|
76 |
this.bindedTaskStatus = null;
|
|
76 | 77 |
this.showCancelButton = true; |
77 | 78 |
|
78 | 79 |
this.bind(taskStatus); |
... | ... | |
121 | 122 |
if (!this.showCancelButton) { |
122 | 123 |
this.cancelRequestButton.setVisible(this.showCancelButton); |
123 | 124 |
} |
124 |
this.cancelRequestButton.addActionListener(new ActionListener() { |
|
125 |
public void actionPerformed(ActionEvent arg0) { |
|
126 |
cancelRequestButton.setEnabled(false); |
|
127 |
taskStatus.cancelRequest(); |
|
128 |
} |
|
125 |
this.cancelRequestButton.addActionListener((ActionEvent arg0) -> { |
|
126 |
cancelRequestButton.setEnabled(false); |
|
127 |
bindedTaskStatus.cancelRequest(); |
|
129 | 128 |
}); |
130 | 129 |
this.removeTaskButton.setIcon(getIcon("removeTaskButton.png")); |
131 | 130 |
this.removeTaskButton.setDisabledIcon(getIcon("disabledRemoveTaskButton.png")); |
132 | 131 |
this.removeTaskButton.setEnabled(true); |
133 |
this.removeTaskButton.addActionListener(new ActionListener() { |
|
134 |
public void actionPerformed(ActionEvent arg0) { |
|
135 |
if (taskStatus.isRunning()) { |
|
136 |
if ((arg0.getModifiers() & ActionEvent.CTRL_MASK) == ActionEvent.CTRL_MASK) { |
|
137 |
taskStatus.getManager().remove(taskStatus); |
|
138 |
} |
|
139 |
} else { |
|
140 |
taskStatus.getManager().remove(taskStatus); |
|
132 |
this.removeTaskButton.addActionListener((ActionEvent arg0) -> { |
|
133 |
if (bindedTaskStatus.isRunning()) { |
|
134 |
if ((arg0.getModifiers() & ActionEvent.CTRL_MASK) == ActionEvent.CTRL_MASK) { |
|
135 |
bindedTaskStatus.getManager().remove(bindedTaskStatus); |
|
141 | 136 |
} |
137 |
} else { |
|
138 |
bindedTaskStatus.getManager().remove(bindedTaskStatus); |
|
142 | 139 |
} |
143 | 140 |
}); |
144 | 141 |
} |
145 | 142 |
|
143 |
@Override |
|
144 |
public void setVisible(boolean visible) { |
|
145 |
if( !SwingUtilities.isEventDispatchThread() ) { |
|
146 |
SwingUtilities.invokeLater(() -> { |
|
147 |
setVisible(visible); |
|
148 |
}); |
|
149 |
return; |
|
150 |
} |
|
151 |
this.titlelabel.setVisible(visible); |
|
152 |
this.messagelabel.setVisible(visible); |
|
153 |
this.progressBar.setVisible(visible); |
|
154 |
this.cancelRequestButton.setVisible(visible); |
|
155 |
this.removeTaskButton.setVisible(visible); |
|
156 |
} |
|
157 |
|
|
158 |
|
|
159 |
@Override |
|
146 | 160 |
public boolean getShowCancelButton() { |
147 | 161 |
return this.showCancelButton; |
148 | 162 |
} |
149 | 163 |
|
164 |
@Override |
|
150 | 165 |
public void setShowCancelButton(boolean showCancelButton) { |
151 | 166 |
this.showCancelButton = showCancelButton; |
152 | 167 |
if (this.cancelRequestButton != null) { |
... | ... | |
154 | 169 |
} |
155 | 170 |
} |
156 | 171 |
|
172 |
@Override |
|
157 | 173 |
public boolean getShowRemoveTaskButton() { |
158 | 174 |
return this.showRemoveTaskButton; |
159 | 175 |
} |
160 | 176 |
|
177 |
@Override |
|
161 | 178 |
public void setShowRemoveTaskButton(boolean showRemoveTaskButton) { |
162 | 179 |
this.showRemoveTaskButton = showRemoveTaskButton; |
163 | 180 |
if (this.removeTaskButton != null) { |
... | ... | |
165 | 182 |
} |
166 | 183 |
} |
167 | 184 |
|
185 |
@Override |
|
168 | 186 |
public void bind(TaskStatus taskStatus) { |
169 |
if (this.taskStatus != null) {
|
|
170 |
this.taskStatus.deleteObserver(this);
|
|
187 |
if (this.bindedTaskStatus != null) {
|
|
188 |
this.bindedTaskStatus.deleteObserver(this);
|
|
171 | 189 |
} |
172 |
this.taskStatus = taskStatus; |
|
173 |
if (this.taskStatus != null) { |
|
174 |
this.taskStatus.addObserver(this); |
|
190 |
if (this.bindedTaskStatusManager != null) { |
|
191 |
this.bindedTaskStatusManager.deleteObserver(this); |
|
175 | 192 |
} |
193 |
this.bindedTaskStatus = taskStatus; |
|
194 |
this.bindedTaskStatusManager = null; |
|
195 |
if (this.bindedTaskStatus != null) { |
|
196 |
this.bindedTaskStatus.addObserver(this); |
|
197 |
} |
|
176 | 198 |
} |
199 |
|
|
200 |
public void bind(TaskStatusManager taskStatusManager) { |
|
201 |
if (this.bindedTaskStatus != null) { |
|
202 |
this.bindedTaskStatus.deleteObserver(this); |
|
203 |
} |
|
204 |
if (this.bindedTaskStatusManager != null) { |
|
205 |
this.bindedTaskStatusManager.deleteObserver(this); |
|
206 |
} |
|
207 |
this.bindedTaskStatus = null; |
|
208 |
this.bindedTaskStatusManager = taskStatusManager; |
|
209 |
if (this.bindedTaskStatusManager != null) { |
|
210 |
this.bindedTaskStatusManager.addObserver(this); |
|
211 |
} |
|
212 |
} |
|
177 | 213 |
|
178 | 214 |
private ImageIcon getIcon(String name) { |
179 | 215 |
URL iconurl = this.getClass().getResource(name); |
... | ... | |
182 | 218 |
} |
183 | 219 |
return new ImageIcon(iconurl); |
184 | 220 |
} |
221 |
|
|
222 |
@Override |
|
185 | 223 |
public void update(final Observable observable, final Object notification) { |
186 | 224 |
|
187 |
if (observable != null && !(observable instanceof TaskStatus)) {
|
|
225 |
if( observable==null ) {
|
|
188 | 226 |
return; |
189 | 227 |
} |
228 |
TaskStatus theTaskStatus; |
|
229 |
if( observable instanceof TaskStatus ) { |
|
230 |
theTaskStatus = (TaskStatus) observable; |
|
231 |
} else if( observable instanceof TaskStatusManager ) { |
|
232 |
theTaskStatus = (TaskStatus) notification; |
|
233 |
if( theTaskStatus == null ) { |
|
234 |
TaskStatusManager manager = (TaskStatusManager)observable; |
|
235 |
theTaskStatus = manager.getRunningTaskStatusMostRecent(); |
|
236 |
} |
|
237 |
} else { |
|
238 |
return; |
|
239 |
} |
|
190 | 240 |
if (!SwingUtilities.isEventDispatchThread()) { |
191 |
SwingUtilities.invokeLater(new Runnable() { |
|
192 |
public void run() { |
|
193 |
update(observable, notification); |
|
194 |
} |
|
241 |
SwingUtilities.invokeLater(() -> { |
|
242 |
update(observable, notification); |
|
195 | 243 |
}); |
196 | 244 |
return; |
197 | 245 |
} |
198 |
TaskStatus theTaskStatus = (TaskStatus) observable; |
|
199 | 246 |
if (theTaskStatus == null || !theTaskStatus.isRunning()) { |
200 | 247 |
this.messagelabel.setText(theTaskStatus==null?"":theTaskStatus.getLabel()); |
201 | 248 |
|
... | ... | |
221 | 268 |
|
222 | 269 |
} |
223 | 270 |
|
271 |
@Override |
|
224 | 272 |
public TaskStatus getTaskStatus() { |
225 |
return this.taskStatus;
|
|
273 |
return this.bindedTaskStatus;
|
|
226 | 274 |
} |
227 | 275 |
|
228 | 276 |
@Override |
277 |
public SimpleTaskStatus getSimpleTaskStatus() { |
|
278 |
return (SimpleTaskStatus) this.bindedTaskStatus; |
|
279 |
} |
|
280 |
|
|
281 |
@Override |
|
229 | 282 |
public void setTitle(String title) { |
230 |
if (this.taskStatus instanceof SimpleTaskStatus) {
|
|
231 |
((SimpleTaskStatus) this.taskStatus).setTitle(title);
|
|
283 |
if (this.bindedTaskStatus instanceof SimpleTaskStatus) {
|
|
284 |
((SimpleTaskStatus) this.bindedTaskStatus).setTitle(title);
|
|
232 | 285 |
} |
233 | 286 |
} |
234 | 287 |
|
288 |
@Override |
|
235 | 289 |
public void message(String message) { |
236 |
if (this.taskStatus instanceof SimpleTaskStatus) {
|
|
237 |
((SimpleTaskStatus) this.taskStatus).message(message);
|
|
290 |
if (this.bindedTaskStatus instanceof SimpleTaskStatus) {
|
|
291 |
((SimpleTaskStatus) this.bindedTaskStatus).message(message);
|
|
238 | 292 |
} |
239 | 293 |
} |
240 | 294 |
|
295 |
@Override |
|
241 | 296 |
public void setCurValue(long value) { |
242 |
if (this.taskStatus instanceof SimpleTaskStatus) {
|
|
243 |
((SimpleTaskStatus) this.taskStatus).setCurValue(value);
|
|
297 |
if (this.bindedTaskStatus instanceof SimpleTaskStatus) {
|
|
298 |
((SimpleTaskStatus) this.bindedTaskStatus).setCurValue(value);
|
|
244 | 299 |
} |
245 | 300 |
} |
246 | 301 |
|
Also available in: Unified diff