Revision 18260 trunk/extensions/extArcims/src/es/prodevelop/cit/gvsig/arcims/fmap/layers/FRasterLyrArcIMS.java

View differences:

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().newDataset();
468
						buf[(int)(tileNr / tiles.getNumCols())][tileNr % tiles.getNumCols()] = layerRaster.getRender().getLastRenderBuffer();
467
						datasets[(int)(tileNr / tiles.getNumCols())][tileNr % tiles.getNumCols()] =
468
							(MultiRasterDataset)layerRaster.getDataSource().newDataset();
469
						buf[(int)(tileNr / tiles.getNumCols())][tileNr % tiles.getNumCols()] =
470
							layerRaster.getRender().getLastRenderBuffer();
469 471
					}
470 472
                } catch (NoninvertibleTransformException e) {
471 473
                    logger.error("Non invertible matrix! ", e);
......
473 475
                    logger.error("While drawing tile: " + de.getMessage());
474 476
                }
475 477
            }
476

  
478
            
477 479
			try {
478 480
				if(datasets != null && datasets[0][0] != null) {
479 481
					dataset = new CompositeDataset(datasets);
......
484 486
			} catch (LoadLayerException e) {
485 487
				throw new ReadDriverException("Error inicializando la capa.", e);
486 488
			}
487

  
489
            
488 490
            // more than one tile ----------------------
489

  
490

  
491
            
492
            
491 493
        } else {
492

  
494
        	
493 495
        	// one tile --------------------------------
494 496
                try {
495 497
                    ViewPort vp = tiles.getTileViewPort(viewPort, 0);
......
498 500
        			dataset = layerRaster.getDataSource();
499 501
        			getRender().setLastRenderBuffer(layerRaster.getRender().getLastRenderBuffer());
500 502
        			initializeRasterLayer(null, new IBuffer[][]{{layerRaster.getRender().getLastRenderBuffer()}});
501

  
503
                    
502 504
                } catch (NoninvertibleTransformException e) {
503 505
                    logger.error("Non invertible matrix! ");
504 506
                } catch (DriverException de) {
......
508 510
				}
509 511
        	// one tile --------------------------------
510 512

  
511

  
513
        	
512 514
        }
513 515

  
514 516

  
......
581 583
			ViewPort vp,
582 584
			double scale,
583 585
			Cancellable cancel) throws ReadDriverException, LoadLayerException, FilterTypeException {
584

  
586
		
585 587
		//Cerramos el dataset asociado a la capa si est? abierto.
586 588
		if(layerRaster != null) {
587 589
			layerRaster.setRemoveRasterFlag(true);
......
668 670
     * @return A list of 2-element arrays { "Attribute name" , Value }
669 671
     */
670 672
    public ArrayList getAttributes() {
671

  
673
    	
672 674
//        if (rasterFile != null) {
673 675
//            ArrayList attr = new ArrayList();
674 676
//            Object[][] a = {
......
883 885
						filterArguments = status.getFilterArguments();
884 886
						gridTransparency = status.getTransparency();
885 887
						renderBands = status.getRenderBands();
886

  
888
                        
887 889
                    }
888 890
                }
889 891
                catch (ClassNotFoundException exc) {
......
1258 1260
        private int bandCount = 0;
1259 1261
        private int dataType = DataBuffer.TYPE_UNDEFINED;
1260 1262
    }
1261

  
1263
    
1262 1264
	public RasterFilterList getRenderFilterList(){
1263 1265
		return (filterList != null) ? filterList : getRender().getFilterList();
1264 1266
	}
......
1271 1273
		this.filterList = filterList;
1272 1274
		super.getRender().setFilterList(filterList);
1273 1275
	}
1274

  
1276
	
1275 1277
	public void setRenderBands(int[] renderBands) {
1276 1278
		this.renderBands = renderBands;
1277 1279
		getRender().setRenderBands(renderBands);
1278 1280
	}
1279

  
1280

  
1281
	
1282
	
1281 1283
	/**
1282 1284
	 * Acciones que se realizan despu?s de asignar la fuente de datos a
1283 1285
	 * la capa raster.
......
1309 1311
			getRender().setLastRenderBuffer(buff);
1310 1312
		}
1311 1313
	}
1312

  
1314
	
1313 1315
	public GridTransparency getRenderTransparency() {
1314 1316
		return (gridTransparency != null) ? gridTransparency : getRender().getLastTransparency();
1315 1317
	}
1316

  
1318
	
1317 1319
	public boolean isActionEnabled(int action) {
1318 1320
		switch (action) {
1319 1321
			case IRasterLayerActions.ZOOM_PIXEL_RESOLUTION:
......
1327 1329

  
1328 1330
		return super.isActionEnabled(action);
1329 1331
	}
1330

  
1332
	
1331 1333
	public int[] getRenderBands() {
1332 1334
		return (renderBands != null) ? renderBands : getRender().getRenderBands();
1333 1335
	}
1334 1336

  
1335

  
1336

  
1337

  
1338

  
1339

  
1337
	
1338
	
1339
	
1340
	
1341
    
1340 1342
}

Also available in: Unified diff