[Commits] r2510 - in sandbox/mapgears/geoext.ux/ux/LayerTreeBuilder: examples lib/GeoExt.ux/widgets/tree
commits at geoext.org
commits at geoext.org
Fri Dec 3 17:40:19 CET 2010
Author: adube
Date: 2010-12-03 17:40:18 +0100 (Fri, 03 Dec 2010)
New Revision: 2510
Modified:
sandbox/mapgears/geoext.ux/ux/LayerTreeBuilder/examples/tree-builder.js
sandbox/mapgears/geoext.ux/ux/LayerTreeBuilder/lib/GeoExt.ux/widgets/tree/LayerTreeBuilder.js
Log:
LayerTreeBuilder - vector legend nodes added
Modified: sandbox/mapgears/geoext.ux/ux/LayerTreeBuilder/examples/tree-builder.js
===================================================================
--- sandbox/mapgears/geoext.ux/ux/LayerTreeBuilder/examples/tree-builder.js 2010-12-03 15:38:13 UTC (rev 2509)
+++ sandbox/mapgears/geoext.ux/ux/LayerTreeBuilder/examples/tree-builder.js 2010-12-03 16:40:18 UTC (rev 2510)
@@ -71,10 +71,38 @@
));
// group : Vector
- layers.push(new OpenLayers.Layer.Vector(
- "A vector layer",
- {visibility: false, group: 'Vector'}
- ));
+ // also shows that the "VectorLegend" is supported
+ var mercator = new OpenLayers.Projection('EPSG:900913');
+ var lonlat = new OpenLayers.Projection('EPSG:4326');
+
+ var features = new Array(50);
+ for (var i=0; i<features.length; i++) {
+ features[i] = new OpenLayers.Feature.Vector(
+ new OpenLayers.Geometry.Point(
+ (20 * Math.random()) - 80, 20 * Math.random() + 40
+ ).transform(lonlat, mercator)
+ );
+ }
+ var rules = [
+ new OpenLayers.Rule({
+ title: "Blue stars",
+ symbolizer: {
+ graphicName: "star",
+ pointRadius: 8,
+ fillColor: "#99ccff",
+ strokeColor: "#666666",
+ strokeWidth: 1
+ }
+ })
+ ];
+ var vector = new OpenLayers.Layer.Vector('Vector points', {
+ styleMap: new OpenLayers.StyleMap(
+ new OpenLayers.Style({}, {rules: rules})
+ ),
+ group: "Vector"
+ });
+ vector.addFeatures(features);
+ layers.push(vector);
// group : undefined
layers.push(new OpenLayers.Layer.Vector(
@@ -140,7 +168,8 @@
rootVisible: false,
lines: false,
// widget custom properties
- legendNodes: true
+ wmsLegendNodes: true,
+ vectorLegendNodes: true
});
new Ext.Viewport({
Modified: sandbox/mapgears/geoext.ux/ux/LayerTreeBuilder/lib/GeoExt.ux/widgets/tree/LayerTreeBuilder.js
===================================================================
--- sandbox/mapgears/geoext.ux/ux/LayerTreeBuilder/lib/GeoExt.ux/widgets/tree/LayerTreeBuilder.js 2010-12-03 15:38:13 UTC (rev 2509)
+++ sandbox/mapgears/geoext.ux/ux/LayerTreeBuilder/lib/GeoExt.ux/widgets/tree/LayerTreeBuilder.js 2010-12-03 16:40:18 UTC (rev 2510)
@@ -13,13 +13,20 @@
baseLayersText: "Base layers",
/* end i18n */
- /** api: config[closeOnLayerAdded]
+ /** api: config[wmsLegendNodes]
* ``Boolean``
- * Defaults to true. Whether layer nodes (such as WMS, Vector, etc) should
- * have child legend nodes or not.
+ * Defaults to true. Whether WMS layer nodes should have child legend
+ * nodes or not.
*/
- legendNodes: true,
+ wmsLegendNodes: true,
+ /** api: config[vectorLegendNodes]
+ * ``Boolean``
+ * Defaults to true. Whether vector layer nodes should have child legend
+ * nodes or not.
+ */
+ vectorLegendNodes: true,
+
/** api: config[layerStore]
* ``GeoExt.data.LayerStore``
* The layer store containing layers to be displayed in the tree.
@@ -110,12 +117,14 @@
};
this.getRootNode().appendChild(layerNode);
} else {
- this.addGroupNodes(group, this.getRootNode(), groupString);
+ this.addGroupNodes(
+ group, this.getRootNode(), groupString, record
+ );
}
}, this);
},
- addGroupNodes: function(groups, parentNode, groupString){
+ addGroupNodes: function(groups, parentNode, groupString, layerRecord){
var group = groups.shift();
var childNode = this.getNodeByText(parentNode, group);
@@ -125,23 +134,39 @@
// 'LayerContainer'
if (groups.length == 0) {
var createNode;
-
- if (this.legendNodes) {
+ var layer = layerRecord.getLayer();
+ // WMS and Vector layers can have legend nodes if according
+ // property is enabled
+ if (layer instanceof OpenLayers.Layer.WMS
+ && this.wmsLegendNodes)
+ {
createNode = function(attr) {
var layerRecord = this.store.getByLayer(attr.layer);
var layer = layerRecord.getLayer();
- if (layer instanceof OpenLayers.Layer.WMS){
- // add a WMS legend to each node created
- attr.component = {
- xtype: "gx_wmslegend",
- layerRecord: layerRecord,
- showTitle: false,
- hidden: !layer.visibility,
- cls: "gx-layertreebuilder-legend"
- };
- }
+ attr.component = {
+ xtype: "gx_wmslegend",
+ layerRecord: layerRecord,
+ showTitle: false,
+ hidden: !layer.visibility,
+ cls: "gx-layertreebuilder-legend"
+ };
return GeoExt.tree.LayerLoader.prototype.createNode.call(this, attr);
}
+ } else if (layer instanceof OpenLayers.Layer.Vector
+ && this.vectorLegendNodes)
+ {
+ createNode = function(attr) {
+ var layerRecord = this.store.getByLayer(attr.layer);
+ var layer = layerRecord.getLayer();
+ attr.component = {
+ xtype: "gx_vectorlegend",
+ layerRecord: layerRecord,
+ showTitle: false,
+ hidden: !layer.visibility,
+ cls: "gx-layertreebuilder-legend"
+ };
+ return GeoExt.tree.LayerLoader.prototype.createNode.call(this, attr);
+ }
} else {
createNode = function(attr) {
return GeoExt.tree.LayerLoader.prototype.createNode.call(this, attr);
@@ -178,7 +203,7 @@
}
if (groups.length != 0){
- this.addGroupNodes(groups, childNode, groupString);
+ this.addGroupNodes(groups, childNode, groupString, layerRecord);
}
},
More information about the Commits
mailing list