123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- define("dojox/charting/action2d/TouchIndicator", ["dojo/_base/lang", "dojo/_base/declare", "dojo/_base/event", "./ChartAction", "./_IndicatorElement", "dojox/lang/utils"],
- function(lang, declare, eventUtil, ChartAction, IndicatorElement, du){
-
-
- return declare("dojox.charting.action2d.TouchIndicator", ChartAction, {
-
-
-
- defaultParams: {
- series: "",
- dualIndicator: false,
- vertical: true,
- autoScroll: true,
- fixed: true,
- precision: 0
- },
- optionalParams: {
- lineStroke: {},
- outlineStroke: {},
- shadowStroke: {},
- stroke: {},
- outline: {},
- shadow: {},
- fill: {},
- fillFunc: null,
- labelFunc: null,
- font: "",
- fontColor: "",
- markerStroke: {},
- markerOutline: {},
- markerShadow: {},
- markerFill: {},
- markerSymbol: ""
- },
- constructor: function(chart, plot, kwArgs){
-
-
-
-
-
-
- this._listeners = [{eventName: "ontouchstart", methodName: "onTouchStart"},
- {eventName: "ontouchmove", methodName: "onTouchMove"},
- {eventName: "ontouchend", methodName: "onTouchEnd"},
- {eventName: "ontouchcancel", methodName: "onTouchEnd"}];
- this.opt = lang.clone(this.defaultParams);
- du.updateWithObject(this.opt, kwArgs);
- du.updateWithPattern(this.opt, kwArgs, this.optionalParams);
- this._uName = "touchIndicator"+this.opt.series;
- this.connect();
- },
-
- connect: function(){
-
-
-
- this.inherited(arguments);
-
- this.chart.addPlot(this._uName, {type: IndicatorElement, inter: this});
- },
- disconnect: function(){
-
-
- var plot = this.chart.getPlot(this._uName);
- if(plot.pageCoord){
-
- this.onTouchEnd();
- }
- this.chart.removePlot(this._uName);
- this.inherited(arguments);
- },
- onTouchStart: function(event){
-
-
- if(event.touches.length==1){
- this._onTouchSingle(event, true);
- }else if(this.opt.dualIndicator && event.touches.length==2){
- this._onTouchDual(event);
- }
- },
- onTouchMove: function(event){
-
-
- if(event.touches.length==1){
- this._onTouchSingle(event);
- }else if(this.opt.dualIndicator && event.touches.length==2){
- this._onTouchDual(event);
- }
- },
- _onTouchSingle: function(event, delayed){
-
- if(this.chart._delayedRenderHandle && !delayed){
-
- clearTimeout(this.chart._delayedRenderHandle);
- this.chart._delayedRenderHandle = null;
- this.chart.render();
- }
- var plot = this.chart.getPlot(this._uName);
- plot.pageCoord = {x: event.touches[0].pageX, y: event.touches[0].pageY};
- plot.dirty = true;
- if(delayed){
- this.chart.delayedRender();
- }else{
- this.chart.render();
- }
- eventUtil.stop(event);
- },
-
- _onTouchDual: function(event){
- var plot = this.chart.getPlot(this._uName);
- plot.pageCoord = {x: event.touches[0].pageX, y: event.touches[0].pageY};
- plot.secondCoord = {x: event.touches[1].pageX, y: event.touches[1].pageY};
- plot.dirty = true;
- this.chart.render();
- eventUtil.stop(event);
- },
- onTouchEnd: function(event){
-
-
- var plot = this.chart.getPlot(this._uName);
- plot.stopTrack();
- plot.pageCoord = null;
- plot.secondCoord = null;
- plot.dirty = true;
- this.chart.delayedRender();
- }
- });
- });
|