Files
openlayers/lib/OpenLayers/Control/DrawFeature.js
crschmidt 9011c8ca0a Tag 2.4-RC2.
git-svn-id: http://svn.openlayers.org/tags/openlayers/release-2.4-rc2@3089 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
2007-04-20 01:29:54 +00:00

64 lines
1.7 KiB
JavaScript

/* Copyright (c) 2006 MetaCarta, Inc., published under a BSD license.
* See http://svn.openlayers.org/trunk/openlayers/release-license.txt
* for the full text of the license. */
/**
* Draws features on a vector layer when active.
*
* @class
* @requires OpenLayers/Control.js
* @requires OpenLayers/Feature/Vector.js
*/
OpenLayers.Control.DrawFeature = OpenLayers.Class.create();
OpenLayers.Control.DrawFeature.prototype =
OpenLayers.Class.inherit(OpenLayers.Control, {
/**
* @type OpenLayers.Layer.Vector
*/
layer: null,
/**
* @type {Object} The functions that are sent to the handler for callback
*/
callbacks: null,
/**
* @type {Function} Called after each feature is added
*/
featureAdded: function() {},
/**
* Used to set non-default properties on the control's handler
*
* @type Object
*/
handlerOptions: null,
/**
* @param {OpenLayers.Layer.Vector} layer
* @param {OpenLayers.Handler} handler
* @param {Object} options
*/
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);
},
/**
*
*/
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"
});