Revision 505 2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.swing/org.gvsig.view3d.swing.impl/src/main/java/org/gvsig/view3d/swing/impl/DefaultMapControl3D.java

View differences:

DefaultMapControl3D.java
25 25
package org.gvsig.view3d.swing.impl;
26 26

  
27 27
import gov.nasa.worldwind.Configuration;
28
import gov.nasa.worldwind.Factory;
28 29
import gov.nasa.worldwind.Model;
29 30
import gov.nasa.worldwind.WorldWind;
30 31
import gov.nasa.worldwind.avlist.AVKey;
31 32
import gov.nasa.worldwind.avlist.AVList;
33
import gov.nasa.worldwind.avlist.AVListImpl;
32 34
import gov.nasa.worldwind.awt.WorldWindowGLJPanel;
33 35
import gov.nasa.worldwind.globes.Earth;
34 36
import gov.nasa.worldwind.globes.EarthFlat;
......
44 46
import gov.nasa.worldwind.layers.ViewControlsSelectListener;
45 47
import gov.nasa.worldwind.layers.WorldMapLayer;
46 48
import gov.nasa.worldwind.terrain.CompoundElevationModel;
49
import gov.nasa.worldwind.terrain.ZeroElevationModel;
47 50
import gov.nasa.worldwind.util.StatusBar;
48 51
import gov.nasa.worldwind.view.orbit.BasicOrbitView;
49 52
import gov.nasa.worldwind.view.orbit.FlatOrbitView;
......
402 405

  
403 406
        ElevationModel elevationModel =
404 407
            getWwd().getModel().getGlobe().getElevationModel();
405
        if (elevationModel instanceof CompoundElevationModel) {
406
            CompoundElevationModel compoundElevationModel =
407
                (CompoundElevationModel) elevationModel;
408
        CompoundElevationModel compoundElevationModel =
409
            (CompoundElevationModel) elevationModel;
410
        List<ElevationModel> elevationModels =
411
            compoundElevationModel.getElevationModels();
408 412

  
409
            List<ElevationModel> elevationModels =
410
                compoundElevationModel.getElevationModels();
413
        if (visibility) {
414
            for (ElevationModel eModel : elevationModels) {
415
                if (eModel instanceof ZeroElevationModel) {
416
                    compoundElevationModel.removeElevationModel(eModel);
417
                    compoundElevationModel
418
                        .addElevationModel(getDefaultElevationModel());
419
                    return;
420
                }
421
            }
411 422

  
423
        } else {
412 424
            for (ElevationModel eModel : elevationModels) {
413 425
                if (eModel.getName().equals("USA 10m, World 30m, Ocean 900m")) {
414
                    eModel.setEnabled(visibility);
426
                    compoundElevationModel.removeElevationModel(eModel);
427
                    compoundElevationModel.addElevationModel(0,
428
                        new ZeroElevationModel());
429
                    return;
415 430
                }
416 431
            }
417

  
418
        } else {
419
            elevationModel.setEnabled(visibility);
420 432
        }
421

  
422 433
    }
434
    
435
    private ElevationModel getDefaultElevationModel(){
436
        Factory elevationFactory =
437
            (Factory) WorldWind.createConfigurationComponent(AVKey.ELEVATION_MODEL_FACTORY);
438
        String defaultModelFile = Configuration.getStringValue(AVKey.EARTH_ELEVATION_MODEL_CONFIG_FILE);
439
        
440
        CompoundElevationModel elevationModel = (CompoundElevationModel) elevationFactory.createFromConfigSource(
441
            defaultModelFile, new AVListImpl());
442
        
443
        return elevationModel.getElevationModels().get(0);
444
    }
423 445

  
424 446
    protected void setNasaLandsatLayerVisibility(boolean visibility) {
425 447
        setWWLayerVisibility("i-cubed Landsat", visibility);

Also available in: Unified diff