Revision 527 2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.swing/org.gvsig.view3d.swing.impl/src/main/java/org/gvsig/view3d/swing/impl/DefaultSynchronizer.java
DefaultSynchronizer.java | ||
---|---|---|
63 | 63 |
private DefaultMapControl3D mapControl3D; |
64 | 64 |
private MapContext mapContext; |
65 | 65 |
private WorldWindow wwd; |
66 |
|
|
67 |
private Object synchronizingLayerLock = new Object(); |
|
66 | 68 |
|
67 | 69 |
protected DefaultSynchronizer(DefaultMapControl3D theMapControl3D, |
68 | 70 |
MapContext theMapContext, WorldWindow wwd) { |
... | ... | |
272 | 274 |
|
273 | 275 |
View3DManager manager = View3DLocator.getManager(); |
274 | 276 |
LayerProperties3D layerProperties = manager.getLayerProperties(layer); |
277 |
synchronized (synchronizingLayerLock) { |
|
278 |
if (layerProperties.getElevation() == true) { |
|
275 | 279 |
|
276 |
if (layerProperties.getElevation() == true) { |
|
280 |
if (tiledlayerRegister.containsKey(layer)) { |
|
281 |
tiledlayerRegister.remove(layer); |
|
282 |
} |
|
277 | 283 |
|
278 |
if (tiledlayerRegister.containsKey(layer)) { |
|
279 |
tiledlayerRegister.remove(layer); |
|
280 |
} |
|
281 |
|
|
282 |
if(elevationModelLayerRegister.containsKey(layer) || status == LAYER_SYNCHRONIZE_STATUS.ADD){ |
|
283 |
elevationModelLayerRegister.put(layer, status); |
|
284 |
} |
|
285 |
} else { |
|
284 |
if (elevationModelLayerRegister.containsKey(layer) |
|
285 |
|| status == LAYER_SYNCHRONIZE_STATUS.ADD) { |
|
286 |
elevationModelLayerRegister.put(layer, status); |
|
287 |
} |
|
288 |
} else { |
|
286 | 289 |
|
287 |
if (elevationModelLayerRegister.containsKey(layer)) { |
|
288 |
elevationModelLayerRegister.remove(layer); |
|
290 |
if (elevationModelLayerRegister.containsKey(layer)) { |
|
291 |
elevationModelLayerRegister.remove(layer); |
|
292 |
} |
|
293 |
if (tiledlayerRegister.containsKey(layer) |
|
294 |
|| status == LAYER_SYNCHRONIZE_STATUS.ADD) { |
|
295 |
tiledlayerRegister.put(layer, status); |
|
296 |
} |
|
289 | 297 |
} |
290 |
if(tiledlayerRegister.containsKey(layer) || status == LAYER_SYNCHRONIZE_STATUS.ADD){ |
|
291 |
tiledlayerRegister.put(layer, status); |
|
292 |
} |
|
293 | 298 |
} |
294 | 299 |
} |
295 | 300 |
|
... | ... | |
297 | 302 |
|
298 | 303 |
List<FLayer> removedLayers = new ArrayList<FLayer>(); |
299 | 304 |
|
300 |
synchronized (tiledlayerRegister) { |
|
301 |
|
|
305 |
synchronized (synchronizingLayerLock) { |
|
302 | 306 |
// Synchronize tiledImageLayers |
303 | 307 |
for (Entry<FLayer, LAYER_SYNCHRONIZE_STATUS> entry : tiledlayerRegister |
304 | 308 |
.entrySet()) { |
... | ... | |
324 | 328 |
break; |
325 | 329 |
} |
326 | 330 |
} |
327 |
} |
|
328 | 331 |
|
329 |
synchronized (elevationModelLayerRegister) { |
|
330 | 332 |
// Synchronize elevationModelLayerRegister |
331 | 333 |
for (Entry<FLayer, LAYER_SYNCHRONIZE_STATUS> entry : elevationModelLayerRegister |
332 | 334 |
.entrySet()) { |
... | ... | |
352 | 354 |
break; |
353 | 355 |
} |
354 | 356 |
} |
355 |
} |
|
356 | 357 |
|
357 |
for (FLayer fLayer : removedLayers) { |
|
358 |
if (tiledlayerRegister.containsKey(fLayer)) { |
|
359 |
tiledlayerRegister.remove(fLayer); |
|
360 |
break; |
|
361 |
} else if (elevationModelLayerRegister.containsKey(fLayer)) { |
|
362 |
elevationModelLayerRegister.remove(fLayer); |
|
363 |
break; |
|
358 |
for (FLayer fLayer : removedLayers) { |
|
359 |
if (tiledlayerRegister.containsKey(fLayer)) { |
|
360 |
tiledlayerRegister.remove(fLayer); |
|
361 |
break; |
|
362 |
} else if (elevationModelLayerRegister.containsKey(fLayer)) { |
|
363 |
elevationModelLayerRegister.remove(fLayer); |
|
364 |
break; |
|
365 |
} |
|
364 | 366 |
} |
365 | 367 |
} |
366 | 368 |
} |
Also available in: Unified diff