Changeset 6958


Ignore:
Timestamp:
Apr 17, 2008 3:05:40 PM (8 years ago)
Author:
tschaub
Message:

giving link an href attribute and pulling out other attributes to write

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/topp/almanac/lib/OpenLayers/Format/Atom.js

    r6956 r6958  
    264264        return OpenLayers.Format.XML.prototype.write.apply(this, [atom]);
    265265    },
     266   
     267    /**
     268     * Property: attributeMap
     269     * {Object} Maps feature attribute names to atom element names.
     270     */
     271    attributeMap: {
     272        "title": {name: "title", required: true},
     273        "description": {name: "summary", required: true},
     274        "content": {name: "content", required: true}
     275    },
     276   
     277    /**
     278     * Method: getAttributeForElement
     279     */
     280    getAttributeForElement: function(name) {
     281        name = name.split(":").pop();
     282        var attr;
     283        for(var key in this.attributeMap) {
     284            if(this.attributeMap[key].name == name) {
     285                attr = key;
     286                break;
     287            }
     288        }
     289        return attr;
     290    },
    266291
    267292    /**
     
    279304        var geometryNode = this.buildGeometryNode(feature.geometry);
    280305        var featureNode = this.createElementNSPlus("entry");
    281         var titleNode = this.createElementNSPlus("title", {
    282             value: feature.attributes.title || ""
    283         });
    284         var descrNode = this.createElementNSPlus("summary", {
    285             value: feature.attributes.description || ""
    286         });
    287         var contentNode = this.createElementNSPlus("content", {
    288             value: feature.attributes["content"]  || ""
    289         });
    290 
    291         featureNode.appendChild(titleNode);
    292         featureNode.appendChild(descrNode);
    293         featureNode.appendChild(contentNode);
    294 
    295         if (feature.attributes.link) {
    296             var linkNode = this.createElementNSPlus("link", {
    297                 value: feature.attributes.link
    298             });
    299             featureNode.appendChild(linkNode);
    300         }   
     306        var name, node;
     307        for(var key in this.attributeMap) {
     308            if(this.attributeMap[key].required ||
     309               feature.attributes[key] != undefined) {
     310                node = this.createElementNSPlus(this.attributeMap[key].name, {
     311                    value: feature.attributes[key] || ""
     312                });
     313                featureNode.appendChild(node);
     314            }
     315        }
     316       
     317        if(feature.attributes.link) {
     318            featureNode.appendChild(this.createElementNSPlus("link", {
     319                attributes: {"href": feature.attributes.link}
     320            }));
     321        }
     322
    301323        whereNode.appendChild(geometryNode);
    302324        featureNode.appendChild(whereNode);
Note: See TracChangeset for help on using the changeset viewer.