More trip planner testing with colors
[busui.git] / labs / openlayers / lib / OpenLayers / Strategy.js
blob:a/labs/openlayers/lib/OpenLayers/Strategy.js -> blob:b/labs/openlayers/lib/OpenLayers/Strategy.js
  /* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for
  * full list of contributors). Published under the Clear BSD license.
  * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
  * full text of the license. */
   
  /**
  * Class: OpenLayers.Strategy
  * Abstract vector layer strategy class. Not to be instantiated directly. Use
  * one of the strategy subclasses instead.
  */
  OpenLayers.Strategy = OpenLayers.Class({
   
  /**
  * Property: layer
  * {<OpenLayers.Layer.Vector>} The layer this strategy belongs to.
  */
  layer: null,
   
  /**
  * Property: options
  * {Object} Any options sent to the constructor.
  */
  options: null,
   
  /**
  * Property: active
  * {Boolean} The control is active.
  */
  active: null,
   
  /**
  * Property: autoActivate
  * {Boolean} The creator of the strategy can set autoActivate to false
  * to fully control when the protocol is activated and deactivated.
  * Defaults to true.
  */
  autoActivate: true,
   
  /**
  * Property: autoDestroy
  * {Boolean} The creator of the strategy can set autoDestroy to false
  * to fully control when the strategy is destroyed. Defaults to
  * true.
  */
  autoDestroy: true,
   
  /**
  * Constructor: OpenLayers.Strategy
  * Abstract class for vector strategies. Create instances of a subclass.
  *
  * Parameters:
  * options - {Object} Optional object whose properties will be set on the
  * instance.
  */
  initialize: function(options) {
  OpenLayers.Util.extend(this, options);
  this.options = options;
  // set the active property here, so that user cannot override it
  this.active = false;
  },
   
  /**
  * APIMethod: destroy
  * Clean up the strategy.
  */
  destroy: function() {
  this.deactivate();
  this.layer = null;
  this.options = null;
  },
   
  /**
  * Method: setLayer
  * Called to set the <layer> property.
  *
  * Parameters:
  * {<OpenLayers.Layer.Vector>}
  */
  setLayer: function(layer) {
  this.layer = layer;
  },
   
  /**
  * Method: activate
  * Activate the strategy. Register any listeners, do appropriate setup.
  *
  * Returns:
  * {Boolean} True if the strategy was successfully activated or false if
  * the strategy was already active.
  */
  activate: function() {
  if (!this.active) {
  this.active = true;
  return true;
  }
  return false;
  },
   
  /**
  * Method: deactivate
  * Deactivate the strategy. Unregister any listeners, do appropriate
  * tear-down.
  *
  * Returns:
  * {Boolean} True if the strategy was successfully deactivated or false if
  * the strategy was already inactive.
  */
  deactivate: function() {
  if (this.active) {
  this.active = false;
  return true;
  }
  return false;
  },
   
  CLASS_NAME: "OpenLayers.Strategy"
  });