Revision 9512 org.gvsig.online/trunk/org.gvsig.online/org.gvsig.online.swing/org.gvsig.online.swing.impl/src/main/java/org/gvsig/online/swing/impl/download/OnlineJDownloadImpl.java
OnlineJDownloadImpl.java | ||
---|---|---|
23 | 23 |
*/ |
24 | 24 |
package org.gvsig.online.swing.impl.download; |
25 | 25 |
|
26 |
import org.gvsig.online.swing.impl.SelectAreaPanel; |
|
27 |
import java.awt.event.ActionEvent; |
|
28 |
import java.awt.event.ActionListener; |
|
29 |
import java.net.MalformedURLException; |
|
30 |
import java.net.URL; |
|
31 |
import java.sql.Timestamp; |
|
32 | 26 |
import java.util.ArrayList; |
33 | 27 |
import java.util.Collections; |
34 | 28 |
import java.util.List; |
... | ... | |
37 | 31 |
import javax.swing.JComponent; |
38 | 32 |
import javax.swing.SwingUtilities; |
39 | 33 |
import javax.swing.event.ChangeEvent; |
40 |
import javax.swing.event.ChangeListener; |
|
41 | 34 |
import javax.swing.event.TableModelEvent; |
42 | 35 |
import org.apache.commons.collections4.CollectionUtils; |
43 | 36 |
import org.apache.commons.lang3.StringUtils; |
44 | 37 |
import org.gvsig.fmap.dal.swing.DALSwingLocator; |
45 | 38 |
import org.gvsig.fmap.dal.swing.DataSwingManager; |
46 |
import org.gvsig.fmap.geom.primitive.Envelope; |
|
47 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
|
48 | 39 |
import org.gvsig.fmap.mapcontrol.MapControl; |
49 |
import org.gvsig.fmap.mapcontrol.MapControlLocator; |
|
50 | 40 |
import org.gvsig.online.lib.api.OnlineLayer; |
51 | 41 |
import org.gvsig.online.lib.api.OnlineLocator; |
52 | 42 |
import org.gvsig.online.lib.api.OnlineManager; |
53 | 43 |
import static org.gvsig.online.lib.api.OnlineManager.ERR_NO_ERROR; |
54 | 44 |
import org.gvsig.online.lib.api.OnlineProject; |
55 |
import org.gvsig.online.lib.api.workingcopy.OnlineEntity; |
|
45 |
import org.gvsig.online.lib.api.workingcopy.OnlineWorkingcopy; |
|
46 |
import org.gvsig.online.lib.api.workingcopy.WorkingArea; |
|
56 | 47 |
import org.gvsig.online.swing.api.OnlineJDownload; |
57 | 48 |
import org.gvsig.online.swing.api.OnlineSwingLocator; |
58 | 49 |
import org.gvsig.online.swing.api.OnlineSwingManager; |
59 | 50 |
import org.gvsig.online.swing.api.OnlineSwingServices; |
60 | 51 |
import org.gvsig.online.swing.impl.OnlineSwingCommons; |
61 | 52 |
import static org.gvsig.online.swing.impl.OnlineSwingCommons.notInSwingThreadInvokeLater; |
62 |
import org.gvsig.online.swing.impl.WMSUtils; |
|
63 | 53 |
import org.gvsig.online.swing.impl.initworkspace.LayersTableModel; |
54 |
import org.gvsig.online.swing.impl.workingarea.WorkingAreaPickerControllerImpl; |
|
64 | 55 |
import org.gvsig.tools.ToolsLocator; |
65 | 56 |
import org.gvsig.tools.i18n.I18nManager; |
66 | 57 |
import org.gvsig.tools.swing.api.Component; |
... | ... | |
71 | 62 |
import org.gvsig.tools.swing.api.task.TaskStatusController; |
72 | 63 |
import org.gvsig.tools.swing.api.task.TaskStatusSwingManager; |
73 | 64 |
import org.gvsig.tools.swing.api.windowmanager.Dialog; |
74 |
import org.gvsig.tools.swing.api.windowmanager.WindowManager; |
|
75 | 65 |
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2; |
76 | 66 |
import org.gvsig.tools.task.SimpleTaskStatus; |
77 | 67 |
import org.gvsig.tools.task.UserCancelTaskException; |
78 | 68 |
import org.gvsig.tools.util.LabeledValue; |
79 | 69 |
import org.slf4j.LoggerFactory; |
80 |
import org.gvsig.online.lib.api.workingcopy.OnlineWorkingcopy; |
|
81 | 70 |
|
82 | 71 |
/** |
83 | 72 |
* |
... | ... | |
91 | 80 |
|
92 | 81 |
private Dialog dialog; |
93 | 82 |
|
94 |
private PickerController<Envelope> workingAreaPicker;
|
|
83 |
private WorkingAreaPickerControllerImpl workingAreaPicker;
|
|
95 | 84 |
private TaskStatusController taskStatusController; |
96 | 85 |
private PickerController<OnlineWorkingcopy> workingcopyPicker; |
97 | 86 |
private List<String> defaultTablesSelection; |
... | ... | |
150 | 139 |
doChangeWorkingcopy(); |
151 | 140 |
}); |
152 | 141 |
|
153 |
this.btnWorkingAreaDialog.addActionListener((ActionEvent e) -> { |
|
154 |
doGetWorkingArea(); |
|
155 |
}); |
|
156 |
|
|
157 |
this.workingAreaPicker = MapControlLocator.getMapControlManager().createEnvelopePickerController( |
|
158 |
() -> { |
|
159 |
LabeledValue<MapControl> n = onlineservices.getActiveMapControl(); |
|
160 |
return (n == null)? null:n.getValue(); |
|
161 |
}, |
|
162 |
txtWorkingArea, |
|
163 |
btnWorkingAreaFromView, |
|
164 |
null |
|
165 |
); |
|
166 |
this.workingAreaPicker.addChangeListener(new ChangeListener() { |
|
167 |
@Override |
|
168 |
public void stateChanged(ChangeEvent e) { |
|
169 |
doChangeWorkingArea(); |
|
170 |
} |
|
171 |
}); |
|
172 | 142 |
this.txtWorkspaceName.setText(""); |
173 | 143 |
this.txtWorkspaceName.setEditable(false); |
144 |
this.workingAreaPicker = new WorkingAreaPickerControllerImpl( |
|
145 |
() -> {return this.getWorkingcopy().getSite();}, |
|
146 |
txtWorkingAreaLabel, |
|
147 |
txtWorkingArea, |
|
148 |
btnWorkingAreaFromView, |
|
149 |
btnWorkingAreaDialog, |
|
150 |
btnWorkingAreaHistory, |
|
151 |
btnWorkingAreaBookmarks, |
|
152 |
() -> { |
|
153 |
LabeledValue<MapControl> n = onlineservices.getActiveMapControl(); |
|
154 |
return (n == null) ? null : n.getValue(); |
|
155 |
}, |
|
156 |
() -> { |
|
157 |
List<OnlineLayer> selectedLayers = getLayersModel().getSelectedLayers(); |
|
158 |
if (selectedLayers.isEmpty()) { |
|
159 |
return null; |
|
160 |
} |
|
161 |
return selectedLayers; |
|
162 |
} |
|
163 |
); |
|
164 |
this.workingAreaPicker.addChangeListener((ChangeEvent e) -> { |
|
165 |
this.getWorkingcopy().setCurrentWorkingArea(this.workingAreaPicker.getWithoutAddHistory()); |
|
166 |
doUpdateEnableComponents(); |
|
167 |
}); |
|
168 |
|
|
174 | 169 |
SwingUtilities.invokeLater(() -> { clearMessage(); }); |
175 | 170 |
ToolsSwingUtils.ensureRowsCols(this, 15, 40, 25, 100); |
176 | 171 |
|
... | ... | |
215 | 210 |
|
216 | 211 |
// 3. Check selected working area |
217 | 212 |
if( enableAll ) { |
218 |
Envelope workingArea = this.workingAreaPicker.get();
|
|
219 |
isThereWorkingArea = (workingArea != null); |
|
213 |
WorkingArea workingArea = this.workingAreaPicker.getWithoutAddHistory();
|
|
214 |
isThereWorkingArea = (workingArea != null && workingArea.getValue() != null);
|
|
220 | 215 |
if( !isThereWorkingArea ) { |
221 | 216 |
message2(enableAll, "_You_must_select_a_working_area"); |
222 | 217 |
} |
... | ... | |
261 | 256 |
if( workingcopy==null ) { |
262 | 257 |
return OnlineManager.ERR_WORKINGCOPY_REQUIRED; |
263 | 258 |
} |
264 |
Envelope workingArea = this.getWorkingArea();
|
|
259 |
WorkingArea workingArea = this.workingAreaPicker.get();
|
|
265 | 260 |
if (workingArea==null ) { |
266 | 261 |
return OnlineManager.ERR_WORKINGAREA_REQUIRED; |
267 | 262 |
} |
... | ... | |
307 | 302 |
status.cancel(); |
308 | 303 |
throw new UserCancelTaskException(); |
309 | 304 |
} |
310 |
err = workingcopy.download(layer.getName(),workingArea, status); |
|
305 |
err = workingcopy.download(layer.getName(),workingArea.getValue(), status);
|
|
311 | 306 |
if (err != ERR_NO_ERROR ) { |
312 | 307 |
// TODO: Que hacer aqui si da error |
313 | 308 |
} |
... | ... | |
364 | 359 |
this.tblLayers.setModel(model); |
365 | 360 |
} |
366 | 361 |
|
367 |
private Envelope getWorkingArea() {
|
|
368 |
return this.workingAreaPicker.get(); |
|
369 |
} |
|
362 |
// private WorkingArea getWorkingArea() {
|
|
363 |
// return this.workingAreaPicker.get();
|
|
364 |
// }
|
|
370 | 365 |
|
371 |
private void doGetWorkingArea() { |
|
372 |
List<OnlineLayer> selectedLayers = getLayersModel().getSelectedLayers(); |
|
373 |
if(selectedLayers.isEmpty()){ |
|
374 |
return; |
|
375 |
} |
|
376 |
|
|
377 |
Envelope area = SelectAreaPanel.getWorkingArea(this.getWorkingcopy().getSite(), selectedLayers); |
|
378 |
if (area != null) { |
|
379 |
workingAreaPicker.set(area); |
|
380 |
doUpdateEnableComponents(); |
|
381 |
} |
|
382 |
} |
|
383 |
|
|
384 | 366 |
private LayersTableModel getLayersModel() { |
385 | 367 |
return (LayersTableModel) this.tblLayers.getModel(); |
386 | 368 |
} |
387 | 369 |
|
388 |
private void doChangeWorkingArea() { |
|
389 |
Envelope env = this.workingAreaPicker.get(); |
|
390 |
if( env == null ) { |
|
391 |
return; |
|
392 |
} |
|
393 |
String s = this.txtWorkingAreaLabel.getText(); |
|
394 |
if( StringUtils.isBlank(s) ) { |
|
395 |
s = "Area "+(new Timestamp(System.currentTimeMillis())).toString(); |
|
396 |
this.txtWorkingAreaLabel.setText(s); |
|
397 |
} |
|
398 |
doUpdateEnableComponents(); |
|
399 |
} |
|
400 |
|
|
401 | 370 |
private SimpleTaskStatus getTaskStatus() { |
402 | 371 |
SimpleTaskStatus taskStatus = ToolsLocator.getTaskStatusManager().createDefaultSimpleTaskStatus("_Create_workingcopy"); |
403 | 372 |
taskStatus.setAutoremove(true); |
... | ... | |
461 | 430 |
}); |
462 | 431 |
this.txtWorkspaceName.setText(w.getLabel()); |
463 | 432 |
this.tblLayers.setModel(model); |
433 |
this.workingAreaPicker.set(w.getCurrentWorkingArea()); |
|
464 | 434 |
doUpdateEnableComponents(); |
465 | 435 |
} |
466 | 436 |
|
Also available in: Unified diff