Changeset 5720


Ignore:
Timestamp:
17/09/09 09:56:58 (10 years ago)
Author:
pnorton
Message:

Fixed the target in the onChange event handlers in the layerDisplayOptions and the layerDimensions controllers so that the target is correctly retrieved in IE.

Also moved the code in layerDisplayOptions and layerDimensions from using the change event on the fieldset to adding the change event to all the elements in the form as IE wasn't triggering the fieldset change.

Location:
cowsclient/trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • cowsclient/trunk/cowsclient/public/js/capabilities.js

    r5719 r5720  
    138138        var i; 
    139139         
    140         WMSC.log("WMSC.Capabilities._getRequestFormats: node = " + node + " node.tagName =" + node.tagName); 
    141  
    142         if (node.tagName === 'GetFigure') { 
    143             //Utils.logAtts(node); 
    144             WMSC.log("node.textContent" + node.textContent + " node.innerText =" + node.innerText); 
    145             for (i=0; i<node.childNodes.length; i++) { 
    146                 var c = node.childNodes[i]; 
    147                 WMSC.log("c.nodeType = " + c.nodeType + " c.tagName = " + c.tagName + " c.textContent = " + c.textContent + " c.innerText = " + c.innerText + " c.innerHTML = " + c.innerHTML); 
    148                 WMSC.log("c.childNodes.length = " + c.childNodes.length); 
    149                 for (var j = 0; j < c.childNodes.length; j++) { 
    150                     var gc = c.childNodes[j]; 
    151                     WMSC.log("gc.nodeType = " + gc.nodeType + " gc.tagName = " + gc.tagName + " gc.textContent = " + gc.textContent + " gc.innerText = " + gc.innerText + " gc.innerHTML = " + gc.innerHTML); 
    152                 } 
    153             } 
    154         } 
    155         //Utils.logAtts(node); 
    156          
    157140        var formats = []; 
    158         for (var i=0; i<node.childNodes.length; i++) { 
     141        for (i = 0; i < node.childNodes.length; i++) { 
    159142            var child = node.childNodes[i]; 
    160              
    161             //WMSC.log("WMSC.Capabilities._getRequestFormats: i = " + i + " child.nodeName=" + child.nodeName + " child.textContent =" + child.textContent + " child.innerText =" + child.innerText); 
    162              
    163143            if (child.nodeName.toUpperCase() == 'FORMAT') { 
    164144                formats.push(WMSC.getTextContent(child)); 
  • cowsclient/trunk/cowsclient/public/js/layerDimensions.js

    r5719 r5720  
    1414    this._form = document.getElementById(layerDimensionsFormId); 
    1515    this.events = new OpenLayers.Events(this, null, this.EVENTS_RAISED); 
    16     this._handler  = null; 
     16    this._handlerLookup  = null; 
    1717}; 
    1818 
     
    3838    _clearForm: function () { 
    3939         
    40         if (this._handler !== null) { 
    41                 Utils.removeHTMLEventListener(this._form.getElementsByTagName('fieldset')[0], 'change', this._handler); 
    42                 this._handler = null; 
     40        if (this._handlerLookup !== null) { 
     41            Utils.removeEventHandlersFromLookup(this._handlerLookup, 'change'); 
     42                this._handlerLookup = null; 
    4343        } 
    4444         
     
    7676        this._form.appendChild(fs); 
    7777         
    78         this._handler = Utils.addHTMLEventListener(fs, 'change', this._onSelectionChange, this);         
     78        // It appears that IE8 dosen't fire the onchange event for the fieldset 
     79        // element like firefox does so adding the change handlers to the form 
     80        // elements individually. 
     81        this._handlerLookup = Utils.addHandlerToFormElements(this._form, 'change', this._onSelectionChange, this);         
    7982         
    8083    }, 
     
    8487     */ 
    8588    _onSelectionChange: function (e) { 
    86         var param = e.target.id.substr(7); 
     89        var target = e.target || e.srcElement; 
     90         
     91        var param = target.id.substr(7); 
    8792 
    8893        this.events.triggerEvent("LAYER_DIMENSION_CHANGED", {param: param, 
    89                                                              value: e.target.value}); 
     94                                                             value: target.value}); 
    9095    }, 
    9196 
  • cowsclient/trunk/cowsclient/public/js/layerDisplayOptions.js

    r5719 r5720  
    3434    this.currentWMCLayer = null; 
    3535    this.currentOLLayer = null; 
    36     this._handler = null; 
     36    this._handlerLookup = null; 
    3737}; 
    3838 
     
    5555 
    5656    _onSelectionChange: function (e) { 
    57         var param = e.target.id.substr(7); 
    58         var value = e.target.value; 
    59          
    60         if (e.target.type === "checkbox") { 
    61                 value = (e.target.checked) ? 'True' : 'False'; 
     57        WMSC.log("LayerDisplayOpts._onSelectionChange"); 
     58        var target = e.target || e.srcElement; 
     59        WMSC.log("LayerDisplayOpts._onSelectionChange: target.id = " + target.id); 
     60        WMSC.log("LayerDisplayOpts._onSelectionChange: target.type = " + target.type); 
     61        WMSC.log("LayerDisplayOpts._onSelectionChange: target.value = " + target.value); 
     62        var param = target.id.substr(7); 
     63        var value = target.value; 
     64         
     65        if (target.type === "checkbox") { 
     66                value = (target.checked) ? 'True' : 'False'; 
    6267        } 
    6368         
     
    6873            } 
    6974        ); 
     75         
     76        WMSC.log("LayerDisplayOpts._onSelectionChange: triggered LAYER_DISPLAY_CHANGED"); 
    7077    }, 
    7178 
     
    111118    _clearForm: function () { 
    112119         
    113         if (this._handler !== null) { 
     120        if (this._handlerLookup !== null) { 
    114121             
    115                 Utils.removeHTMLEventListener(this._form.getElementsByTagName('fieldset')[0], 'change', this._handler); 
    116                 this._handler = null; 
     122            Utils.removeEventHandlersFromLookup(this._handlerLookup, 'change') 
     123                this._handlerLookup = null; 
    117124        } 
    118125         
     
    168175         
    169176        this._form.appendChild(fs); 
    170         this._handler = Utils.addHTMLEventListener(fs, 'change', this._onSelectionChange, this); 
     177        WMSC.log("Adding onchange event to fs (fs = " + fs + ")"); 
     178         
     179        // It appears that IE8 dosen't fire the onchange event for the fieldset 
     180        // element like firefox does so adding the change handlers to the form 
     181        // elements individually. 
     182        this._handlerLookup = Utils.addHandlerToFormElements(this._form, 'change', this._onSelectionChange, this); 
    171183    }, 
    172184     
     
    249261        var val = this._getCurrentLayerProperty(opt.name); 
    250262         
    251         if (val === null) { 
     263        if (val === null || val == undefined) { 
    252264                if (opt.defaultVal === undefined || opt.defaultVal === null) { 
    253265                        val = ''; 
  • cowsclient/trunk/cowsclient/public/js/layerInformation.js

    r5719 r5720  
    5151     
    5252    _onStyleChange: function (e) { 
     53        var target = e.target || e.srcElement; 
     54         
    5355        this.events.triggerEvent('LAYER_STYLE_CHANGED',  
    5456            {  
    5557                param: 'styles', 
    56                 value: e.target.value 
     58                value: target.value 
    5759            } 
    5860        ); 
     61         
     62        WMSC.log("triggered LAYER_STYLE_CHANGED"); 
    5963    }, 
    6064     
     
    169173         
    170174        var req = wmc.getRequest('GetFigure'); 
    171         WMSC.log("req = " + req); 
    172175         
    173176        var formatDescriptions = []; 
    174177        var formatValues = []; 
    175178        var formatList = req.formats; 
    176          
    177         WMSC.log("formatList.length = " + formatList.length); 
    178         for (i = 0; i < formatList.length; i++) { 
    179             WMSC.log("formatList[i] = " + formatList[i]); 
    180         } 
    181179         
    182180        for (i = 0; i < formatList.length; i++) { 
  • cowsclient/trunk/cowsclient/public/js/layerList.js

    r5719 r5720  
    6868         * clicked on 
    6969         */ 
    70         _onItemClick: function (event, target) { 
     70        _onItemClick: function (e) { 
     71            var target = e.target || e.srcElement; 
    7172                this._selectItem(target); 
    7273        }, 
  • cowsclient/trunk/cowsclient/public/js/utils.js

    r5719 r5720  
    118118}; 
    119119 
    120 Utils.removeEventHandlersFromLookup = function (lookup) { 
     120Utils.removeEventHandlersFromLookup = function (lookup, eventType) { 
     121     
     122    // default to the change event type 
     123    if (eventType === undefined) { 
     124        eventType = 'change' 
     125    } 
    121126     
    122127    for (var id in lookup) { 
     
    134139         
    135140        if (handler !== null) { 
    136             Utils.removeHTMLEventListener(element, 'change', handler); 
     141            Utils.removeHTMLEventListener(element, eventType, handler); 
    137142        } 
    138143    } 
  • cowsclient/trunk/displayOptions.ini

    r5698 r5720  
    33 
    44[HideOptions:wms] 
    5 endpoint=http://localhost:5000/[^/]*/wms? 
     5endpoint=http://ice.badc.rl.ac.uk:5000/[^/]*/wms? 
    66options=show_grid_lines,intervalColourbar,intervalNames 
    77 
     
    1010 
    1111[DefaultOptions:modis_interval] 
    12 endpoint=http://localhost:5000/modis/wms3 
     12endpoint=http://ice.badc.rl.ac.uk:5000/modis/wms3 
    1313layers=igbp_class 
    1414values=intervalColourbar|true 
Note: See TracChangeset for help on using the changeset viewer.