Improve output: distinguish between failed assertions (failures) and unexpected exceptions (errors), and print a filtered stack trace for any exception.
This commit is contained in:
commit
4f2e303079
1839 changed files with 235630 additions and 0 deletions
315
webapp/web/src/widget/Button.js
Normal file
315
webapp/web/src/widget/Button.js
Normal file
|
@ -0,0 +1,315 @@
|
|||
/*
|
||||
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.widget.Button");
|
||||
dojo.provide("dojo.widget.html.Button");
|
||||
|
||||
dojo.require("dojo.lang.extras");
|
||||
dojo.require("dojo.html");
|
||||
dojo.require("dojo.style");
|
||||
dojo.require("dojo.widget.*");
|
||||
dojo.require("dojo.widget.HtmlWidget");
|
||||
|
||||
dojo.widget.defineWidget(
|
||||
"dojo.widget.html.Button",
|
||||
dojo.widget.HtmlWidget,
|
||||
{
|
||||
widgetType: "Button",
|
||||
isContainer: true,
|
||||
|
||||
// Constructor arguments
|
||||
caption: "",
|
||||
disabled: false,
|
||||
|
||||
templatePath: dojo.uri.dojoUri("src/widget/templates/HtmlButtonTemplate.html"),
|
||||
templateCssPath: dojo.uri.dojoUri("src/widget/templates/HtmlButtonTemplate.css"),
|
||||
|
||||
// button images
|
||||
inactiveImg: "src/widget/templates/images/soriaButton-",
|
||||
activeImg: "src/widget/templates/images/soriaActive-",
|
||||
pressedImg: "src/widget/templates/images/soriaPressed-",
|
||||
disabledImg: "src/widget/templates/images/soriaDisabled-",
|
||||
width2height: 1.0/3.0,
|
||||
|
||||
// attach points
|
||||
containerNode: null,
|
||||
leftImage: null,
|
||||
centerImage: null,
|
||||
rightImage: null,
|
||||
|
||||
fillInTemplate: function(args, frag){
|
||||
if(this.caption != ""){
|
||||
this.containerNode.appendChild(document.createTextNode(this.caption));
|
||||
}
|
||||
dojo.html.disableSelection(this.containerNode);
|
||||
},
|
||||
|
||||
postCreate: function(args, frag){
|
||||
this.sizeMyself();
|
||||
},
|
||||
|
||||
sizeMyself: function(){
|
||||
// we cannot size correctly if any of our ancestors are hidden (display:none),
|
||||
// so temporarily attach to document.body
|
||||
if(this.domNode.parentNode){
|
||||
var placeHolder = document.createElement("span");
|
||||
dojo.dom.insertBefore(placeHolder, this.domNode);
|
||||
}
|
||||
dojo.html.body().appendChild(this.domNode);
|
||||
|
||||
this.sizeMyselfHelper();
|
||||
|
||||
// Put this.domNode back where it was originally
|
||||
if(placeHolder){
|
||||
dojo.dom.insertBefore(this.domNode, placeHolder);
|
||||
dojo.dom.removeNode(placeHolder);
|
||||
}
|
||||
},
|
||||
|
||||
sizeMyselfHelper: function(){
|
||||
this.height = dojo.style.getOuterHeight(this.containerNode);
|
||||
this.containerWidth = dojo.style.getOuterWidth(this.containerNode);
|
||||
var endWidth= this.height * this.width2height;
|
||||
|
||||
this.containerNode.style.left=endWidth+"px";
|
||||
|
||||
this.leftImage.height = this.rightImage.height = this.centerImage.height = this.height;
|
||||
this.leftImage.width = this.rightImage.width = endWidth+1;
|
||||
this.centerImage.width = this.containerWidth;
|
||||
this.centerImage.style.left=endWidth+"px";
|
||||
this._setImage(this.disabled ? this.disabledImg : this.inactiveImg);
|
||||
|
||||
if ( this.disabled ) {
|
||||
dojo.html.prependClass(this.domNode, "dojoButtonDisabled");
|
||||
} else {
|
||||
dojo.html.removeClass(this.domNode, "dojoButtonDisabled");
|
||||
}
|
||||
|
||||
this.domNode.style.height=this.height + "px";
|
||||
this.domNode.style.width= (this.containerWidth+2*endWidth) + "px";
|
||||
},
|
||||
|
||||
onMouseOver: function(e){
|
||||
if( this.disabled ){ return; }
|
||||
dojo.html.prependClass(this.domNode, "dojoButtonHover");
|
||||
this._setImage(this.activeImg);
|
||||
},
|
||||
|
||||
onMouseDown: function(e){
|
||||
if( this.disabled ){ return; }
|
||||
dojo.html.prependClass(this.domNode, "dojoButtonDepressed");
|
||||
dojo.html.removeClass(this.domNode, "dojoButtonHover");
|
||||
this._setImage(this.pressedImg);
|
||||
},
|
||||
onMouseUp: function(e){
|
||||
if( this.disabled ){ return; }
|
||||
dojo.html.prependClass(this.domNode, "dojoButtonHover");
|
||||
dojo.html.removeClass(this.domNode, "dojoButtonDepressed");
|
||||
this._setImage(this.activeImg);
|
||||
},
|
||||
|
||||
onMouseOut: function(e){
|
||||
if( this.disabled ){ return; }
|
||||
dojo.html.removeClass(this.domNode, "dojoButtonHover");
|
||||
this._setImage(this.inactiveImg);
|
||||
},
|
||||
|
||||
buttonClick: function(e){
|
||||
if( !this.disabled ) { this.onClick(e); }
|
||||
},
|
||||
|
||||
onClick: function(e) { },
|
||||
|
||||
_setImage: function(prefix){
|
||||
this.leftImage.src=dojo.uri.dojoUri(prefix + "l.gif");
|
||||
this.centerImage.src=dojo.uri.dojoUri(prefix + "c.gif");
|
||||
this.rightImage.src=dojo.uri.dojoUri(prefix + "r.gif");
|
||||
},
|
||||
|
||||
_toggleMenu: function(menuId){
|
||||
var menu = dojo.widget.getWidgetById(menuId);
|
||||
if ( !menu ) { return; }
|
||||
|
||||
if ( menu.open && !menu.isShowingNow) {
|
||||
var pos = dojo.style.getAbsolutePosition(this.domNode, false);
|
||||
menu.open(pos.x, pos.y+this.height, this);
|
||||
} else if ( menu.close && menu.isShowingNow ){
|
||||
menu.close();
|
||||
} else {
|
||||
menu.toggle();
|
||||
}
|
||||
},
|
||||
|
||||
setCaption: function(content){
|
||||
this.caption=content;
|
||||
this.containerNode.innerHTML=content;
|
||||
this.sizeMyself();
|
||||
},
|
||||
|
||||
setDisabled: function(disabled){
|
||||
this.disabled=disabled;
|
||||
this.sizeMyself();
|
||||
}
|
||||
});
|
||||
|
||||
/**** DropDownButton - push the button and a menu shows up *****/
|
||||
dojo.widget.defineWidget(
|
||||
"dojo.widget.html.DropDownButton",
|
||||
dojo.widget.html.Button,
|
||||
{
|
||||
widgetType: "DropDownButton",
|
||||
|
||||
menuId: "",
|
||||
|
||||
arrow: null,
|
||||
|
||||
downArrow: "src/widget/templates/images/whiteDownArrow.gif",
|
||||
disabledDownArrow: "src/widget/templates/images/whiteDownArrow.gif",
|
||||
|
||||
fillInTemplate: function(args, frag){
|
||||
dojo.widget.html.DropDownButton.superclass.fillInTemplate.call(this, args, frag);
|
||||
|
||||
this.arrow = document.createElement("img");
|
||||
dojo.html.setClass(this.arrow, "downArrow");
|
||||
},
|
||||
|
||||
sizeMyselfHelper: function(){
|
||||
// draw the arrow (todo: why is the arror in containerNode rather than outside it?)
|
||||
this.arrow.src = dojo.uri.dojoUri(this.disabled ? this.disabledDownArrow : this.downArrow);
|
||||
this.containerNode.appendChild(this.arrow);
|
||||
|
||||
dojo.widget.html.DropDownButton.superclass.sizeMyselfHelper.call(this);
|
||||
},
|
||||
|
||||
onClick: function (e){
|
||||
this._toggleMenu(this.menuId);
|
||||
}
|
||||
});
|
||||
|
||||
/**** ComboButton - left side is normal button, right side shows menu *****/
|
||||
dojo.widget.defineWidget(
|
||||
"dojo.widget.html.ComboButton",
|
||||
dojo.widget.html.Button,
|
||||
{
|
||||
widgetType: "ComboButton",
|
||||
|
||||
menuId: "",
|
||||
|
||||
templatePath: dojo.uri.dojoUri("src/widget/templates/HtmlComboButtonTemplate.html"),
|
||||
|
||||
// attach points
|
||||
leftPart: null,
|
||||
rightPart: null,
|
||||
arrowBackgroundImage: null,
|
||||
|
||||
// constants
|
||||
splitWidth: 2, // pixels between left&right part of button
|
||||
arrowWidth: 5, // width of segment holding down arrow
|
||||
|
||||
sizeMyselfHelper: function(e){
|
||||
this.height = dojo.style.getOuterHeight(this.containerNode);
|
||||
this.containerWidth = dojo.style.getOuterWidth(this.containerNode);
|
||||
var endWidth= this.height/3;
|
||||
|
||||
// left part
|
||||
this.leftImage.height = this.rightImage.height = this.centerImage.height =
|
||||
this.arrowBackgroundImage.height = this.height;
|
||||
this.leftImage.width = endWidth+1;
|
||||
this.centerImage.width = this.containerWidth;
|
||||
this.leftPart.style.height = this.height + "px";
|
||||
this.leftPart.style.width = endWidth + this.containerWidth + "px";
|
||||
this._setImageL(this.disabled ? this.disabledImg : this.inactiveImg);
|
||||
|
||||
// right part
|
||||
this.arrowBackgroundImage.width=this.arrowWidth;
|
||||
this.rightImage.width = endWidth+1;
|
||||
this.rightPart.style.height = this.height + "px";
|
||||
this.rightPart.style.width = this.arrowWidth + endWidth + "px";
|
||||
this._setImageR(this.disabled ? this.disabledImg : this.inactiveImg);
|
||||
|
||||
// outer container
|
||||
this.domNode.style.height=this.height + "px";
|
||||
var totalWidth = this.containerWidth+this.splitWidth+this.arrowWidth+2*endWidth;
|
||||
this.domNode.style.width= totalWidth + "px";
|
||||
},
|
||||
|
||||
/** functions on left part of button**/
|
||||
leftOver: function(e){
|
||||
if( this.disabled ){ return; }
|
||||
dojo.html.prependClass(this.leftPart, "dojoButtonHover");
|
||||
this._setImageL(this.activeImg);
|
||||
},
|
||||
|
||||
leftDown: function(e){
|
||||
if( this.disabled ){ return; }
|
||||
dojo.html.prependClass(this.leftPart, "dojoButtonDepressed");
|
||||
dojo.html.removeClass(this.leftPart, "dojoButtonHover");
|
||||
this._setImageL(this.pressedImg);
|
||||
},
|
||||
leftUp: function(e){
|
||||
if( this.disabled ){ return; }
|
||||
dojo.html.prependClass(this.leftPart, "dojoButtonHover");
|
||||
dojo.html.removeClass(this.leftPart, "dojoButtonDepressed");
|
||||
this._setImageL(this.activeImg);
|
||||
},
|
||||
|
||||
leftOut: function(e){
|
||||
if( this.disabled ){ return; }
|
||||
dojo.html.removeClass(this.leftPart, "dojoButtonHover");
|
||||
this._setImageL(this.inactiveImg);
|
||||
},
|
||||
|
||||
leftClick: function(e){
|
||||
if ( !this.disabled ) {
|
||||
this.onClick(e);
|
||||
}
|
||||
},
|
||||
|
||||
_setImageL: function(prefix){
|
||||
this.leftImage.src=dojo.uri.dojoUri(prefix + "l.gif");
|
||||
this.centerImage.src=dojo.uri.dojoUri(prefix + "c.gif");
|
||||
},
|
||||
|
||||
/*** functions on right part of button ***/
|
||||
rightOver: function(e){
|
||||
if( this.disabled ){ return; }
|
||||
dojo.html.prependClass(this.rightPart, "dojoButtonHover");
|
||||
this._setImageR(this.activeImg);
|
||||
},
|
||||
|
||||
rightDown: function(e){
|
||||
if( this.disabled ){ return; }
|
||||
dojo.html.prependClass(this.rightPart, "dojoButtonDepressed");
|
||||
dojo.html.removeClass(this.rightPart, "dojoButtonHover");
|
||||
this._setImageR(this.pressedImg);
|
||||
},
|
||||
rightUp: function(e){
|
||||
if( this.disabled ){ return; }
|
||||
dojo.html.prependClass(this.rightPart, "dojoButtonHover");
|
||||
dojo.html.removeClass(this.rightPart, "dojoButtonDepressed");
|
||||
this._setImageR(this.activeImg);
|
||||
},
|
||||
|
||||
rightOut: function(e){
|
||||
if( this.disabled ){ return; }
|
||||
dojo.html.removeClass(this.rightPart, "dojoButtonHover");
|
||||
this._setImageR(this.inactiveImg);
|
||||
},
|
||||
|
||||
rightClick: function(e){
|
||||
if( this.disabled ){ return; }
|
||||
this._toggleMenu(this.menuId);
|
||||
},
|
||||
|
||||
_setImageR: function(prefix){
|
||||
this.arrowBackgroundImage.src=dojo.uri.dojoUri(prefix + "c.gif");
|
||||
this.rightImage.src=dojo.uri.dojoUri(prefix + "r.gif");
|
||||
}
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue