Changeset 254


Ignore:
Timestamp:
03/23/09 23:14:05 (9 years ago)
Author:
tschaub
Message:

use a layer store so we can store additional layer metadata on layer records

Location:
apps/opengeo/geoexplorer/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • apps/opengeo/geoexplorer/trunk/debug.html

    r253 r254  
    2222        <script>
    2323            var app = new GeoExplorer({
    24                 ows: "http://sigma.openplans.org/geoserver/ows",
     24                ows: "/geoserver/ows",
    2525                map: {
    2626                    layers: [{
    27                         name: "bluemarble",
    28                         title: "Global Imagery"
     27                        name: "topp:states",
     28                        title: "States",
     29                        queryable: true
    2930                    }],
    30                     center: [0, 0],
    31                     zoom: 2
     31                    center: [-96.7, 37.6],
     32                    zoom: 4
    3233                }
    3334            });
  • apps/opengeo/geoexplorer/trunk/lib/GeoExplorer.js

    r253 r254  
    5050     */
    5151    map: null,
     52   
     53    /**
     54     * Property: layers
     55     * {GeoExt.data.LayerStore} A store containing a record for each layer
     56     *     on the map.
     57     */
     58    layers: null,
    5259   
    5360    /**
     
    8390        this.initMap();
    8491       
     92        // create the layers store
     93        this.initLayers();
     94       
    8595        // place map in panel
    8696        var mapConfig = this.initialConfig.map || {};
     
    8999            region: "center",
    90100            map: this.map,
     101            // TODO: update the OpenLayers.Map constructor to accept an initial center
    91102            center: mapConfig.center && new OpenLayers.LonLat(mapConfig.center[0], mapConfig.center[1]),
     103            // TODO: update the OpenLayers.Map constructor to accept an initial zoom
    92104            zoom: mapConfig.zoom
    93105        });
     
    144156     */
    145157    initMap: function() {
     158        // TODO: check this.initialConfig.map for any map options
     159        this.map = new OpenLayers.Map();
     160    },
     161   
     162    /**
     163     * Method: initLayers
     164     * Construct the layer store to be used with the map (referenced as <layers>).
     165     */
     166    initLayers: function() {
    146167        var mapConfig = this.initialConfig.map;
    147168        var ows = this.initialConfig.ows;
    148 
    149         var map = new OpenLayers.Map();
    150         // create a dummy layer that acts as the single "base" layer
    151         map.addLayer(
    152             new OpenLayers.Layer(null, {
    153                 isBaseLayer: true,
    154                 displayInLayerSwitcher: false
    155             })
    156         );
     169       
     170        this.layers = new GeoExt.data.LayerStore({
     171            map: this.map
     172        });
     173       
     174        // create a record for the dummy layer that acts as the single baselayer
     175        var records = [
     176            new GeoExt.data.LayerRecord(
     177                new OpenLayers.Layer(null, {
     178                    isBaseLayer: true,
     179                    displayInLayerSwitcher: false
     180                })
     181            )
     182        ];
    157183
    158184        if(mapConfig) {
    159185            if(mapConfig.layers) {
    160                 var layer, layers = [];
     186                var layer;
    161187                for(var i=0, len=mapConfig.layers.length; i<len; ++i) {
    162188                    layer = mapConfig.layers[i];
    163                     layers.push(
     189                    records.push(new GeoExt.data.LayerRecord(
    164190                        new OpenLayers.Layer.WMS(
    165191                            layer.title || layer.name,
     
    167193                            {layers: layer.name},
    168194                            {isBaseLayer: false}
    169                         )
    170                     );
     195                        ),
     196                        layer // pass all additional layer config properties
     197                    ));
    171198                }
    172199            }
    173             map.addLayers(layers);
    174200        }
    175        
    176         this.map = map;
     201        this.layers.add(records);
    177202    }
    178203   
Note: See TracChangeset for help on using the changeset viewer.