Changeset 5573


Ignore:
Timestamp:
06/08/09 12:41:05 (10 years ago)
Author:
pnorton
Message:

Fixed another problem with the layerControl that prevented layers being added after the currently selected layer was removed.

File:
1 edited

Legend:

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

    r5572 r5573  
    1919    // OpenLayers Events object managing EVENT_TYPES 
    2020    events: null, 
    21      
    22     // The number of layers currently displayed 
    23     layerNo: 0, 
    24      
    25     // The maximum number of layers to display at once; NB, this needs to equal the  
    26     // number of drag and drop controls created in dragAndDrop.js 
    27     MAX_LAYER_NO: 10, 
    2821 
    2922    /** 
     
    10194            if (delIcon != null) 
    10295            { 
    103 //                delIcon.onclick = this._removeNode.bindAsEventListener(this); 
    10496                this._delIconHandlers[delIcon.id] = addHTMLEventListener(delIcon,  
    10597                        'click', this._removeNode, this);                 
     
    108100    }, 
    109101     
     102    /** 
     103     * Remove all the delete icon handlers form the current tree. This 
     104     * should happen right before the tree is re-drawn. 
     105     */ 
    110106    removeListeners: function() { 
    111107        removeEventHandlersFromLookup(this._delIconHandlers); 
     
    113109    }, 
    114110     
     111    /** 
     112     * Redraw the whole tree control. This is needed as the event hanlders need 
     113     * to be re-applied after the tree is re-drawn. 
     114     */ 
    115115    redrawTree: function() { 
    116116        this.removeListeners(); 
     
    120120        this.addListeners(); 
    121121         
     122        //re apply the selected node (as the html will have been re-built 
     123        if (this._selectedTreeNode != null) { 
     124            if (this._selectedTreeNode.labelElId) { 
     125                var selectedElt = $(this._selectedTreeNode.labelElId); 
     126                if (selectedElt == null) { 
     127                    this._selectedTreeNode = null; 
     128                } 
     129                else { 
     130                    slectedElt.className = 'WMSC_selectedField'; 
     131                } 
     132            } 
     133        } 
    122134    }, 
    123135 
     
    144156            } 
    145157             
    146             //re apply the selected node (as the html will have been re-built 
    147             if (this._selectedTreeNode != null) { 
    148                 if (this._selectedTreeNode.labelElId) { 
    149                     $(this._selectedTreeNode.labelElId).className = 'WMSC_selectedField'; 
    150                 } 
    151             } 
    152              
    153158        }; 
    154159         
     
    166171                 
    167172        this.wmcRetriever.getWMC(wmcEndpoint, successFn, failureFn); 
    168  
    169          
    170          
    171173    }, 
    172174     
     
    214216     */ 
    215217    _addLayerTree: function(layer, wmcEndpoint, parentNode) { 
    216          nodeData = {}; 
    217          nodeData.wmcEndpoint = wmcEndpoint; 
    218          nodeData.label = layer.getTitle(); 
    219          nodeData.layer = layer.getName(); 
    220          nodeData.abstract = layer.getAbstract(); 
    221          nodeData.layerData = layer; 
    222          nodeData.title = layer.getAbstract(); //used for tooltips 
    223   
    224          var treeNode = new YAHOO.widget.MenuNode(nodeData, parentNode, false); 
     218         
     219        var labelText = layer.getAbstract(); 
     220         
     221        if (labelText == null || labelText == "") { 
     222            labelText = layer.getTitle(); 
     223        } 
     224         
     225        nodeData = {}; 
     226        nodeData.wmcEndpoint = wmcEndpoint; 
     227        nodeData.label = labelText; 
     228        nodeData.layer = layer.getName(); 
     229        nodeData.abstract = layer.getAbstract(); 
     230        nodeData.layerData = layer; 
     231        nodeData.title = layer.getAbstract(); //used for tooltips 
     232         
     233        var treeNode = new YAHOO.widget.MenuNode(nodeData, parentNode, false); 
     234         
     235        var subLayers = layer.getSubLayers(); 
     236         
     237        for (var i=0; i<subLayers.length; i++) { 
     238             this._addLayerTree(subLayers[i], wmcEndpoint, treeNode); 
     239        } 
    225240          
    226          var subLayers = layer.getSubLayers(); 
    227          for (var i=0; i<subLayers.length; i++)  
    228          { 
    229              this._addLayerTree(subLayers[i], wmcEndpoint, treeNode); 
    230          } 
    231           
    232          return treeNode; 
     241        return treeNode; 
    233242    }, 
    234243     
     
    328337    }, 
    329338     
    330  
    331      
    332     /** 
    333      * Adjust message displayed in the leaf layer panel according to the current context 
    334      */  
    335     _updateLeafLayerMessage: function() 
    336     { 
    337         message = document.getElementById("layerMessage"); 
    338         messageText = ''; 
    339  
    340         if (this.layerNo > 1) 
    341         { 
    342             messageText = 'Adjust display order of layers by dragging and dropping them.'; 
    343         } 
    344         else if (this.layerNo == 0) 
    345         { 
    346             messageText = 'Expand a dataset and select a layer to view'; 
    347         } 
    348         message.innerHTML = messageText; 
    349     }, 
    350  
    351     /** 
    352      * Add a new Layer 
     339    /** 
     340     * Add a new Layer to the layer list 
    353341     */ 
    354342    _addLayer: function(node)  
     
    364352    }, 
    365353     
     354    /** 
     355     * create a new layer object using the default params and the url/name  
     356     * provided. 
     357     *  
     358     * The layer.id is a combination of the url, layer name and an incrimenting  
     359     * index to ensure that it is unique for each layer 
     360     */ 
    366361    makeNewLayer: function(url, layerName) { 
    367362        var layer = new OpenLayers.Layer.WMS("#" + this.idIndex + " " + layerName,  
     
    376371    }, 
    377372     
    378      
    379     
     373    /** 
     374     * Event handler for the new endpoint button click 
     375     */ 
    380376    onNewEndpointClick: function(evt) { 
    381377        var element = Event.element(evt); 
     
    383379    }, 
    384380     
     381    /** 
     382     * Adds a layer to select on a particular endpoint when that endpoint is  
     383     * loaded. 
     384     */ 
    385385    addLayersToSelect: function(endpoint, layers) { 
    386386        this.layersToSelect[endpoint] = layers; 
    387387    }, 
    388388     
     389    /** 
     390     * Selects a given layer on a particular endpoint, this is used to setup  
     391     * the initial selection when the page is loaded. 
     392     */ 
    389393    _selectEndpointLayers: function(endpointURL, layers) { 
    390394         
     
    414418    }, 
    415419     
     420    /** 
     421     * Retrieve a node form the tree vieew that corresponds to a given endpoint 
     422     */ 
    416423    _getNodeForEndpoint: function(endpointURL) { 
    417424        var endpointNodes = this.tree.root.children; 
     
    425432    }, 
    426433     
     434    /** 
     435     * Find the child node that matches the layerName given for a endpoint's node. 
     436     */ 
    427437    _getChildNodeForLayer: function(endpointNode, layerName) { 
    428438        for (var i=0; i<endpointNode.children.length; i++) { 
Note: See TracChangeset for help on using the changeset viewer.