Community Map Builder 27 Apr 2008

ToolBase.js

Summary

No overview generated for 'ToolBase.js'


Class Summary
ToolBase  

/*
License: LGPL as per: http://www.gnu.org/copyleft/lesser.html
$Id: ToolBase.js 3881 2008-02-27 15:41:07Z gjvoosten $
*/

/**
 * Base Tool object that all Tools extend.
 * @constructor
 * @author Mike Adair mike.adairATccrs.nrcan.gc.ca
 * @param toolNode The tool node from the Config XML file.
 * @param model    The widget object which created this tool.
 */
function ToolBase(toolNode, model) {
  this.model = model;
  this.toolNode = toolNode;

  //set the ID for this tool
  var id = toolNode.selectSingleNode("@id");
  if (id) {
    this.id = getNodeValue(id);
  } else {
    this.id = "MbTool_" + mbIds.getId();
  }

  /**
   * Initialize the targetModel property to point to the object.  This happens
   * as an init listener to ensure that the referenced model has been created.
   * @param toolRef Pointer to this object.
   */
  this.initTargetModel = function(toolRef) {
    /** The model this tool will update. */
    var targetModel = toolRef.toolNode.selectSingleNode("mb:targetModel");
    if (targetModel) {
      var targetModelName = getNodeValue(targetModel);
      //toolRef.targetModel = eval("config.objects."+targetModelName);
      toolRef.targetModel = window.config.objects[targetModelName];
      if (!toolRef.targetModel) alert(mbGetMessage("noTargetModelTool", targetModelName, toolRef.id));
    } else {
      toolRef.targetModel = toolRef.model;
    }
  }
  this.model.addListener( "init", this.initTargetModel, this );

  /**
   * Initialize the mouseHandler property to point to the object.  This happens
   * as an init listener to ensure that the referenced model has been created.
   * @param toolRef Pointer to this object.
   */
  this.initMouseHandler = function(toolRef) {
    /** Mouse handler which this tool will register listeners with. */
    var mouseHandler = toolRef.toolNode.selectSingleNode("mb:mouseHandler");
    if (mouseHandler) {
      toolRef.mouseHandler = window.config.objects[getNodeValue(mouseHandler)];
      if (!toolRef.mouseHandler) {
        alert(mbGetMessage("noMouseHandlerTool", getNodeValue(mouseHandler), toolRef.id));
      }
    }
  }
  this.model.addListener( "init", this.initMouseHandler, this );

  /**
   * Convenient access to Mapbuilder.getProperty
   * @param property property to get
   * @param default value to use if property is not set
   * @return the value for the property
   */
  this.getProperty = function(property, defaultValue) {
    return Mapbuilder.getProperty(toolNode, property, defaultValue);
  }

  //tools enabled by default; can set to false in config for initial loading
  this.enabled = Mapbuilder.parseBoolean(this.getProperty("mb:enabled", true));
}

Community Map Builder 27 Apr 2008

Documentation generated by JSDoc on Sun Apr 27 20:30:54 2008