1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
* full list of contributors). Published under the 2-clause BSD license.
* See license.txt in the OpenLayers distribution or repository for the
* full text of the license. */
/**
* @requires OpenLayers/BaseTypes/Class.js
* @requires OpenLayers/Rule.js
* @requires OpenLayers/Symbolizer/Point.js
* @requires OpenLayers/Symbolizer/Line.js
* @requires OpenLayers/Symbolizer/Polygon.js
* @requires OpenLayers/Symbolizer/Text.js
* @requires OpenLayers/Symbolizer/Raster.js
*/
/**
* Class: OpenLayers.Style2
* This class represents a collection of rules for rendering features.
*/
OpenLayers.Style2 = OpenLayers.Class({
/**
* Property: id
* {String} A unique id for this session.
*/
id: null,
/**
* APIProperty: name
* {String} Style identifier.
*/
name: null,
/**
* APIProperty: title
* {String} Title of this style.
*/
title: null,
/**
* APIProperty: description
* {String} Description of this style.
*/
description: null,
/**
* APIProperty: layerName
* {<String>} Name of the layer that this style belongs to, usually
* according to the NamedLayer attribute of an SLD document.
*/
layerName: null,
/**
* APIProperty: isDefault
* {Boolean}
*/
isDefault: false,
/**
* APIProperty: rules
* {Array(<OpenLayers.Rule>)} Collection of rendering rules.
*/
rules: null,
/**
* Constructor: OpenLayers.Style2
* Creates a style representing a collection of rendering rules.
*
* Parameters:
* config - {Object} An object containing properties to be set on the
* style. Any documented properties may be set at construction.
*
* Returns:
* {<OpenLayers.Style2>} A new style object.
*/
initialize: function(config) {
OpenLayers.Util.extend(this, config);
this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME + "_");
},
/**
* APIMethod: destroy
* nullify references to prevent circular references and memory leaks
*/
destroy: function() {
for (var i=0, len=this.rules.length; i<len; i++) {
this.rules[i].destroy();
}
delete this.rules;
},
/**
* APIMethod: clone
* Clones this style.
*
* Returns:
* {<OpenLayers.Style2>} Clone of this style.
*/
clone: function() {
var config = OpenLayers.Util.extend({}, this);
// clone rules
if (this.rules) {
config.rules = [];
for (var i=0, len=this.rules.length; i<len; ++i) {
config.rules.push(this.rules[i].clone());
}
}
return new OpenLayers.Style2(config);
},
CLASS_NAME: "OpenLayers.Style2"
});
|