|
Struts example source code file (Series.js)
The Struts Series.js source code/* Copyright (c) 2004-2006, The Dojo Foundation All Rights Reserved. Licensed under the Academic Free License version 2.1 or above OR the modified BSD license. For more information on Dojo licensing, see: http://dojotoolkit.org/community/licensing.shtml */ dojo.provide("dojo.charting.Series"); dojo.require("dojo.lang.common"); dojo.require("dojo.charting.Plotters"); dojo.charting.Series = function (kwArgs) { var args = kwArgs || {length:1}; this.dataSource = args.dataSource || null; this.bindings = {}; this.color = args.color; this.label = args.label; if (args.bindings) { for (var p in args.bindings) { this.addBinding(p, args.bindings[p]); } } }; dojo.extend(dojo.charting.Series, {bind:function (src, bindings) { this.dataSource = src; this.bindings = bindings; }, addBinding:function (name, binding) { this.bindings[name] = binding; }, evaluate:function (kwArgs) { var ret = []; var a = this.dataSource.getData(); var l = a.length; var start = 0; var end = l; if (kwArgs) { if (kwArgs.between) { for (var i = 0; i < l; i++) { var fld = this.dataSource.getField(a[i], kwArgs.between.field); if (fld >= kwArgs.between.low && fld <= kwArgs.between.high) { var o = {src:a[i], series:this}; for (var p in this.bindings) { o[p] = this.dataSource.getField(a[i], this.bindings[p]); } ret.push(o); } } } else { if (kwArgs.from || kwArgs.length) { if (kwArgs.from) { start = Math.max(kwArgs.from, 0); if (kwArgs.to) { end = Math.min(kwArgs.to, end); } } else { if (kwArgs.length < 0) { start = Math.max((end + length), 0); } else { end = Math.min((start + length), end); } } for (var i = start; i < end; i++) { var o = {src:a[i], series:this}; for (var p in this.bindings) { o[p] = this.dataSource.getField(a[i], this.bindings[p]); } ret.push(o); } } } } else { for (var i = start; i < end; i++) { var o = {src:a[i], series:this}; for (var p in this.bindings) { o[p] = this.dataSource.getField(a[i], this.bindings[p]); } ret.push(o); } } if (ret.length > 0 && typeof (ret[0].x) != "undefined") { ret.sort(function (a, b) { if (a.x > b.x) { return 1; } if (a.x < b.x) { return -1; } return 0; }); } return ret; }, trends:{createRange:function (values, len) { var idx = values.length - 1; var length = (len || values.length); return {"index":idx, "length":length, "start":Math.max(idx - length, 0)}; }, mean:function (values, len) { var range = this.createRange(values, len); if (range.index < 0) { return 0; } var total = 0; var count = 0; for (var i = range.index; i >= range.start; i--) { total += values[i].y; count++; } total /= Math.max(count, 1); return total; }, variance:function (values, len) { var range = this.createRange(values, len); if (range.index < 0) { return 0; } var total = 0; var square = 0; var count = 0; for (var i = range.index; i >= range.start; i--) { total += values[i].y; square += Math.pow(values[i].y, 2); count++; } return (square / count) - Math.pow(total / count, 2); }, standardDeviation:function (values, len) { return Math.sqrt(this.getVariance(values, len)); }, max:function (values, len) { var range = this.createRange(values, len); if (range.index < 0) { return 0; } var max = Number.MIN_VALUE; for (var i = range.index; i >= range.start; i--) { max = Math.max(values[i].y, max); } return max; }, min:function (values, len) { var range = this.createRange(values, len); if (range.index < 0) { return 0; } var min = Number.MAX_VALUE; for (var i = range.index; i >= range.start; i--) { min = Math.min(values[i].y, min); } return min; }, median:function (values, len) { var range = this.createRange(values, len); if (range.index < 0) { return 0; } var a = []; for (var i = range.index; i >= range.start; i--) { var b = false; for (var j = 0; j < a.length; j++) { if (values[i].y == a[j]) { b = true; break; } } if (!b) { a.push(values[i].y); } } a.sort(); if (a.length > 0) { return a[Math.ceil(a.length / 2)]; } return 0; }, mode:function (values, len) { var range = this.createRange(values, len); if (range.index < 0) { return 0; } var o = {}; var ret = 0; var median = Number.MIN_VALUE; for (var i = range.index; i >= range.start; i--) { if (!o[values[i].y]) { o[values[i].y] = 1; } else { o[values[i].y]++; } } for (var p in o) { if (median < o[p]) { median = o[p]; ret = p; } } return ret; }}}); Other Struts examples (source code examples)Here is a short list of links related to this Struts Series.js source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.