jmitchell 2003/03/31 20:29:17 Modified: contrib/tag-doc/src/resources/taglibreport index.xsl taglib-report.xsl Added: contrib/tag-doc/src/resources/taglibreport xbPositionableElement.js Log: Applied patch by Mohan Kishore. Thanks!!! Revision Changes Path 1.2 +6 -6 jakarta-struts/contrib/tag-doc/src/resources/taglibreport/index.xsl Index: index.xsl =================================================================== RCS file: /home/cvs/jakarta-struts/contrib/tag-doc/src/resources/taglibreport/index.xsl,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- index.xsl 29 Mar 2003 05:51:40 -0000 1.1 +++ index.xsl 1 Apr 2003 04:29:17 -0000 1.2 @@ -1,9 +1,9 @@ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output - method="html" - version="4.0" - omit-xml-declaration="yes" - indent="yes" + method="html" + version="4.0" + omit-xml-declaration="yes" + indent="yes" /> <xsl:template match="*"> @@ -11,7 +11,7 @@ <HEAD> <TITLE>Taglib Documentation</TITLE> </HEAD> -<FRAMESET cols="10%,80%"> +<FRAMESET cols="100,*"> <FRAME src="overview-frame.html" name="taglibListFrame"/> <FRAME src="" name="taglibFrame"/> </FRAMESET> @@ -20,7 +20,7 @@ <NOFRAMES> <H2>Frame Alert</H2> <P/> - This document is designed to be viewed using the frames feature. + This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. <BR/> Link to <A HREF="overview-frame.html">Non-frame version.</A> 1.2 +115 -16 jakarta-struts/contrib/tag-doc/src/resources/taglibreport/taglib-report.xsl Index: taglib-report.xsl =================================================================== RCS file: /home/cvs/jakarta-struts/contrib/tag-doc/src/resources/taglibreport/taglib-report.xsl,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- taglib-report.xsl 29 Mar 2003 05:51:40 -0000 1.1 +++ taglib-report.xsl 1 Apr 2003 04:29:17 -0000 1.2 @@ -1,43 +1,91 @@ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output - method="html" - version="4.0" - omit-xml-declaration="yes" - indent="yes" + method="html" + version="4.0" + omit-xml-declaration="yes" + indent="yes" /> <xsl:template match="*"> <HTML> <HEAD> <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style" /> + <STYLE TYPE="text/css"> + #ATTR_HEADER { + position: absolute; + top: 0px; + left: 0px; + z-index: 1; + } + #TAG_HEADER { + position: absolute; + top: 0px; + left: 0px; + z-index: 2; + } + #TOP_LEFT { + position: absolute; + top: 0px; + left: 0px; + z-index: 3; + } + #DATA_TABLE { + position: absolute; + top: 0px; + left: 0px; + } + </STYLE> + <SCRIPT LANGUAGE="JavaScript" SRC="xbPositionableElement.js"/> + <SCRIPT LANGUAGE="JavaScript"><!-- + var s0, s1, s2; + if (!document.layers) { + s0 = new xbPositionableElement('TOP_LEFT', 'left', 'top', 0, 0); + s1 = new xbPositionableElement('ATTR_HEADER', 'none', 'top', 0, 0); + s2 = new xbPositionableElement('TAG_HEADER', 'left', 'none', 0, 0); + } + function init() { + if (!document.layers) { + s0.start(); + s1.start(); + s2.start(); + } + } + //--></SCRIPT> </HEAD> -<BODY> - -<TABLE BORDER="1" WIDTH="100%" CELLSPACING="0" CELLPADDING="0"> +<BODY onLoad="init()"> +<!-- Data Table --> +<DIV ID="DATA_TABLE"> +<TABLE BORDER="1" CELLSPACING="0" CELLPADDING="0"> <TR CLASS="TableHeadingColor"> -<TD> </TD> -<TD NOWRAP="true"> <B>body-content</B> </TD> + <TD WIDTH="150" NOWRAP="true"> + <DIV STYLE="width: 150px;"> </DIV> + </TD> + <TD WIDTH="75" NOWRAP="true"> + <DIV> <B>bodyContent</B> </DIV> + </TD> <xsl:for-each select="//attributes/attribute"> <xsl:sort select="."/> - <TD NOWRAP="true" STYLE="width: 75px;"> -  <B><xsl:value-of select="."/></B>  + <TD WIDTH="75" NOWRAP="true"> + <DIV> <B><xsl:value-of select="."/></B> </DIV> </TD> </xsl:for-each> </TR> - -<!-- Add 'bodycontent' as the second column?? --> - <xsl:for-each select="//taglib/tag"> <xsl:sort select="name"/> <TR> <xsl:variable name="curr_tag" select="."/> - <TD CLASS="TableHeadingColor"> <B><xsl:value-of select="$curr_tag/name"/></B> </TD> - <TD> <xsl:value-of select="$curr_tag/bodycontent"/> </TD> + <TD CLASS="TableHeadingColor" WIDTH="150" NOWRAP="true"> + <DIV STYLE="width: 150px; overflow: hidden;"> <B><xsl:value-of select="$curr_tag/name"/></B> </DIV> + </TD> + <TD WIDTH="75" NOWRAP="true"> +  <xsl:value-of select="$curr_tag/bodycontent"/>  + </TD> <xsl:for-each select="//attributes/attribute"> <xsl:sort select="."/> <xsl:variable name="curr_attr" select="."/> <xsl:element name="TD"> + <xsl:attribute name="WIDTH">75</xsl:attribute> <xsl:attribute name="NOWRAP">true</xsl:attribute> <xsl:for-each select="$curr_tag/attribute"> <xsl:sort select="name"/> @@ -66,6 +114,57 @@ </xsl:for-each> </TABLE> +</DIV> + +<!-- Top Left Blank Cell --> +<LAYER VISIBILITY="hide"><DIV ID="TOP_LEFT"> +<TABLE BORDER="1" CELLSPACING="0" CELLPADDING="0"> +<TR CLASS="TableHeadingColor"> + <TD WIDTH="150" NOWRAP="true"> + <DIV STYLE="width: 150px;"> </DIV> + </TD> +</TR> +</TABLE> +</DIV></LAYER> + +<!-- Attribute Header Table --> +<LAYER VISIBILITY="hide"><DIV ID="ATTR_HEADER"> +<TABLE BORDER="1" CELLSPACING="0" CELLPADDING="0"> +<TR CLASS="TableHeadingColor"> + <TD WIDTH="150" NOWRAP="true"> + <DIV STYLE="width: 150px;"> </DIV> + </TD> + <TD WIDTH="75" NOWRAP="true"> + <DIV> <B>bodyContent</B> </DIV> + </TD> +<xsl:for-each select="//attributes/attribute"> +<xsl:sort select="."/> + <TD WIDTH="75" NOWRAP="true"> + <DIV> <B><xsl:value-of select="."/></B> </DIV> + </TD> +</xsl:for-each> +</TR> +</TABLE> +</DIV></LAYER> + +<!-- Tag Header Table --> +<LAYER VISIBILITY="hide"><DIV ID="TAG_HEADER"> +<TABLE BORDER="1" CELLSPACING="0" CELLPADDING="0"> +<TR CLASS="TableHeadingColor"> + <TD WIDTH="150" NOWRAP="true"> + <DIV STYLE="width: 150px;"> </DIV> + </TD> +</TR> +<xsl:for-each select="//taglib/tag"> +<xsl:sort select="name"/> +<TR CLASS="TableHeadingColor"> + <TD WIDTH="150" NOWRAP="true"> + <DIV STYLE="width: 150px; overflow: hidden;"> <B><xsl:value-of select="./name"/></B> </DIV> + </TD> +</TR> +</xsl:for-each> +</TABLE> +</DIV></LAYER> </BODY> 1.1 jakarta-struts/contrib/tag-doc/src/resources/taglibreport/xbPositionableElement.js Index: xbPositionableElement.js =================================================================== /* * xbPositionableElement.js * $Revision: 1.1 $ $Date: 2003/04/01 04:29:17 $ */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Netscape Cross Browser Positionable Element code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 2002 * the Initial Developer. All Rights Reserved. * * Contributor(s): Doron Rosenberg <[EMAIL PROTECTED]> * Bob Clary <[EMAIL PROTECTED]> * * * ***** END LICENSE BLOCK ***** */ /* * xbPositionableElement - * use DHMTL to position an element displaces (offsetX, offsetY) * from a geometric position in the viewport. * */ function xbPositionableElement(id, sideX, sideY, offsetX, offsetY) { this.id = id; this.name = 'xbPositionableElement_' + (++xbPositionableElement._name); this.runId = null; this.refreshInterval = 100; this.div = null; if (typeof(sideX) != 'string') { sideX = 'left' } else { sideX = sideX.toLowerCase(); } if (typeof(sideY) != 'string') { sideY = 'top' } else { sideY = sideY.toLowerCase(); } if (typeof(offsetX) != 'number') { offsetX = 0; } if (typeof(offsetY) != 'number') { offsetY = 0; } this.sideX = sideX; this.sideY = sideY; this.offsetX = offsetX; this.offsetY = offsetY; window[this.name] = this; } xbPositionableElement._name = -1; xbPositionableElement.prototype.start = function () { this.stop(); // since start() should be called after the document has loaded, we can finally assign element if (!this.div) { if (document.getElementById) { this.div = document.getElementById(this.id); this.styleObj = this.div.style; } else if (document.layers) { this.div = document.layers[this.id]; this.styleObj = this.div; } else if (document.all) { this.div = document.all[this.id]; this.styleObj = this.div.style; } this.width = this._getInnerSize("width"); } this._updatePosition(); this.runId = setTimeout(this.name + '.start()', this.refreshInterval); }; xbPositionableElement.prototype.stop = function () { if (this.runId) clearTimeout(this.runId); this.runId = null; }; xbPositionableElement.prototype._getInnerSize = function (propName) { var val = 0; if (document.layers) { // navigator 4 val = this.div.document[propName]; } else if (typeof(this.div.style[propName]) == 'number') { // opera // bug in Opera 6 width/offsetWidth. Use clientWidth if (propName == 'width' && typeof(this.div.clientWidth) == 'number') val = this.div.clientWidth; else val = this.styleObj[propName]; } else { //mozilla and IE switch (propName) { case 'height': if (typeof(this.div.offsetHeight) == 'number') val = this.div.offsetHeight; if (val == 0) val = this.height; break; case 'width': if (typeof(this.div.offsetWidth) == 'number') val = this.div.offsetWidth; if (val == 0) val = this.width; break; } } return val; }; xbPositionableElement.prototype._getScrollOffset = function (propName) { var rv = 0; if (document.body && typeof(document.body.scrollTop) == 'number') { rv = document.body[propName=='top'?'scrollTop':'scrollLeft']; } else if (typeof(window.pageYOffset) == 'number') { rv = window[propName=='top'?'pageYOffset':'pageXOffset']; } return rv; }; xbPositionableElement.prototype._updatePosition = function () { var windowHeight; var windowWidth; var x = 0; var y = 0; if (document.body && typeof(document.body.clientHeight) == 'number') { windowHeight = document.body.clientHeight; windowWidth = document.body.clientWidth; } else if (typeof(window.innerHeight) == 'number') { windowHeight = window.innerHeight - 16; windowWidth = window.innerWidth - 16; } // calculate the positions of the view port position switch (this.sideX) { case 'left': x = this._getScrollOffset('left'); break; case 'center': x = (windowWidth / 2) - (this._getInnerSize('width')/2) + this._getScrollOffset('left'); break; case 'right': x = windowWidth - this._getInnerSize('width') + this._getScrollOffset('left'); break; } switch (this.sideY) { case 'top': y = this._getScrollOffset('top'); break; case 'center': y = (windowHeight / 2) - (this._getInnerSize('height') / 2) + this._getScrollOffset('top'); break; case 'bottom': y = windowHeight - this._getInnerSize('height') + this._getScrollOffset('top'); break; } if (typeof(this.styleObj.left) == 'number') { this.styleObj.left = (x + this.offsetX); this.styleObj.top = (y + this.offsetY); } else { this.styleObj.left = (x + this.offsetX) + 'px'; this.styleObj.top = (y + this.offsetY) + 'px'; } };
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]