Changeset 5534


Ignore:
Timestamp:
29/07/09 11:26:54 (10 years ago)
Author:
pnorton
Message:

Improved the legend handling so that if there is no legendURL in the style element of the GetCapabilties? response then the Legend won't be included. Also removed all console.log messages in favor of the WMSC.log() function which tries to write to console.log and catches any exceptions.

Location:
cowsclient/branches/qesdi/cowsclient
Files:
1 added
17 edited

Legend:

Unmodified
Added
Removed
  • cowsclient/branches/qesdi/cowsclient/public/js/capabilities.js

    r5502 r5534  
    193193      return styles; 
    194194       
     195    }, 
     196     
     197    getLegendURL: function(style) { 
     198        if (style == null || style == "") { 
     199                style = undefined; 
     200        } 
     201         
     202        var styles = this.getStyles(); 
     203         
     204        //can't get the legend URL if there are no styles 
     205        if (styles.length == 0) { 
     206                return null; 
     207        } 
     208         
     209        //!TODO: check that the style is in the layers styles 
     210         
     211        //if no style specified just return the first 
     212        if (style == undefined) { 
     213                return this._getLegendURLForStyle(styles[0].name); 
     214        } 
     215        else { 
     216                return this._getLegendURLForStyle(style); 
     217        } 
     218         
     219    }, 
     220     
     221    _getLegendURLForStyle: function(style) { 
     222        var url = null; 
     223         for (var j=0;j<this.node.getElementsByTagName('Style').length; j++) { 
     224                 var styleElt = this.node.getElementsByTagName('Style')[j]; 
     225             var styleName = styleElt.getElementsByTagName('Name')[0].textContent; 
     226              
     227             if (styleName == style) { 
     228                 var legendElt = this.node.getElementsByTagName('LegendURL')[0]; 
     229                 var onlineRes = legendElt.getElementsByTagName('OnlineResource')[0]; 
     230                 url = onlineRes.getAttribute('xlink:href'); 
     231                 break; 
     232             } 
     233         } 
     234          
     235         return url; 
     236          
    195237    }, 
    196238     
  • cowsclient/branches/qesdi/cowsclient/public/js/displayOptionsRetriever.js

    r5502 r5534  
    1515                var onRetrieve = function(resp) { 
    1616                     
    17                     console.log("retrieved url="+url+" at" +new Date()); 
    18                      
    1917                    try { 
    2018                       var obj = JSON.parse(resp.responseText); 
     
    2220                    catch(e) { 
    2321                        var msg="Error occurred parsing JSON.\n Description:" + e.stack + "\n"; 
    24                         console.log(msg); 
     22                        WMSC.log(msg); 
    2523                    } 
    2624                     
     
    3634                     method: "get", 
    3735                     onSuccess: onRetrieve.bindAsEventListener(this), 
    38                       onException : function(resp, e) {   alert("Exception:" + e); }, 
     36                      onException : function(resp, e) {   WMSC.log("Exception:" + e); }, 
    3937                    }); 
    4038            } 
     
    4341        addToLookup: function(url, obj){ 
    4442            this._lookup[url] = obj; 
    45             console.log("added url="+url+" at" +new Date()); 
    4643        }, 
    4744         
    4845        isCached: function(url) { 
    49 //         console.log("checking for url="+url+" at" +new Date()); 
    50  
    5146            for (l in this._lookup) { 
    5247                if (l == url) { 
  • cowsclient/branches/qesdi/cowsclient/public/js/layerControl.js

    r5531 r5534  
    134134            this.addListeners(); 
    135135             
    136             //console.log("loading wmc " + wmcEndpoint + " this.layersToSelect = " + this.layersToSelect); 
    137              
    138136            if (this.layersToSelect[wmcEndpoint] != undefined) { 
    139137                this._selectEndpointLayers(wmcEndpoint, this.layersToSelect[wmcEndpoint]); 
     
    416414         
    417415        if (endpointNode == null) { 
    418                 console.log("No node found for endpoint " + endpointURL); 
     416                WMSC.log("No node found for endpoint " + endpointURL); 
    419417                return 
    420418        } 
     
    429427                 
    430428                if (layerNode == null) { 
    431                         console.log("No node found for layer " + layerName +" in endpoint " + endpointURL); 
     429                        WMSC.log("No node found for layer " + layerName +" in endpoint " + endpointURL); 
    432430                        continue; 
    433431                } 
  • cowsclient/branches/qesdi/cowsclient/public/js/layerDisplayOptions.js

    r5531 r5534  
    9292 
    9393            //add the display options (if set) 
    94             dispURL = wmcLayer.getDisplayOptionsURL(); 
     94            var dispURL = wmcLayer.getDisplayOptionsURL(); 
    9595             
    9696            if (dispURL != null) { 
     
    125125            fs.appendChild(leg); 
    126126 
    127             fs.appendChild(this._buildDisplayOptionsList(displayOptions.common)); 
     127            if (displayOptions.common != undefined) { 
     128                fs.appendChild(this._buildDisplayOptionsList(displayOptions.common)); 
     129            } 
    128130             
    129131            // also add the style specific options 
  • cowsclient/branches/qesdi/cowsclient/public/js/layerList.js

    r5515 r5534  
    208208     
    209209    _triggerSelectedLayerChange: function() { 
    210 //      console.log("triggering SELECTED_LAYER_CHANGED at" +new Date()); 
    211210        this.events.triggerEvent("SELECTED_LAYER_CHANGED", {layer:this.getSelectedLayer()}); 
    212211    }, 
  • cowsclient/branches/qesdi/cowsclient/public/js/layerParameters.js

    r5505 r5534  
    5353        } 
    5454 
    55         this.events.triggerEvent("LAYER_PROPERTY_CHANGED", {layer:this.currentOLLayer}); 
     55        this.events.triggerEvent("LAYER_PROPERTY_CHANGED", {layer:this.currentOLLayer, 
     56                                                             wmcLayer:this.currentWMCLayer}); 
    5657         
    5758    },     
  • cowsclient/branches/qesdi/cowsclient/public/js/legendContainer.js

    r5531 r5534  
    66                        this.legendDiv = document.getElementById(legendDivId); 
    77                        this.legendRetriever = new LegendRetriever(); 
     8                        this.currentWMCLayer = null; 
     9                        this.currentOLLayer = null; 
    810                }, 
    911                 
    10             addLayerListHandlers: function (events) { 
    11                 events.register("SELECTED_LAYER_CHANGED", this, this.onSelectedLayerChanged); 
    12             }, 
    13  
    1412            addLayerParametersHandlers: function(events) { 
    15                 events.register("LAYER_PROPERTY_CHANGED", this, this.onSelectedLayerChanged); 
     13                events.register("LAYER_PROPERTY_CHANGED", this, this.onLayerPropertyChanged); 
     14                events.register("CURRENT_WMCLAYER_CHANGED", this, this.onLayerChanged); 
     15                 
    1616            }, 
    1717             
    18             onSelectedLayerChanged: function(e) { 
     18            onLayerChanged: function(e) { 
     19            this.clearLegend(); 
     20             
     21            this.currentWMCLayer = e.wmcLayer; 
     22            this.currentOLLayer = e.olLayer; 
     23             
     24            if (this.currentWMCLayer != null && this.currentOLLayer != null) { 
     25                var style = this.currentOLLayer.params['STYLES']; 
     26                var url = this.currentWMCLayer.getLegendURL(style); 
     27                if (url != null) { 
     28                        this.loadNewLegend(url); 
     29                } 
     30            } 
     31            }, 
     32             
     33            /** 
     34             * A property on the layer has changed, need to re-draw the legend 
     35             */ 
     36            onLayerPropertyChanged: function(e) { 
    1937                 
    2038                if (e.layer == null) { 
     
    2745                        }); 
    2846                         
    29                         onSuccessFn = this.setLegend.bindAsEventListener(this) 
    30                         this.legendRetriever.getLegend(url, onSuccessFn) 
     47                        this.loadNewLegend(url); 
    3148 
    3249                } 
    3350                }, 
    3451                 
     52                loadNewLegend: function(url) { 
     53                var onSuccessFn = this.setLegend.bindAsEventListener(this) 
     54                this.legendRetriever.getLegend(url, onSuccessFn)                         
     55                }, 
     56                 
    3557                setLegend: function (xhr) { 
    36 //                      console.log("setting legend at" +new Date()); 
     58//                      WMSC.log("setting legend at" +new Date()); 
    3759                this.legendDiv.innerHTML = ''; 
    3860                var legendHTML =xhr.responseText; 
  • cowsclient/branches/qesdi/cowsclient/public/js/legendRetriever.js

    r5502 r5534  
    1414                 
    1515                var onRetrieve = function(resp) { 
    16                      
    17 //                    console.log("retrieved legend url="+url+" at" +new Date()); 
    18                      
    1916                    this.addToLookup(url, resp); 
    2017                    onSuccessFunction(resp); 
     
    2825                  method: "get",                      
    2926                  onSuccess: onRetrieve.bindAsEventListener(this), 
    30                   onException : function(resp, e) {   alert("Exception:" + e); }, 
     27                  onException : function(resp, e) {   WMSC.log("Exception:" + e); }, 
    3128                  }); 
    3229               
     
    3532         
    3633        addToLookup: function(url, obj){ 
    37 //            console.log("added legend url="+url+" at" +new Date()); 
    3834            this._lookup[url] = obj; 
    3935        }, 
    4036         
    4137        isCached: function(url) { 
    42 //            console.log("checking for legend url="+url+" at" +new Date()); 
    4338 
    44             for (l in this._lookup) { 
     39                for (l in this._lookup) { 
    4540                if (l == url) { 
    4641                    return true; 
  • cowsclient/branches/qesdi/cowsclient/public/js/mapControl.js

    r5531 r5534  
    8989                // force the resolution to be set, this is needed so that layers added 
    9090                // retain the correct bounds. 
    91                 console.log("this.map.maxExtent: bottom=" + this.map.maxExtent.bottom +" left=" + this.map.maxExtent.left + " top=" + this.map.maxExtent.top + " right="+ this.map.maxExtent.right); 
    92                 console.log("this.map.zoom = " + this.map.zoom); 
     91                WMSC.log("this.map.maxExtent: bottom=" + this.map.maxExtent.bottom +" left=" + this.map.maxExtent.left + " top=" + this.map.maxExtent.top + " right="+ this.map.maxExtent.right); 
     92                WMSC.log("this.map.zoom = " + this.map.zoom); 
    9393                this.map.resolution = this.map.getResolutionForZoom(this.map.zoom); 
    94                 console.log("this.map.resolution = " + this.map.resolution); 
     94                WMSC.log("this.map.resolution = " + this.map.resolution); 
    9595             
    9696                // Enter selection mode 
     
    233233                                        title = child.getAttribute("title"); 
    234234                                        layerName = child.getAttribute("layerName"); 
    235                                         //console.log('name ' + layerName); 
     235 
    236236                                mapLayer = new OpenLayers.Layer.WMS( 
    237237                                                        title, 
  • cowsclient/branches/qesdi/cowsclient/public/js/utils.js

    r5515 r5534  
    9696         
    9797        if (element == "") { 
    98                 console.log("Element not found for id=" + id); 
     98                WMSC.log("Element not found for id=" + id); 
    9999        } 
    100100         
  • cowsclient/branches/qesdi/cowsclient/public/js/wcs.js

    r5341 r5534  
    2424        var urlparts = wmsurl.split('?'); 
    2525        var wcsEndpoint=urlparts[0].replace('wms', 'wcs') +'?'; 
    26         //console.log('wcs endpoint =  ' +wcsEndpoint);   
    2726        var coords=document.getElementById('coordsForm'); 
    2827        var bbox =coords['bboxW'].value + ',' + coords['bboxS'].value + ',' + coords['bboxE'].value + ',' + coords['bboxN'].value; 
     
    4948                wcsurl = wcsurl + param + '=' + params[param] + '&'; 
    5049                } 
    51                 //console.log('Making wcs request to ' + wcsurl) 
     50                //WMSC.log('Making wcs request to ' + wcsurl) 
    5251                window.open(wcsurl, 'download');  
    5352                return false; 
  • cowsclient/branches/qesdi/cowsclient/public/js/wmcRetriever.js

    r5502 r5534  
    4040                                 method: "get", 
    4141                                 onSuccess: onRetrieveWMC.bindAsEventListener(this), 
    42                                  onException : function(resp, e) {   alert("Exception:" + e); }, 
     42                                 onException : function(resp, e) {   WMSC.log("Exception:" + e); }, 
    4343                                        }); 
    4444                } 
     
    4747            addWMCToLookup: function(endpoint, wmc){ 
    4848                this.contextLookup[endpoint] = wmc; 
    49 //              console.log("added endpoint="+endpoint+" at" +new Date()); 
    5049            }, 
    5150             
    5251            isWMCCached: function(endpoint) { 
    53 //              console.log("checking for endpoint="+endpoint+" at" +new Date()); 
    5452 
    5553                for (ep in this.contextLookup) { 
  • cowsclient/branches/qesdi/cowsclient/public/js/wmsc.js

    r5340 r5534  
    66WMSC = {}; 
    77 
    8 WMSC.DEBUG = false; 
     8WMSC.DEBUG = true; 
    99 
    1010WMSC.log = function(msg)  
     
    1616    { 
    1717                /* If Firebug (and Mozilla?) */ 
    18                 //console.log(msg); 
     18                console.log(msg); 
    1919    } 
    2020    catch(err)  
    2121    {    
    22                 Debug.write(msg); 
     22                //give up 
     23 
     24                //Debug.write(msg); 
    2325    } 
    2426} 
  • cowsclient/branches/qesdi/cowsclient/public/layout/control.css

    r5531 r5534  
    44 
    55#datasets_column { 
    6     width:30%; 
     6    width:35%; 
    77} 
    88 
    99#layer_column { 
    10     width:25%; 
     10    width:20%; 
    1111} 
    1212 
  • cowsclient/branches/qesdi/cowsclient/public/layout/layer_properties.css

    r5522 r5534  
    1414.displayOptionItem label, 
    1515.layerDimItem label { 
    16         width:30%; 
     16        width:45%; 
    1717        line-height:25px; 
    1818        display:inline-block; 
  • cowsclient/branches/qesdi/cowsclient/public/test/capabilities_test.html

    r5502 r5534  
    1111    function init() { 
    1212 
    13         console.log("started at" +new Date()); 
     13                console.log("started at" +new Date()); 
    1414 
    15         document.getElementById('response').value = "..."; 
     15                document.getElementById('response').value = "..."; 
    1616        document.getElementById('capabilities').value = "..."; 
    1717         
     
    3737           }); 
    3838 
    39              console.log("Finished."); 
    40          } 
     39        console.log("Finished."); 
     40         
     41        } 
    4142 
    4243    function onRetrieveWMContext(xhr) { 
  • cowsclient/branches/qesdi/cowsclient/templates/wmsviz.html

    r5531 r5534  
    9797         
    9898    var layerParameters = new LayerParameters('layer_properties', 'selection_form', wmcRetriever); 
    99     console.log("loaded layer params"); 
     99     
    100100    var legendContainer = new LegendContainer('legend'); 
    101101     
     
    107107    layerList.addSelectorHandlers(layerControl.events); 
    108108    layerParameters.addLayerListHandlers(layerList.events); 
    109     legendContainer.addLayerListHandlers(layerList.events); 
    110109    legendContainer.addLayerParametersHandlers(layerParameters.events); 
    111110     
Note: See TracChangeset for help on using the changeset viewer.