﻿
/* sld pour 1 layer */
function applySLDLayer(iText,iLayerName){
    if (!isModelOk()){
        var params = 'applySLDLayer(\''+iText+'\',\''+iLayerName+'\');';
        setTimeout(params,200);    
             return;  
    }
    var ns = 'xmlns:sld="http://www.opengis.net/sld" xmlns:mb="http://mapbuilder.sourceforge.net/mapbuilder" xmlns:wmc="http://www.opengis.net/context" xmlns:wms="http://www.opengis.net/wms" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wfs="http://www.opengis.net/wfs"';
    var text = iText.substring(0,iText.indexOf('>'))+" "+ns+" "+iText.substring(iText.indexOf('>'));
    var layer = iLayerName;
    insertSLD (text,layer);
}

// vérification du bon chargement du SLD
function isModelOk(){
    try{
        return config.objects.editSLD.model.doc!=null;
    }catch(e){
        return false;
    }        
}


//insertion dynamique 
 function insertSLD(text,layer){   
    
    var xmlString = text;
    var	doc = null;	
	var parser=null;

	parser = new DOMParser();	
	doc = parser.parseFromString(xmlString, "text/xml");

	var sld = config.objects.editSLD.model.getSldNode();
	sld.replaceChild(doc.firstChild,sld.firstChild);     
    config.objects.editSLD.updateNode("/StyledLayerDescriptor/NamedLayer/Name",layer);
    config.objects.editSLD.insertSldToWmc(layer);
}

//modification par fichier distant
function setSLDFile(file, layer){
       var sld = config.objects.mainMap.doc.selectSingleNode("//wmc:Layer[wmc:Name='"+layer+"']/wmc:StyleList/wmc:Style/wmc:SLD");
            if (sld.firstChild!=null){              
                if (sld.firstChild.tagName.indexOf('OnlineResource')>=0)
                    sld.firstChild.attributes[1].value = file;
                else{
                    sld.removeChild(sld.firstChild);
                    var parser=new DOMParser(); 
                    var xmlString = "<bidon xmlns:wmc='http://www.opengis.net/context' xmlns:xlink='http://www.w3.org/1999/xlink'><wmc:OnlineResource xlink:type=\"simple\" xlink:href=\""+file+"\"/></bidon>";
           doc = parser.parseFromString(xmlString, "text/xml").firstChild.firstChild;
           sld.appendChild(doc);
                }
            }
            else
            {
                var parser=new DOMParser(); 
                var xmlString = "<bidon xmlns:wmc='http://www.opengis.net/context' xmlns:xlink='http://www.w3.org/1999/xlink'><wmc:OnlineResource xlink:type=\"simple\" xlink:href=\""+file+"\"/></bidon>";
          doc = parser.parseFromString(xmlString, "text/xml").firstChild.firstChild;          
          sld.appendChild(doc);
            }            
  
    //mise à jour visuelle
            if (config.objects.mainMap.getHidden(layer)==0)
                config.objects.mainMap.callListeners("refreshWmsLayers", layer);
}
