[OpenLayers-Trac] [OpenLayers] #1005: allow customization of the tools that appear in the editing toolbar
OpenLayers
trac at openlayers.org
Wed Sep 19 14:56:09 EDT 2007
#1005: allow customization of the tools that appear in the editing toolbar
------------------------------+---------------------------------------------
Reporter: brentp | Owner:
Type: feature | Status: new
Priority: minor | Milestone:
Component: Control | Version: 2.5 RC1
Keywords: Editing, Toolbar |
------------------------------+---------------------------------------------
in trunk, all tools (Polygon, Point, Path) appear in the toolbar by
defautl, this patch allows specification of which controls are to appear
in teh options of the constructor:
{{{
var editbar = new
OpenLayers.Control.EditingToolbar(vlayer,{'tools':['Point','Polygon']})
}}}
will only show the Point and Polygon tools.
{{{
$ svn diff lib/OpenLayers/Control/EditingToolbar.js
Index: lib/OpenLayers/Control/EditingToolbar.js
===================================================================
--- lib/OpenLayers/Control/EditingToolbar.js (revision 4394)
+++ lib/OpenLayers/Control/EditingToolbar.js (working copy)
@@ -24,19 +24,26 @@
* layer - {<OpenLayers.Layer.Vector>}
* options - {Object}
*/
+ DEFAULT_TOOLS : ['Point', 'Path', 'Polygon'],
+
initialize: function(layer, options) {
OpenLayers.Control.Panel.prototype.initialize.apply(this,
[options]);
this.addControls(
[ new OpenLayers.Control.Navigation() ]
);
- var controls = [
- new OpenLayers.Control.DrawFeature(layer,
OpenLayers.Handler.Point, {'displayClass': 'olControlDrawFeaturePoint'}),
- new OpenLayers.Control.DrawFeature(layer,
OpenLayers.Handler.Path, {'displayClass': 'olControlDrawFeaturePath'}),
- new OpenLayers.Control.DrawFeature(layer,
OpenLayers.Handler.Polygon, {'displayClass':
'olControlDrawFeaturePolygon'})
- ];
- for (var i = 0; i < controls.length; i++) {
- controls[i].featureAdded = function(feature) { feature.state
= OpenLayers.State.INSERT; }
+ var tools = options && options.tools
+ ||
OpenLayers.Control.EditingToolbar.prototype.DEFAULT_TOOLS
+ controls = [];
+ var ctl;
+ for(var i=0;ctl=tools[i];++i){
+ var drawfeat = new OpenLayers.Control.DrawFeature(layer,
+ OpenLayers.Handler[ctl],
+ {'displayClass': 'olControlDrawFeature' + ctl });
+ drawfeat.featureAdded = function(feature){
+ feature.state = OpenLayers.State.INSERT;
+ };
+ controls.push(drawfeat);
}
this.addControls(controls);
},
}}}
--
Ticket URL: <http://trac.openlayers.org/ticket/1005>
OpenLayers <http://openlayers.org/>
A free AJAX map viewer
More information about the Trac
mailing list