Button.js
Summary
No overview generated for 'Button.js'
draw2d.Button=function( palette, width, height)
{
this.x = 0;
this.y = 0;
this.id = this.generateUId();
this.enabled=true;
this.active=false;
this.palette = palette;
if(width && height)
this.setDimension(width,height);
else
this.setDimension(24,24);
this.html = this.createHTMLElement();
}
draw2d.Button.prototype.type="Button";
draw2d.Button.prototype.dispose=function()
{
}
draw2d.Button.prototype.getImageUrl=function()
{
if(this.enabled)
return this.type+".png";
else
return this.type+"_disabled.png";
}
draw2d.Button.prototype.createHTMLElement=function()
{
var item = document.createElement('div');
item.id = this.id;
item.style.position="absolute";
item.style.left = this.x+"px";
item.style.top = this.y+"px";
item.style.height = this.width+"px";
item.style.width = this.height+"px";
item.style.margin = "0px";
item.style.padding= "0px";
item.style.outline= "none";
if(this.getImageUrl()!=null)
item.style.backgroundImage="url("+this.getImageUrl()+")";
else
item.style.backgroundImage="";
var oThis = this;
this.omousedown=function(event)
{
if(oThis.enabled)
{
oThis.setActive(true);
}
event.cancelBubble = true;
event.returnValue = false;
}
this.omouseup=function(event)
{
if(oThis.enabled)
{
oThis.setActive(false);
oThis.execute();
}
event.cancelBubble = true;
event.returnValue = false;
}
if (item.addEventListener)
{
item.addEventListener("mousedown", this.omousedown, false);
item.addEventListener("mouseup", this.omouseup, false);
}
else if (item.attachEvent)
{
item.attachEvent("onmousedown", this.omousedown);
item.attachEvent("onmouseup", this.omouseup);
}
return item;
}
draw2d.Button.prototype.getHTMLElement=function()
{
if(this.html==null)
this.html = this.createHTMLElement();
return this.html;
}
draw2d.Button.prototype.execute=function()
{
}
draw2d.Button.prototype.setTooltip=function( tooltipText)
{
this.tooltip = tooltipText;
if(this.tooltip!=null)
this.html.title=this.tooltip;
else
this.html.title="";
}
draw2d.Button.prototype.setActive=function(flag )
{
if(!this.enabled)
return;
this.active = flag;
if(flag==true)
this.html.style.border="2px inset";
else
this.html.style.border="0px";
}
draw2d.Button.prototype.isActive=function()
{
return this.active;
}
draw2d.Button.prototype.setEnabled=function(flag )
{
this.enabled=flag;
if(this.getImageUrl()!=null)
this.html.style.backgroundImage="url("+this.getImageUrl()+")";
else
this.html.style.backgroundImage="";
}
draw2d.Button.prototype.setDimension=function( w , h )
{
this.width = w;
this.height= h;
if(this.html==null)
return;
this.html.style.width = this.width+"px";
this.html.style.height = this.height+"px";
}
draw2d.Button.prototype.setPosition=function( xPos , yPos)
{
this.x = Math.max(0,xPos);
this.y = Math.max(0,yPos);
if(this.html==null)
return;
this.html.style.left = this.x+"px";
this.html.style.top = this.y+"px";
}
draw2d.Button.prototype.getWidth=function()
{
return this.width;
}
draw2d.Button.prototype.getHeight=function()
{
return this.height;
}
draw2d.Button.prototype.getY=function()
{
return this.y;
}
draw2d.Button.prototype.getX=function()
{
return this.x;
}
draw2d.Button.prototype.getPosition=function()
{
return new draw2d.Point(this.x, this.y);
}
draw2d.Button.prototype.getToolPalette=function()
{
return this.palette;
}
draw2d.Button.prototype.generateUId=function()
{
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 10;
var maxTry = 10;
nbTry = 0
while (nbTry < 1000)
{
var id = '';
for (var i=0; i<string_length; i++)
{
var rnum = Math.floor(Math.random() * chars.length);
id += chars.substring(rnum,rnum+1);
}
elem = document.getElementById(id);
if (!elem)
return id
nbTry += 1
}
return null
}
Documentation generated by
JSDoc on Thu Feb 7 23:45:47 2008