Changeset 6358
- Timestamp:
- 02/24/08 15:25:27 (11 months ago)
- Files:
-
- trunk/openlayers/lib/OpenLayers/Format/WMC/v1.js (modified) (3 diffs)
- trunk/openlayers/tests/Format/WMC/test_v1.html (added)
- trunk/openlayers/tests/list-tests.html (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/openlayers/lib/OpenLayers/Format/WMC/v1.js
r6131 r6358 123 123 childNode = children[i]; 124 124 if(childNode.nodeType == 1) { 125 prefix = (childNode.prefix == this.rootPrefix) ? 126 this.defaultPrefix : 127 this.getNamespacePrefix(childNode.namespaceURI); 125 prefix = this.getNamespacePrefix(childNode.namespaceURI); 128 126 local = childNode.nodeName.split(":").pop(); 129 127 processor = this["read_" + prefix + "_" + local]; … … 313 311 this.runChildNodes(style, node); 314 312 if(node.getAttribute("current") == "1") { 315 layerInfo.params.style = style.name; 313 // three style types to consider 314 // 1) linked SLD 315 // 2) inline SLD 316 // 3) named style 317 // running child nodes always gets name, optionally gets href or body 318 if(style.href) { 319 layerInfo.params.sld = style.href; 320 } else if(style.body) { 321 layerInfo.params.sld_body = style.body; 322 } else { 323 layerInfo.params.styles = style.name; 324 } 316 325 } 317 326 layerInfo.styles.push(style); 327 }, 328 329 /** 330 * Method: read_wmc_SLD 331 */ 332 read_wmc_SLD: function(style, node) { 333 this.runChildNodes(style, node); 334 // style either comes back with an href or a body property 335 }, 336 337 /** 338 * Method: read_sld_StyledLayerDescriptor 339 */ 340 read_sld_StyledLayerDescriptor: function(sld, node) { 341 var xml = OpenLayers.Format.XML.prototype.write.apply(this, [node]); 342 sld.body = xml; 318 343 }, 319 344 … … 732 757 "Style", null, {current: "1"} 733 758 ); 734 var name = layer.params["STYLES"] ? 735 layer.params["STYLES"] : this.defaultStyleName; 736 737 style.appendChild(this.createElementDefaultNS("Name", name)); 738 style.appendChild(this.createElementDefaultNS( 739 "Title", this.defaultStyleTitle 740 )); 759 760 // Style can come from one of three places (prioritized as below): 761 // 1) an SLD parameter 762 // 2) and SLD_BODY parameter 763 // 3) the STYLES parameter 764 765 if(layer.params["SLD"]) { 766 // create link from SLD parameter 767 var sld = this.createElementDefaultNS("SLD"); 768 var link = this.write_wmc_OnlineResource(layer.params["SLD"]); 769 sld.appendChild(link); 770 style.appendChild(sld); 771 } else if(layer.params["SLD_BODY"]) { 772 // include sld fragment from SLD_BODY parameter 773 var sld = this.createElementDefaultNS("SLD"); 774 var body = layer.params["SLD_BODY"]; 775 // read in body as xml doc - assume proper namespace declarations 776 var doc = OpenLayers.Format.XML.prototype.read.apply(this, [body]); 777 // append to StyledLayerDescriptor node 778 var imported = doc.documentElement; 779 if(sld.ownerDocument && sld.ownerDocument.importNode) { 780 imported = sld.ownerDocument.importNode(imported, true); 781 } 782 sld.appendChild(imported); 783 style.appendChild(sld); 784 } else { 785 // use name(s) from STYLES parameter 786 var name = layer.params["STYLES"] ? 787 layer.params["STYLES"] : this.defaultStyleName; 788 789 style.appendChild(this.createElementDefaultNS("Name", name)); 790 style.appendChild(this.createElementDefaultNS( 791 "Title", this.defaultStyleTitle 792 )); 793 } 741 794 node.appendChild(style); 742 795 return node; trunk/openlayers/tests/list-tests.html
r6313 r6358 33 33 <li>Format/test_WMC.html</li> 34 34 <li>Format/WMC/test_v1_1_0.html</li> 35 <li>Format/WMC/test_v1.html</li> 35 36 <li>Format/test_XML.html</li> 36 37 <li>test_Icon.html</li>
