Revision 8841

View differences:

org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.wms/org.gvsig.wms.swing/org.gvsig.wms.swing.impl/src/main/java/org/gvsig/wms/swing/impl/DefaultWMSParametersPanelController.java
98 98
    private static final int TAB_STYLES_INDEX = 2;
99 99
    private static final int TAB_DIMENSIONS_INDEX = 3;
100 100
    private static final int TAB_FORMATS_INDEX = 4;
101
    WMSRasterServerExplorer explorer;
102 101
    private WMSRasterServerExplorer serverExplorer;
103 102
    private String format = null;
104 103
    private String infoFormat = null;
......
389 388

  
390 389
    @Override
391 390
    public void dispose() {
392
        DisposeUtils.disposeQuietly(explorer);
391
        DisposeUtils.disposeQuietly(serverExplorer);
393 392
    }
394 393

  
395 394
    private void doConnect() {
org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.wms/org.gvsig.wms.provider/src/main/java/org/gvsig/wms/provider/WMSRasterProvider.java
62 62
import org.gvsig.remoteclient.wms.WMSStatus;
63 63
import org.gvsig.remoteclient.wms.WMSStyle;
64 64
import org.gvsig.tools.dataTypes.DataTypes;
65
import org.gvsig.tools.dispose.Disposable;
66
import org.gvsig.tools.dispose.DisposeUtils;
65 67
import org.gvsig.tools.dynobject.exception.DynFieldNotFoundException;
68
import org.gvsig.tools.exception.BaseException;
66 69
import org.gvsig.tools.locator.LocatorException;
67 70

  
68 71
/**
......
90 93

  
91 94
    private int calculatedMaxZoomLevel = MAX_ZOOM_LEVEL;
92 95

  
96
    private TileStruct tileStruct;
97

  
93 98
    protected WMSRasterProvider(DataStoreParameters params, DataStoreProviderServices storeServices) throws InitializeException {
94 99
        super(params, storeServices, FileHelper.newMetadataContainer(METADATA_DEFINITION_NAME));
95 100
        initParams();
......
379 384

  
380 385
    @Override
381 386
    public TileStruct getTileStruct() {
382
        TileStruct tileStruct = new DefaultTileStruct();
383
        tileStruct.setColumnsPerTile(DEFAULT_BUFFER_SIZE);
384
        tileStruct.setRowsPerTile(DEFAULT_BUFFER_SIZE);
387
        if (tileStruct == null) {
388
            tileStruct = new DefaultTileStruct();
389
            tileStruct.setColumnsPerTile(DEFAULT_BUFFER_SIZE);
390
            tileStruct.setRowsPerTile(DEFAULT_BUFFER_SIZE);
385 391

  
386
        try {
387
            Envelope envelope = getEnvelope();
388
            tileStruct.setEnvelope(envelope);
392
            try {
393
                Envelope envelope = getEnvelope();
394
                tileStruct.setEnvelope(envelope);
389 395

  
390
            Map<Integer, Double> zoomLevels = new HashMap<Integer, Double>();
391
            double pixelSize;
392
            double length;
393
            if (envelope.getLength(DIMENSIONS.X) >= envelope.getLength(DIMENSIONS.Y)) {
394
                length = envelope.getLength(DIMENSIONS.X);
395
            } else {
396
                length = envelope.getLength(DIMENSIONS.Y);
396
                Map<Integer, Double> zoomLevels = new HashMap<Integer, Double>();
397
                double pixelSize;
398
                double length;
399
                if (envelope.getLength(DIMENSIONS.X) >= envelope.getLength(DIMENSIONS.Y)) {
400
                    length = envelope.getLength(DIMENSIONS.X);
401
                } else {
402
                    length = envelope.getLength(DIMENSIONS.Y);
403
                }
404
                pixelSize = length / DEFAULT_BUFFER_SIZE;
405
                for (int zoomLevel = 0; (zoomLevel <= MAX_ZOOM_LEVEL) && ((length / pixelSize) < Integer.MAX_VALUE); zoomLevel++) {
406
                    zoomLevels.put(zoomLevel, pixelSize);
407
                    pixelSize = pixelSize / 2;
408
                    calculatedMaxZoomLevel = zoomLevel;
409
                }
410

  
411
                tileStruct.setPixelSizePerZoomLevel(zoomLevels);
412
            } catch (LocatorException e) {
413
                logger.warn("Can't create world extent of GoogleMaps", e);
397 414
            }
398
            pixelSize = length / DEFAULT_BUFFER_SIZE;
399
            for (int zoomLevel = 0; (zoomLevel <= MAX_ZOOM_LEVEL) && ((length/pixelSize)<Integer.MAX_VALUE); zoomLevel++) {
400
                zoomLevels.put(zoomLevel, pixelSize);
401
                pixelSize = pixelSize / 2;
402
                calculatedMaxZoomLevel = zoomLevel;
403
            }
404

  
405
            tileStruct.setPixelSizePerZoomLevel(zoomLevels);
406
        } catch (LocatorException e) {
407
            logger.warn("Can't create world extent of GoogleMaps", e);
408 415
        }
409 416
        return tileStruct;
410 417
    }
......
439 446
        return this.dimensions;
440 447
    }
441 448

  
449
    @Override
450
    protected void doDispose() throws BaseException {
451
        super.doDispose();
452
        if(this.tileStruct!=null) {
453
            DisposeUtils.dispose((Disposable) this.tileStruct);
454
            this.tileStruct = null;
455
        }
456
    }
457

  
442 458
}
org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.wms/org.gvsig.wms.app/org.gvsig.wms.app.mainplugin/src/main/java/org/gvsig/wms/app/mainplugin/WMSAddLayerPanel.java
122 122
                FLayer layer = createLayersTree(mapContext, node);
123 123
                getMapCtrl().addLayer(layer);
124 124
                mapContext.invalidate();
125
                DisposeUtils.dispose(layer);
125 126
            }
126 127
        });
127 128
        task.start();

Also available in: Unified diff