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"
});
|