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