dojox
Version:
Dojo eXtensions, a rollup of many useful sub-projects and varying states of maturity – from very stable and robust, to alpha and experimental. See individual projects contain README files for details.
108 lines (96 loc) • 2.83 kB
JavaScript
define(["dojo/_base/declare", "dojox/dgauges/RectangularGauge", "dojox/dgauges/LinearScaler",
"dojox/dgauges/RectangularScale", "dojox/dgauges/RectangularValueIndicator",
"dojox/dgauges/RectangularRangeIndicator", "dojox/color"],
function(declare, RectangularGauge, LinearScaler, RectangularScale, RectangularValueIndicator,
RectangularRangeIndicator, color){
return declare("dojox.dgauges.tests.gauges.BulletGraph", RectangularGauge, {
target: 50,
high: 100,
value: 50,
medium: 75,
low: 50,
constructor: function(){
var scaler = new LinearScaler({
maximum: this.high
});
this._scale = new RectangularScale({
scaler: scaler,
labelPosition: "trailing",
paddingTop: 30,
paddingBottom: 23
});
this.addElement("scale", this._scale);
var high = new RectangularRangeIndicator({
start: 0,
value: this.high,
interactionMode: "none",
fill: color.fromHsv(0, 0, 90),
stroke: null,
paddingTop: 0,
startThickness: 30,
endThickness: 30
});
this._scale.addIndicator("high", high);
var medium = new RectangularRangeIndicator({
start: 0,
value: this.medium,
interactionMode: "none",
fill: color.fromHsv(0, 0, 60),
stroke: null,
paddingTop: 0,
startThickness: 30,
endThickness: 30
});
this._scale.addIndicator("medium", medium);
var low = new RectangularRangeIndicator({
start: 0,
value: this.low,
interactionMode: "none",
fill: color.fromHsv(0, 0, 40),
stroke: null,
paddingTop: 0,
startThickness: 30,
endThickness: 30
});
this._scale.addIndicator("low", low);
var measure = new RectangularRangeIndicator({
start: 0,
value: this.value,
interactionMode: "none",
fill: [0, 0, 0],
stroke: null,
paddingTop: 10,
startThickness: 10,
endThickness: 10
});
this._scale.addIndicator("measure", measure);
var target = new RectangularValueIndicator({
paddingTop: 7,
interactionMode: "none",
value: this.target
});
target.indicatorShapeFunc = function(group){
return group.createLine({
x1: 0,
y1: 0,
x2: 0,
y2: 16
}).setStroke({
color: "black",
width: 3
}).setFill([250, 0, 0]);
};
this._scale.addIndicator("target", target);
this.addInvalidatingProperties(["target", "value", "low", "medium", "high"]);
},
refreshRendering: function(){
this.inherited(arguments);
this._scale.scaler.set("maximum", this.high);
this._scale.getIndicator("target").set("value", this.target);
this._scale.getIndicator("measure").set("value", this.value);
this._scale.getIndicator("low").set("value", this.low);
this._scale.getIndicator("medium").set("value", this.medium);
this._scale.getIndicator("high").set("value", this.high);
}
});
});