/* Copyright (c) 2006 MetaCarta, Inc., published under a modified BSD license. * See http://svn.openlayers.org/trunk/openlayers/repository-license.txt * for the full text of the license. */ /** * @requires OpenLayers/Control.js * @requires OpenLayers/Feature/Vector.js * * Class: OpenLayers.Control.DrawFeature * Draws features on a vector layer when active. * * Inherits from: * - */ OpenLayers.Control.DrawFeature = OpenLayers.Class.create(); OpenLayers.Control.DrawFeature.prototype = OpenLayers.Class.inherit(OpenLayers.Control, { /** * Property: layer * {} */ layer: null, /** * Property: callbacks * {Object} The functions that are sent to the handler for callback */ callbacks: null, /** * APIProperty: featureAdded * {Function} Called after each feature is added */ featureAdded: function() {}, /** * APIProperty: handlerOptions * {Object} Used to set non-default properties on the control's handler */ handlerOptions: null, /** * Constructor: OpenLayers.Control.DrawFeature * * Parameters: * layer - {} * handler - {} * options - {Object} */ initialize: function(layer, handler, options) { OpenLayers.Control.prototype.initialize.apply(this, [options]); this.callbacks = OpenLayers.Util.extend({done: this.drawFeature}, this.callbacks); this.layer = layer; this.handler = new handler(this, this.callbacks, this.handlerOptions); }, /** * Method: drawFeature */ drawFeature: function(geometry) { var feature = new OpenLayers.Feature.Vector(geometry); this.layer.addFeatures([feature]); this.featureAdded(feature); }, /** @final @type String */ CLASS_NAME: "OpenLayers.Control.DrawFeature" });