| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 | 
define("dojox/geo/charting/widget/Map", ["dojo/_base/kernel", "dojo/_base/lang", "dojo/_base/declare","dojo/_base/html","dojo/dom-geometry",		"dijit/_Widget","dojox/geo/charting/Map"],							function(dojo, lang, declare, html,domGeom, Widget, Map) {return declare("dojox.geo.charting.widget.Map", Widget, {	// summary:	//		A map viewer widget based on the dojox.geo.charting.Map component	//	//	description:	//		The `dojox.geo.charting.widget.Map` widget combines map display together with charting capabilities. 	//		It encapsulates  an `dojox.geo.charting.Map` object on which most operations are delegated.	//		Parameters can be passed as argument at construction time to specify map data file (json shape format)	//		as well as charting data. 	// 	//	The parameters are :	//		// * `shapeData`: The json object containing map data or the name of the file containing map data.	// * `dataStore`: the dataStore to fetch the charting data from	// * `dataBindingAttribute`: property name of the dataStore items to use as value for charting	// * `markerData`: tooltips to display for map features, handled as json style.	// * `adjustMapCenterOnResize`: if true, the center of the map remains the same when resizing the widget   	// * `adjustMapScaleOnResize`: if true, the map scale is adjusted to leave the visible portion of the map identical as much as possible 	//	//	example:	//	// |	var map = new dojox.geo.charting.widget.Map({	// |		shapeData : 'map.json',	// |		adjustMapCenterOnresize : true,	// |		adjustMapScaleOnresize : true,	// |	});	shapeData : "",	dataStore : null,	dataBindingAttribute : "",	dataBindingValueFunction: null,	markerData : "",	series : "",	adjustMapCenterOnResize: null,	adjustMapScaleOnResize: null,	animateOnResize: null,	onFeatureClick: null,	onFeatureOver: null,	enableMouseSupport: null,	enableTouchSupport: null,	enableMouseZoom: null,	enableMousePan: null,	enableKeyboardSupport: false,	showTooltips: false,	enableFeatureZoom: null,	colorAnimationDuration: 0,	mouseClickThreshold: 2,	_mouseInteractionSupport:null,	_touchInteractionSupport:null,	_keyboardInteractionSupport:null,	constructor : function(/* Object */options, /* HtmlNode */div){		//	summary: 		//		Constructs a new Map widget		this.map = null;	},	startup : function(){		this.inherited(arguments);		if (this.map) {			this.map.fitToMapContents();		}			},	postMixInProperties : function(){		this.inherited(arguments);	},	create : function(/*Object?*/params, /*DomNode|String?*/srcNodeRef){		this.inherited(arguments);	},		getInnerMap: function() {		return this.map;	},		buildRendering : function(){		//	summary:		//		Construct the UI for this widget, creates the underlying real dojox.geo.charting.Map object.				//	tags:		//		protected		this.inherited(arguments);		if (this.shapeData) {			this.map = new Map(this.domNode, this.shapeData);			if (this.markerData && (this.markerData.length > 0))				this.map.setMarkerData(this.markerData);						if (this.dataStore) {				if (this.dataBindingValueFunction) {					this.map.setDataBindingValueFunction(this.dataBindingValueFunction);				}				this.map.setDataStore(this.dataStore,this.dataBindingAttribute);			}						if (this.series && (this.series.length > 0)) {				this.map.addSeries(this.series);			}						if (this.onFeatureClick) {				this.map.onFeatureClick = this.onFeatureClick;			}			if (this.onFeatureOver) {				this.map.onFeatureOver = this.onFeatureOver;			}			if (this.enableMouseSupport) {								if (!dojox.geo.charting.MouseInteractionSupport) {					throw Error("Can't find dojox.geo.charting.MouseInteractionSupport. Didn't you forget to dojo" + ".require() it?");				}				var options = {};				options.enablePan = this.enableMousePan;				options.enableZoom = this.enableMouseZoom;				options.mouseClickThreshold = this.mouseClickThreshold;				this._mouseInteractionSupport = new dojox.geo.charting.MouseInteractionSupport(this.map,options);				this._mouseInteractionSupport.connect();			}						if (this.enableTouchSupport) {				if (!dojox.geo.charting.TouchInteractionSupport) {					throw Error("Can't find dojox.geo.charting.TouchInteractionSupport. Didn't you forget to dojo" + ".require() it?");				}				this._touchInteractionSupport = new dojox.geo.charting.TouchInteractionSupport(this.map,{});				this._touchInteractionSupport.connect(); 			}			if (this.enableKeyboardSupport) {				if (!dojox.geo.charting.KeyboardInteractionSupport) {					throw Error("Can't find dojox.geo.charting.KeyboardInteractionSupport. Didn't you forget to dojo" + ".require() it?");				}				this._keyboardInteractionSupport = new dojox.geo.charting.KeyboardInteractionSupport(this.map,{});				this._keyboardInteractionSupport.connect(); 			}			this.map.showTooltips = this.showTooltips;			this.map.enableFeatureZoom = this.enableFeatureZoom;			this.map.colorAnimationDuration = this.colorAnimationDuration;								}	},		resize : function(b){		//	summary:		//		Resize the widget.		//	description:		//		Resize the domNode and the widget to the dimensions of a box of the following form:		//			`{ l: 50, t: 200, w: 300: h: 150 }`		//	box:		//		If passed, denotes the new size of the widget.		var box;		switch (arguments.length) {			case 0:				// case 0, do not resize the div, just the surface				break;			case 1:				// argument, override node box				box = lang.mixin({}, b);				domGeom.getMarginBox(this.domNode, box);				break;			case 2:				// two argument, width, height				box = {					w : arguments[0],					h : arguments[1]				};				domGeom.getMarginBox(this.domNode, box);				break;		}				if (this.map) {			this.map.resize(this.adjustMapCenterOnResize,this.adjustMapScaleOnResize,this.animateOnResize);		}	}});});
 |