/**
 * WebGIS JS Library
 * Copyright(c) 2008, Sweco Position
 *
 * Licensed under GPLv3
 * http://www.gnu.org/licenses/gpl.html
 *
 * Author: Björn Harrtell
 */

/**
 * BaseLayerList implemented as an Ext JS combobox extension
 *
 * @constructor
 * @base Ext.form.ComboBox
 * @param {Object}
 *            config
 * @param {OpenLayers.Map}
 *            config.map
 */
WebGIS.BaseLayerList = function(config) {
        var store = new Ext.data.SimpleStore( {
                fields : [ 'layer', 'layerName' ]//,
                //data : [['', '---']]
        });
        var map = config.map;

        Ext.apply(this, {
            valueField :'layer',
            displayField :'layerName',
            mode :'local',
            triggerAction :'all',
            forceSelection :true,
            editable :false,
            autoWidth :true,
            autoHeight :true,
            store :store
        });

        WebGIS.BaseLayerList.superclass.constructor.apply(this, arguments);

        /**
         * @private
         */
        var onSelect = function(combo, record, index) {
                var layer = record.get('layer');
                map.baseLayer.setVisibility(false);
                if (layer) {
                    layer.setVisibility(true);
                    map.baseLayer = layer;
                    //layer.redraw();
                }
        };
        this.on('select', onSelect);

        var update = function() {
            for (var i = 0; i < map.layers.length; i++) {
                  var layer = map.layers[i];
                  if (layer.isBaseLayer) {
                    var row = new Ext.data.Record( {
                        layer: layer,
                        layerName : layer.name
                    });
                    store.add(row);
                  }
            }
			var row = new Ext.data.Record({layer: '', layerName : '---'});
            store.add(row);
         }
         
         this.update = update;

        //this.setValue(map.getZoomForResolution(map.getResolution()));
};

Ext.extend(WebGIS.BaseLayerList, Ext.form.ComboBox);

Ext.reg('webgis-baselayerlist', WebGIS.BaseLayerList);


