Changeset 5851 for cowsclient


Ignore:
Timestamp:
20/10/09 11:46:44 (10 years ago)
Author:
pnorton
Message:

Added some code to display the split axis selects when the xml file is included in the getCapabilities metadata.

Location:
cowsclient/trunk/cowsclient
Files:
5 added
6 edited

Legend:

Unmodified
Added
Removed
  • cowsclient/trunk/cowsclient/controllers/wmsviz.py

    r5837 r5851  
    7979                response.write(jsonTxt) 
    8080                return 
     81             
     82            if self.inputs['REQUEST'] == 'GetAxisConfig': 
     83                 
     84                respText = GetResponse(self.inputs['URL']) 
     85                 
     86                response.headers['Content-Type'] = 'text/xml' 
     87                response.write(respText) 
     88                return             
    8189                 
    8290 
  • cowsclient/trunk/cowsclient/public/js/ajaxRetriever.js

    r5709 r5851  
    2020    getResponse: function (params, onSuccessFunction, onFailureFunction, onExceptionFunction) { 
    2121         
     22        this._getResponse(params, onSuccessFunction, onFailureFunction, onExceptionFunction); 
     23    }, 
     24     
     25    _getResponse: function (params, onSuccessFunction, onFailureFunction, onExceptionFunction) { 
     26         
    2227        if (this._isCached(params)) { 
    2328             
     
    2833             
    2934            var onRetrieve = function (xhr) { 
    30                 this._addToLookup(params, xhr); 
    31                 onSuccessFunction(xhr); 
     35                var resp = this._processResponse(xhr); 
     36                this._addToLookup(params, resp); 
     37                onSuccessFunction(resp); 
    3238            }; 
    3339 
     
    5561    }, 
    5662     
    57     _addToLookup: function (params, xhr) { 
     63     
     64    _processResponse: function (xhr) { 
     65        return xhr; 
     66    }, 
     67     
     68    _addToLookup: function (params, resp) { 
    5869        var pString = this._getParamsString(params); 
    59         this._contextLookup[pString] = xhr; 
     70        this._contextLookup[pString] = resp; 
    6071    }, 
    6172     
  • cowsclient/trunk/cowsclient/public/js/capabilities.js

    r5721 r5851  
    270270        //!TODO: check that the style is in the layers styles 
    271271         
    272         WMSC.log("style = " + style) 
     272        WMSC.log("style = " + style); 
    273273         
    274274        //if no style specified just return the first 
     
    313313         
    314314        return displayOpts; 
     315    }, 
     316     
     317    getAxisConfigURL: function() { 
     318        var url = null; 
     319         
     320        for (var i = 0; i < this.node.getElementsByTagName('MetadataURL').length; i++) { 
     321            var metaURL = this.node.getElementsByTagName('MetadataURL')[i]; 
     322 
     323            if (metaURL !== undefined && metaURL.getAttribute('type') == 'axis_config') { 
     324                var olr = WMSC.traverseWMSDom(metaURL, ['OnlineResource']);  
     325                url = olr.getAttribute('xlink:href'); 
     326            } 
     327        } 
     328         
     329        return url; 
    315330    } 
    316331}; 
  • cowsclient/trunk/cowsclient/public/js/layerDimensions.js

    r5776 r5851  
    55 */ 
    66 
    7 /*globals WMSC: false, OpenLayers: false, document: false, Utils: false*/ 
     7/*globals WMSC: false, OpenLayers: false, document: false, Utils: false,  
     8  AxisConfigRetriever:false, SplitAxisSelect:false */ 
    89 
    910 
     
    1516    this.eventsManager = eventsManager; 
    1617    this._handlerLookup  = null; 
     18    this._retriever = new AxisConfigRetriever(); 
    1719     
    1820    this.eventsManager.register('CURRENT_WMCLAYER_CHANGED', this, this._onCurrentLayerChanged); 
     
    2830        this._clearForm(); 
    2931         
     32         
    3033        if (e.wmcLayer !== null && e.olLayer !== null) { 
    31             this._buildForm(e.wmcLayer, e.olLayer); 
     34            var configURL = e.wmcLayer.getAxisConfigURL(); 
     35             
     36            if (configURL === null) { 
     37                this._buildForm(e.wmcLayer, e.olLayer); 
     38            } 
     39            else { 
     40                 
     41                var onRetrieveAxisConfig = function (axisConfig) { 
     42                    this._buildForm(e.wmcLayer, e.olLayer, axisConfig); 
     43                }; 
     44                 
     45                this._retriever.getResponse( 
     46                        configURL,  
     47                        onRetrieveAxisConfig.bindAsEventListener(this) 
     48                ); 
     49            } 
    3250        } 
    3351    }, 
     
    4361    },     
    4462     
    45     _buildForm: function (wmcLayer, olLayer) { 
     63    _buildForm: function (wmcLayer, olLayer, axisConfig) { 
     64         
     65 
    4666        var div, i; 
    4767        var dims = wmcLayer.getDimensions(); 
     
    5474             
    5575            var extent = dims[id].getExtent(); 
    56          
    57             var values = []; 
    58             var descriptions = []; 
    5976             
    60             for (i = 0; i < extent.length; i++) { 
    61                 descriptions.push(this.getDimensionText(dims[id], extent[i])); 
    62                 values.push(extent[i]); 
     77            var select = null; 
     78             
     79            if (axisConfig === undefined) { 
     80                select = new SplitAxisSelect(id, extent, dims[id].getName(), 'layerDimItem'); 
    6381            } 
     82            else { 
     83                select = new SplitAxisSelect(id, axisConfig.getAxisMapping(id), dims[id].getName(), 'layerDimItem'); 
     84            } 
     85             
     86            fs.appendChild(select.build(div)); 
    6487 
    65             var defaultVal = this._getLayerProperty(olLayer, id); 
    66             var select = Utils.buildSelectBox(id, descriptions, values, defaultVal); 
    67  
    68             div = Utils.buildLabelInputDiv(dims[id].getName(), select, 'layerDimItem'); 
    69              
    70             fs.appendChild(div); 
    7188        } 
    7289         
     
    86103        var target = e.target || e.srcElement; 
    87104         
    88         var param = target.id.substr(7); 
     105        var param = null; 
     106        var value = null; 
     107         
     108        var ssIndex = target.id.indexOf('_subselect_'); 
     109        if (ssIndex > -1) { 
     110            param = target.id.substring(7, ssIndex); 
     111            value = document.getElementById('select_' + param).value; 
     112        } else { 
     113            param = target.id.substr(7); 
     114            value = target.value; 
     115        } 
    89116 
    90117        this.eventsManager.triggerEvent("LAYER_DIMENSION_CHANGED",  
    91                 {param: param, value: target.value}); 
     118                {param: param, value: value}); 
    92119    }, 
    93120 
  • cowsclient/trunk/cowsclient/public/layout/layer_properties.css

    r5690 r5851  
    1111 
    1212.layerInfoItem, .displayOptionItem, .layerDimItem{ 
    13         height:25px; 
     13         
    1414} 
    1515 
    16 .layerInfoItem label, 
    17 .displayOptionItem label, 
    18 .layerDimItem label { 
     16.layerInfoItem > label, 
     17.displayOptionItem > label, 
     18.layerDimItem > label { 
    1919        width:35%; 
    2020        line-height:25px; 
    2121        display:inline-block; 
    2222} 
     23 
     24#layer_dimensions_container { 
     25        height:auto; 
     26} 
     27 
     28/* add a slight indent to the subselect labels */ 
     29div.subselect_input { 
     30    margin-left:10px; 
     31} 
     32 
     33div.subselect_input > label { 
     34    display:inline-block; 
     35    margin-right:5px; 
     36} 
     37 
    2338 
    2439.layerInfoItem span { 
  • cowsclient/trunk/cowsclient/templates/wmsviz.html

    r5821 r5851  
    121121<script type="text/javascript" src="$g.server/js/layerInformation.js"></script> 
    122122<script type="text/javascript" src="$g.server/js/layerDisplayOptions.js"></script> 
     123<script type="text/javascript" src="$g.server/js/splitAxisConfig.js"></script> 
     124<script type="text/javascript" src="$g.server/js/splitAxisSelect.js"></script> 
     125 
     126<script type="text/javascript" src="$g.server/js/ajaxRetriever.js"></script> 
     127<script type="text/javascript" src="$g.server/js/axisConfigRetriever.js"></script> 
     128 
    123129<script type="text/javascript" src="$g.server/js/layerDimensions.js"></script> 
    124130<script type="text/javascript" src="$g.server/js/layerParameters.js"></script> 
     
    129135<script type="text/javascript" src="$g.server/js/boundsControl.js"></script> 
    130136<script type="text/javascript" src="$g.server/js/wmcRetriever.js"></script> 
    131 <script type="text/javascript" src="$g.server/js/ajaxRetriever.js"></script> 
    132137 
    133138<script type="text/javascript" src="$g.server/js/layerDefaultSetter.js"></script> 
Note: See TracChangeset for help on using the changeset viewer.