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 |
|