From e44a7e37b6c7b5961adaffc62b9042b8d442938e Mon Sep 17 00:00:00 2001 From: mensonge Date: Thu, 13 Nov 2008 09:49:11 +0000 Subject: New feature: basic Ajax suggestion for tags and implementation of Dojo toolkit git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@151 b3834d28-1941-0410-a4f8-b48e95affb8f --- includes/js/dijit/ProgressBar.js | 95 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 includes/js/dijit/ProgressBar.js (limited to 'includes/js/dijit/ProgressBar.js') diff --git a/includes/js/dijit/ProgressBar.js b/includes/js/dijit/ProgressBar.js new file mode 100644 index 0000000..740700a --- /dev/null +++ b/includes/js/dijit/ProgressBar.js @@ -0,0 +1,95 @@ +if(!dojo._hasResource["dijit.ProgressBar"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.ProgressBar"] = true; +dojo.provide("dijit.ProgressBar"); + +dojo.require("dojo.fx"); +dojo.require("dojo.number"); + +dojo.require("dijit._Widget"); +dojo.require("dijit._Templated"); + +dojo.declare("dijit.ProgressBar", [dijit._Widget, dijit._Templated], { + // summary: A progress indication widget + // + // example: + // |
+ // |
+ // + // progress: String (Percentage or Number) + // initial progress value. + // with "%": percentage value, 0% <= progress <= 100% + // or without "%": absolute value, 0 <= progress <= maximum + progress: "0", + + // maximum: Float + // max sample number + maximum: 100, + + // places: Number + // number of places to show in values; 0 by default + places: 0, + + // indeterminate: Boolean + // If false: show progress. + // If true: show that a process is underway but that the progress is unknown + indeterminate: false, + + templateString:"
 
 
\n", + + _indeterminateHighContrastImagePath: + dojo.moduleUrl("dijit", "themes/a11y/indeterminate_progress.gif"), + + // public functions + postCreate: function(){ + this.inherited("postCreate",arguments); + this.inteterminateHighContrastImage.setAttribute("src", + this._indeterminateHighContrastImagePath); + this.update(); + }, + + update: function(/*Object?*/attributes){ + // summary: update progress information + // + // attributes: may provide progress and/or maximum properties on this parameter, + // see attribute specs for details. + dojo.mixin(this, attributes||{}); + var percent = 1, classFunc; + if(this.indeterminate){ + classFunc = "addClass"; + dijit.removeWaiState(this.internalProgress, "valuenow"); + dijit.removeWaiState(this.internalProgress, "valuemin"); + dijit.removeWaiState(this.internalProgress, "valuemax"); + }else{ + classFunc = "removeClass"; + if(String(this.progress).indexOf("%") != -1){ + percent = Math.min(parseFloat(this.progress)/100, 1); + this.progress = percent * this.maximum; + }else{ + this.progress = Math.min(this.progress, this.maximum); + percent = this.progress / this.maximum; + } + var text = this.report(percent); + this.label.firstChild.nodeValue = text; + dijit.setWaiState(this.internalProgress, "describedby", this.label.id); + dijit.setWaiState(this.internalProgress, "valuenow", this.progress); + dijit.setWaiState(this.internalProgress, "valuemin", 0); + dijit.setWaiState(this.internalProgress, "valuemax", this.maximum); + } + dojo[classFunc](this.domNode, "dijitProgressBarIndeterminate"); + this.internalProgress.style.width = (percent * 100) + "%"; + this.onChange(); + }, + + report: function(/*float*/percent){ + // Generates message to show; may be overridden by user + return dojo.number.format(percent, {type: "percent", places: this.places, locale: this.lang}); + }, + + onChange: function(){ + // summary: User definable function fired when progress updates. + } +}); + +} -- cgit v1.2.3-54-g00ecf