From: Sheldon M. <she...@us...> - 2008-06-11 08:36:20
|
Update of /cvsroot/gmod/Generic-Genome-Browser/htdocs/js In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv11057 Modified Files: Tag: stable balloon.js Log Message: adding user patch plus some necessary changes for use with mediawiki Index: balloon.js =================================================================== RCS file: /cvsroot/gmod/Generic-Genome-Browser/htdocs/js/balloon.js,v retrieving revision 1.1.2.32 retrieving revision 1.1.2.33 diff -C2 -d -r1.1.2.32 -r1.1.2.33 *** balloon.js 15 May 2008 22:44:01 -0000 1.1.2.32 --- balloon.js 11 Jun 2008 08:36:18 -0000 1.1.2.33 *************** *** 55,58 **** --- 55,64 ---- //this.helpUrl = '/cgi-bin/help.pl'; + // ID of element to which balloon should be added + // default = none (document.body is used) + // This option may be required for mediawiki or other + // implementations with complex stylesheets + this.parentID = null; + // maxium allowed balloon width (px) this.minWidth = 150; *************** *** 94,99 **** // channels will not work. An optional alternative image can be // provided. It should have the same dimensions as the default png image ! this.balloonImage = '/images/balloons/balloon.png'; // with alpha channels ! this.ieImage = '/images/balloons/balloon_ie.png'; // indexed color, transparent background // whether the balloon should have a stem --- 100,106 ---- // channels will not work. An optional alternative image can be // provided. It should have the same dimensions as the default png image ! this.images = '/images/balloons'; ! this.balloonImage = 'balloon.png'; // with alpha channels ! this.ieImage = 'balloon_ie.png'; // indexed color, transparent background // whether the balloon should have a stem *************** *** 106,116 **** // A stem for each of the four orientations ! this.upLeftStem = '/images/balloons/up_left.png'; ! this.downLeftStem = '/images/balloons/down_left.png'; ! this.upRightStem = '/images/balloons/up_right.png'; ! this.downRightStem = '/images/balloons/down_right.png'; // A close button for sticky balloons ! this.closeButton = '/images/balloons/close.png'; // track the cursor every time the mouse moves --- 113,123 ---- // A stem for each of the four orientations ! this.upLeftStem = 'up_left.png'; ! this.downLeftStem = 'down_left.png'; ! this.upRightStem = 'up_right.png'; ! this.downRightStem = 'down_right.png'; // A close button for sticky balloons ! this.closeButton = 'close.png'; // track the cursor every time the mouse moves *************** *** 160,164 **** // if the firing event is a click, fade-in and a non-sticky balloon make no sense - if (!mouseOver) { sticky = true; --- 167,170 ---- *************** *** 244,263 **** this.container.innerHTML = unescape(this.currentHelpText); ! // Also preload the balloon images ! if (!this.images) { ! this.images = document.createElement('div'); ! document.body.appendChild(this.images); ! this.setStyle(this.images,'position','absolute'); ! this.setStyle(this.images,'top',-8888); ! this.setStyle(this.images,'display','inline'); ! if (this.upLeftStem) this.images.innerHTML = '<img src='+this.upLeftStem+'>'; ! if (this.upRightStem) this.images.innerHTML += '<img src='+this.upRightStem+'>'; ! if (this.downLeftStem) this.images.innerHTML += '<img src='+this.downLeftStem+'>'; ! if (this.downRightStem) this.images.innerHTML += '<img src='+this.downRightStem+'>'; ! this.images.innerHTML += '<img src='+this.balloonImage+'>'; ! this.images.innerHTML += '<img src='+this.closeButton+'>'; } else { ! this.setStyle(this.images,'display','none'); } --- 250,281 ---- this.container.innerHTML = unescape(this.currentHelpText); ! // make sure balloon image path is complete ! if (this.images) { ! this.balloonImage = this.images +'/'+ this.balloonImage; ! this.ieImage = this.images +'/'+ this.ieImage; ! this.upLeftStem = this.images +'/'+ this.upLeftStem; ! this.upRightStem = this.images +'/'+ this.upRightStem; ! this.downLeftStem = this.images +'/'+ this.downLeftStem; ! this.downRightStem = this.images +'/'+ this.downRightStem; ! this.closeButton = this.images +'/'+ this.closeButton; ! this.images = false; ! } ! ! // preload balloon images ! if (!this.preloadedImages) { ! this.preloadedImages = document.createElement('div'); ! document.body.appendChild(this.preloadedImages); ! this.setStyle(this.preloadedImages,'position','absolute'); ! this.setStyle(this.preloadedImages,'top',-8888); ! this.setStyle(this.preloadedImages,'display','inline'); ! if (this.upLeftStem) this.preloadedImages.innerHTML = '<img src='+this.upLeftStem+'>'; ! if (this.upRightStem) this.preloadedImages.innerHTML += '<img src='+this.upRightStem+'>'; ! if (this.downLeftStem) this.preloadedImages.innerHTML += '<img src='+this.downLeftStem+'>'; ! if (this.downRightStem) this.preloadedImages.innerHTML += '<img src='+this.downRightStem+'>'; ! this.preloadedImages.innerHTML += '<img src='+this.balloonImage+'>'; ! this.preloadedImages.innerHTML += '<img src='+this.closeButton+'>'; } else { ! this.setStyle(this.preloadedImages,'display','none'); } *************** *** 277,284 **** Balloon.prototype.doShowTooltip = function() { var self = currentBalloonClass; ! // Stop firing if a balloon is already being displayed if (balloonIsVisible) return false; // a short delay time might cause some intereference // with fade-out --- 295,313 ---- Balloon.prototype.doShowTooltip = function() { var self = currentBalloonClass; ! // Stop firing if a balloon is already being displayed if (balloonIsVisible) return false; + if (!self.parent) { + if (self.parentID) { + self.parent = document.getElementById(self.parentID); + } + else { + self.parent = document.body; + } + self.xOffset = self.getLoc(self.parent, 'x1'); + self.yOffset = self.getLoc(self.parent, 'y1'); + } + // a short delay time might cause some intereference // with fade-out *************** *** 317,325 **** var margin = Math.round(self.padding/2); var top = margin + self.shadow; ! var marginLeft = 16 - margin; ! topRight.innerHTML = '\ ! <img src="'+self.closeButton+'" title="Close" \ ! onclick="Balloon.prototype.hideTooltip(1)" \ style="position:absolute;top:'+top+'px;left:0px;\ margin-left:-'+marginLeft+'px;cursor:pointer;z-index:3">'; --- 346,357 ---- var margin = Math.round(self.padding/2); var top = margin + self.shadow; ! var closeImg = new Image(); ! closeImg.src = self.closeButton; ! var marginLeft = closeImg.width - margin; ! delete closeImg; ! topRight.innerHTML = '\ ! <img src="'+self.closeButton+'" title="Close" \ ! onclick="Balloon.prototype.hideTooltip(1)" \ style="position:absolute;top:'+top+'px;left:0px;\ margin-left:-'+marginLeft+'px;cursor:pointer;z-index:3">'; *************** *** 340,348 **** var balloon = document.getElementById('balloon'); ! if (balloon) document.body.removeChild(balloon); balloon = document.createElement('div'); balloon.setAttribute('id','balloon'); ! document.body.appendChild(balloon); self.activeBalloon = balloon; --- 372,380 ---- var balloon = document.getElementById('balloon'); ! if (balloon) self.parent.removeChild(balloon); balloon = document.createElement('div'); balloon.setAttribute('id','balloon'); ! self.parent.appendChild(balloon); self.activeBalloon = balloon; *************** *** 382,386 **** self.setStyle(balloon,'padding-left',fullPadding); self.setStyle(balloon,'top',-9999); ! self.setStyle(balloon,'z-index',1); --- 414,418 ---- self.setStyle(balloon,'padding-left',fullPadding); self.setStyle(balloon,'top',-9999); ! self.setStyle(balloon,'z-index',1000000); *************** *** 441,448 **** if (hOrient == 'left') { var activeRight = pageWidth - self.activeLeft; ! self.setStyle(balloon,'right',activeRight); } else { ! self.setStyle(balloon,'left',self.activeRight); } --- 473,480 ---- if (hOrient == 'left') { var activeRight = pageWidth - self.activeLeft; ! self.setStyle(balloon,'right',activeRight + self.xOffset); } else { ! self.setStyle(balloon,'left',self.activeRight - self.xOffset); } *************** *** 488,497 **** if (vOrient == 'up') { var activeTop = self.activeTop - self.vOffset - self.stemHeight - lineHeight; ! self.setStyle(balloon,'top',activeTop); self.setStyle(balloon,'display','inline'); } else { var activeTop = self.activeTop + self.vOffset + self.stemHeight; ! self.setStyle(balloon,'top',activeTop); } --- 520,529 ---- if (vOrient == 'up') { var activeTop = self.activeTop - self.vOffset - self.stemHeight - lineHeight; ! self.setStyle(balloon,'top',activeTop - self.yOffset); self.setStyle(balloon,'display','inline'); } else { var activeTop = self.activeTop + self.vOffset + self.stemHeight; ! self.setStyle(balloon,'top',activeTop - self.yOffset); } *************** *** 780,791 **** if (ajax) { ajax.open("GET", url, false); ! ajax.onreadystatechange=function() { ! alert(request.readyState); ! }; ! try { ! ajax.send(null); ! } catch (e) { ! // alert(e); ! } this.helpText = ajax.responseText || section; return this.helpText; --- 812,816 ---- if (ajax) { ajax.open("GET", url, false); ! ajax.send(null); this.helpText = ajax.responseText || section; return this.helpText; |