Revision 43867 branches/org.gvsig.desktop-2018a/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.impl/src/main/java/org/gvsig/fmap/mapcontext/raster/impl/DefaultRasterLayer.java
DefaultRasterLayer.java | ||
---|---|---|
32 | 32 |
import java.util.Observer; |
33 | 33 |
import java.util.Set; |
34 | 34 |
import java.util.TreeSet; |
35 |
import java.util.logging.Level; |
|
36 |
import java.util.logging.Logger; |
|
35 | 37 |
|
36 | 38 |
import org.cresques.cts.ICoordTrans; |
37 | 39 |
import org.slf4j.LoggerFactory; |
... | ... | |
39 | 41 |
import org.gvsig.compat.print.PrintAttributes; |
40 | 42 |
import org.gvsig.fmap.dal.DataStore; |
41 | 43 |
import org.gvsig.fmap.dal.exception.DataException; |
44 |
import org.gvsig.fmap.dal.exception.InitializeException; |
|
42 | 45 |
import org.gvsig.fmap.dal.exception.ReadException; |
43 | 46 |
import org.gvsig.fmap.dal.raster.api.BandAttributeDescriptor; |
44 | 47 |
import org.gvsig.fmap.dal.raster.api.BandDescriptor; |
... | ... | |
67 | 70 |
import org.gvsig.fmap.mapcontext.rendering.legend.events.LegendClearEvent; |
68 | 71 |
import org.gvsig.fmap.mapcontext.rendering.legend.events.SymbolLegendEvent; |
69 | 72 |
import org.gvsig.metadata.exceptions.MetadataException; |
73 |
import org.gvsig.raster.lib.buffer.api.BufferDimensions; |
|
70 | 74 |
import org.gvsig.raster.lib.buffer.api.BufferLocator; |
71 | 75 |
import org.gvsig.raster.lib.buffer.api.statistics.Statistics; |
72 | 76 |
import org.gvsig.raster.lib.legend.api.RasterLegend; |
... | ... | |
292 | 296 |
rasterQuery.setClip(reprojectedViewPortEnvelope); |
293 | 297 |
|
294 | 298 |
RasterSet rasterSet = null; |
299 |
SimpleTaskStatus taskStatus = null; |
|
295 | 300 |
try { |
296 | 301 |
|
297 | 302 |
long tini = System.currentTimeMillis(); |
298 | 303 |
|
299 | 304 |
// TODO Task status should be used to cancel |
300 | 305 |
TaskStatusManager manager = ToolsLocator.getTaskStatusManager(); |
301 |
final SimpleTaskStatus taskStatus = manager.createDefaultSimpleTaskStatus("Draw " + getDataStore().getName()); |
|
306 |
taskStatus = manager.createDefaultSimpleTaskStatus("Draw " + getDataStore().getName()); |
|
307 |
taskStatus.setAutoremove(true); |
|
308 |
taskStatus.add(); |
|
302 | 309 |
rasterSet = getRasterStore().getRasterSet(rasterQuery); |
303 | 310 |
if (!rasterSet.isEmpty()) { |
304 | 311 |
getLegend().draw(g, rasterSet, viewPort, taskStatus); |
305 | 312 |
logger.debug("Layer " + this.getName() + " drawn in " + (System.currentTimeMillis() - tini) |
306 | 313 |
+ " milliseconds."); |
307 | 314 |
} |
315 |
|
|
308 | 316 |
|
309 | 317 |
} catch (DataException e) { |
318 |
if( taskStatus!=null ) { |
|
319 |
taskStatus.abort(); |
|
320 |
taskStatus = null; |
|
321 |
} |
|
310 | 322 |
this.setAvailable(false); |
311 | 323 |
this.setError(e); |
312 | 324 |
throw new ReadException(getName(), e); |
... | ... | |
315 | 327 |
DisposeUtils.dispose(rasterSet); |
316 | 328 |
rasterSet = null; |
317 | 329 |
} |
330 |
if( taskStatus!=null ) { |
|
331 |
taskStatus.terminate(); |
|
332 |
taskStatus = null; |
|
333 |
} |
|
318 | 334 |
} |
319 | 335 |
|
320 | 336 |
} |
... | ... | |
441 | 457 |
} catch (LocatorException | DataException | CreateEnvelopeException e) { |
442 | 458 |
} |
443 | 459 |
int bands = rasterStore.getBands(); |
460 |
int rows = -1; |
|
461 |
int columns = -1; |
|
462 |
String pixelSize = "-/-"; |
|
463 |
try { |
|
464 |
BufferDimensions dimensions = rasterStore.getDimensions(); |
|
465 |
rows = dimensions.getRows(); |
|
466 |
columns = dimensions.getColumns(); |
|
467 |
pixelSize = String.format("%.3f/%.3f", dimensions.getPixelSizeX(), dimensions.getPixelSizeY()); |
|
468 |
} catch (InitializeException ex) { |
|
469 |
} |
|
444 | 470 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
445 | 471 |
LayerInformationBuilder builder = MapContextLocator.getMapContextManager().createLayerInformationBuilder(); |
446 | 472 |
|
... | ... | |
455 | 481 |
} |
456 | 482 |
|
457 | 483 |
builder.property().labelkey("_bands").value("%d", bands); |
484 |
builder.property().labelkey("_rows").value("%d", rows); |
|
485 |
builder.property().labelkey("_columns").value("%d", columns); |
|
486 |
builder.property().labelkey("_pixel_size").value("%s", pixelSize); |
|
458 | 487 |
builder.property().labelkey("transparency").value("%d", this.getTransparency()); |
459 | 488 |
|
460 | 489 |
builder.title().labelkey("_Coordenadas_geograficas"); |
Also available in: Unified diff