Revision 18106 trunk/extensions/extArcims/src/es/prodevelop/cit/gvsig/arcims/fmap/layers/FRasterLyrArcIMS.java
FRasterLyrArcIMS.java | ||
---|---|---|
143 | 143 |
* @author jldominguez |
144 | 144 |
*/ |
145 | 145 |
public class FRasterLyrArcIMS extends FLyrRasterSE { |
146 |
|
|
146 |
|
|
147 | 147 |
private static Logger logger = Logger.getLogger(FRasterLyrArcIMS.class.getName()); |
148 | 148 |
public static final String SCALE_CHANGED_COMMAND = "SCALE_HAS_CHANGED"; |
149 | 149 |
private MyCancellable myCanc; |
... | ... | |
166 | 166 |
private int[] renderBands = null; |
167 | 167 |
private FLyrRasterSE layerRaster = null; |
168 | 168 |
private ArrayList filterArguments = null; |
169 |
|
|
169 |
|
|
170 | 170 |
private int posX = 0; |
171 | 171 |
private int posY = 0; |
172 | 172 |
private double posXWC = 0; |
... | ... | |
174 | 174 |
private ArrayList actionListeners = new ArrayList(); |
175 | 175 |
private int maxTileWidth = 1023; |
176 | 176 |
private int maxTileHeight = 1023; |
177 |
|
|
177 |
|
|
178 | 178 |
private Grid grid = null; |
179 |
|
|
179 |
|
|
180 | 180 |
private boolean nameQueryChange = false; |
181 | 181 |
private ArrayList listeners = new ArrayList(); |
182 | 182 |
private boolean tiled = false; |
... | ... | |
451 | 451 |
tiled = true; |
452 | 452 |
tileSize[0] = tiles.getMaxTileWidth(); |
453 | 453 |
tileSize[1] = tiles.getMaxTileHeight(); |
454 |
|
|
454 |
|
|
455 | 455 |
MultiRasterDataset[][] datasets = new MultiRasterDataset[tiles.getNumRows()][tiles.getNumCols()]; |
456 | 456 |
IBuffer[][] buf = new IBuffer[tiles.getNumRows()][tiles.getNumCols()]; |
457 |
|
|
458 |
|
|
457 |
|
|
458 |
|
|
459 | 459 |
// more than one tile ---------------------- |
460 | 460 |
for (int tileNr = 0; tileNr < tiles.getNumTiles(); tileNr++) { |
461 | 461 |
// drawing part |
462 | 462 |
try { |
463 | 463 |
ViewPort vp = tiles.getTileViewPort(viewPort, tileNr); |
464 | 464 |
drawTile(g, vp, cancel, scale); |
465 |
|
|
465 |
|
|
466 | 466 |
if (layerRaster != null) { |
467 |
datasets[(int)(tileNr / tiles.getNumCols())][tileNr % tiles.getNumCols()] = (MultiRasterDataset)layerRaster.getDataSource().copy();
|
|
467 |
datasets[(int)(tileNr / tiles.getNumCols())][tileNr % tiles.getNumCols()] = (MultiRasterDataset)layerRaster.getDataSource().newDataset();
|
|
468 | 468 |
buf[(int)(tileNr / tiles.getNumCols())][tileNr % tiles.getNumCols()] = layerRaster.getRender().getLastRenderBuffer(); |
469 | 469 |
} |
470 | 470 |
} catch (NoninvertibleTransformException e) { |
... | ... | |
473 | 473 |
logger.error("While drawing tile: " + de.getMessage()); |
474 | 474 |
} |
475 | 475 |
} |
476 |
|
|
476 |
|
|
477 | 477 |
try { |
478 | 478 |
if(datasets != null && datasets[0][0] != null) { |
479 | 479 |
dataset = new CompositeDataset(datasets); |
... | ... | |
484 | 484 |
} catch (LoadLayerException e) { |
485 | 485 |
throw new ReadDriverException("Error inicializando la capa.", e); |
486 | 486 |
} |
487 |
|
|
487 |
|
|
488 | 488 |
// more than one tile ---------------------- |
489 |
|
|
490 |
|
|
489 |
|
|
490 |
|
|
491 | 491 |
} else { |
492 |
|
|
492 |
|
|
493 | 493 |
// one tile -------------------------------- |
494 | 494 |
try { |
495 | 495 |
ViewPort vp = tiles.getTileViewPort(viewPort, 0); |
... | ... | |
498 | 498 |
dataset = layerRaster.getDataSource(); |
499 | 499 |
getRender().setLastRenderBuffer(layerRaster.getRender().getLastRenderBuffer()); |
500 | 500 |
initializeRasterLayer(null, new IBuffer[][]{{layerRaster.getRender().getLastRenderBuffer()}}); |
501 |
|
|
501 |
|
|
502 | 502 |
} catch (NoninvertibleTransformException e) { |
503 | 503 |
logger.error("Non invertible matrix! "); |
504 | 504 |
} catch (DriverException de) { |
... | ... | |
508 | 508 |
} |
509 | 509 |
// one tile -------------------------------- |
510 | 510 |
|
511 |
|
|
511 |
|
|
512 | 512 |
} |
513 | 513 |
|
514 | 514 |
|
... | ... | |
581 | 581 |
ViewPort vp, |
582 | 582 |
double scale, |
583 | 583 |
Cancellable cancel) throws ReadDriverException, LoadLayerException, FilterTypeException { |
584 |
|
|
584 |
|
|
585 | 585 |
//Cerramos el dataset asociado a la capa si est? abierto. |
586 | 586 |
if(layerRaster != null) { |
587 | 587 |
layerRaster.setRemoveRasterFlag(true); |
... | ... | |
668 | 668 |
* @return A list of 2-element arrays { "Attribute name" , Value } |
669 | 669 |
*/ |
670 | 670 |
public ArrayList getAttributes() { |
671 |
|
|
671 |
|
|
672 | 672 |
// if (rasterFile != null) { |
673 | 673 |
// ArrayList attr = new ArrayList(); |
674 | 674 |
// Object[][] a = { |
... | ... | |
883 | 883 |
filterArguments = status.getFilterArguments(); |
884 | 884 |
gridTransparency = status.getTransparency(); |
885 | 885 |
renderBands = status.getRenderBands(); |
886 |
|
|
886 |
|
|
887 | 887 |
} |
888 | 888 |
} |
889 | 889 |
catch (ClassNotFoundException exc) { |
... | ... | |
1258 | 1258 |
private int bandCount = 0; |
1259 | 1259 |
private int dataType = DataBuffer.TYPE_UNDEFINED; |
1260 | 1260 |
} |
1261 |
|
|
1261 |
|
|
1262 | 1262 |
public RasterFilterList getRenderFilterList(){ |
1263 | 1263 |
return (filterList != null) ? filterList : getRender().getFilterList(); |
1264 | 1264 |
} |
... | ... | |
1271 | 1271 |
this.filterList = filterList; |
1272 | 1272 |
super.getRender().setFilterList(filterList); |
1273 | 1273 |
} |
1274 |
|
|
1274 |
|
|
1275 | 1275 |
public void setRenderBands(int[] renderBands) { |
1276 | 1276 |
this.renderBands = renderBands; |
1277 | 1277 |
getRender().setRenderBands(renderBands); |
1278 | 1278 |
} |
1279 |
|
|
1280 |
|
|
1279 |
|
|
1280 |
|
|
1281 | 1281 |
/** |
1282 | 1282 |
* Acciones que se realizan despu?s de asignar la fuente de datos a |
1283 | 1283 |
* la capa raster. |
... | ... | |
1309 | 1309 |
getRender().setLastRenderBuffer(buff); |
1310 | 1310 |
} |
1311 | 1311 |
} |
1312 |
|
|
1312 |
|
|
1313 | 1313 |
public GridTransparency getRenderTransparency() { |
1314 | 1314 |
return (gridTransparency != null) ? gridTransparency : getRender().getLastTransparency(); |
1315 | 1315 |
} |
1316 |
|
|
1316 |
|
|
1317 | 1317 |
public boolean isActionEnabled(int action) { |
1318 | 1318 |
switch (action) { |
1319 | 1319 |
case IRasterLayerActions.ZOOM_PIXEL_RESOLUTION: |
... | ... | |
1327 | 1327 |
|
1328 | 1328 |
return super.isActionEnabled(action); |
1329 | 1329 |
} |
1330 |
|
|
1330 |
|
|
1331 | 1331 |
public int[] getRenderBands() { |
1332 | 1332 |
return (renderBands != null) ? renderBands : getRender().getRenderBands(); |
1333 | 1333 |
} |
1334 | 1334 |
|
1335 |
|
|
1336 |
|
|
1337 |
|
|
1338 |
|
|
1339 |
|
|
1335 |
|
|
1336 |
|
|
1337 |
|
|
1338 |
|
|
1339 |
|
|
1340 | 1340 |
} |
Also available in: Unified diff