summaryrefslogtreecommitdiff
path: root/buildscripts
diff options
context:
space:
mode:
authormikl <>2008-05-06 07:53:08 +0000
committermikl <>2008-05-06 07:53:08 +0000
commitdca8960e21273ed8100fa1fdaeab99ccf141a1f3 (patch)
tree0ae31ef7461dd60686d7e23dcb64ff68bb11ed14 /buildscripts
parentd48e9af1650df7cc17db5042c0b9dc1a3bcf213b (diff)
Imported JS documentor jGrouseDoc-2.0
Diffstat (limited to 'buildscripts')
-rw-r--r--buildscripts/jGrouseDoc/3rdparty/ant/LICENSE203
-rw-r--r--buildscripts/jGrouseDoc/3rdparty/ant/LICENSE.dom71
-rw-r--r--buildscripts/jGrouseDoc/3rdparty/ant/LICENSE.sax20
-rw-r--r--buildscripts/jGrouseDoc/3rdparty/ant/LICENSE.xerces56
-rw-r--r--buildscripts/jGrouseDoc/3rdparty/ant/NOTICE20
-rw-r--r--buildscripts/jGrouseDoc/3rdparty/velocity/LICENSE202
-rw-r--r--buildscripts/jGrouseDoc/3rdparty/velocity/NOTICE7
-rw-r--r--buildscripts/jGrouseDoc/README-prado.txt6
-rw-r--r--buildscripts/jGrouseDoc/build.xml178
-rw-r--r--buildscripts/jGrouseDoc/jgdoc.jarbin0 -> 81333 bytes
-rw-r--r--buildscripts/jGrouseDoc/jgrousedoc.properties17
-rw-r--r--buildscripts/jGrouseDoc/license.txt21
-rw-r--r--buildscripts/jGrouseDoc/skins/common/css/jgdoc.css301
-rw-r--r--buildscripts/jGrouseDoc/skins/common/css/jgindex.css53
-rw-r--r--buildscripts/jGrouseDoc/skins/common/img/closed.gifbin0 -> 104 bytes
-rw-r--r--buildscripts/jGrouseDoc/skins/common/img/closedLarge.gifbin0 -> 132 bytes
-rw-r--r--buildscripts/jGrouseDoc/skins/common/img/node.gifbin0 -> 106 bytes
-rw-r--r--buildscripts/jGrouseDoc/skins/common/img/open.gifbin0 -> 101 bytes
-rw-r--r--buildscripts/jGrouseDoc/skins/common/img/openLarge.gifbin0 -> 128 bytes
-rw-r--r--buildscripts/jGrouseDoc/skins/common/js/jgdoc.js239
-rw-r--r--buildscripts/jGrouseDoc/skins/common/js/jgindex.js96
-rw-r--r--buildscripts/jGrouseDoc/skins/common/js/navTree.js213
-rw-r--r--buildscripts/jGrouseDoc/skins/common/vm/common.vm604
-rw-r--r--buildscripts/jGrouseDoc/skins/common/xslt/common.xslt704
-rw-r--r--buildscripts/jGrouseDoc/skins/noframes/css/jgdoc.css473
-rw-r--r--buildscripts/jGrouseDoc/skins/noframes/img/logo.gifbin0 -> 3326 bytes
-rw-r--r--buildscripts/jGrouseDoc/skins/noframes/js/jgdoc.js326
-rw-r--r--buildscripts/jGrouseDoc/skins/noframes/js/navTree.js409
-rw-r--r--buildscripts/jGrouseDoc/skins/noframes/vm/antgen.vm77
-rw-r--r--buildscripts/jGrouseDoc/skins/noframes/vm/detail.vm94
-rw-r--r--buildscripts/jGrouseDoc/skins/noframes/vm/jsindex.vm57
-rw-r--r--buildscripts/jGrouseDoc/skins/noframes/vm/test.vm1
-rw-r--r--buildscripts/jGrouseDoc/skins/noframes/xslt/antgen.xslt357
-rw-r--r--buildscripts/jGrouseDoc/skins/noframes/xslt/detail.xslt360
-rw-r--r--buildscripts/jGrouseDoc/skins/noframes/xslt/jgsearch.xslt51
-rw-r--r--buildscripts/jGrouseDoc/skins/noframes/xslt/jsindex.xslt124
-rw-r--r--buildscripts/jGrouseDoc/skins/noframes/xslt/nfcommon.xslt98
-rw-r--r--buildscripts/jGrouseDoc/skins/noframes/xslt/startup.xslt99
-rw-r--r--buildscripts/jGrouseDoc/themes/prado/build.xml11
-rw-r--r--buildscripts/jGrouseDoc/themes/prado/css/theme.css99
-rw-r--r--buildscripts/jGrouseDoc/themes/sample/build.xml14
-rw-r--r--buildscripts/jGrouseDoc/themes/sample/css/theme.css122
-rw-r--r--buildscripts/jGrouseDoc/themes/sample/img/closed.gifbin0 -> 199 bytes
-rw-r--r--buildscripts/jGrouseDoc/themes/sample/img/closedLarge.gifbin0 -> 161 bytes
-rw-r--r--buildscripts/jGrouseDoc/themes/sample/img/node.gifbin0 -> 282 bytes
-rw-r--r--buildscripts/jGrouseDoc/themes/sample/img/open.gifbin0 -> 144 bytes
-rw-r--r--buildscripts/jGrouseDoc/themes/sample/img/openLarge.gifbin0 -> 158 bytes
-rw-r--r--buildscripts/jGrouseDoc/themes/simple/build.xml11
-rw-r--r--buildscripts/jGrouseDoc/themes/simple/css/theme.css1
-rw-r--r--buildscripts/jGrouseDoc/velocity-dep-1.5.jarbin0 -> 698567 bytes
50 files changed, 5795 insertions, 0 deletions
diff --git a/buildscripts/jGrouseDoc/3rdparty/ant/LICENSE b/buildscripts/jGrouseDoc/3rdparty/ant/LICENSE
new file mode 100644
index 00000000..f820d4bd
--- /dev/null
+++ b/buildscripts/jGrouseDoc/3rdparty/ant/LICENSE
@@ -0,0 +1,203 @@
+/*
+ * Apache License
+ * Version 2.0, January 2004
+ * http://www.apache.org/licenses/
+ *
+ * TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+ *
+ * 1. Definitions.
+ *
+ * "License" shall mean the terms and conditions for use, reproduction,
+ * and distribution as defined by Sections 1 through 9 of this document.
+ *
+ * "Licensor" shall mean the copyright owner or entity authorized by
+ * the copyright owner that is granting the License.
+ *
+ * "Legal Entity" shall mean the union of the acting entity and all
+ * other entities that control, are controlled by, or are under common
+ * control with that entity. For the purposes of this definition,
+ * "control" means (i) the power, direct or indirect, to cause the
+ * direction or management of such entity, whether by contract or
+ * otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ * outstanding shares, or (iii) beneficial ownership of such entity.
+ *
+ * "You" (or "Your") shall mean an individual or Legal Entity
+ * exercising permissions granted by this License.
+ *
+ * "Source" form shall mean the preferred form for making modifications,
+ * including but not limited to software source code, documentation
+ * source, and configuration files.
+ *
+ * "Object" form shall mean any form resulting from mechanical
+ * transformation or translation of a Source form, including but
+ * not limited to compiled object code, generated documentation,
+ * and conversions to other media types.
+ *
+ * "Work" shall mean the work of authorship, whether in Source or
+ * Object form, made available under the License, as indicated by a
+ * copyright notice that is included in or attached to the work
+ * (an example is provided in the Appendix below).
+ *
+ * "Derivative Works" shall mean any work, whether in Source or Object
+ * form, that is based on (or derived from) the Work and for which the
+ * editorial revisions, annotations, elaborations, or other modifications
+ * represent, as a whole, an original work of authorship. For the purposes
+ * of this License, Derivative Works shall not include works that remain
+ * separable from, or merely link (or bind by name) to the interfaces of,
+ * the Work and Derivative Works thereof.
+ *
+ * "Contribution" shall mean any work of authorship, including
+ * the original version of the Work and any modifications or additions
+ * to that Work or Derivative Works thereof, that is intentionally
+ * submitted to Licensor for inclusion in the Work by the copyright owner
+ * or by an individual or Legal Entity authorized to submit on behalf of
+ * the copyright owner. For the purposes of this definition, "submitted"
+ * means any form of electronic, verbal, or written communication sent
+ * to the Licensor or its representatives, including but not limited to
+ * communication on electronic mailing lists, source code control systems,
+ * and issue tracking systems that are managed by, or on behalf of, the
+ * Licensor for the purpose of discussing and improving the Work, but
+ * excluding communication that is conspicuously marked or otherwise
+ * designated in writing by the copyright owner as "Not a Contribution."
+ *
+ * "Contributor" shall mean Licensor and any individual or Legal Entity
+ * on behalf of whom a Contribution has been received by Licensor and
+ * subsequently incorporated within the Work.
+ *
+ * 2. Grant of Copyright License. Subject to the terms and conditions of
+ * this License, each Contributor hereby grants to You a perpetual,
+ * worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ * copyright license to reproduce, prepare Derivative Works of,
+ * publicly display, publicly perform, sublicense, and distribute the
+ * Work and such Derivative Works in Source or Object form.
+ *
+ * 3. Grant of Patent License. Subject to the terms and conditions of
+ * this License, each Contributor hereby grants to You a perpetual,
+ * worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ * (except as stated in this section) patent license to make, have made,
+ * use, offer to sell, sell, import, and otherwise transfer the Work,
+ * where such license applies only to those patent claims licensable
+ * by such Contributor that are necessarily infringed by their
+ * Contribution(s) alone or by combination of their Contribution(s)
+ * with the Work to which such Contribution(s) was submitted. If You
+ * institute patent litigation against any entity (including a
+ * cross-claim or counterclaim in a lawsuit) alleging that the Work
+ * or a Contribution incorporated within the Work constitutes direct
+ * or contributory patent infringement, then any patent licenses
+ * granted to You under this License for that Work shall terminate
+ * as of the date such litigation is filed.
+ *
+ * 4. Redistribution. You may reproduce and distribute copies of the
+ * Work or Derivative Works thereof in any medium, with or without
+ * modifications, and in Source or Object form, provided that You
+ * meet the following conditions:
+ *
+ * (a) You must give any other recipients of the Work or
+ * Derivative Works a copy of this License; and
+ *
+ * (b) You must cause any modified files to carry prominent notices
+ * stating that You changed the files; and
+ *
+ * (c) You must retain, in the Source form of any Derivative Works
+ * that You distribute, all copyright, patent, trademark, and
+ * attribution notices from the Source form of the Work,
+ * excluding those notices that do not pertain to any part of
+ * the Derivative Works; and
+ *
+ * (d) If the Work includes a "NOTICE" text file as part of its
+ * distribution, then any Derivative Works that You distribute must
+ * include a readable copy of the attribution notices contained
+ * within such NOTICE file, excluding those notices that do not
+ * pertain to any part of the Derivative Works, in at least one
+ * of the following places: within a NOTICE text file distributed
+ * as part of the Derivative Works; within the Source form or
+ * documentation, if provided along with the Derivative Works; or,
+ * within a display generated by the Derivative Works, if and
+ * wherever such third-party notices normally appear. The contents
+ * of the NOTICE file are for informational purposes only and
+ * do not modify the License. You may add Your own attribution
+ * notices within Derivative Works that You distribute, alongside
+ * or as an addendum to the NOTICE text from the Work, provided
+ * that such additional attribution notices cannot be construed
+ * as modifying the License.
+ *
+ * You may add Your own copyright statement to Your modifications and
+ * may provide additional or different license terms and conditions
+ * for use, reproduction, or distribution of Your modifications, or
+ * for any such Derivative Works as a whole, provided Your use,
+ * reproduction, and distribution of the Work otherwise complies with
+ * the conditions stated in this License.
+ *
+ * 5. Submission of Contributions. Unless You explicitly state otherwise,
+ * any Contribution intentionally submitted for inclusion in the Work
+ * by You to the Licensor shall be under the terms and conditions of
+ * this License, without any additional terms or conditions.
+ * Notwithstanding the above, nothing herein shall supersede or modify
+ * the terms of any separate license agreement you may have executed
+ * with Licensor regarding such Contributions.
+ *
+ * 6. Trademarks. This License does not grant permission to use the trade
+ * names, trademarks, service marks, or product names of the Licensor,
+ * except as required for reasonable and customary use in describing the
+ * origin of the Work and reproducing the content of the NOTICE file.
+ *
+ * 7. Disclaimer of Warranty. Unless required by applicable law or
+ * agreed to in writing, Licensor provides the Work (and each
+ * Contributor provides its Contributions) on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied, including, without limitation, any warranties or conditions
+ * of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ * PARTICULAR PURPOSE. You are solely responsible for determining the
+ * appropriateness of using or redistributing the Work and assume any
+ * risks associated with Your exercise of permissions under this License.
+ *
+ * 8. Limitation of Liability. In no event and under no legal theory,
+ * whether in tort (including negligence), contract, or otherwise,
+ * unless required by applicable law (such as deliberate and grossly
+ * negligent acts) or agreed to in writing, shall any Contributor be
+ * liable to You for damages, including any direct, indirect, special,
+ * incidental, or consequential damages of any character arising as a
+ * result of this License or out of the use or inability to use the
+ * Work (including but not limited to damages for loss of goodwill,
+ * work stoppage, computer failure or malfunction, or any and all
+ * other commercial damages or losses), even if such Contributor
+ * has been advised of the possibility of such damages.
+ *
+ * 9. Accepting Warranty or Additional Liability. While redistributing
+ * the Work or Derivative Works thereof, You may choose to offer,
+ * and charge a fee for, acceptance of support, warranty, indemnity,
+ * or other liability obligations and/or rights consistent with this
+ * License. However, in accepting such obligations, You may act only
+ * on Your own behalf and on Your sole responsibility, not on behalf
+ * of any other Contributor, and only if You agree to indemnify,
+ * defend, and hold each Contributor harmless for any liability
+ * incurred by, or claims asserted against, such Contributor by reason
+ * of your accepting any such warranty or additional liability.
+ *
+ * END OF TERMS AND CONDITIONS
+ *
+ * APPENDIX: How to apply the Apache License to your work.
+ *
+ * To apply the Apache License to your work, attach the following
+ * boilerplate notice, with the fields enclosed by brackets "[]"
+ * replaced with your own identifying information. (Don't include
+ * the brackets!) The text should be enclosed in the appropriate
+ * comment syntax for the file format. We also recommend that a
+ * file or class name and description of purpose be included on the
+ * same "printed page" as the copyright notice for easier
+ * identification within third-party archives.
+ *
+ * Copyright [yyyy] [name of copyright owner]
+ *
+ * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
diff --git a/buildscripts/jGrouseDoc/3rdparty/ant/LICENSE.dom b/buildscripts/jGrouseDoc/3rdparty/ant/LICENSE.dom
new file mode 100644
index 00000000..05013f19
--- /dev/null
+++ b/buildscripts/jGrouseDoc/3rdparty/ant/LICENSE.dom
@@ -0,0 +1,71 @@
+This license came from:
+http://www.w3.org/Consortium/Legal/copyright-software-19980720
+
+
+W3C® SOFTWARE NOTICE AND LICENSE
+Copyright © 1994-2001 World
+Wide Web Consortium, <a href="http://www.w3.org/">World
+Wide Web Consortium</a>, (<a href=
+"http://www.lcs.mit.edu/">Massachusetts Institute of
+Technology</a>, <a href="http://www.inria.fr/">Institut National de
+Recherche en Informatique et en Automatique</a>, <a href=
+"http://www.keio.ac.jp/">Keio University</a>). All Rights Reserved.
+http://www.w3.org/Consortium/Legal/
+
+This W3C work (including software, documents, or other related
+items) is being provided by the copyright holders under the
+following license. By obtaining, using and/or copying this work,
+you (the licensee) agree that you have read, understood, and will
+comply with the following terms and conditions:
+Permission to use, copy, modify, and distribute this software
+and its documentation, with or without modification,  for any
+purpose and without fee or royalty is hereby granted, provided that
+you include the following on ALL copies of the software and
+documentation or portions thereof, including modifications, that
+you make:
+
+The full text of this NOTICE in a location viewable to users of
+the redistributed or derivative work.
+
+Any pre-existing intellectual property disclaimers, notices, or
+terms and conditions. If none exist, a short notice of the
+following form (hypertext is preferred, text is permitted) should
+be used within the body of any redistributed or derivative code:
+"Copyright © [$date-of-software] World Wide Web Consortium, (Massachusetts Institute of
+Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All Rights Reserved.
+http://www.w3.org/Consortium/Legal/"
+
+Notice of any changes or modifications to the W3C files,
+including the date changes were made. (We recommend you provide
+URIs to the location from which the code is derived.)
+
+THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND
+COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
+MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
+USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD
+PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
+SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
+SOFTWARE OR DOCUMENTATION.
+
+The name and trademarks of copyright holders may NOT be used in
+advertising or publicity pertaining to the software without
+specific, written prior permission. Title to copyright in this
+software and any associated documentation will at all times remain
+with copyright holders.
+____________________________________
+This formulation of W3C's notice and license became active on
+August 14 1998 so as to improve compatibility with GPL. This
+version ensures that W3C software licensing terms are no more
+restrictive than GPL and consequently W3C software may be
+distributed in GPL packages. See the older formulation for the
+policy prior to this date. Please see our Copyright FAQ for common
+questions about using materials from
+our site, including specific terms and conditions for packages like
+libwww, Amaya, and Jigsaw.
+Other questions about this notice can be
+directed to site-policy@w3.org.
+
+webmaster
diff --git a/buildscripts/jGrouseDoc/3rdparty/ant/LICENSE.sax b/buildscripts/jGrouseDoc/3rdparty/ant/LICENSE.sax
new file mode 100644
index 00000000..006c924b
--- /dev/null
+++ b/buildscripts/jGrouseDoc/3rdparty/ant/LICENSE.sax
@@ -0,0 +1,20 @@
+This license came from: http://www.megginson.com/SAX/copying.html
+ However please note future versions of SAX may be covered
+ under http://saxproject.org/?selected=pd
+
+
+This page is now out of date -- see the new SAX site at
+http://www.saxproject.org/ for more up-to-date
+releases and other information. Please change your bookmarks.
+
+
+SAX2 is Free!
+
+I hereby abandon any property rights to SAX 2.0 (the Simple API for
+XML), and release all of the SAX 2.0 source code, compiled code, and
+documentation contained in this distribution into the Public Domain.
+SAX comes with NO WARRANTY or guarantee of fitness for any
+purpose.
+
+David Megginson, david@megginson.com
+2000-05-05 \ No newline at end of file
diff --git a/buildscripts/jGrouseDoc/3rdparty/ant/LICENSE.xerces b/buildscripts/jGrouseDoc/3rdparty/ant/LICENSE.xerces
new file mode 100644
index 00000000..70cb54a0
--- /dev/null
+++ b/buildscripts/jGrouseDoc/3rdparty/ant/LICENSE.xerces
@@ -0,0 +1,56 @@
+/*
+ * The Apache Software License, Version 1.1
+ *
+ *
+ * Copyright (c) 1999-2002 The Apache Software Foundation. All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ * if any, must include the following acknowledgment:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself,
+ * if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Xerces" and "Apache Software Foundation" must
+ * not be used to endorse or promote products derived from this
+ * software without prior written permission. For written
+ * permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ * nor may "Apache" appear in their name, without prior written
+ * permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation and was
+ * originally based on software copyright (c) 1999, International
+ * Business Machines, Inc., http://www.ibm.com. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
diff --git a/buildscripts/jGrouseDoc/3rdparty/ant/NOTICE b/buildscripts/jGrouseDoc/3rdparty/ant/NOTICE
new file mode 100644
index 00000000..5ef72b96
--- /dev/null
+++ b/buildscripts/jGrouseDoc/3rdparty/ant/NOTICE
@@ -0,0 +1,20 @@
+ =========================================================================
+ == NOTICE file corresponding to the section 4 d of ==
+ == the Apache License, Version 2.0, ==
+ == in this case for the Apache Ant distribution. ==
+ =========================================================================
+
+ Apache Ant
+ Copyright 1999-2006 The Apache Software Foundation
+
+ This product includes software developed by
+ The Apache Software Foundation (http://www.apache.org/).
+
+ This product includes also software developed by :
+ - the W3C consortium (http://www.w3c.org) ,
+ - the SAX project (http://www.saxproject.org)
+
+ The <sync> task is based on code Copyright (c) 2002, Landmark
+ Graphics Corp that has been kindly donated to the Apache Software
+ Foundation.
+
diff --git a/buildscripts/jGrouseDoc/3rdparty/velocity/LICENSE b/buildscripts/jGrouseDoc/3rdparty/velocity/LICENSE
new file mode 100644
index 00000000..75b52484
--- /dev/null
+++ b/buildscripts/jGrouseDoc/3rdparty/velocity/LICENSE
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/buildscripts/jGrouseDoc/3rdparty/velocity/NOTICE b/buildscripts/jGrouseDoc/3rdparty/velocity/NOTICE
new file mode 100644
index 00000000..c016d50c
--- /dev/null
+++ b/buildscripts/jGrouseDoc/3rdparty/velocity/NOTICE
@@ -0,0 +1,7 @@
+Apache Velocity
+
+Copyright (C) 2000-2007 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
diff --git a/buildscripts/jGrouseDoc/README-prado.txt b/buildscripts/jGrouseDoc/README-prado.txt
new file mode 100644
index 00000000..2f28a686
--- /dev/null
+++ b/buildscripts/jGrouseDoc/README-prado.txt
@@ -0,0 +1,6 @@
+To keep the footprint as small as possible we've removed
+the /samples directory and some unused skins and themes
+from /skins and /themes.
+
+If you need these examples please got to
+http://code.google.com/p/jgrousedoc/. \ No newline at end of file
diff --git a/buildscripts/jGrouseDoc/build.xml b/buildscripts/jGrouseDoc/build.xml
new file mode 100644
index 00000000..61848820
--- /dev/null
+++ b/buildscripts/jGrouseDoc/build.xml
@@ -0,0 +1,178 @@
+<?xml version="1.0"?>
+ <!--
+ jGrouseDoc Sample build file.
+ @Copyright (c) 2007 by Denis Riabtchik. All rights reserved. See license.txt and http://jgrouse.com for details@
+ $Id: build.xml 522 2008-03-31 23:34:36Z denis.riabtchik $
+ -->
+
+<project name="jGrouseDoc Sample" basedir="." default="default" >
+ <description>
+ jGrouse sample file
+ </description>
+ <!--
+ <taskdef name="jgdoc" classname="jgrouse.jgdoc.ant.JGTask" classpath="${jGrouseHome}/jgdoc.jar"></taskdef>
+ <taskdef name="fastxslt" classname="jgrouse.jgdoc.ant.FastXsltTask" classpath="${jGrouseHome}/jgdoc.jar"></taskdef>
+ -->
+
+ <!-- =================================
+ target: default
+ ================================= -->
+ <target name="default" description="jGrouseDoc task" depends="setup, clean, makeProjectFile, antgen, antrun, cleanupTempFiles">
+ </target>
+
+ <target name="makeProjectFile" description="Extract comments from source code" depends="setup">
+ <mkdir dir="${outputDir}"/>
+ <jgdoc output="${outputDir}/${projectFile}" encoding="${encoding}" stopOnErrors="${stopOnErrors}"
+ suppressGlobalWarnings="${suppressGlobalWarnings}" outputformat="${outputFormat}" srcUrl="${srcUrl}"
+ privateprefix="${privatePrefix}">
+ <fileset dir="${inputDir}" includes="${fileMask}">
+ </fileset>
+ </jgdoc>
+ </target>
+
+ <target name="antgen" depends="antgenxml, antgenvm"></target>
+
+ <target name="antgenxml" depends="setup" if="isXML">
+ <delete file="${outputDir}/antgen.xml"/>
+ <xslt style="${jGrouseHome}/skins/${skin}/xslt/antgen.xslt" in="${outputDir}/${projectFile}" out="${outputDir}/antgen.xml">
+ <param name="jGrouseHome" expression="${jGrouseHome}"/>
+ <param name="projectName" expression="${projectName}"/>
+ <param name="projectDesc" expression="${projectDesc}"/>
+ <param name="projectFile" expression="${projectFile}"/>
+ <param name="useFullNames" expression="${useFullNames}"/>
+ <param name="outDir" expression="${outputDir}"/>
+ <param name="version" expression="${appVersion}"/>
+ <param name="aux_css" expression="${aux_css}"/>
+ <param name="skinDir" expression="${jGrouseHome}/skins/${skin}"/>
+ </xslt>
+ </target>
+
+ <target name="antgenvm" depends="setup" if="isBIN">
+ <delete file="${outputDir}/antgen.xml"/>
+ <vmtask resourcePath="., ${jGrouseHome}" source="${outputDir}/${projectFile}" loglevel="INFO">
+ <template templatename="skins/${skin}/vm/antgen.vm">
+ <output file="${outputDir}/antgen.xml">
+ <param key="jGrouseHome" value="${jGrouseHome}"/>
+ <param key="projectName" value="${projectName}"/>
+ <param key="projectDesc" value="${projectDesc}"/>
+ <param key="projectFile" value="${projectFile}"/>
+ <param key="useFullNames" value="${useFullNames}"/>
+ <param key="outDir" value="${outputDir}"/>
+ <param key="version" value="${appVersion}"/>
+ <param key="aux_css" value="${aux_css}"/>
+ <param key="skin" value="${skin}"/>
+ <param key="skinDir" value="${jGrouseHome}/skins/${skin}"/>
+ <param key="commonSkin" value="${jGrouseHome}/skins/common"/>
+ </output>
+ </template>
+ </vmtask>
+ </target>
+
+ <target name="antrun" depends="setup">
+ <ant antfile="${outputDir}/antgen.xml"></ant>
+ <ant antfile="${jGrouseHome}/themes/${theme}/build.xml"></ant>
+ </target>
+
+ <target name="cleanupTempFiles" depends="setup">
+ <delete file="${outputDir}/antgen.xml"/>
+ <delete file="${outputDir}/${projectFile}"/>
+ </target>
+
+ <target name="clean" depends="setup">
+ <delete dir="${outputDir}"></delete>
+ </target>
+
+ <target name="setup">
+ <condition property="configFile" value="jgrousedoc.properties">
+ <not><isset property="configFile"/></not>
+ </condition>
+ <property file="${configFile}"/>
+ <fail message="jGrouseHome home not defined">
+ <condition>
+ <and>
+ <not><isset property="jGrouseHome"/></not>
+ <not><isset property="jGrouseHome.default"/></not>
+ </and>
+ </condition>
+ </fail>
+ <condition property="jGrouseHome" value="${jGrouseHome.default}">
+ <not><isset property="jGrouseHome"/></not>
+ </condition>
+ <condition property="jgdocTask" value="${jGrouseHome}/jgdoc.jar">
+ <not><isset property="jgdocTask"/></not>
+ </condition>
+ <taskdef name="jgdoc" classname="jgrouse.jgdoc.ant.JGTask" classpath="${jgdocTask}"></taskdef>
+ <taskdef name="fastxslt" classname="jgrouse.jgdoc.ant.FastXsltTask" classpath="${jgdocTask}"></taskdef>
+
+ <condition property="inputDir" value="${inputDir.default}">
+ <isset property="inputDir.default"/>
+ </condition>
+ <condition property="inputDir" value="source">
+ <not><isset property="inputDir"/></not>
+ </condition>
+ <condition property="fileMask" value="${fileMask.default}">
+ <isset property="fileMask.default"/>
+ </condition>
+ <condition property="fileMask" value="**/*.js">
+ <not><isset property="fileMask"/></not>
+ </condition>
+
+ <condition property="outputDir" value="${outputDir.default}">
+ <isset property="outputDir.default"/>
+ </condition>
+ <condition property="outputDir" value="api">
+ <not><isset property="outputDir"/></not>
+ </condition>
+
+ <condition property="skin" value="noframes">
+ <not><isset property="skin"/></not>
+ </condition>
+ <condition property="theme" value="sample">
+ <not><isset property="theme"/></not>
+ </condition>
+ <condition property="projectFile" value="jgrouse.jgd">
+ <not><isset property="projectFile"/></not>
+ </condition>
+ <condition property="projectName" value="Project name not specified">
+ <not><isset property="projectName"/></not>
+ </condition>
+ <condition property="appVersion" value="Version not specified">
+ <not><isset property="appVersion"/></not>
+ </condition>
+ <condition property="projectDesc" value="Project Description not specified">
+ <not><isset property="projectDesc"/></not>
+ </condition>
+ <condition property="stopOnErrors" value="false">
+ <not><isset property="stopOnErrors"/></not>
+ </condition>
+ <condition property="srcUrl" value="not_defined">
+ <not><isset property="srcUrl"/></not>
+ </condition>
+ <condition property="privatePrefix" value="not_defined">
+ <not><isset property="privatePrefix"/></not>
+ </condition>
+ <condition property="outputFormat" value="BIN">
+ <not><isset property="outputFormat"/></not>
+ </condition>
+ <condition property="isXML">
+ <equals arg1="${outputFormat}" arg2="xml" casesensitive="false" trim="true"/>
+ </condition>
+ <condition property="isBIN">
+ <equals arg1="${outputFormat}" arg2="bin" casesensitive="false" trim="true"/>
+ </condition>
+ <condition property="encoding" value="UTF-8">
+ <not><isset property="encoding"/></not>
+ </condition>
+ <condition property="srcEncoding" value="DEFAULT">
+ <not><isset property="srcEncoding"/></not>
+ </condition>
+ <condition property="aux_css" value="not_specified">
+ <not><isset property="aux_css"/></not>
+ </condition>
+
+
+ <taskdef name="vmtask" classname="jgrouse.jgdoc.ant.VMTask" classpath="${jgdocTask};${jGrouseHome}/velocity-dep-1.5.jar"></taskdef>
+ </target>
+
+
+</project>
diff --git a/buildscripts/jGrouseDoc/jgdoc.jar b/buildscripts/jGrouseDoc/jgdoc.jar
new file mode 100644
index 00000000..f1665846
--- /dev/null
+++ b/buildscripts/jGrouseDoc/jgdoc.jar
Binary files differ
diff --git a/buildscripts/jGrouseDoc/jgrousedoc.properties b/buildscripts/jGrouseDoc/jgrousedoc.properties
new file mode 100644
index 00000000..ba3a0818
--- /dev/null
+++ b/buildscripts/jGrouseDoc/jgrousedoc.properties
@@ -0,0 +1,17 @@
+#set jGrouseHome - location of jGrouseDoc distribution
+#jGrouseHome.default=buildscripts/jGrouseDoc
+jGrouseHome.default=.
+#set the location of your source files
+inputDir.default=../../framework/Web/Javascripts/source/prado
+#Set mask for input files
+#fileMask.default=**/scriptaculous-adapter.js
+fileMask.default=**/*.js
+#set output directory
+outputDir.default=../../docs/jsapi
+#set project information
+projectName=Prado
+projectDesc=v3.1.2 Javascript API Manual
+appVersion=3.1.2
+theme=prado
+########### for additional information regarding configuration parameters
+########### see http://code.google.com/p/jgrousedoc/wiki/AdvancedConfiguration \ No newline at end of file
diff --git a/buildscripts/jGrouseDoc/license.txt b/buildscripts/jGrouseDoc/license.txt
new file mode 100644
index 00000000..ca9e7124
--- /dev/null
+++ b/buildscripts/jGrouseDoc/license.txt
@@ -0,0 +1,21 @@
+Copyright (c) 2007, Denis Riabtchik and jGrouseDoc contributors, as shown on http://code.google.com/p/jgrousedoc/
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+ * Neither the names of jGrouse, jGrouseDoc nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file
diff --git a/buildscripts/jGrouseDoc/skins/common/css/jgdoc.css b/buildscripts/jGrouseDoc/skins/common/css/jgdoc.css
new file mode 100644
index 00000000..a56481d5
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/common/css/jgdoc.css
@@ -0,0 +1,301 @@
+
+@CHARSET "ISO-8859-1";
+/*
+ jGrouseDoc stylesheet file.
+ @Copyright (c) 2007 by Denis Riabtchik. All rights reserved. See license.txt and http://jgrouse.com for details@
+ $Id: jgdoc.css 340 2008-01-21 16:13:59Z broofa $
+*/
+
+body
+{
+ /*font-family: Helvetica,Arial,sans-serif;
+ font-size: 0.9em;*/
+}
+
+
+a
+{
+ text-decoration: none;
+}
+
+.overviewTitle
+{
+ font-weight: bold;
+ font-size: 1.3em;
+ padding-top: 1em;
+ clear: both;
+}
+
+.overviewItem
+{
+}
+
+
+.overviewSectionHeader
+{
+ font-weight: bold;
+ font-size: 1.1em;
+ padding-top: 0.5em;
+}
+
+.sectionHeader
+{
+ border: 2px groove black;
+ font-size: 1.7em;
+ text-align: left;
+ font-weight: bold;
+ background-color: #ccccff;
+ color: black;
+ padding: 3px;
+}
+
+.logicalSummary
+{
+}
+
+.summaryTable
+{
+ border: 2px groove black;
+}
+
+.summaryTableHeader
+{
+ font-size: 1.7em;
+ text-align: left;
+ font-weight: bold;
+ background-color: #ccccff;
+ color: black;
+ padding: 4px;
+}
+
+.summaryTable .summaryItem
+{
+ border-top: 1px solid;
+ padding: 2px;
+}
+
+.summaryTable .summaryItemRef
+{
+ font-weight: bold;
+}
+
+.summaryTable .summaryItemDef
+{
+}
+
+.summaryTable .inheritanceSummary
+{
+ border-top: 1px solid;
+ padding: 2px;
+}
+
+.summaryTable .summaryItemDesc
+{
+ padding-left: 2em;
+}
+
+.elementName
+{
+ font-weight: bold;
+}
+
+.descSection
+{
+ font-weight: bold;
+}
+
+
+.navbar
+{
+ font-size: 0.9em;
+ padding-bottom: 4px;
+}
+
+.currentPage
+{
+ font-weight: bold;
+}
+
+.navbaritem
+{
+ float: left;
+ width: 10em;
+ background-color: #ccccff;
+ color: black;
+ padding: 4px;
+ margin: 2px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ text-align: center;
+}
+
+.navbaritem a
+{
+ background-color: #ccccff;
+ color: black;
+ text-decoration: underline;
+}
+
+
+.projectDescRef
+{
+ font-weight: bold;
+}
+
+.paddedDetails
+{
+ padding-left: 5em;
+}
+
+.example
+{
+ font-size: 0.8em;
+ font-family: courier;
+ white-space: pre;
+}
+
+
+
+.searchItem
+{
+ cursor: pointer;
+}
+
+.jgdSelectedItem
+{
+ background-color: #0a246a;
+ color: white;
+}
+
+.jgdSearchRect
+{
+ width:60%;
+ height:20em;
+ border: 2px inset;
+ overflow: auto;
+}
+
+.jgdSearchString
+{
+ width:60%;
+}
+
+.jgsInfo
+{
+ white-space: pre
+}
+
+
+
+/*---------- NavTree ----------------*/
+
+
+#content {
+ font-size: .9em;
+ line-height:1.6;
+}
+.navTree a {
+ text-decoration: none;
+}
+.navTree a:hover {
+ text-decoration: underline;
+}
+
+.navTree .contents
+{
+ list-style: none;
+ padding-left: 6px;
+ margin-left: 0px;
+ clear: both;
+}
+
+.navTree .contents li
+{
+ clear: both;
+ white-space: nowrap;
+}
+
+
+.navTree .contents ul
+{
+ border-left: 1px solid #cccccc;
+ margin-left: 6px;
+ clear: both;
+}
+
+
+.navTree .contents span.node
+{
+ display: block;
+ float: left;
+}
+
+.navTree span.node
+{
+ cursor: pointer;
+ background-repeat: no-repeat;
+ background-position: 0em 0.2em;
+}
+
+.navTree .open span.node
+{
+ background-image: url(open.gif) ;
+}
+
+.navTree .closed span.node
+{
+ background-image: url(closed.gif) ;
+}
+
+.navTree .leaf span.node
+{
+ background-image: url(node.gif) ;
+}
+
+.navTree .closed .contents
+{
+ display: none;
+}
+
+.navTree .markerSpace
+{
+ padding-left: 12px;
+}
+
+.navTree .openAll,
+.navTree .closeAll {
+ font-size: .9em;
+ background-repeat: no-repeat;
+ padding-left: 16px;
+ padding-right: 7px;
+ background-position: left center;
+ cursor: pointer;
+}
+
+.navTree .openAll {
+ background-image: url(openLarge.gif);
+}
+
+.navTree .closeAll
+{
+ background-image: url(closedLarge.gif);
+}
+
+.comment
+{
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+}
+
+ul.paramoption
+{
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+
+a.srcUrlLink
+{
+ color:#66f;
+ float: right;
+ font-size: 11px;
+}
diff --git a/buildscripts/jGrouseDoc/skins/common/css/jgindex.css b/buildscripts/jGrouseDoc/skins/common/css/jgindex.css
new file mode 100644
index 00000000..c113487f
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/common/css/jgindex.css
@@ -0,0 +1,53 @@
+/*
+ jGrouseDoc stylesheet file for index page.
+ Copyright (c) 2007 by Robert Kieffer and jGrouseDoc contributors
+ $Id: jgindex.css 302 2007-12-24 22:51:11Z denis.riabtchik $
+*/
+@CHARSET "ISO-8859-1";
+
+ dt {
+ clear:both;
+ float:left;
+ width: 200px;
+ margin-left: 20px;
+ }
+ a {
+ color: #009;
+ text-decoration: none;
+ }
+ a:hover {
+ color: #009;
+ text-decoration: underline;
+ }
+ dd {
+ /*float:left;*/
+ }
+ dt, dd {
+ margin: 0px;
+ }
+ dt.even, dd.even {
+ border-bottom: dashed 1px #ddd;
+ }
+ dt.odd, dd.odd {
+ border-bottom: dotted 1px #eee;
+ }
+ dt.is_namespace {
+ font-weight:bold;
+ }
+
+ #toc {
+ font-size: 12pt;
+ font-weight: bold;
+ }
+ #toc .has_entries a,
+ #toc .no_entries {padding: 0px 3px;}
+ #toc .no_entries {color:#999}
+
+ .letter_section {
+ clear:both;
+ margin: 0px;
+ padding:15px 0px 6px;
+ }
+ .letter_section a {
+ color:#000;
+ }
diff --git a/buildscripts/jGrouseDoc/skins/common/img/closed.gif b/buildscripts/jGrouseDoc/skins/common/img/closed.gif
new file mode 100644
index 00000000..ab9701f2
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/common/img/closed.gif
Binary files differ
diff --git a/buildscripts/jGrouseDoc/skins/common/img/closedLarge.gif b/buildscripts/jGrouseDoc/skins/common/img/closedLarge.gif
new file mode 100644
index 00000000..97e3ab95
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/common/img/closedLarge.gif
Binary files differ
diff --git a/buildscripts/jGrouseDoc/skins/common/img/node.gif b/buildscripts/jGrouseDoc/skins/common/img/node.gif
new file mode 100644
index 00000000..82362651
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/common/img/node.gif
Binary files differ
diff --git a/buildscripts/jGrouseDoc/skins/common/img/open.gif b/buildscripts/jGrouseDoc/skins/common/img/open.gif
new file mode 100644
index 00000000..01286477
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/common/img/open.gif
Binary files differ
diff --git a/buildscripts/jGrouseDoc/skins/common/img/openLarge.gif b/buildscripts/jGrouseDoc/skins/common/img/openLarge.gif
new file mode 100644
index 00000000..d4162470
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/common/img/openLarge.gif
Binary files differ
diff --git a/buildscripts/jGrouseDoc/skins/common/js/jgdoc.js b/buildscripts/jGrouseDoc/skins/common/js/jgdoc.js
new file mode 100644
index 00000000..0687c039
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/common/js/jgdoc.js
@@ -0,0 +1,239 @@
+/**
+ * Searcher for JGrouseDoc
+ * $Id: jgdoc.js 324 2008-01-06 16:44:39Z denis.riabtchik $
+ */
+
+jgdoc = {}
+
+jgdoc.Searcher =
+{
+ initialize : function()
+ {
+ this._searchBox = document.getElementById("jgsSearchString");
+ this._searchResults = document.getElementById("jgsSearchResults");
+ this._info = document.getElementById("jgsInfo");
+ this._currentValue = "";
+ this._currentItems = [];
+ this._currentItem = -1;
+ this._data = null;
+ return this;
+ },
+
+ _getEvent : function(event)
+ {
+ return window.event? window.event : event;
+ },
+
+ _getTarget : function(event)
+ {
+ return event.target || event.srcElement
+ },
+
+ addClass : function(element, className)
+ {
+ var s = element.className;
+ var a = s.split(' ');
+ for (var i = 0; i < a.length; i++)
+ {
+ if (a[i] == className)
+ {
+ return;
+ }
+ }
+ a.push(className);
+ element.className = a.join(' ');
+ },
+
+ removeClass : function(element, className)
+ {
+ var s = element.className;
+ var a = s.split(' ');
+ for (var i = 0; i < a.length; i++)
+ {
+ if (a[i] == className)
+ {
+ a.splice(i, 1);
+ break;
+ }
+ }
+ element.className = a.join(' ');
+
+ },
+
+ dispatcher : function(event)
+ {
+ if (this != jgdoc.Searcher)
+ {
+ arguments.callee.apply(jgdoc.Searcher, arguments)
+ return;
+ }
+ event = this._getEvent(event);
+ var type = event.type;
+ var handler = "on" + type;
+ this[handler](event, this._getTarget(event));
+ },
+
+ onclick : function(event, target)
+ {
+ window.location.href = target._data.ref;
+ },
+
+ onmouseover : function(event, target)
+ {
+ this.selectItem(target.index);
+ },
+
+ onmouseout : function(event, target)
+ {
+ this.unselectItem(target.index);
+ },
+
+ selectItem : function(index)
+ {
+ if (index != this._currentItem)
+ {
+ this._currentItem = index;
+ var item = this._currentItems[index];
+ this.addClass(item, 'jgdSelectedItem');
+ var text = item._data.summary.split('\n').join('<br/>');
+ this._info.innerHTML = text;
+ }
+ },
+
+ unselectItem : function(index)
+ {
+ this._currentItem = -1;
+ var item = this._currentItems[index];
+ this.removeClass(item, 'jgdSelectedItem');
+ this._info.innerHTML = '';
+ },
+
+
+ onTimer : function()
+ {
+ if (this != jgdoc.Searcher)
+ {
+ arguments.callee.apply(jgdoc.Searcher, arguments)
+ return;
+ }
+ var val = this._searchBox.value;
+ if (val != this._currentValue)
+ {
+ this._currentValue = val;
+ this.redraw();
+ }
+ },
+
+ setData : function(data)
+ {
+ this._data = data;
+ this.redraw();
+ this._searchBox.focus();
+ },
+
+ addListener : function(element, eventName, handler)
+ {
+ if (element.addEventListener)
+ {
+ element.addEventListener(eventName, handler, false);
+ }
+ else
+ {
+ element.attachEvent('on' + eventName, handler);
+ }
+ },
+
+ removeListener : function(element, eventName, handler)
+ {
+ if (element.removeEventListener)
+ {
+ element.removeEventListener(eventName, handler, false);
+ }
+ else
+ {
+ element.detachEvent('on' + eventName, handler);
+ }
+ },
+
+ findMatches : function()
+ {
+ var result = [];
+ if (this._currentValue)
+ {
+ var v = this._currentValue.toUpperCase();
+ for (var i = 0; i < this._data.length; i++)
+ {
+ var item = this._data[i];
+ if (item.localName.toUpperCase().indexOf(v) == 0)
+ {
+ result.push(item);
+ }
+ }
+ }
+ return result;
+ },
+
+
+ clearItem : function(item)
+ {
+ item._data = null;
+ this.removeListener(item, 'click', this.dispatcher);
+ this.removeListener(item, 'mouseover', this.dispatcher);
+ this.removeListener(item, 'mouseout', this.dispatcher);
+ },
+
+ clear : function()
+ {
+ for (var i = 0; i < this._currentItems.length; i++)
+ {
+ this.clearItem(this._currentItems[i]);
+ }
+ this._currentItems = [];
+ this._searchResults.innerHTML = "";
+ this._currentItem = -1;
+ },
+
+
+ createItem : function(item, index)
+ {
+ var d = document.createElement("div");
+ d.className = "searchItem";
+ //d.title = item.summary;
+ d.innerHTML = item.fullName;
+ d.index = index;
+ d._data = item;
+ this.addListener(d, 'click', this.dispatcher);
+ this.addListener(d, 'mouseover', this.dispatcher);
+ this.addListener(d, 'mouseout', this.dispatcher);
+ //todo - set listeners
+ return d;
+ },
+
+ redraw : function()
+ {
+ this.clear();
+ var res = this.findMatches();
+ if (res.length > 0)
+ {
+ for (var i = 0; i < res.length; i++)
+ {
+ var d = this.createItem(res[i], i);
+ this._currentItems.push(d);
+ this._searchResults.appendChild(d);
+ }
+ }
+ else
+ {
+ var s = (this._currentValue)? "Not found" : "Start typing the name of the item";
+ this._searchResults.innerHTML = s;
+ }
+ },
+
+ start : function()
+ {
+ var instance = jgdoc.Searcher.initialize();
+ instance.setData([]);
+ instance._timer = window.setInterval(instance.onTimer, 100);
+ }
+}
+
diff --git a/buildscripts/jGrouseDoc/skins/common/js/jgindex.js b/buildscripts/jGrouseDoc/skins/common/js/jgindex.js
new file mode 100644
index 00000000..5a0bf2de
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/common/js/jgindex.js
@@ -0,0 +1,96 @@
+/**
+ * Script that builds jGrouseDoc Index Page
+ * Copyright (c) 2007 by Robert Kieffer and jGrouseDoc contributors
+ * $Id: jgindex.js 303 2007-12-24 22:52:30Z denis.riabtchik $
+ */
+
+var jgindex = {
+ load: function() {
+ // Sort data by localName
+ jgindex.data.sort(function(a,b) {
+ var c = (a.localName || a.fullName).toLowerCase();
+ var d = (b.localName || b.fullName).toLowerCase();
+ return c < d ? -1 : (c > d ? 1 : 0);
+ });
+
+ // Now render the index
+ jgindex.renderEntries();
+ },
+
+ renderEntries: function() {
+ var h = [];
+
+ // Use a DL, since this is the most semantically correct structure
+ h.push('<dl>');
+
+ // Hash to track which letters have entries
+ var letters = {};
+
+ // Loop through each entry
+ for (var i = 0; i < jgindex.data.length; i++) {
+ var entry = jgindex.data[i];
+
+ // Get name/url for the entry's namespace
+ var srcName = entry.parent;
+ var srcLink = entry.ref.replace(/#.*/, '');
+
+ // Apply odd/even classname (makes styling even/odd rows easy)
+ var cn = [(i % 2) ? 'odd' : 'even'];
+ cn.push(/^(class|interface|struct|object)/.test(entry.summary) ? 'is_namespace' : 'is_not_namespace');
+
+ // Get the entry's first letter
+ var ln = entry.localName || entry.fullName || '_unnamed';
+ var letter = ln.charAt(0).toUpperCase();
+
+ // ... and see if it's the first one for that letter
+ if (!letters[letter]) {
+ letters[letter] = true;
+ } else {
+ letter = null;
+ }
+
+ // ... and if it is, render the section header
+ if (letter) {
+ h.push('<h3 class="letter_section"><a name="' + letter + '">' + letter + '</a></h3>');
+ }
+
+ // Render the entry's HTML
+ cn = cn.join(' ');
+ h.push(
+ '<dt title="' + entry.summary + '" class="' + cn + '">' +
+ '<a href="' + entry.ref + '">' + ln + '</a>' +
+ '</dt>' +
+ '<dd class="' + cn + '">' +
+ '<a href="' + srcLink + '">' + srcName + '</a>' +
+ '</dd>'
+ );
+ }
+ h.push('</dl>');
+
+ // Stick it all into the element
+ document.getElementById('index').innerHTML = h.join('\n');
+
+ // Render the letters table-of-contents at the top
+ h = [];
+ var toc = '$_ABCDEFGHIJKLMNOPQRSTUVWXYZ';
+ for (var i = 0; i < toc.length; i++) {
+ var letter = toc.charAt(i);
+ h.push(letters[letter] ?
+ '<span class="has_entries"><a href="#' + letter + '">' + letter + '</a></span>' :
+ '<span class="no_entries">' + letter + '</span>'
+ );
+ }
+ document.getElementById('toc').innerHTML = h.join('\n');
+ }
+}
+
+
+// Hack so we can get access to the index data
+var jgdoc = {
+ Searcher: {
+ setData: function(data) {
+ jgindex.data = data;
+ jgindex.load();
+ }
+ }
+}
diff --git a/buildscripts/jGrouseDoc/skins/common/js/navTree.js b/buildscripts/jGrouseDoc/skins/common/js/navTree.js
new file mode 100644
index 00000000..f0c4f133
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/common/js/navTree.js
@@ -0,0 +1,213 @@
+jgdoc = {};
+jgdoc.TreeItem = function(nodeName, item)
+{
+ this._nodeName = nodeName;
+ this._data = item;
+ this._children = [];
+
+}
+
+jgdoc.Searcher =
+{
+ setData : function(data) {
+ this._data = data;
+ this.processItems();
+ this.render();
+ },
+
+ sorter: function(o1, o2) {
+ var l1 = o1.localName;
+ var l2 = o2.localName;
+ return l1 < l2? -1 : (l1 > l2 ? 1 : 0);
+ },
+
+ processItems : function() {
+ var root;
+
+ // Pass 1: Build index by fullName, and locate the root element
+ this._byName = {};
+ for (var i = 0; i < this._data.length; i++) {
+ var d = this._data[i];
+ if (d.fullName == "GLOBAL") {
+ root = this._root = d;
+ }
+ this._byName[d.fullName] = d;
+ }
+
+ // Pass 2: Populate _children arrays
+ for (var i = 0; i < this._data.length; i++) {
+ var item = this._data[i];
+ if (item.elementType == "logical_container" && item != this._root) {
+ var parent = this._byName[item.parent];
+ parent._children = parent._children || [];
+ parent._children.push(item);
+ }
+ }
+ },
+
+ addClass : function(element, className)
+ {
+ var s = element.className;
+ var a = s.split(' ');
+ for (var i = 0; i < a.length; i++)
+ {
+ if (a[i] == className)
+ {
+ return;
+ }
+ }
+ a.push(className);
+ element.className = a.join(' ');
+ },
+
+ removeClass : function(element, className)
+ {
+ var s = element.className;
+ var a = s.split(' ');
+ var found = false;
+ for (var i = 0; i < a.length; i++)
+ {
+ if (a[i] == className)
+ {
+ a.splice(i, 1);
+ found = true;
+ break;
+ }
+ }
+ element.className = a.join(' ');
+ return found;
+ },
+
+ clicked : function(event)
+ {
+ event = window.event? window.event : event;
+ var target = event.target || event.srcElement;
+ var span = target.parentNode;
+ var li = span.parentNode;
+ var wasOpen = jgdoc.Searcher.removeClass(li, 'open');
+ if (wasOpen)
+ {
+ jgdoc.Searcher.addClass(li, 'closed');
+ }
+ else
+ {
+ jgdoc.Searcher.removeClass(li, 'closed');
+ jgdoc.Searcher.addClass(li, 'open');
+ }
+ span.title = "Click to " + (wasOpen? "expand" : "collapse");
+
+ },
+
+ addListener : function(element, eventName, handler)
+ {
+ if (element.addEventListener)
+ {
+ element.addEventListener(eventName, handler, false);
+ }
+ else
+ {
+ element.attachEvent('on' + eventName, handler);
+ }
+ },
+
+ removeListener : function(element, eventName, handler)
+ {
+ if (element.removeEventListener)
+ {
+ element.removeEventListener(eventName, handler, false);
+ }
+ else
+ {
+ element.detachEvent('on' + eventName, handler);
+ }
+ },
+
+
+ render : function()
+ {
+ var d = document.getElementById('content');
+ d.innerHTML = '';
+ var athis = this;
+ function renderNode(item)
+ {
+ var node = document.createElement('li');
+ node.className = item.type;
+ node.innerHTML = "<span class='node'><span class='markerSpace'>&nbsp;</span></span><a href='" + item.ref + "' target='classFrame' title='" + item.summary + "'>" + item.localName + "</a>";
+ var span = node.firstChild;
+ var img = span.firstChild;
+ athis.addListener(img, 'mousedown', athis.clicked);
+ if (item._children)
+ {
+ item._children.sort(jgdoc.Searcher.sorter);
+ node.className += (item == athis._root)? ' open' : ' closed';
+ span.title = "Click to " + (item != athis._root? 'expand' : 'collapse');
+ var subnode = document.createElement("ul");
+ subnode.className = 'contents';
+ for (var i = 0; i < item._children.length; i++)
+ {
+ var child = renderNode(item._children[i]);
+ subnode.appendChild(child);
+ }
+ node.appendChild(subnode);
+ }
+ else
+ {
+ node.className += ' leaf';
+ }
+ item._node = node;
+ return node;
+ }
+ var root = renderNode(this._root);
+ d.appendChild(root);
+ },
+
+ cancelEvent : function(event)
+ {
+ if (event.preventDefault)
+ {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ else
+ {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ },
+
+ switchAll : function(doOpen)
+ {
+ var ac = doOpen? 'open' : 'closed';
+ var rc = doOpen? 'closed' : 'open';
+
+ var athis = this;
+
+ function doSwitchNode(anode)
+ {
+ if (anode._children)
+ {
+ if (doOpen || anode != athis._root)
+ {
+ athis.removeClass(anode._node, rc);
+ athis.addClass(anode._node, ac);
+ }
+ for (var i = 0; i < anode._children.length; i++)
+ {
+ doSwitchNode(anode._children[i]);
+ }
+ }
+ }
+ doSwitchNode(this._root);
+ },
+
+ onOpenAll : function()
+ {
+ jgdoc.Searcher.switchAll(true);
+ },
+
+ onCloseAll : function()
+ {
+ jgdoc.Searcher.switchAll(false);
+ }
+
+};
diff --git a/buildscripts/jGrouseDoc/skins/common/vm/common.vm b/buildscripts/jGrouseDoc/skins/common/vm/common.vm
new file mode 100644
index 00000000..b46b62c6
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/common/vm/common.vm
@@ -0,0 +1,604 @@
+#macro(writeLink $link)
+#set ($linkElement = $jg.get($link))
+$rootPath#if($linkElement.isContainer())
+#if($linkElement.isLogicalContainer())logical#{else}physical#end/${linkElement.path}.html#{else}
+logical/${linkElement.owner.path}.html#___$linkElement.localName#end
+#end
+
+
+#macro(writeContent $content)
+#foreach ($section in $content.sections)
+#if ($section.link && $section.resolvedPath && $section.resolvedPath.length() > 0)
+<a href="#writeLink($section.resolvedPath)">$section.text</a>#else$section.text#end
+#end
+#end
+
+#macro (writeType $type)
+<span class="type">#writeContent($type)</span>
+#end
+
+
+
+
+#macro(genCommonAttrs $comment)
+ #if($comment.author.size() > 0)
+ <div class="authors">
+ <span class="descSection">Authors:</span>
+ #foreach($author in $comment.author)
+ <div class="paddedDetails">#writeContent($author.content)</div>
+ #end
+ </div>
+ #end
+ #if ($comment.see.size() > 0)
+ <div class="seealso">
+ <span class="descSection">See also:</span>
+ #foreach($see in $comment.see)
+ <div class="paddedDetails">#writeContent($see.content)</div>
+ #end
+ </div>
+ #end
+ #if ($comment.version.size() > 0)
+ <div class="version">
+ <span class="descSection">Version:</span>
+ #foreach($version in $comment.version)
+ <div class="paddedDetails">#writeContent($version.content)</div>
+ #end
+ </div>
+ #end
+ #if ($comment.timestamp.size() > 0)
+ <div class="generated">
+ <span class="descSection">Generated on:</span>
+ <div class="paddedDetails">$jg.project.timestamp</div>
+ </div>
+ #end
+ #if ($comment.since.size() > 0)
+ <div class="since">
+ <span class="descSection">Since:</span>
+ #foreach($since in $comment.since)
+ <div class="paddedDetails">#writeContent($since.content)</div>
+ #end
+ </div>
+ #end
+ #if ($comment.deprecated.size() > 0)
+ <div class="deprecated">
+ <span class="descSection">Deprecated:</span>
+ #foreach($dep in $comment.deprecated)
+ <div class="paddedDetails">#writeContent($dep.content)</div>
+ #end
+ </div>
+ #end
+#end
+
+
+#macro (writeFunctionParams $paramSet)
+#foreach($param in $paramSet.params)#if($velocityCount > 1), #end#if($param.hasModifier('optional'))[#end#writeType($param.typeLink) $param.name#if($param.hasModifier('optional'))]#end#end
+#end
+
+
+#macro(writeSrcURL $obj)
+ #if($obj.comment.srcUrl)
+ <a href="$obj.comment.srcUrl" class="srcUrlLink">view source</a>
+ #end
+#end
+
+
+#macro(writeParamOption $paramOption)
+ <li>
+ <code>
+ #if($paramOption.hasModifier("optional"))[#end
+ <span class="modifiers">$paramOption.strModifiers</span>
+ #writeType($paramOption.typeLink)
+ $paramOption.name
+ #if($paramOption.hasModifier("optional"))]#end
+ </code>
+ #writeContent($paramOption.content)
+ </li>
+#end
+
+
+#macro(writeParam $param)
+ <div class="param paddedDetails">
+ <code>
+ #if($param.hasModifier("optional"))[#end${param.name}#if($param.hasModifier("optional"))]#end
+ </code>
+ #writeContent($param.content)
+ #if($param.children.size() > 0)
+ <ul class="paramoption">
+ #foreach($paramOption in $param.children)
+ #writeParamOption($paramOption)
+ #end
+ </ul>
+ #end
+ </div>
+#end
+
+
+#macro(writePhysOwner $element)
+ #if($element.hasSamePhysOwner)
+ <span class="definedIn">Defined in </span>
+ <a href="#writeLink($element.physOwner)">$element.physOwner.comment.name</a>
+ #end
+#end
+
+
+
+
+#macro(writeFunctionDetails $func $memberType)
+ #set ($funcModifiers = $func.comment.modifiers)
+ #if ($func.comment.inheritdesc.size() == 0)
+ #set ($funcItself = $func)
+ #else
+ #set ($funcItself = $jg.get($func.comment.inheritdesc.get(0).name))
+ #end
+ #writeSrcURL($func)
+ <h3>
+ <a name="___$func.localName">
+ <span class="objType">$memberType</span>
+ <span class="objName">$func.localName</span>
+ </a>
+ </h3>
+ #if ($funcItself.comment.paramSets.size() > 0)
+ #foreach($paramSet in $funcItself.comment.paramSets)
+ <div>
+ <code>
+ <span class="modifiers">$funcModifiers</span>
+ #writeType($funcItself.comment.typeLink)
+ ${funcItself.localName}(#writeFunctionParams($paramSet))
+ </code>
+ </div>
+ #end
+ #else
+ <div>
+ <code>
+ <span class="modifiers">$funcModifiers</span>
+ #writeType($funcItself.comment.typeLink)
+ ${funcItself.localName}()
+ </code>
+ </div>
+ #end
+ <div class="comment">
+ #writeContent($funcItself.comment.content)
+ </div>
+ #if ($funcItself.comment.paramSets.size() > 0)
+ <div class="parameters">
+ <span class="descSection">Parameters:</span><br/>
+ #foreach($paramSet in $funcItself.comment.paramSets)
+ <div>
+ <div class="paramset">#writeContent($paramSet.content)</div>
+ <div>
+ #foreach($param in $paramSet.params)
+ #writeParam($param)
+ #end
+ </div>
+ </div>
+ #end
+ </div>
+ #end
+ #if($funcItself.comment.returnsTag )
+ <div class="returns">
+ <span class="descSection">Returns:</span><br/>
+ <div class="paddedDetails">
+ #set ($return = $funcItself.comment.returnsTag)
+ #writeContent($return.content)
+ #if($return.children.size() > 0)
+ <ul class="paramoption">
+ #foreach($paramOption in $return.children)
+ #writeParamOption($paramOption)
+ #end
+ </ul>
+ #end
+ </div>
+ </div>
+ #end
+ #if($funcItself.comment.throws.size() > 0)
+ <div class="throws">
+ <span class="descSection">Throws:</span><br/>
+ #foreach($throws in $funcItself.comment.throws)
+ <div class="paddedDetails">#writeContent($throws.content)</div>
+ #end
+ </div>
+ #end
+ #genCommonAttrs($funcItself.comment)
+ #writePhysOwner($func)
+ <hr/>
+#end
+
+
+#macro(writeVarDetails $var)
+ #set ($varModifiers = $var.comment.modifiers)
+ #if ($var.comment.inheritdesc.size() == 0)
+ #set ($varItself = $var)
+ #else
+ #set ($varItself = $jg.get($var.comment.inheritdesc.get(0).name))
+ #end
+
+ #writeSrcURL($var)
+ <h3>
+ <a name="___$var.localName">
+ <span class="objType">$var.commentType</span> <span class="modifiers">$varModifiers</span>
+ #writeType($varItself.comment.typeLink)
+ <span class="objName">$var.localName</span>
+ </a>
+ </h3>
+ <div class="comment">
+ #writeContent($varItself.comment.content)
+ </div>
+ #genCommonAttrs($varItself.comment)
+ #writePhysOwner($var)
+ <hr />
+#end
+
+
+
+
+#macro(writeLegacies $obj $memberType $memberName )
+ #foreach($legacy in $obj.legacies)
+ #if ($legacy.get($memberType).size() > 0)
+ <div class="summaryTable">
+ <div class="summaryTableHeader">
+ $memberName inherited from <a href="#writeLink($legacy.ancestor.fullName)">$legacy.ancestor.fullName</a>
+ </div>
+ <div class="inheritanceSummary">
+ #foreach($item in $legacy.get($memberType))#if($velocityCount > 1), #end<a href="#writeLink($item.fullName)">$item.localName</a>#end
+ </div>
+ </div>
+ <br/>
+ #end
+ #end
+#end
+
+
+
+#macro(writeVarSummary $variable)
+ #set ($varModifiers = $variable.comment.modifiers)
+ #if ($variable.comment.inheritdesc.size() == 0)
+ #set ($varItself = $variable)
+ #else
+ #set ($varItself = $jg.get($variable.comment.inheritdesc.get(0).name))
+ #end
+ <div class="summaryItemDef">
+ <span class="modifiers">$varModifiers</span>
+ #writeType($variable.comment.typeLink)
+ <a href="#writeLink($variable.fullName)"><span class="elementName">$variable.localName</span></a>
+ </div>
+ <div class="summaryItemDesc">
+ #writeContent($varItself.comment.summary)
+ </div>
+#end
+
+
+#macro(writeFuncSummary $func)
+ #set ($funcModifiers = $func.comment.modifiers)
+ #if ($func.comment.inheritdesc.size() == 0)
+ #set ($funcItself = $func)
+ #else
+ #set ($funcItself = $jg.get($func.comment.inheritdesc.get(0).name))
+ #end
+ #if ($funcItself.comment.paramSets.size() != 0)
+ #foreach($paramSet in $funcItself.comment.paramSets)
+ <div class="summaryItemDef">
+ <span class="modifiers">$funcModifiers</span>
+ #writeType($func.comment.typeLink)
+ <a href="#writeLink($func.fullName)"><span class="elementName">$func.localName</span></a>
+ (#writeFunctionParams($paramSet))
+ </div>
+ #end
+ #else
+ <div class="summaryItemDef">
+ <span class="modifiers">$funcModifiers</span>
+ #writeType($func.comment.typeLink)
+ <a href="#writeLink($func.fullName)"><span class="elementName">$func.localName</span></a>()
+ </div>
+ #end
+ <div class="summaryItemDesc">
+ #writeContent($funcItself.comment.summary)
+ </div>
+#end
+
+
+#macro(writeLogicalSummary $class)
+ <div class="summaryItemDef">
+ <span class="elementName">
+ <a href="${rootPath}logical/${class.path}.html">$class.comment.name</a>
+ </span>
+ </div>
+ <div class="summaryItemDesc">
+ #writeContent($class.comment.summary)
+ </div>
+#end
+
+
+#macro(writeSummary $coll $elemType $elemName)
+ #if($coll.size() != 0)
+ <div class="summaryTable $elemType">
+ <div class="summaryTableHeader">
+ <span class="objType">$elemName</span> Summary
+ </div>
+ #foreach($item in $coll)
+ <div class="summaryItem">
+ #if ($elemType == "namespace" || $elemType == "class" || $elemType == "interface" || $elemType == "struct"|| $elemType == "object")
+ #writeLogicalSummary($item)
+ #elseif ($elemType == "function" || $elemType == "constructor" || $elemType == "ifunction" || $elemType == "event")
+ #writeFuncSummary($item)
+ #elseif ($elemType == "variable" || $elemType == "property")
+ #writeVarSummary($item)
+ #end
+ </div>
+ #end
+ </div>
+ <p/>
+ #end
+#end
+
+
+
+#macro(writeDetails $object $elemType $memberName)
+ #if ($object.get($elemType).size() > 0)
+ <div class="details $elemType">
+ <h2 class="sectionHeader">$memberName Details</h2>
+ #foreach($item in $object.get($elemType))
+ #if ($elemType == "function" || $elemType == "constructor" || $elemType == "ifunction" || $elemType == "event")
+ #writeFunctionDetails($item $elemType)
+ #elseif ($elemType == "variable" || $elemType == "property")
+ #writeVarDetails($item)
+ #end
+ #end
+ </div>
+ #end
+#end
+
+
+
+
+
+#macro(navigationPane $elementType)
+<div class="navigation" id="navigation">
+ <ul class="navContent#if($elementType != "logical") closed#end">
+ <li>
+ <div class="navTree">
+ <h2 onclick="jgdoc.NavPanel.clicked(event)">
+ <a href="javascript:jgdoc.NavPanel.dummy()">Navigation</a>
+ </h2>
+ <ul class="navContent2">
+ <li>
+ <div>
+ <a class="openAll" href="javascript:jgdoc.NavTree.onOpenAll()">Open All</a>
+ <a class="closeAll" href="javascript:jgdoc.NavTree.onCloseAll()">Close All</a>
+ </div>
+ <div>
+ <ul id = "content" class="contents">
+ Loading...
+ </ul>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+ <ul class="navContent#if($elementType != "file") closed#end">
+ <li>
+ <div class="fileTree">
+ <h2 onclick="jgdoc.NavPanel.clicked(event)">
+ <a href="javascript:jgdoc.NavPanel.dummy()">Files</a>
+ </h2>
+ <ul class="navContent2">
+ <li>
+ #foreach($file in $jg.files)
+ #if(!$file.isModuleFile())
+ <div>
+ <a href="physical/${file.path}.html">$file.comment.name</a>
+ </div>
+ #end
+ #end
+ </li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+ <ul class="navContent#if($elementType != "module") closed#end">
+ <li>
+ <div class="moduleTree">
+ <h2 onclick="jgdoc.NavPanel.clicked(event)">
+ <a href="javascript:jgdoc.NavPanel.dummy()">Modules</a>
+ </h2>
+ <ul class="navContent2">
+ <li>
+ #foreach($module in $jg.modules)
+ <div>
+ <a href="physical/${module.path}.html">$module.comment.name</a>
+ </div>
+ #end
+ </li>
+ </ul>
+ </div>
+ </li>
+ </ul>
+</div>
+
+#end
+
+#macro(writeCSS $rootPath $aux_path)
+ <link rel="stylesheet" type="text/css" href="${rootPath}jgdoc.css"/>
+ <link rel="stylesheet" type="text/css" href="${rootPath}theme.css"/>
+ #if($aux_path && $aux_path != 'not_specified')
+ <link rel="stylesheet" type="text/css" href="${rootPath}$aux_css"/>
+ #end
+#end
+
+#macro(navbarPhys $isStartup)
+ <div class="navbar">
+ <div class="navbaritem">
+ #if ($isStartup == "yes")
+ <a href="$rootPath/overview-summary-log.html">Logical View</a>
+ #else
+ <a href="$rootPath/overview-summary.html">Start</a>
+ #end
+ </div>
+ <div class="navbaritem">
+ <a href="$rootPath/jgindex.html">Index</a>
+ </xsl:element>
+ </div>
+ <div class="navbaritem">
+ <a href="$rootPath/jgsearch.html">Search</a>
+ </div>
+ </div>
+#end
+
+#macro(navbarLog $isStartup)
+ <div class="navbar">
+ <div class="navbaritem">
+ #if ($isStartup == "yes")
+ <a href="$rootPath/overview-summary.html">Physical View</a>
+ #else
+ <a href="$rootPath/overview-summary-log.html">Start</a>
+ #end
+ </div>
+ <div class="navbaritem">
+ <a href="$rootPath/jgindex.html">Index</a>
+ </xsl:element>
+ </div>
+ <div class="navbaritem">
+ <a href="$rootPath/jgsearch.html">Search</a>
+ </div>
+ </div>
+#end
+
+#macro(writeClassAttributes $obj)
+#if($obj.comment.extends.size() > 0)
+ <div class="extends">
+ <span class="descSection">Extends </span>
+ #foreach ($tagContent in $obj.comment.extends)
+ #if($velocityCount > 1), #end #writeContent($tagContent.content)
+ #end
+ </div>
+#end
+#if($obj.comment.implements.size() > 0)
+ <div class="implements">
+ <span class="descSection">Implements </span>
+ #foreach ($tagContent in $obj.comment.implements)
+ #if($velocityCount > 1), #end #writeContent($tagContent.content)
+ #end
+ </div>
+#end
+
+#if($obj.subClasses.size() > 0)
+ <div class="subclasses">
+ <div class="descSection">
+ #if($obj.commentType == "class")Direct Known Subclasses:#{else}All Known Subinterfaces:#end
+ </div>
+ <div class="paddedDetails">
+ #foreach($subclass in $obj.subClasses)#if($velocityCount > 1), #end<a href="#writeLink($subclass.fullName)">$subclass.fullName</a>#end
+ </div>
+ </div>
+#end
+
+#if($obj.implementors.size() > 0)
+ <div>
+ <div>
+ All Known Implementing Classes:
+ </div>
+ <div>
+ #foreach($subclass in $obj.implementors)#if($velocityCount > 1), #end<a href="#writeLink($subclass.fullName)">$subclass.fullName</a>#end
+ </div>
+ </div>
+#end
+#end
+
+#macro(writeModuleAttributes $obj)
+#if ($obj.comment.requires.size() > 0)
+ <div class="requires">
+ <span class="descSection">Requires modules: </span>
+ #foreach($tagContent in $obj.comment.requires)
+ #if($velocityCount > 1), #end #writeContent($tagContent.content)
+ #end
+ </div>
+#end
+#end
+
+
+#macro(writeLogicalContainerSummary $obj)
+ #if ($obj.elementType == "logical_container" && $obj.commentType != "namespace")
+ #set($nested = "Nested")
+ #else
+ #set ($nested = "")
+ #end
+
+ #writeSummary($obj.get("class") "class" "$nested Class")
+ #writeSummary($obj.get("interface") "interface" "$nested Interface")
+ #writeSummary($obj.object "object" "$nested Object")
+ #writeSummary($obj.structure "structure" "$nested Structure")
+
+ #writeSummary($obj.variable "variable" "Variable")
+ #writeLegacies($obj "variable" "Variables")
+
+
+ #writeSummary($obj.property "property" "Property")
+ #writeLegacies($obj "property" "Properties" )
+
+ #writeSummary($obj.constructor "constructor" "Constructor")
+
+ #writeSummary($obj.function "function" "Function")
+ #writeLegacies($obj "function" "Functions" )
+
+ #writeSummary($obj.event "event" "Event")
+ #writeSummary($obj.ifunction "ifunction" "Function Interface")
+#end
+
+#macro(writeLogicalContainerDetails $obj)
+ #writeDetails($obj "variable" "Variable")
+ #writeDetails($obj "property" "Property")
+ #writeDetails($obj "constructor" "Constructor")
+ #writeDetails($obj "function" "Function")
+ #writeDetails($obj "event" "Event")
+ #writeDetails($obj "ifunction" "Function Interface")
+#end
+
+#macro(writeContainer $obj)
+ #if($obj.comment.srcUrl)
+ <a href="$obj.comment.srcUrl" class="srcUrlLink">view source</a>
+ #end<H2>
+ <span class="objType">$obj.capCommentType</span> $obj.comment.name
+ </H2>
+ #writeClassAttributes($obj)
+ <hr/>
+ <!-- description -->
+ <div>
+ <code>
+ <span class="modifiers">$obj.comment.modifiers</span>
+ <span class="objType">$obj.commentType</span>
+ <b>$obj.comment.name</b>
+ </code>
+ </div>
+ #writeModuleAttributes($obj)
+ #if($obj.comment.content)
+ <div class="comment">#writeContent($obj.comment.content)</div>
+ #end
+ #genCommonAttrs($obj.comment)
+ #if ($obj.physOwner)
+ <span class="definedIn">Defined in </span>
+ <a href="#writeLink($obj.physOwner.fullName)">$obj.physOwner.comment.name</a>
+ #end
+ <hr/>
+ <p />
+
+ #writeLogicalContainerSummary($obj)
+ <!-- ============== Details coming here =================== -->
+ #writeLogicalContainerDetails($obj)
+#end
+
+#macro(writeOverview $object)
+ <div class="overviewItem">
+ <a href="#writeLink($object.fullName)" target="classFrame">
+ $object.fullName
+ </a>
+ </div>
+#end
+
+#macro(writeRefOverview $coll $elementType $elementName)
+ #if ($coll.size() > 0)
+ <div class="overviewTitle">$elementName</div>
+ #foreach($item in $coll)
+ #writeOverview($item)
+ #end
+ #end
+#end \ No newline at end of file
diff --git a/buildscripts/jGrouseDoc/skins/common/xslt/common.xslt b/buildscripts/jGrouseDoc/skins/common/xslt/common.xslt
new file mode 100644
index 00000000..b8477c76
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/common/xslt/common.xslt
@@ -0,0 +1,704 @@
+<!--
+ jGrouseDoc template file. Shared templates.
+ @Copyright (c) 2007 by Denis Riabtchik. All rights reserved. See license.txt and http://jgrouse.com for details@
+ $Id: common.xslt 515 2008-03-31 19:32:57Z denis.riabtchik $
+-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+ <xsl:template name="parentPath">
+ <xsl:param name="parentName"/>
+ <xsl:value-of select="/jgdoc/items/*[@id=$parentName]/@path" />
+ </xsl:template>
+
+ <xsl:template match="type">
+ <span class="type"><xsl:apply-templates select="*"/></span>
+ <xsl:text> </xsl:text>
+ </xsl:template>
+
+ <xsl:template match="*" mode="writeFuncSummary">
+ <xsl:choose>
+ <xsl:when test="count(comment/inheritdesc) != 0">
+ <xsl:variable name="fn"><xsl:value-of select="comment/inheritdesc/tagContent/@name"/></xsl:variable>
+ <xsl:apply-templates select="/jgdoc/items/*[@id=$fn]" mode="writeFuncSummary1">
+ <xsl:with-param name="origName"><xsl:value-of select="@id"/></xsl:with-param>
+ <xsl:with-param name="modifiers"><xsl:value-of select="comment/modifiers/@name"/></xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="writeFuncSummary1">
+ <xsl:with-param name="origName"><xsl:value-of select="@id"/></xsl:with-param>
+ <xsl:with-param name="modifiers"><xsl:value-of select="comment/modifiers/@name"/></xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="*" mode="writeFuncSummary1">
+ <xsl:param name="origName"/>
+ <xsl:param name="modifiers"/>
+ <xsl:choose>
+ <xsl:when test="count(comment/paramSet) != 0">
+ <xsl:for-each select="comment/paramSet">
+ <div class="summaryItemDef">
+ <span class="modifiers"><xsl:value-of select="$modifiers"/></span>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="../../comment/type" />
+ <xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:call-template name="writeLink">
+ <xsl:with-param name="refName"><xsl:value-of select="$origName"/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:attribute>
+ <span class="elementName"><xsl:value-of select="../../@localName"/></span>
+ </xsl:element>
+ <xsl:call-template name="writeFunctionParams">
+ <xsl:with-param name="funcName"><xsl:value-of select="../../@id"/></xsl:with-param>
+ <xsl:with-param name="paramSetCount"><xsl:value-of select="position()"/></xsl:with-param>
+ </xsl:call-template>
+ </div>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <div class="summaryItemDef">
+ <span class="modifiers"><xsl:value-of select="$modifiers"/></span>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="comment/type" />
+ <xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:call-template name="writeLink">
+ <xsl:with-param name="refName"><xsl:value-of select="$origName"/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:attribute>
+ <span class="elementName"><xsl:value-of select="@localName"/></span>
+ </xsl:element>()
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+ <div class="summaryItemDesc">
+ <xsl:apply-templates select="comment/summary/content"/>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="*" mode="writeVarSummary">
+ <xsl:choose>
+ <xsl:when test="count(comment/inheritdesc) != 0">
+ <xsl:variable name="fn"><xsl:value-of select="comment/inheritdesc/tagContent/@name"/></xsl:variable>
+ <xsl:apply-templates select="/jgdoc/items/*[@id=$fn]" mode="writeVarSummary1">
+ <xsl:with-param name="origName"><xsl:value-of select="@id"/></xsl:with-param>
+ <xsl:with-param name="modifiers"><xsl:value-of select="comment/modifiers/@name"/></xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="writeVarSummary1">
+ <xsl:with-param name="origName"><xsl:value-of select="@id"/></xsl:with-param>
+ <xsl:with-param name="modifiers"><xsl:value-of select="comment/modifiers/@name"/></xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="*" mode="writeVarSummary1">
+ <xsl:param name="origName"/>
+ <xsl:param name="modifiers"/>
+ <div class="summaryItemDef">
+ <span class="modifiers"><xsl:value-of select="$modifiers"/></span>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="comment/type" />
+ <xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:call-template name="writeLink">
+ <xsl:with-param name="refName"><xsl:value-of select="$origName"/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:attribute>
+ <span class="elementName"><xsl:value-of select="@localName" /></span>
+ </xsl:element>
+ </div>
+ <div class="summaryItemDesc">
+ <xsl:apply-templates select="comment/summary/content"/>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="*" mode="writeLogicalSummary">
+ <div class="summaryItemDef">
+ <span class="elementName"><xsl:element name="a">
+ <xsl:attribute name="href"><xsl:value-of select="$rootPath"/>logical/<xsl:value-of select="@path"/>.html</xsl:attribute>
+ <xsl:value-of select="comment/name"/>
+ </xsl:element></span>
+ </div>
+ <div class="summaryItemDesc">
+ <xsl:apply-templates select="comment/summary/content"/>
+ </div>
+ </xsl:template>
+
+ <xsl:template name="writeFunctionParams">
+ <xsl:param name="funcName"/>
+ <xsl:param name="paramSetCount"/>(<xsl:for-each select="/jgdoc/items/*[@id=$funcName]/comment/paramSet[$paramSetCount]/param"><xsl:if test="position() != 1">, </xsl:if><xsl:if test="@optional = 'true'">[</xsl:if><xsl:apply-templates select="type"/><xsl:value-of select="normalize-space(@name)"/><xsl:if test="@optional = 'true'">]</xsl:if></xsl:for-each>)</xsl:template>
+
+ <xsl:template name="writeLink">
+ <xsl:param name="refName"/>
+ <xsl:for-each select="/jgdoc/items/*[@id=$refName]">
+ <xsl:value-of select="$rootPath"/><xsl:choose>
+ <xsl:when test="@elementType='phys_container'">physical/</xsl:when>
+ <xsl:otherwise>logical/</xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose >
+ <xsl:when test="(@elementType='phys_container') or (@elementType='logical_container')"
+ ><xsl:value-of select="@path"/>.html</xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="parentPath">
+ <xsl:with-param name="parentName" select="@parentName"/>
+ </xsl:call-template>.html#___<xsl:value-of select="@localName" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template match="contentSection">
+ <xsl:value-of select="." disable-output-escaping="yes"/>
+ </xsl:template>
+
+ <xsl:template match="link">
+ <xsl:choose>
+ <xsl:when test="string-length(@resolvedPath) > 0">
+ <xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:call-template name="writeLink">
+ <xsl:with-param name="rootPath"><xsl:value-of select="$rootPath"/></xsl:with-param>
+ <xsl:with-param name="refName"><xsl:value-of select="@resolvedPath"/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:attribute><xsl:value-of select="." disable-output-escaping="yes"/></xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="."/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="content">
+ <xsl:apply-templates />
+ </xsl:template>
+
+
+ <xsl:template match="comment" mode="genCommonAttrs">
+ <xsl:if test="count(author/tagContent) != 0">
+ <div class="authors">
+ <span class="descSection">Authors:</span>
+ <xsl:for-each select="author/tagContent">
+ <div class="paddedDetails"><xsl:apply-templates select="."/></div>
+ </xsl:for-each>
+ </div>
+ </xsl:if>
+ <xsl:if test="count(see/tagContent) != 0">
+ <div class="seealso">
+ <span class="descSection">See also:</span>
+ <xsl:for-each select="see/tagContent">
+ <div class="paddedDetails"><xsl:apply-templates select="content"/></div>
+ </xsl:for-each>
+ </div>
+ </xsl:if>
+ <xsl:if test="count(version) != 0">
+ <div class="version">
+ <span class="descSection version">Version:</span>
+ <div class="paddedDetails"><xsl:value-of select="$version"/></div>
+ </div>
+ </xsl:if>
+ <xsl:if test="count(timestamp) != 0">
+ <div class="generated">
+ <span class="descSection">Generated on:</span>
+ <div class="paddedDetails"><xsl:value-of select="/jgdoc/project/@timestamp"/> <xsl:text> </xsl:text> <xsl:apply-templates select="version/tagContent"/></div>
+ </div>
+ </xsl:if>
+ <xsl:if test="count(since/tagContent) != 0">
+ <div class="since">
+ <span class="descSection">Since:</span>
+ <div class="paddedDetails"><xsl:apply-templates select="since/tagContent"/></div>
+ </div>
+ </xsl:if>
+ <xsl:if test="count(deprecated/tagContent) != 0">
+ <div class="deprecated">
+ <span class="descSection">Deprecated</span>
+ <div class="paddedDetails"><xsl:apply-templates select="deprecated/tagContent"/></div>
+ </div>
+ </xsl:if>
+ </xsl:template>
+
+
+
+ <!-- new stuff -->
+
+ <xsl:template match="function|constructor|ifunction|event" mode="writeSummary">
+ <xsl:apply-templates select="." mode="writeFuncSummary"/>
+ </xsl:template>
+
+ <xsl:template match="variable|property" mode="writeSummary">
+ <xsl:apply-templates select="." mode="writeVarSummary"/>
+ </xsl:template>
+
+ <xsl:template match="namespace|class|interface|struct|object" mode="writeSummary">
+ <xsl:apply-templates select="." mode="writeLogicalSummary"/>
+ </xsl:template>
+
+ <xsl:template match="module" mode="writeSummary">
+ <div class="summaryItemDef">
+ <span class="elementName"><xsl:element name="a">
+ <xsl:attribute name="href"><xsl:value-of select="$rootPath"/>physical/<xsl:value-of select="@path"/>.html</xsl:attribute>
+ <xsl:value-of select="comment/name"/>
+ </xsl:element></span>
+ </div>
+ <div class="summaryItemDesc">
+ <xsl:apply-templates select="comment/summary/content"/><xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
+ </div>
+ </xsl:template>
+
+
+ <xsl:template name="writeRefSummary">
+ <xsl:param name="fullName"/>
+ <xsl:apply-templates select="/jgdoc/items/*[@id=$fullName]" mode="writeSummary">
+ </xsl:apply-templates>
+ </xsl:template>
+
+ <xsl:template match="children" mode="writeSummary">
+ <xsl:param name="elementType"/>
+ <xsl:param name="elementName"/>
+ <xsl:if test="count(ref[@type=$elementType]) != 0">
+ <xsl:element name="div">
+ <xsl:attribute name="class">
+ <xsl:text>summaryTable </xsl:text>
+ <xsl:value-of select="$elementType"/>
+ </xsl:attribute>
+ <div class="summaryTableHeader" >
+ <span class="objType"><xsl:value-of select="$elementName"/></span> Summary
+ </div>
+ <xsl:for-each select="ref[@type=$elementType]">
+ <div class="summaryItem">
+ <xsl:call-template name="writeRefSummary">
+ <xsl:with-param name="fullName"><xsl:value-of select="@refId"/></xsl:with-param>
+ </xsl:call-template>
+ </div>
+ </xsl:for-each>
+ </xsl:element>
+ <p/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="writeOverview">
+ <xsl:param name="objName"/>
+ <div class="overviewItem">
+ <xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:call-template name="writeLink">
+ <xsl:with-param name="refName"><xsl:value-of select="$objName"/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="target">classFrame</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="/jgdoc/items/*[@id=$objName]/@parentName='_GLOBAL_NAMESPACE'">
+ <xsl:value-of select="/jgdoc/items/*[@id=$objName]/comment/name"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="/jgdoc/items/*[@id=$objName]/@id"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="children" mode="writeRefOverview">
+ <xsl:param name="elementType"/>
+ <xsl:param name="elementName"/>
+ <xsl:if test="count(ref[@type=$elementType]) != 0">
+ <div class="overviewTitle"><xsl:value-of select="$elementName"/></div>
+ <xsl:for-each select="ref[@type=$elementType]">
+ <xsl:call-template name="writeOverview">
+ <xsl:with-param name="objName"><xsl:value-of select="@refId"/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="navbarPhys">
+ <xsl:param name="isStartup">no</xsl:param>
+ <div class="navbar">
+ <xsl:if test="$isStartup='yes'">
+ <div class="navbaritem">
+ <xsl:element name="a">
+ <xsl:attribute name="href"><xsl:value-of select="$rootPath"/>overview-summary-log.html</xsl:attribute>
+ Logical View
+ </xsl:element>
+ </div>
+ </xsl:if>
+ <xsl:if test="$isStartup != 'yes'">
+ <div class="navbaritem">
+ <xsl:element name="a">
+ <xsl:attribute name="href"><xsl:value-of select="$rootPath"/>overview-summary.html</xsl:attribute>
+ Start
+ </xsl:element>
+ </div>
+ </xsl:if>
+ <div class="navbaritem">
+ <xsl:element name="a">
+ <xsl:attribute name="href"><xsl:value-of select="$rootPath"/>jgindex.html</xsl:attribute>
+ Index
+ </xsl:element>
+ </div>
+ <div class="navbaritem">
+ <xsl:element name="a">
+ <xsl:attribute name="href"><xsl:value-of select="$rootPath"/>jgsearch.html</xsl:attribute>
+ Search
+ </xsl:element>
+ </div>
+ </div>
+ </xsl:template>
+
+ <xsl:template name="navbarLog">
+ <xsl:param name="isStartup">no</xsl:param>
+ <div class="navbar">
+ <xsl:if test="$isStartup='yes'">
+ <div class="navbaritem">
+ <xsl:element name="a">
+ <xsl:attribute name="href"><xsl:value-of select="$rootPath"/>overview-summary.html</xsl:attribute>
+ Physical View
+ </xsl:element>
+ </div>
+ </xsl:if>
+ <xsl:if test="$isStartup != 'yes'">
+ <div class="navbaritem">
+ <xsl:element name="a">
+ <xsl:attribute name="href"><xsl:value-of select="$rootPath"/>overview-summary-log.html</xsl:attribute>
+ Start
+ </xsl:element>
+ </div>
+ </xsl:if>
+ <div class="navbaritem">
+ <xsl:element name="a">
+ <xsl:attribute name="href"><xsl:value-of select="$rootPath"/>jgindex.html</xsl:attribute>
+ Index
+ </xsl:element>
+ </div>
+ <div class="navbaritem">
+ <xsl:element name="a">
+ <xsl:attribute name="href"><xsl:value-of select="$rootPath"/>jgsearch.html</xsl:attribute>
+ Search
+ </xsl:element>
+ </div>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="legacies" mode="inheritance">
+ <xsl:param name="memberName"/>
+ <xsl:param name="memberType"/>
+ <xsl:for-each select="legacy[count(legacyItem[@type=$memberType]) != 0]">
+ <div class="summaryTable">
+ <div class="summaryTableHeader">
+ <xsl:value-of select="$memberName"/> inherited from
+ <xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:call-template name="writeLink">
+ <xsl:with-param name="refName"><xsl:value-of select="@parent"/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:value-of select="@parent" />
+ </xsl:element>
+ </div>
+ <div class="inheritanceSummary">
+ <xsl:for-each select="legacyItem[@type=$memberType]">
+ <xsl:if test="position() != 1">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:call-template name="writeLink">
+ <xsl:with-param name="refName"><xsl:value-of select="@idRef"/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:value-of select="@ref" />
+ </xsl:element>
+ <xsl:text> </xsl:text>
+ </xsl:for-each>
+ </div>
+ </div>
+ <br/>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template match="ref" mode="writeDetails">
+ <xsl:param name="memberName"/>
+ <xsl:param name="memberType"/>
+ <xsl:param name="original"/>
+ <xsl:param name="modifiers"/>
+ <xsl:variable name="curName"><xsl:value-of select="@refId"/></xsl:variable>
+
+ <xsl:apply-templates select="/jgdoc/items/*[@id=$curName]" mode="writeDetails">
+ <xsl:with-param name="memberName"><xsl:value-of select="$memberName"/></xsl:with-param>
+ <xsl:with-param name="memberType"><xsl:value-of select="$memberType"/></xsl:with-param>
+ <xsl:with-param name="original"><xsl:value-of select="$original"/></xsl:with-param>
+ <xsl:with-param name="modifiers"><xsl:value-of select="$modifiers"/></xsl:with-param>
+ </xsl:apply-templates>
+
+ </xsl:template>
+
+ <xsl:template match="function|constructor|ifunction|event" mode="writeDetails">
+ <xsl:param name="memberName"/>
+ <xsl:param name="memberType"/>
+ <xsl:param name="original"/>
+ <xsl:param name="modifiers"/>
+ <xsl:variable name="effMods">
+ <xsl:choose>
+ <xsl:when test="$original = 'true'"><xsl:value-of select="comment/modifiers/@name"/></xsl:when>
+ <xsl:otherwise><xsl:value-of select="$modifiers"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="count(comment/inheritdesc) != 0">
+ <xsl:variable name="fn"><xsl:value-of select="comment/inheritdesc/tagContent/@name"/></xsl:variable>
+ <xsl:apply-templates select="/jgdoc/items/*[@id=$fn]" mode="writeDetails">
+ <xsl:with-param name="memberName"><xsl:value-of select="$memberName"/></xsl:with-param>
+ <xsl:with-param name="memberType"><xsl:value-of select="$memberType"/></xsl:with-param>
+ <xsl:with-param name="modifiers"><xsl:value-of select="$effMods"/></xsl:with-param>
+ <xsl:with-param name="original">false</xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="writeDetails1">
+ <xsl:with-param name="memberName"><xsl:value-of select="$memberName"/></xsl:with-param>
+ <xsl:with-param name="memberType"><xsl:value-of select="$memberType"/></xsl:with-param>
+ <xsl:with-param name="modifiers"><xsl:value-of select="$effMods"/></xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="variable|property" mode="writeDetails">
+ <xsl:param name="original"/>
+ <xsl:param name="modifiers"/>
+ <xsl:variable name="effMods">
+ <xsl:choose>
+ <xsl:when test="$original = 'true'"><xsl:value-of select="comment/modifiers/@name"/></xsl:when>
+ <xsl:otherwise><xsl:value-of select="$modifiers"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="count(comment/inheritdesc) != 0">
+ <xsl:variable name="fn"><xsl:value-of select="comment/inheritdesc/tagContent/@name"/></xsl:variable>
+ <xsl:apply-templates select="/jgdoc/items/*[@id=$fn]" mode="writeVarDetails1"/>
+ <xsl:with-param name="modifiers"><xsl:value-of select="$effMods"/></xsl:with-param>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="writeVarDetails1">
+ <xsl:with-param name="modifiers"><xsl:value-of select="$effMods"/></xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="variable|property" mode="writeVarDetails1">
+ <xsl:param name="modifiers"/>
+ <xsl:apply-templates select="comment/srcUrl" mode="writeDetails1"/>
+ <h3>
+ <xsl:element name="a">
+ <xsl:attribute name="name">___<xsl:value-of select='@localName'/>
+ </xsl:attribute>
+ <span class="objType"><xsl:value-of select="name()"/></span> <xsl:text> </xsl:text> <span class="modifiers"><xsl:value-of select="$modifiers"/></span> <xsl:text> </xsl:text>
+ <xsl:apply-templates select="comment/type" /><span class="objName"><xsl:value-of select='@localName' /></span>
+ </xsl:element>
+ </h3>
+ <div class="comment">
+ <xsl:apply-templates select='comment/commentContent/content'/>
+ </div>
+ <xsl:apply-templates select="comment" mode="genCommonAttrs" />
+ <xsl:apply-templates select="." mode="physOwner">
+ <xsl:with-param name="testNode"><xsl:value-of select='@id'/></xsl:with-param>
+ </xsl:apply-templates>
+ <hr />
+ </xsl:template>
+
+ <xsl:template match="param" mode="writeDetails1">
+ <div class="param paddedDetails">
+ <code><xsl:if test="@optional = 'true'">[</xsl:if><xsl:value-of select="@name"/><xsl:if test="@optional = 'true'">]</xsl:if></code> <xsl:text> </xsl:text>
+ <xsl:apply-templates select="content"/>
+ <xsl:if test="count(paramOptions/paramoption) != 0">
+ <ul class="paramoption">
+ <xsl:apply-templates select="paramOptions/paramoption" mode="writeDetails1"/>
+ </ul>
+ </xsl:if>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="modifiers" mode="writeDetails1">
+ <span class="modifiers"><xsl:value-of select="@name"/></span>
+ <xsl:text> </xsl:text>
+ </xsl:template>
+
+ <xsl:template match="paramoption" mode="writeDetails1">
+ <li >
+ <code>
+ <xsl:if test="@optional = 'true'">[</xsl:if>
+ <xsl:apply-templates select="modifiers" mode="writeDetails1"/>
+ <xsl:apply-templates select="type" />
+ <xsl:value-of select="@name"/>
+ <xsl:if test="@optional = 'true'">]</xsl:if>
+ </code> <xsl:text> </xsl:text>
+ <xsl:apply-templates select="content"/>
+ </li>
+ </xsl:template>
+
+ <xsl:template match="comment/srcUrl" mode="writeDetails1">
+ <xsl:element name="a">
+ <xsl:attribute name="class">srcUrlLink</xsl:attribute>
+ <xsl:attribute name="href"><xsl:value-of select="."/></xsl:attribute>
+ view source
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="function|constructor|ifunction|event" mode="writeDetails1">
+ <xsl:param name="memberName"/>
+ <xsl:param name="memberType"/>
+ <xsl:param name="modifiers"/>
+ <xsl:apply-templates select="comment/srcUrl" mode="writeDetails1"/>
+ <h3>
+ <xsl:element name="a">
+ <xsl:attribute name="name">___<xsl:value-of select='@localName'/>
+ </xsl:attribute>
+ <span class="objType"><xsl:value-of select="$memberType"/></span><xsl:text> </xsl:text>
+ <span class="objName"><xsl:value-of select='@localName'/></span>
+ </xsl:element>
+ </h3>
+ <xsl:choose>
+ <xsl:when test="count(comment/paramSet) != 0">
+ <xsl:for-each select="comment/paramSet">
+ <div>
+ <code>
+ <span class="modifiers"><span class="modifiers"><xsl:value-of select="$modifiers"/></span></span>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="../../comment/type" />
+ <xsl:value-of select="../../@localName"/>
+ <xsl:call-template name="writeFunctionParams">
+ <xsl:with-param name="funcName"><xsl:value-of select="../../@id"/></xsl:with-param>
+ <xsl:with-param name="paramSetCount"><xsl:value-of select="position()"/></xsl:with-param>
+ </xsl:call-template>
+ </code>
+ </div>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <div>
+ <code>
+ <span class="modifiers"><xsl:value-of select="$modifiers"/></span>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="comment/type" />
+ <xsl:value-of select="@localName"/>()
+ </code>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+ <div class="comment">
+ <xsl:apply-templates select="comment/commentContent/content" />
+ </div>
+ <xsl:if test="count(comment/paramSet) != 0">
+ <div class="parameters">
+ <span class="descSection">Parameters:</span><br/>
+ <xsl:for-each select='comment/paramSet'>
+ <div class="paramset">
+ <xsl:apply-templates select="paramSetDesc/content"/>
+ </div>
+ <div>
+ <xsl:apply-templates select="param" mode="writeDetails1"/>
+ </div>
+ </xsl:for-each>
+ </div>
+ </xsl:if>
+ <xsl:if test="count(comment/returns/tagContent) > 0">
+ <div class="returns">
+ <span class="descSection">Returns:</span><br/>
+ <div class="paddedDetails">
+ <xsl:apply-templates select='comment/returns/tagContent'/>
+ <xsl:if test="count(comment/returns/paramOptions/paramoption) != 0">
+ <ul class="paramoption">
+ <xsl:apply-templates select="comment/returns/paramOptions/paramoption" mode="writeDetails1"/>
+ </ul>
+ </xsl:if>
+ </div>
+ </div>
+ </xsl:if>
+ <xsl:if test="count(comment/throws/tagContent) > 0">
+ <div class="throws">
+ <span class="descSection">Throws:</span><br/>
+ <xsl:for-each select='comment/throws/tagContent/content'>
+ <div class="paddedDetails"><xsl:apply-templates select='.'/></div>
+ </xsl:for-each>
+ </div>
+ </xsl:if>
+
+ <xsl:apply-templates select="comment" mode="genCommonAttrs" />
+
+ <xsl:apply-templates select="." mode="physOwner">
+ <xsl:with-param name="testNode"><xsl:value-of select='@id'/></xsl:with-param>
+ </xsl:apply-templates>
+ <hr />
+ </xsl:template>
+
+
+ <xsl:template name="writeDetails">
+ <xsl:param name="memberName"/>
+ <xsl:param name="memberType"/>
+ <xsl:param name="objectName"/>
+ <xsl:if
+ test="count(/jgdoc/items/*[@id=$objectName]/children/ref[@type=$memberType]) != 0">
+ <xsl:element name="div">
+ <xsl:attribute name="class"><xsl:text>details </xsl:text><xsl:value-of select="$memberType"/></xsl:attribute>
+ <h2 class="sectionHeader"><xsl:value-of select="$memberName"/> Details</h2>
+ <xsl:for-each
+ select="/jgdoc/items/*[@id=$objectName]/children/ref[@type=$memberType]">
+ <xsl:apply-templates select="." mode="writeDetails">
+ <xsl:with-param name="memberName"><xsl:value-of select="$memberName"/></xsl:with-param>
+ <xsl:with-param name="memberType"><xsl:value-of select="$memberType"/></xsl:with-param>
+ <xsl:with-param name="original">true</xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+
+
+ <xsl:template match = "*" mode="physOwner">
+ <xsl:param name="testNode"/>
+ <xsl:variable name='owner' select="@parentName"/>
+
+ <xsl:variable name='parentPhys'><xsl:value-of select='/jgdoc/items/*[@id=$owner]/@physOwner'/></xsl:variable>
+ <xsl:variable name='phys'><xsl:value-of select='@physOwner'/></xsl:variable>
+ <xsl:if test="$phys != $parentPhys">
+ <span class="definedIn">Defined in </span><xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:value-of select="$rootPath"/>physical/<xsl:value-of select="/jgdoc/items/*[@id=$phys]/@path"/>.html</xsl:attribute>
+ <xsl:value-of select="/jgdoc/items/*[@id=$phys]/comment/name"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="writeCss">
+ <xsl:param name="rootPath"/>
+ <xsl:param name="aux_path"/>
+ <xsl:element name="link">
+ <xsl:attribute name="rel">stylesheet</xsl:attribute>
+ <xsl:attribute name="type">text/css</xsl:attribute>
+ <xsl:attribute name="href"><xsl:value-of select="$rootPath"/>jgdoc.css</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="link">
+ <xsl:attribute name="rel">stylesheet</xsl:attribute>
+ <xsl:attribute name="type">text/css</xsl:attribute>
+ <xsl:attribute name="href"><xsl:value-of select="$rootPath"/>theme.css</xsl:attribute>
+ </xsl:element>
+ <xsl:if test="$aux_css != 'not_specified'">
+ <xsl:element name="link">
+ <xsl:attribute name="rel">stylesheet</xsl:attribute>
+ <xsl:attribute name="type">text/css</xsl:attribute>
+ <xsl:attribute name="href"><xsl:value-of select="$rootPath"/><xsl:value-of select="$aux_css"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/buildscripts/jGrouseDoc/skins/noframes/css/jgdoc.css b/buildscripts/jGrouseDoc/skins/noframes/css/jgdoc.css
new file mode 100644
index 00000000..5abe5de6
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/noframes/css/jgdoc.css
@@ -0,0 +1,473 @@
+
+@CHARSET "ISO-8859-1";
+/*
+ jGrouseDoc "NO FRAMES" stylesheet file.
+ @Copyright (c) 2007 by Denis Riabtchik. All rights reserved. See license.txt and http://jgrouse.com for details@
+ $Id: jgdoc.css 340 2008-01-21 16:13:59Z broofa $
+*/
+
+body
+{
+ /*font-family: Helvetica,Arial,sans-serif;
+ font-size: 0.9em;*/
+}
+
+
+a
+{
+ text-decoration: none;
+}
+
+.overviewTitle
+{
+ font-weight: bold;
+ font-size: 1.3em;
+ padding-top: 1em;
+ clear: both;
+}
+
+.overviewItem
+{
+}
+
+
+.overviewSectionHeader
+{
+ font-weight: bold;
+ font-size: 1.1em;
+ padding-top: 0.5em;
+}
+
+.sectionHeader
+{
+ border: 2px groove black;
+ font-size: 1.7em;
+ text-align: left;
+ font-weight: bold;
+ background-color: #ccccff;
+ color: black;
+ padding: 3px;
+}
+
+.logicalSummary
+{
+}
+
+.summaryTable
+{
+ border: 2px groove black;
+}
+
+.summaryTableHeader
+{
+ font-size: 1.7em;
+ text-align: left;
+ font-weight: bold;
+ background-color: #ccccff;
+ color: black;
+ padding: 4px;
+}
+
+.summaryTable .summaryItem
+{
+ border-top: 1px solid;
+ padding: 2px;
+}
+
+.summaryTable .summaryItemRef
+{
+ font-weight: bold;
+}
+
+.summaryTable .summaryItemDef
+{
+}
+
+.summaryTable .inheritanceSummary
+{
+ border-top: 1px solid;
+ padding: 2px;
+}
+
+.summaryTable .summaryItemDesc
+{
+ padding-left: 2em;
+}
+
+.elementName
+{
+ font-weight: bold;
+}
+
+.descSection
+{
+ font-weight: bold;
+}
+
+
+.navbar
+{
+ font-size: 0.9em;
+ padding-bottom: 4px;
+}
+
+.currentPage
+{
+ font-weight: bold;
+}
+
+.navbaritem
+{
+ float: left;
+ width: 10em;
+ background-color: #ccccff;
+ color: black;
+ padding: 4px;
+ margin: 2px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ text-align: center;
+}
+
+.navbaritem a
+{
+ background-color: #ccccff;
+ color: black;
+ text-decoration: underline;
+}
+
+
+.projectDescRef
+{
+ font-weight: bold;
+}
+
+.paddedDetails
+{
+ padding-left: 5em;
+}
+
+.example
+{
+ font-size: 0.8em;
+ font-family: courier;
+ white-space: pre;
+}
+
+
+
+a.searchItem:visited, a.searchItem:link
+{
+ cursor: pointer;
+ display: block;
+ color: black;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+
+
+
+.jgdSelectedItem, a.jgdSelectedItem:visited, a.jgdSelectedItem:link
+{
+ background-color: #0a246a;
+ color: white;
+}
+
+
+
+
+.jgdSearchRect
+{
+ width:100%;
+ height:20em;
+ border: 2px inset;
+ overflow: auto;
+ background-color: white;
+}
+
+.jgsSearchPanel
+{
+ position: absolute;
+ background-color: transparent;
+ clear: both;
+ line-height: 1.2em;
+}
+
+.jgdSearchString
+{
+
+}
+
+.jgsInfo
+{
+ white-space: pre;
+ background-color: white;
+ padding: 0.5em;
+ position: absolute;
+ border: 1px solid;
+}
+
+
+
+/*---------- NavTree ----------------*/
+
+
+
+.navTree a {
+ text-decoration: none;
+}
+.navTree a:hover {
+ text-decoration: underline;
+}
+
+.navTree .contents
+{
+ list-style: none;
+ padding-left: 10px;
+ margin-left: 0px;
+ clear: both;
+}
+
+.navTree .contents li
+{
+ clear: both;
+}
+
+
+.navTree .contents ul
+{
+ border-left: 1px solid #cccccc;
+ margin-left: 6px;
+ clear: both;
+}
+
+
+.navTree .contents span.node
+{
+ display: block;
+ float: left;
+}
+
+.navTree span.node
+{
+ cursor: pointer;
+}
+
+.navTree .open span.node
+{
+ background: url(open.gif) ;
+ background-repeat: no-repeat;
+ background-position: 0em 0.2em;
+}
+
+.navTree .closed span.node
+{
+ background: url(closed.gif) ;
+ background-repeat: no-repeat;
+ background-position: 0em 0.2em;
+}
+
+.navTree .leaf span.node
+{
+ background: url(node.gif) ;
+ background-repeat: no-repeat;
+ background-position: 0em 0.2em;
+}
+
+.navTree .closed .contents
+{
+ display: none;
+}
+
+.navTree .markerSpace
+{
+ padding-left: 15px;
+}
+
+.navTree .openAll
+{
+ background-image: url(openLarge.gif);
+ background-repeat: no-repeat;
+ padding-left: 25px;
+ padding-right: 10px;
+ background-position: left center;
+ cursor: pointer;
+}
+
+.navTree .closeAll
+{
+ background-image: url(closedLarge.gif);
+ background-repeat: no-repeat;
+ padding-left: 25px;
+ padding-right: 10px;
+ background-position: left center;
+ cursor: pointer;
+}
+
+.navTree .currentNode
+{
+ background-color: aqua;
+}
+
+.comment
+{
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+}
+
+body
+{
+ font-family: sans-serif;
+ font-size: 0.9em;
+}
+
+.banner
+{
+}
+.banner h1
+{
+ margin: 0px;
+}
+
+.banner h1 a
+{
+ background: transparent url(logo.gif) no-repeat scroll left center;
+ line-height: 100px;
+ margin: 0px;
+ padding-left: 130px;
+ display: block;
+ height: 100%;
+ color: black;
+ text-decoration: none;
+}
+
+.banner .bar
+{
+ background-color: #567a58;
+ color: white;
+ text-align: right;
+ font-size: 1.5em;
+ font-weight: bolder;
+ padding-right: 0.5em;
+ font-style: oblique;
+}
+
+.projectName
+{
+}
+
+.content
+{
+ float: right;
+ margin-left: -25em;
+ width: 100%;
+ overflow-Y: hidden;
+}
+
+.startup
+{
+ height: 100%;
+ overflow: hidden;
+}
+
+.navigation
+{
+ border: 2px outset;
+ float: left;
+ width: 20em;
+ background-color: white;
+ line-height: 1.3em;
+ /*padding-left: 0.5em;*/
+ overflow-x: auto;
+ margin-top: 0.5em;
+}
+
+.block
+{
+ margin-left: 22em;
+ float: none;
+ height: 100%;
+}
+
+.search
+{
+ padding-top: 0.5em;
+}
+
+.search .searchLabel
+{
+ float:left;
+ padding-right: 0.5em;
+ height: 1.4em;
+ padding-top: 4px;
+ font-weight: bold;
+}
+
+.search .searchBlock
+{
+
+}
+
+.navigation h2
+{
+ text-align: center;
+ margin: 0px;
+ padding: 8px;
+ border-bottom: thin outset;
+ background-color: #D8D8D0;
+ cursor: pointer;
+}
+
+.navigation h2 a
+{
+ color: black;
+}
+
+.navigation h2 a:hover
+{
+ text-decoration: underline;
+}
+
+
+
+ul.navContent
+{
+ list-style-image: none;
+ list-style-position: outside;
+ list-style-type: none;
+ margin: 0px;
+ padding: 0px;
+}
+
+ul.navContent2
+{
+ list-style-image: none;
+ list-style-position: outside;
+ list-style-type: none;
+ margin: 0px;
+ padding: 4px;
+}
+
+ul.navContent.closed ul.navContent2
+{
+ display: none;
+}
+
+.docScroll
+{
+ clear: both;
+ overflow-Y: auto;
+}
+
+ul.paramoption
+{
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+
+a.srcUrlLink
+{
+ color:#66f;
+ font-size: 11px;
+ float: right;
+}
diff --git a/buildscripts/jGrouseDoc/skins/noframes/img/logo.gif b/buildscripts/jGrouseDoc/skins/noframes/img/logo.gif
new file mode 100644
index 00000000..caf9699e
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/noframes/img/logo.gif
Binary files differ
diff --git a/buildscripts/jGrouseDoc/skins/noframes/js/jgdoc.js b/buildscripts/jGrouseDoc/skins/noframes/js/jgdoc.js
new file mode 100644
index 00000000..9d1f1364
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/noframes/js/jgdoc.js
@@ -0,0 +1,326 @@
+/**
+ * Searcher for JGrouseDoc
+ * $Id: jgdoc.js 324 2008-01-06 16:44:39Z denis.riabtchik $
+ */
+
+if (typeof jgdoc == 'undefined')
+{
+ jgdoc = {}
+
+ jgdoc._dataHandlers = [];
+
+ jgdoc.setData = function(data)
+ {
+ for (var i = 0; i < jgdoc._dataHandlers.length; i++)
+ {
+ jgdoc._dataHandlers[i](data);
+ }
+ }
+}
+
+jgdoc.Searcher =
+{
+ initialize : function()
+ {
+ this._searchBox = document.getElementById("jgsSearchString");
+ this._searchResults = document.getElementById("jgsSearchResults");
+ this._info = document.getElementById("jgsInfo");
+ this._currentValue = "";
+ this._currentItems = [];
+ this._currentItem = -1;
+ this._data = null;
+ this._searchPanel = document.getElementById("jgsSearchPanel");
+ this.addListener(this._searchBox, 'focus', this.dispatcher);
+ this.addListener(this._searchBox, 'blur', this.dispatcher);
+ this.addListener(window, 'resize', this.dispatcher);
+ var width = this._searchBox.offsetWidth - 4;
+ this._searchPanel.style.width = width + 'px';
+
+ /*var node = this._searchBox;
+ var current = 0;
+ var currentTop = 0;
+ while (node)
+ {
+ current += node.offsetLeft;
+ currentTop += node.offsetTop;
+ node = node.offsetParent;
+ }
+
+ this._searchPanel.style.left = current + 'px';*/
+ this.positionBox();
+ return this;
+ },
+
+ positionBox : function()
+ {
+ var node = this._searchBox;
+ var current = 0;
+ var currentTop = 0;
+ while (node)
+ {
+ current += node.offsetLeft;
+ currentTop += node.offsetTop;
+ node = node.offsetParent;
+ }
+
+ this._searchPanel.style.left = current + 'px';
+ this._searchPanel.style.top = (currentTop + this._searchBox.offsetHeight) + "px";
+
+ },
+
+ _getEvent : function(event)
+ {
+ return window.event? window.event : event;
+ },
+
+ _getTarget : function(event)
+ {
+ return event.target || event.srcElement
+ },
+
+ addClass : function(element, className)
+ {
+ var s = element.className;
+ var a = s.split(' ');
+ for (var i = 0; i < a.length; i++)
+ {
+ if (a[i] == className)
+ {
+ return;
+ }
+ }
+ a.push(className);
+ element.className = a.join(' ');
+ },
+
+ removeClass : function(element, className)
+ {
+ var s = element.className;
+ var a = s.split(' ');
+ for (var i = 0; i < a.length; i++)
+ {
+ if (a[i] == className)
+ {
+ a.splice(i, 1);
+ break;
+ }
+ }
+ element.className = a.join(' ');
+
+ },
+
+ dispatcher : function(event)
+ {
+ if (this != jgdoc.Searcher)
+ {
+ arguments.callee.apply(jgdoc.Searcher, arguments)
+ return;
+ }
+ event = this._getEvent(event);
+ var type = event.type;
+ var handler = "on" + type;
+ this[handler](event, this._getTarget(event));
+ },
+
+ onclick : function(event, target)
+ {
+ // workaround for IE bug
+ window.location.href = target.getAttribute("href", 1);
+ },
+
+ onmouseover : function(event, target)
+ {
+ this.selectItem(target.index);
+ },
+
+ onresize : function(event, target)
+ {
+ if (this._searchPanel.style.display != 'none')
+ {
+ this.positionBox();
+ }
+ },
+
+ onmouseout : function(event, target)
+ {
+ this.unselectItem(target.index);
+ },
+
+ onfocus : function(event, target)
+ {
+ this._searchPanel.style.display = '';
+ this.positionBox();
+ },
+
+ onblur : function(event, target)
+ {
+ var athis = this;
+ window.setTimeout(function()
+ {
+ athis._searchPanel.style.display = 'none';
+ }, 300);
+
+ },
+
+ selectItem : function(index)
+ {
+ if (index != this._currentItem)
+ {
+ this._currentItem = index;
+ var item = this._currentItems[index];
+ this.addClass(item, 'jgdSelectedItem');
+ var text = item._data.summary.split('\n').join('<br/>');
+ this._info.innerHTML = text;
+ }
+ },
+
+ unselectItem : function(index)
+ {
+ this._currentItem = -1;
+ var item = this._currentItems[index];
+ this.removeClass(item, 'jgdSelectedItem');
+ this._info.innerHTML = 'No selection';
+ },
+
+ openItem : function(name)
+ {
+
+ },
+
+
+ onTimer : function()
+ {
+ if (this != jgdoc.Searcher)
+ {
+ arguments.callee.apply(jgdoc.Searcher, arguments)
+ return;
+ }
+ var val = this._searchBox.value;
+ if (val != this._currentValue)
+ {
+ this._currentValue = val;
+ this.redraw();
+ }
+ },
+
+ setData : function(data)
+ {
+ this._data = data;
+ this.redraw();
+ //this._searchBox.focus();
+ },
+
+ addListener : function(element, eventName, handler)
+ {
+ if (element.addEventListener)
+ {
+ element.addEventListener(eventName, handler, false);
+ }
+ else
+ {
+ element.attachEvent('on' + eventName, handler);
+ }
+ },
+
+ removeListener : function(element, eventName, handler)
+ {
+ if (element.removeEventListener)
+ {
+ element.removeEventListener(eventName, handler, false);
+ }
+ else
+ {
+ element.detachEvent('on' + eventName, handler);
+ }
+ },
+
+ findMatches : function()
+ {
+ var result = [];
+ if (this._currentValue)
+ {
+ var v = this._currentValue.toUpperCase();
+ for (var i = 0; i < this._data.length; i++)
+ {
+ var item = this._data[i];
+ if (item.localName.toUpperCase().indexOf(v) == 0)
+ {
+ result.push(item);
+ }
+ }
+ }
+ return result;
+ },
+
+
+ clearItem : function(item)
+ {
+ item._data = null;
+ this.removeListener(item, 'click', this.dispatcher);
+ this.removeListener(item, 'mouseover', this.dispatcher);
+ this.removeListener(item, 'mouseout', this.dispatcher);
+ },
+
+ clear : function()
+ {
+ for (var i = 0; i < this._currentItems.length; i++)
+ {
+ this.clearItem(this._currentItems[i]);
+ }
+ this._currentItems = [];
+ this._searchResults.innerHTML = "";
+ this._currentItem = -1;
+ },
+
+
+ createItem : function(item, index)
+ {
+ var d1 = document.createElement("div");
+ d1.innerHTML = "<a href='" + item.ref + "'>" + item.fullName + "</a>";
+ d = d1.firstChild;
+ /*d.href = item.ref;
+ item.ref = d.href;*/
+ d.className = "searchItem";
+ //d.title = item.summary;
+ //d.innerHTML = item.fullName;
+ d.index = index;
+ d._data = item;
+ this.addListener(d, 'click', this.dispatcher);
+ this.addListener(d, 'mouseover', this.dispatcher);
+ this.addListener(d, 'mouseout', this.dispatcher);
+ //todo - set listeners
+ return d;
+ },
+
+ redraw : function()
+ {
+ this.clear();
+ var res = this.findMatches();
+ if (res.length > 0)
+ {
+ for (var i = 0; i < res.length; i++)
+ {
+ var d = this.createItem(res[i], i);
+ this._currentItems.push(d);
+ this._searchResults.appendChild(d);
+ }
+ }
+ else
+ {
+ var s = (this._currentValue)? "Not found" : "Start typing the name of the item";
+ this._searchResults.innerHTML = s;
+ }
+ },
+
+ start : function()
+ {
+ var instance = jgdoc.Searcher.initialize();
+ instance.setData([]);
+ instance._timer = window.setInterval(instance.onTimer, 100);
+ }
+}
+
+jgdoc._dataHandlers.push(function(data)
+{
+ jgdoc.Searcher.setData(data);
+}); \ No newline at end of file
diff --git a/buildscripts/jGrouseDoc/skins/noframes/js/navTree.js b/buildscripts/jGrouseDoc/skins/noframes/js/navTree.js
new file mode 100644
index 00000000..ac011da4
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/noframes/js/navTree.js
@@ -0,0 +1,409 @@
+if (typeof jgdoc == 'undefined')
+{
+ jgdoc = {}
+
+ jgdoc._dataHandlers = [];
+
+ jgdoc.setData = function(data)
+ {
+ for (var i = 0; i < jgdoc._dataHandlers.length; i++)
+ {
+ jgdoc._dataHandlers[i](data);
+ }
+ }
+}
+
+jgdoc.TreeItem = function(nodeName, item)
+{
+ this._nodeName = nodeName;
+ this._data = item;
+ this._children = [];
+
+}
+
+jgdoc.Common =
+{
+ addClass : function(element, className)
+ {
+ var s = element.className;
+ var a = s.split(' ');
+ for (var i = 0; i < a.length; i++)
+ {
+ if (a[i] == className)
+ {
+ return;
+ }
+ }
+ a.push(className);
+ element.className = a.join(' ');
+ },
+
+ removeClass : function(element, className)
+ {
+ var s = element.className;
+ var a = s.split(' ');
+ var found = false;
+ for (var i = 0; i < a.length; i++)
+ {
+ if (a[i] == className)
+ {
+ a.splice(i, 1);
+ found = true;
+ break;
+ }
+ }
+ element.className = a.join(' ');
+ return found;
+ },
+
+ addListener : function(element, eventName, handler)
+ {
+ if (element.addEventListener)
+ {
+ element.addEventListener(eventName, handler, false);
+ }
+ else
+ {
+ element.attachEvent('on' + eventName, handler);
+ }
+ },
+
+ removeListener : function(element, eventName, handler)
+ {
+ if (element.removeEventListener)
+ {
+ element.removeEventListener(eventName, handler, false);
+ }
+ else
+ {
+ element.detachEvent('on' + eventName, handler);
+ }
+ }
+}
+
+jgdoc.NavPanel =
+{
+ clicked : function(e)
+ {
+ e = window.event? window.event : e;
+ var target = e.target || e.srcElement;
+ var node = target;
+ while (node != null && node.tagName != 'UL')
+ {
+ node = node.parentNode;
+ }
+ if (node)
+ {
+ var parent = node.parentNode;
+ var current = parent.firstChild;
+ while (current)
+ {
+ if (current != node && current.nodeType === 1)
+ {
+ jgdoc.Common.addClass(current, "closed");
+ }
+ current = current.nextSibling;
+ }
+ jgdoc.Common.removeClass(node, "closed");
+ }
+ },
+
+ dummy : function()
+ {
+ }
+}
+
+/*
+jgdoc.App =
+{
+ initialize : function()
+ {
+ this._container = document.getElementById("startup");
+ this._banner = document.getElementById("banner");
+ this._content = document.getElementById("docContent");
+ this._navigation = document.getElementById("navigation");
+ this._docScroll = document.getElementById("docScroll");
+ this._html = document.getElementsByTagName('html')[0];
+ this._body = document.getElementsByTagName("body")[0];
+ this._searchBlock = document.getElementById("searchBlock");
+ this._html.style.overflowY = "hidden";
+
+ }
+}*/
+
+jgdoc.NavTree =
+{
+ initialize : function(defaultName)
+ {
+ this._defaultName = defaultName;
+ },
+
+
+ setData : function(data) {
+ this._data = data;
+ this.processItems();
+ this.render();
+ this.openItem(this._defaultName);
+ },
+
+ sorter: function(o1, o2) {
+ var l1 = o1.localName;
+ var l2 = o2.localName;
+ return l1 < l2? -1 : (l1 > l2 ? 1 : 0);
+ },
+
+ processItems : function() {
+ var root;
+
+ // Pass 1: Build index by fullName, and locate the root element
+ this._byName = {};
+ for (var i = 0; i < this._data.length; i++) {
+ var d = this._data[i];
+ if (d.fullName == "GLOBAL") {
+ root = this._root = d;
+ }
+ this._byName[d.fullName] = d;
+ }
+
+ // Pass 2: Populate _children arrays
+ for (var i = 0; i < this._data.length; i++) {
+ var item = this._data[i];
+ if (item.elementType == "logical_container" && item != this._root) {
+ var parent = this._byName[item.parent];
+ parent._children = parent._children || [];
+ parent._children.push(item);
+ }
+ }
+ },
+
+ findItem : function(name)
+ {
+ return this._byName[name];
+ },
+
+ /*setData : function(data)
+ {
+ this._data = data;
+ data.sort(this.sorter);
+ this._root = data[0];
+ this.processItems();
+ this.render();
+ this.openItem(this._defaultName);
+ },
+
+ findItem : function(name)
+ {
+ if (name === '' || name == 'GLOBAL')
+ {
+ return this._root;
+ }
+ var s = name.split('.');
+ var current = this._root._children;
+ var found = null;
+ for (var i = 0; i < s.length; i++)
+ {
+ var detected = false;
+ for (var j = 0; j < current.length; j++)
+ {
+ var item = current[j];
+ if (item.localName == s[i])
+ {
+ detected = true;
+ current = item._children;
+ found = item;
+ break;
+ }
+ }
+ if (!detected)
+ {
+ return false;
+ }
+ }
+ return found;
+ },
+
+ processItems : function()
+ {
+ for (var i = 1; i < this._data.length; i++)
+ {
+ var item = this._data[i];
+ if (item.elementType == "logical_container")
+ {
+ var parent = this.findItem(item.parent);
+ if (!parent._children)
+ {
+ parent._children = [];
+ }
+ parent._children.push(item);
+ }
+ }
+ },
+
+
+ sorter : function(item1, item2)
+ {
+ if (item1.parent == "")
+ {
+ return -1;
+ }
+ if (item2.parent == "")
+ {
+ return 1;
+ }
+ if (item1.parent == item2.parent)
+ {
+ return item1.localName < item2.localName? -1 : item1.localName > item2.localName? 1 : 0;
+ }
+ if (item1.parent == "GLOBAL")
+ {
+ return -1;
+ }
+ if (item2.parent == "GLOBAL")
+ {
+ return 1;
+ }
+ return item1.parent < item2.parent? -1 : 1;
+ },
+ */
+
+
+ clicked : function(event)
+ {
+ event = window.event? window.event : event;
+ var target = event.target || event.srcElement;
+ var span = target.parentNode;
+ var li = span.parentNode;
+ var wasOpen = jgdoc.Common.removeClass(li, 'open');
+ if (wasOpen)
+ {
+ jgdoc.Common.addClass(li, 'closed');
+ }
+ else
+ {
+ jgdoc.Common.removeClass(li, 'closed');
+ jgdoc.Common.addClass(li, 'open');
+ }
+ span.title = "Click to " + (wasOpen? "expand" : "collapse");
+
+ },
+
+
+
+
+ render : function()
+ {
+ var d = document.getElementById('content');
+ d.innerHTML = '';
+ var athis = this;
+ function renderNode(item)
+ {
+ var node = document.createElement('li');
+ node.className = item.type;
+ node.innerHTML = "<span class='node'><span class='markerSpace'>&nbsp;</span></span><a href='" + item.ref + "' title='" + item.summary + "'>" + item.localName + "</a>";
+ var span = node.firstChild;
+ var img = span.firstChild;
+ jgdoc.Common.addListener(img, 'mousedown', athis.clicked);
+ if (item._children)
+ {
+ node.className += (item == athis._root)? ' open' : ' closed';
+ span.title = "Click to " + (item != athis._root? 'expand' : 'collapse');
+ var subnode = document.createElement("ul");
+ subnode.className = 'contents';
+ for (var i = 0; i < item._children.length; i++)
+ {
+ var child = renderNode(item._children[i]);
+ subnode.appendChild(child);
+ }
+ node.appendChild(subnode);
+ }
+ else
+ {
+ node.className += ' leaf';
+ }
+ if (item.fullName == athis._defaultName)
+ {
+ node.firstChild.nextSibling.className += ' currentNode';
+ }
+ item._node = node;
+ return node;
+ }
+ var root = renderNode(this._root);
+ d.appendChild(root);
+ },
+
+ cancelEvent : function(event)
+ {
+ if (event.preventDefault)
+ {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ else
+ {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ },
+
+ switchAll : function(doOpen)
+ {
+ var ac = doOpen? 'open' : 'closed';
+ var rc = doOpen? 'closed' : 'open';
+
+ var athis = this;
+
+ function doSwitchNode(anode)
+ {
+ if (anode._children)
+ {
+ if (doOpen || anode != athis._root)
+ {
+ jgdoc.Common.removeClass(anode._node, rc);
+ jgdoc.Common.addClass(anode._node, ac);
+ }
+ for (var i = 0; i < anode._children.length; i++)
+ {
+ doSwitchNode(anode._children[i]);
+ }
+ }
+ }
+ doSwitchNode(this._root);
+ },
+
+ openItem : function(name)
+ {
+ this.switchAll(false);
+ while (name != 'GLOBAL')
+ {
+ var item = this.findItem(name);
+ if (item)
+ {
+ var node = item._node;
+ jgdoc.Common.removeClass(node, 'closed');
+ jgdoc.Common.addClass(node, 'open');
+ name = item.parent;
+ }
+ else
+ {
+ return;
+ }
+ }
+ },
+
+ onOpenAll : function()
+ {
+ jgdoc.NavTree.switchAll(true);
+ },
+
+ onCloseAll : function()
+ {
+ jgdoc.NavTree.switchAll(false);
+ }
+
+};
+
+jgdoc._dataHandlers.push(function(data)
+{
+ //jgdoc.App.initialize();
+ jgdoc.NavTree.setData(data);
+});
diff --git a/buildscripts/jGrouseDoc/skins/noframes/vm/antgen.vm b/buildscripts/jGrouseDoc/skins/noframes/vm/antgen.vm
new file mode 100644
index 00000000..7ed8671f
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/noframes/vm/antgen.vm
@@ -0,0 +1,77 @@
+#if ($jg.project.comment.name)
+ #set($projectName=$jg.project.comment.name.trim())
+#end
+#if ($jg.project.comment.version.size() > 0)
+ #set ($version = $jg.project.comment.version.get(0).content.originalString.trim())
+#end
+#if ($jg.project.comment.description.size() > 0)
+ #set ($projectDesc = $jg.project.comment.description.get(0).content.originalString.trim())
+#end
+#macro (genSummary $coll $pathPart $section)
+ #foreach($le in $coll)
+
+ <output file="$outDir/$pathPart/${le.path}.html">
+ <param key="projectName" value="$projectName"/>
+ <param key="projectDesc" value="$projectDesc"/>
+ <param key="version" value="$version"/>
+ #if($aux_css != "not_specified")
+ <param key="aux_css" value="$aux_css"/>
+ #end
+ <param key="objectName" value="$le.fullName"/>
+ <param key="rootPath" value=""/>
+ <param key="navSection" value="$section"/>
+ <param key="trueRootPath" value="../$le.rootPath"/>
+ </output>
+ #end
+#end
+<?xml version="1.0" encoding="$encoding"?>
+ <!-- Documentation build file for $projectName. Generated by jGrouseDoc-->
+<project name="$projectName" default="applyJGrouseDoc">
+ <target name="applyJGrouseDoc">
+ <copy todir="$outDir" overwrite="yes">
+ <fileset dir="$commonSkin/css" />
+ </copy>
+ <copy todir="$outDir" overwrite="yes">
+ <fileset dir="$skinDir/css" />
+ </copy>
+ <copy todir="$outDir">
+ <fileset dir="$commonSkin/img" />
+ </copy>
+ <copy todir="$outDir" overwrite="yes">
+ <fileset dir="$skinDir/img" />
+ </copy>
+ <copy todir="$outDir" overwrite="yes">
+ <fileset dir="$skinDir/js" />
+ </copy>
+
+
+ <vmtask resourcePath="., ${jGrouseHome}" source="${outDir}/${projectFile}" loglevel="INFO">
+ <template templatename="skins/${skin}/vm/jsindex.vm" vmlibs="skins/common/vm/common.vm">
+ <output file="$outDir/jsindex.js">
+ <param key="projectName" value="$projectName"/>
+ <param key="projectDesc" value="$projectDesc"/>
+ <param key="version" value="$version"/>
+ <param key="rootPath" value=""/>
+ </output>
+ </template>
+ <template templatename="skins/${skin}/vm/detail.vm" vmlibs="skins/common/vm/common.vm">
+ <output file="$outDir/index.html">
+ <param key="projectName" value="$projectName"/>
+ <param key="projectDesc" value="$projectDesc"/>
+ <param key="version" value="$version"/>
+ #if($aux_css != "not_specified")
+ <param key="aux_css" value="$aux_css"/>
+ #end
+ <param key="objectName" value="_not_specified_"/>
+ <param key="navSection" value="logical"/>
+ <param key="trueRootPath" value=""/>
+ <param key="rootPath" value=""/>
+ </output>
+
+ #genSummary($jg.logical "logical" "logical")
+ #genSummary($jg.files "physical" "file")
+ #genSummary($jg.modules "physical" "module")
+ </template>
+ </vmtask>
+ </target>
+</project>
diff --git a/buildscripts/jGrouseDoc/skins/noframes/vm/detail.vm b/buildscripts/jGrouseDoc/skins/noframes/vm/detail.vm
new file mode 100644
index 00000000..8cb95d88
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/noframes/vm/detail.vm
@@ -0,0 +1,94 @@
+#if ($jg.get($objectName)) #set ($obj = $jg.get($objectName)) #end
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+ <title>$projectName</title>
+ <META http-equiv="Content-Type" content="text/html; charset=$encoding">
+ <script>
+
+ (function()
+ {
+ var loc = window.location.protocol + '//' + window.location.hostname + window.location.pathname;
+ loc = loc.split('\\');
+ loc = loc.join('/');
+ loc = loc.split('/');
+ loc.pop();
+ loc = loc.join('/');
+ loc += '/' + '$trueRootPath';
+
+ document.write("<base href='" + loc + "'></base>");
+ })();
+
+ </script>
+
+ <link rel="stylesheet" type="text/css" href="${rootPath}jgdoc.css">
+ <link rel="stylesheet" type="text/css" href="${rootPath}theme.css">
+ #if ($aux_css)
+ <link rel="stylesheet" type="text/css" href="${rootPath}$aux_css">
+ #end
+ <script type="text/javascript" src="navTree.js"></script>
+ <script type="text/javascript" src="jgdoc.js"></script>
+ </head>
+ <body>
+ <div class="startup" id="startup">
+ <div class="banner" id="banner">
+ <h1 class="projectName">
+ <a href=".">$projectName</a>
+ </h1>
+ <div class="bar">
+ version $version
+ </div>
+ </div>
+ <div class="content" id="docContent">
+ <div class="block">
+ <div id="searchBlock">
+ <div class="search" >
+ <div class="searchLabel">Search:</div>
+ <div class="searchBlock" style="height:100%">
+ <input id="jgsSearchString" type="text" size="60" class="jgdSearchString"/>
+ <div id="jgsSearchPanel" class="jgsSearchPanel" style="display:none">
+ <div class="jgdSearchRect" >
+ <div id="jgsSearchResults">
+ Loading....
+ </div>
+ </div>
+ <div id="jgsInfo" class="jgsInfo" >No selection</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="docScroll" class="docScroll">
+ <div>
+ <hr/>
+ <div>
+ #if ($obj)
+ #writeContainer($obj)
+ #else
+ <hr/>
+ #if($jg.project)
+ <div class="projectDesc">
+ <a name="desc"></a><br/>
+ #if($projectDesc && $projectDesc.length() > 0)
+ <h1>$projectDesc</h1>
+ #end
+ #writeContent($jg.project.comment.content)
+ <p />
+ #genCommonAttrs($jg.project.comment)
+ </div>
+ #end
+ #end
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ #navigationPane($navSection)
+ </div>
+ </body>
+ <script type="text/javascript">
+ jgdoc.Searcher.start();
+ jgdoc.NavTree.initialize("#if($obj)$obj.fullName#else'GLOBAL'#end");
+ </script>
+ <script type="text/javascript" src="jsindex.js">
+ </script>
+</html>
diff --git a/buildscripts/jGrouseDoc/skins/noframes/vm/jsindex.vm b/buildscripts/jGrouseDoc/skins/noframes/vm/jsindex.vm
new file mode 100644
index 00000000..9f1496a0
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/noframes/vm/jsindex.vm
@@ -0,0 +1,57 @@
+#macro (writeFunctionJSParams $paramSet)
+#foreach($param in $paramSet.params)#if($velocityCount > 1), #end#if($param.hasModifier('optional'))[#end#if($param.typeLink)$param.typeLink.originalString.trim() #end$param.name#if($param.hasModifier('optional'))]#end#end
+#end
+
+#macro(writeFuncJSSummary $func)
+#set ($funcModifiers = $func.comment.modifiers)
+#if ($func.comment.inheritdesc.size() == 0)
+#set ($funcItself = $func)
+#else
+#set ($funcItself = $jg.get($func.comment.inheritdesc.get(0).name))
+#end
+#if($funcModifiers.length() > 0)$funcModifiers #end$func.commentType #if ($funcItself.comment.paramSets.size() != 0)#foreach($paramSet in $funcItself.comment.paramSets)#if ($velocityCount > 1)\n#end#if($funcItself.comment.typeLink)$funcItself.comment.typeLink.originalString #end${func.localName}(#writeFunctionJSParams($paramSet))#end
+#else
+#if($funcItself.comment.typeLink)$funcItself.comment.typeLink.originalString #end${funcItself.localName}()#end
+#end
+
+
+#macro(writeVarJSSummary $var)
+#set ($varModifiers = $var.comment.modifiers)
+#if ($var.comment.inheritdesc.size() == 0)
+#set ($varItself = $var)
+#else
+#set ($varItself = $jg.get($var.comment.inheritdesc.get(0).name))
+#end
+#if($varModifiers.length() > 0)$varModifiers #end$var.commentType #if($varItself.comment.typeLink)$varItself.comment.typeLink.originalString #end${varItself.localName}#end
+
+#macro(writeContainerJSSummary $cont)
+#if($cont.comment.modifiers.length() > 0)$cont.comment.modifiers #end$cont.commentType $cont.localName#end
+#macro(writeJSSummary $obj)
+#if ($obj.commentType == "variable" || $obj.commentType == "property")#writeVarJSSummary($obj)
+#elseif($obj.commentType == "class" || $obj.commentType == "namespace" || $obj.commentType == "struct" || $obj.commentType == "interface" || $obj.commentType == "object")#writeContainerJSSummary($obj)
+#elseif($obj.commentType == "function" || $obj.commentType == "constructor" || $obj.commentType == "ifunction" || $obj.commentType == "event")#writeFuncJSSummary($obj)#end
+#end
+
+#macro(writeJS $item)
+
+ {
+ localName : "$item.localName",
+ fullName : "$item.fullName",
+ summary : "#writeJSSummary($item)",
+ ref : "#writeLink($item.fullName)",
+ parent : "#if($item.parentName)$item.parentName#end",
+ type : "$item.commentType",
+ elementType : "$item.elementType"
+ }#end
+
+
+
+/*Generated by jGrouseDoc*/
+(function()
+{
+ var data = [#foreach($item in $jg.all())#if($item.commentType != 'file' && $item.commentType != 'module')#if($velocityCount > 1), #end #writeJS($item) #end#end
+ ];
+ jgdoc.setData(data);
+
+})()
+
diff --git a/buildscripts/jGrouseDoc/skins/noframes/vm/test.vm b/buildscripts/jGrouseDoc/skins/noframes/vm/test.vm
new file mode 100644
index 00000000..bde0e031
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/noframes/vm/test.vm
@@ -0,0 +1 @@
+$jg.get("_bla").comment.returnsTag \ No newline at end of file
diff --git a/buildscripts/jGrouseDoc/skins/noframes/xslt/antgen.xslt b/buildscripts/jGrouseDoc/skins/noframes/xslt/antgen.xslt
new file mode 100644
index 00000000..6a9e656b
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/noframes/xslt/antgen.xslt
@@ -0,0 +1,357 @@
+<!--
+ jGrouseDoc template file. Creates ant file that renders all documentation
+ @Copyright (c) 2007 by Denis Riabtchik. All rights reserved. See license.txt and http://jgrouse.com for details@
+ $Id: antgen.xslt 331 2008-01-08 02:11:41Z denis.riabtchik $
+-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+ <xsl:output method="XML"/>
+ <xsl:param name="projectName"/>
+ <xsl:param name="projectDesc"/>
+ <xsl:param name="jGrouseHome"/>
+ <xsl:param name="projectFile"/>
+ <xsl:param name="outDir"/>
+ <xsl:param name="version"/>
+ <xsl:param name="useFullNames">true</xsl:param>
+ <xsl:param name="css"><xsl:value-of select="$jGrouseHome"/>/skins/noframes/css/jgdoc.css</xsl:param>
+ <xsl:param name='aux_css'>not_specified</xsl:param>
+ <xsl:param name="skinDir">not_specified</xsl:param>
+
+ <xsl:variable name="commonSkin"><xsl:value-of select="$jGrouseHome"/>/skins/common</xsl:variable>
+
+ <xsl:template name="dotdot">
+ <xsl:param name="arg"/>
+ <xsl:param name="sep"/>
+ <xsl:param name="firstPart" select="substring-before($arg, $sep)"/>
+ <xsl:param name="lastPart" select="substring-after($arg, $sep)"/>
+ <xsl:if test="string-length($firstPart) != 0">../</xsl:if>
+ <xsl:if test="string-length($lastPart) != 0"><xsl:call-template name="dotdot">
+ <xsl:with-param name="arg" select="$lastPart"/>
+ <xsl:with-param name="sep" select="$sep"/>
+ </xsl:call-template></xsl:if>
+ </xsl:template>
+
+
+
+ <xsl:template match="/">
+ <xsl:variable name="_projectName">
+ <xsl:choose>
+ <xsl:when test="count(/jgdoc/project/comment/name) != 0">
+ <xsl:value-of select="normalize-space(/jgdoc/project/comment/name)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$projectName"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="_version">
+ <xsl:choose>
+ <xsl:when test="count(/jgdoc/project/comment/version/tagContent/content) != 0">
+ <xsl:value-of select="normalize-space(/jgdoc/project/comment/version/tagContent/content)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$version"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="_projectDesc">
+ <xsl:choose>
+ <xsl:when test="count(/jgdoc/project/comment/description/tagContent/content) != 0">
+ <xsl:value-of select="normalize-space(/jgdoc/project/comment/description/tagContent/content)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$projectDesc"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:comment>Documentation build file for <xsl:value-of select="projectName"/>. Generated by jGrouseDoc</xsl:comment>
+ <xsl:element name="project">
+ <xsl:attribute name="name"><xsl:value-of select="$_projectName"/></xsl:attribute>
+ <xsl:attribute name="default">applyJGrouseDoc</xsl:attribute>
+ <xsl:element name="target">
+ <xsl:attribute name="name">applyJGrouseDoc</xsl:attribute>
+ <!-- copy CSS file -->
+ <xsl:element name="copy">
+ <xsl:attribute name="todir"><xsl:value-of select="$outDir"/></xsl:attribute>
+ <xsl:attribute name="overwrite">yes</xsl:attribute>
+ <xsl:element name="fileset">
+ <xsl:attribute name="dir"><xsl:value-of select="$commonSkin"/>/css</xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="copy">
+ <xsl:attribute name="todir"><xsl:value-of select="$outDir"/></xsl:attribute>
+ <xsl:attribute name="overwrite">yes</xsl:attribute>
+ <xsl:element name="fileset">
+ <xsl:attribute name="dir"><xsl:value-of select="$skinDir"/>/css</xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <!--
+ <xsl:element name="copy">
+ <xsl:attribute name="file"><xsl:value-of select="$css"/></xsl:attribute>
+ <xsl:attribute name="tofile"><xsl:value-of select='$outDir'/>/jgdoc.css</xsl:attribute>
+ <xsl:attribute name="overwrite">yes</xsl:attribute>
+ </xsl:element>
+ -->
+ <xsl:element name="copy">
+ <xsl:attribute name="todir"><xsl:value-of select="$outDir"/></xsl:attribute>
+ <xsl:element name="fileset">
+ <xsl:attribute name="dir"><xsl:value-of select="$commonSkin"/>/img</xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="copy">
+ <xsl:attribute name="todir"><xsl:value-of select="$outDir"/></xsl:attribute>
+ <xsl:element name="fileset">
+ <xsl:attribute name="dir"><xsl:value-of select="$skinDir"/>/img</xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+
+ <!-- copy JS file -->
+ <xsl:element name="copy">
+ <xsl:attribute name="todir"><xsl:value-of select='$outDir'/></xsl:attribute>
+ <xsl:element name="fileset">
+ <xsl:attribute name="dir"><xsl:value-of select="$skinDir"/>/js</xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+
+ <!-- create main file -->
+ <xsl:element name="xslt">
+ <xsl:attribute name="style"><xsl:value-of select="$skinDir"/>/xslt/startup.xslt</xsl:attribute>
+ <xsl:attribute name="in"><xsl:value-of select='$outDir'/>/<xsl:value-of select="$projectFile"/></xsl:attribute>
+ <xsl:attribute name="out"><xsl:value-of select='$outDir'/>/index.html</xsl:attribute>
+ <xsl:element name="param">
+ <xsl:attribute name="name">projectName</xsl:attribute>
+ <xsl:attribute name="expression"><xsl:value-of select="$_projectName"/></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="name">projectDesc</xsl:attribute>
+ <xsl:attribute name="expression"><xsl:value-of select="$_projectDesc"/></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="name">version</xsl:attribute>
+ <xsl:attribute name="expression"><xsl:value-of select="$_version"/></xsl:attribute>
+ </xsl:element>
+ <xsl:if test="$aux_css != 'not_specified'">
+ <xsl:element name="param">
+ <xsl:attribute name="name">aux_css</xsl:attribute>
+ <xsl:attribute name="expression"><xsl:value-of select="$aux_css"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ </xsl:element>
+ <!-- =========== javascript index ================= -->
+ <xsl:element name="xslt">
+ <xsl:attribute name="style"><xsl:value-of select="$skinDir"/>/xslt/jsindex.xslt</xsl:attribute>
+ <xsl:attribute name="in"><xsl:value-of select='$outDir'/>/<xsl:value-of select="$projectFile"/></xsl:attribute>
+ <xsl:attribute name="out"><xsl:value-of select='$outDir'/>/jsindex.js</xsl:attribute>
+ <xsl:element name="param">
+ <xsl:attribute name="name">projectName</xsl:attribute>
+ <xsl:attribute name="expression"><xsl:value-of select="$_projectName"/></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="name">projectDesc</xsl:attribute>
+ <xsl:attribute name="expression"><xsl:value-of select="$_projectDesc"/></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="name">version</xsl:attribute>
+ <xsl:attribute name="expression"><xsl:value-of select="$_version"/></xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <!-- ============ logical stuff ================= -->
+ <xsl:element name="fastxslt">
+ <xsl:attribute name="template"><xsl:value-of select="$skinDir"/>/xslt/detail.xslt</xsl:attribute>
+ <xsl:attribute name="source"><xsl:value-of select='$outDir'/>/<xsl:value-of select="$projectFile"/></xsl:attribute>
+ <xsl:element name="param">
+ <xsl:attribute name="key">version</xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="$_version"/></xsl:attribute>
+ </xsl:element>
+ <xsl:if test="$aux_css != 'not_specified'">
+ <xsl:element name="param">
+ <xsl:attribute name="key">aux_css</xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="$aux_css"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="param">
+ <xsl:attribute name="key">projectName</xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="$_projectName"/></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="key">projectDesc</xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="$_projectDesc"/></xsl:attribute>
+ </xsl:element>
+
+ <xsl:for-each select="/jgdoc/items/*[@elementType='logical_container']">
+ <xsl:element name="output">
+ <xsl:attribute name="file"><xsl:value-of select='$outDir'/>/logical/<xsl:value-of select="@path"/>.html</xsl:attribute>
+ <xsl:element name="param">
+ <xsl:attribute name="key">objectName</xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="@id"/></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="key">rootPath</xsl:attribute>
+ <xsl:attribute name="value"></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="key">navSection</xsl:attribute>
+ <xsl:attribute name="value">logical</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="key">trueRootPath</xsl:attribute>
+ <xsl:attribute name="value">../<xsl:call-template name="dotdot">
+ <xsl:with-param name="arg" select="comment/name" />
+ <xsl:with-param name="sep" select="'.'"/>
+ </xsl:call-template></xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+
+ <xsl:for-each select="/jgdoc/items/file">
+ <xsl:element name="output">
+ <xsl:attribute name="file"><xsl:value-of select='$outDir'/>/physical/<xsl:value-of select="@path"/>.html</xsl:attribute>
+ <xsl:element name="param">
+ <xsl:attribute name="key">objectName</xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="@id"/></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="key">rootPath</xsl:attribute>
+ <xsl:attribute name="value"></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="key">navSection</xsl:attribute>
+ <xsl:attribute name="value">file</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="key">trueRootPath</xsl:attribute>
+ <xsl:attribute name="value">../<xsl:call-template name="dotdot">
+ <xsl:with-param name="arg" select="comment/name" />
+ <xsl:with-param name="sep" select="'/'"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ <xsl:for-each select="/jgdoc/items/module">
+ <xsl:element name="output">
+ <xsl:attribute name="file"><xsl:value-of select='$outDir'/>/physical/<xsl:value-of select="@path"/>.html</xsl:attribute>
+ <xsl:element name="param">
+ <xsl:attribute name="key">objectName</xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="@id"/></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="key">rootPath</xsl:attribute>
+ <xsl:attribute name="value"></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="key">navSection</xsl:attribute>
+ <xsl:attribute name="value">module</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="key">trueRootPath</xsl:attribute>
+ <xsl:attribute name="value">../<xsl:call-template name="dotdot">
+ <xsl:with-param name="arg" select="comment/name" />
+ <xsl:with-param name="sep" select="'.'"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+
+
+ <!--
+ <xsl:for-each select="/jgdoc/items/file">
+ <xsl:element name="xslt">
+ <xsl:attribute name="style"><xsl:value-of select="$skinDir"/>/xslt/detail.xslt</xsl:attribute>
+ <xsl:attribute name="in"><xsl:value-of select='$outDir'/>/<xsl:value-of select="$projectFile"/></xsl:attribute>
+ <xsl:attribute name="out"><xsl:value-of select='$outDir'/>/physical/<xsl:value-of select="@path"/>.html</xsl:attribute>
+
+ <xsl:element name="param">
+ <xsl:attribute name="name">objectName</xsl:attribute>
+ <xsl:attribute name="expression"><xsl:value-of select="@id"/></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="name">rootPath</xsl:attribute>
+ <xsl:attribute name="expression"></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="name">trueRootPath</xsl:attribute>
+ <xsl:attribute name="expression">../<xsl:call-template name="dotdot">
+ <xsl:with-param name="arg" select="comment/name" />
+ <xsl:with-param name="sep" select="'/'"/>
+ </xsl:call-template></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="name">version</xsl:attribute>
+ <xsl:attribute name="expression"><xsl:value-of select="$_version"/></xsl:attribute>
+ </xsl:element>
+ <xsl:if test="$aux_css != 'not_specified'">
+ <xsl:element name="param">
+ <xsl:attribute name="name">aux_css</xsl:attribute>
+ <xsl:attribute name="expression"><xsl:value-of select="$aux_css"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="param">
+ <xsl:attribute name="name">projectName</xsl:attribute>
+ <xsl:attribute name="expression"><xsl:value-of select="$_projectName"/></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="name">projectDesc</xsl:attribute>
+ <xsl:attribute name="expression"><xsl:value-of select="$_projectDesc"/></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="name">navSection</xsl:attribute>
+ <xsl:attribute name="expression">file</xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+
+ <xsl:for-each select="/jgdoc/items/module">
+ <xsl:element name="xslt">
+ <xsl:attribute name="style"><xsl:value-of select="$skinDir"/>/xslt/detail.xslt</xsl:attribute>
+ <xsl:attribute name="in"><xsl:value-of select='$outDir'/>/<xsl:value-of select="$projectFile"/></xsl:attribute>
+ <xsl:attribute name="out"><xsl:value-of select='$outDir'/>/physical/<xsl:value-of select="@path"/>.html</xsl:attribute>
+
+ <xsl:element name="param">
+ <xsl:attribute name="name">objectName</xsl:attribute>
+ <xsl:attribute name="expression"><xsl:value-of select="@id"/></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="name">rootPath</xsl:attribute>
+ <xsl:attribute name="expression"></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="name">trueRootPath</xsl:attribute>
+ <xsl:attribute name="expression">../<xsl:call-template name="dotdot">
+ <xsl:with-param name="arg" select="comment/name" />
+ <xsl:with-param name="sep" select="'.'"/>
+ </xsl:call-template></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="name">version</xsl:attribute>
+ <xsl:attribute name="expression"><xsl:value-of select="$_version"/></xsl:attribute>
+ </xsl:element>
+ <xsl:if test="$aux_css != 'not_specified'">
+ <xsl:element name="param">
+ <xsl:attribute name="name">aux_css</xsl:attribute>
+ <xsl:attribute name="expression"><xsl:value-of select="$aux_css"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="param">
+ <xsl:attribute name="name">projectName</xsl:attribute>
+ <xsl:attribute name="expression"><xsl:value-of select="$_projectName"/></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="name">projectDesc</xsl:attribute>
+ <xsl:attribute name="expression"><xsl:value-of select="$_projectDesc"/></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="param">
+ <xsl:attribute name="name">navSection</xsl:attribute>
+ <xsl:attribute name="expression">module</xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ -->
+
+ </xsl:element>
+ </xsl:element>
+
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/buildscripts/jGrouseDoc/skins/noframes/xslt/detail.xslt b/buildscripts/jGrouseDoc/skins/noframes/xslt/detail.xslt
new file mode 100644
index 00000000..b5fc4ca1
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/noframes/xslt/detail.xslt
@@ -0,0 +1,360 @@
+<!--
+ jGrouseDoc template file.
+ Creates content for top-left frame with all namespaces
+ @Copyright (c) 2007 by Denis Riabtchik. All rights reserved. See license.txt and http://jgrouse.com for details@
+ $Id: detail.xslt 339 2008-01-21 00:21:30Z denis.riabtchik $
+-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+ <xsl:param name='rootPath' />
+ <xsl:param name='trueRootPath' />
+ <xsl:param name="projectDesc"/>
+ <xsl:param name="projectName"/>
+ <xsl:param name='version'/>
+ <xsl:param name='objectName' />
+ <xsl:param name='aux_css'>not_specified</xsl:param>
+ <xsl:param name="navSection"/>
+
+ <xsl:output method='HTML' doctype-public="-//W3C//DTD HTML 4.01//EN"
+ doctype-system="http://www.w3.org/TR/html4/strict.dtd">
+
+ </xsl:output>
+ <xsl:import href="../../common/xslt/common.xslt"/>
+ <xsl:import href="nfcommon.xslt"/>
+
+
+ <xsl:template match="/jgdoc/items/*">
+ <xsl:variable name="objType"><xsl:value-of select="name()"/></xsl:variable>
+ <div>
+ <xsl:apply-templates select="comment/srcUrl" mode="writeDetails1"/>
+ <H2>
+ <span class="objType">
+ <xsl:choose>
+ <xsl:when test="$objType = 'namespace'">Namespace </xsl:when>
+ <xsl:when test="$objType = 'class'">Class </xsl:when>
+ <xsl:when test="$objType = 'struct'">Structure </xsl:when>
+ <xsl:when test="$objType = 'interface'">Interface </xsl:when>
+ <xsl:when test="$objType = 'object'">Object </xsl:when>
+ </xsl:choose>
+ </span>
+ <xsl:value-of
+ select="comment/name" />
+ </H2>
+ <xsl:if test="($objType = 'class') or ($objType = 'interface')">
+ <xsl:if test="count(comment/extends) > 0">
+ <div class="extends">
+ <span class="descSection">Extends </span>
+ <xsl:for-each select="comment/extends/tagContent">
+ <xsl:if test="position() > 1">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="content"/>
+ </xsl:for-each>
+ </div>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="($objType = 'class')">
+ <xsl:if test="count(comment/implements) > 0">
+ <div class="implements">
+ <span class="descSection">Implements </span>
+ <xsl:for-each select="comment/implements/tagContent">
+ <xsl:if test="position() > 1">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="content"/>
+ </xsl:for-each>
+ </div>
+ </xsl:if>
+ </xsl:if>
+
+ <xsl:if test="count(/jgdoc/items/*[(name() = 'class' or name() = 'interface') and comment/extends/tagContent[@name=$objectName]]) != 0">
+ <div class="subclasses">
+ <div class="descSection">
+ <xsl:if test="name() = 'class'">Direct Known Subclasses:</xsl:if>
+ <xsl:if test="name() = 'interface'">All Known Subinterfaces:</xsl:if>
+ </div>
+ <div class="paddedDetails">
+ <xsl:for-each select="/jgdoc/items/*[comment/extends/tagContent[@name=$objectName]]">
+ <xsl:if test="position() > 1">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:call-template name="writeLink">
+ <xsl:with-param name="refName"><xsl:value-of select="@id"/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:attribute>
+ <span><xsl:value-of select="@id"/></span>
+ </xsl:element>
+ </xsl:for-each>
+ </div>
+ </div>
+ </xsl:if>
+
+ <xsl:if test="count(/jgdoc/items/class[comment/implements/tagContent[@name=$objectName]]) != 0">
+ <div>
+ <div>
+ All Known Implementing Classes:
+ </div>
+ <div>
+ <xsl:for-each select="/jgdoc/items/class[comment/implements/tagContent[@name=$objectName]]">
+ <xsl:if test="position() > 1">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:call-template name="writeLink">
+ <xsl:with-param name="refName"><xsl:value-of select="@id"/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:attribute>
+ <span><xsl:value-of select="@id"/></span>
+ </xsl:element>
+ </xsl:for-each>
+ </div>
+ </div>
+ </xsl:if>
+
+
+ <hr/>
+ <!-- description -->
+ <div>
+ <code>
+ <span class="modifiers"><xsl:value-of select="comment/modifiers/@name"/></span>
+ <xsl:text> </xsl:text>
+ <span class="objType"><xsl:value-of select="$objType"/></span>
+ <xsl:text> </xsl:text>
+ <b><xsl:value-of select="comment/name"/></b>
+ </code>
+ </div>
+ <xsl:for-each
+ select='comment/commentContent/content'>
+ <div class="comment">
+ <xsl:apply-templates select='.'/>
+ </div>
+ </xsl:for-each>
+ <xsl:apply-templates select="comment" mode="genCommonAttrs" />
+ <xsl:for-each select="/jgdoc/items/*[@id=$objectName and @physOwner != '']">
+ <span class="definedIn">Defined in </span>
+ <xsl:element name='a'>
+ <xsl:attribute name='href'>
+ <xsl:value-of select="$rootPath"/>physical/<xsl:value-of select="/jgdoc/items/*[@id=/jgdoc/items/*[@id=$objectName]/@physOwner]/@path"/>.html</xsl:attribute>
+ <xsl:value-of select='/jgdoc/items/*[@id=/jgdoc/items/*[@id=$objectName]/@physOwner]/comment/name'/>
+ </xsl:element>
+ </xsl:for-each>
+ <hr/>
+ <p />
+
+ <xsl:variable name="nested"><xsl:if test="@elementType = 'logical_container' and name() != 'namespace'">Nested</xsl:if></xsl:variable>
+
+ <xsl:apply-templates select="children" mode="writeSummary">
+ <xsl:with-param name="elementType">class</xsl:with-param>
+ <xsl:with-param name="elementName"><xsl:value-of select="$nested"/> Class</xsl:with-param>
+ </xsl:apply-templates>
+
+ <xsl:apply-templates select="children" mode="writeSummary">
+ <xsl:with-param name="elementType">interface</xsl:with-param>
+ <xsl:with-param name="elementName"><xsl:value-of select="$nested"/> Interface</xsl:with-param>
+ </xsl:apply-templates>
+
+ <xsl:apply-templates select="children" mode="writeSummary">
+ <xsl:with-param name="elementType">object</xsl:with-param>
+ <xsl:with-param name="elementName"><xsl:value-of select="$nested"/> Object</xsl:with-param>
+ </xsl:apply-templates>
+
+ <xsl:apply-templates select="children" mode="writeSummary">
+ <xsl:with-param name="elementType">struct</xsl:with-param>
+ <xsl:with-param name="elementName"><xsl:value-of select="$nested"/> Structure</xsl:with-param>
+ </xsl:apply-templates>
+
+
+ <!-- Variables -->
+ <xsl:apply-templates select="children" mode="writeSummary">
+ <xsl:with-param name="elementType">variable</xsl:with-param>
+ <xsl:with-param name="elementName">Variable</xsl:with-param>
+ </xsl:apply-templates>
+
+
+ <xsl:apply-templates select="legacies" mode="inheritance">
+ <xsl:with-param name="memberName">Variables</xsl:with-param>
+ <xsl:with-param name="memberType">variable</xsl:with-param>
+ </xsl:apply-templates>
+
+
+ <!-- properties -->
+ <xsl:apply-templates select="children" mode="writeSummary">
+ <xsl:with-param name="elementType">property</xsl:with-param>
+ <xsl:with-param name="elementName">Property</xsl:with-param>
+ </xsl:apply-templates>
+
+
+ <xsl:apply-templates select="legacies" mode="inheritance">
+ <xsl:with-param name="memberName">Properties</xsl:with-param>
+ <xsl:with-param name="memberType">property</xsl:with-param>
+ </xsl:apply-templates>
+
+
+
+ <!-- Constructors -->
+ <xsl:apply-templates select="children" mode="writeSummary">
+ <xsl:with-param name="elementType">constructor</xsl:with-param>
+ <xsl:with-param name="elementName">Constructor</xsl:with-param>
+ </xsl:apply-templates>
+
+ <!-- Functions -->
+ <xsl:apply-templates select="children" mode="writeSummary">
+ <xsl:with-param name="elementType">function</xsl:with-param>
+ <xsl:with-param name="elementName">Function</xsl:with-param>
+ </xsl:apply-templates>
+
+ <!-- Events -->
+ <xsl:apply-templates select="children" mode="writeSummary">
+ <xsl:with-param name="elementType">event</xsl:with-param>
+ <xsl:with-param name="elementName">Event</xsl:with-param>
+ </xsl:apply-templates>
+
+ <xsl:apply-templates select="legacies" mode="inheritance">
+ <xsl:with-param name="memberName">Functions</xsl:with-param>
+ <xsl:with-param name="memberType">function</xsl:with-param>
+ </xsl:apply-templates>
+
+
+ <!-- Function interfaces -->
+ <xsl:apply-templates select="children" mode="writeSummary">
+ <xsl:with-param name="elementType">ifunction</xsl:with-param>
+ <xsl:with-param name="elementName">Function Interface</xsl:with-param>
+ </xsl:apply-templates>
+
+ <!-- ============== Details coming here =================== -->
+
+ <!-- variables -->
+ <xsl:call-template name="writeDetails">
+ <xsl:with-param name="memberName">Variable</xsl:with-param>
+ <xsl:with-param name="memberType">variable</xsl:with-param>
+ <xsl:with-param name="objectName"><xsl:value-of select="$objectName"/></xsl:with-param>
+ </xsl:call-template>
+
+ <!-- properties -->
+ <xsl:call-template name="writeDetails">
+ <xsl:with-param name="memberName">Property</xsl:with-param>
+ <xsl:with-param name="memberType">property</xsl:with-param>
+ <xsl:with-param name="objectName"><xsl:value-of select="$objectName"/></xsl:with-param>
+ </xsl:call-template>
+
+
+ <!-- constructors -->
+ <xsl:call-template name="writeDetails">
+ <xsl:with-param name="memberName">Constructor</xsl:with-param>
+ <xsl:with-param name="memberType">constructor</xsl:with-param>
+ <xsl:with-param name="objectName"><xsl:value-of select="$objectName"/></xsl:with-param>
+ </xsl:call-template>
+
+ <!-- functions -->
+ <xsl:call-template name="writeDetails">
+ <xsl:with-param name="memberName">Function</xsl:with-param>
+ <xsl:with-param name="memberType">function</xsl:with-param>
+ <xsl:with-param name="objectName"><xsl:value-of select="$objectName"/></xsl:with-param>
+ </xsl:call-template>
+
+ <!-- events -->
+ <xsl:call-template name="writeDetails">
+ <xsl:with-param name="memberName">Event</xsl:with-param>
+ <xsl:with-param name="memberType">event</xsl:with-param>
+ <xsl:with-param name="objectName"><xsl:value-of select="$objectName"/></xsl:with-param>
+ </xsl:call-template>
+
+ <!-- function interfaces -->
+ <xsl:call-template name="writeDetails">
+ <xsl:with-param name="memberName">Function Interface</xsl:with-param>
+ <xsl:with-param name="memberType">ifunction</xsl:with-param>
+ <xsl:with-param name="objectName"><xsl:value-of select="$objectName"/></xsl:with-param>
+ </xsl:call-template>
+ </div>
+ </xsl:template>
+
+
+ <xsl:template match="/">
+ <xsl:comment>Generated by jGrouseDoc</xsl:comment>
+ <html>
+ <head>
+ <title><xsl:value-of select="$projectName"/></title>
+ <script>
+
+ (function()
+ {
+ var loc = window.location.protocol + '//' + window.location.hostname + window.location.pathname;
+ loc = loc.split('\\');
+ loc = loc.join('/');
+ loc = loc.split('/');
+ loc.pop();
+ loc = loc.join('/');
+ loc += '/' + '<xsl:value-of select="$trueRootPath"/>';
+
+ document.write("&lt;base href='" + loc + "'&gt;&lt;/base&gt;");
+ })();
+
+ </script>
+
+ <xsl:call-template name="writeCss">
+ <xsl:with-param name="rootPath"></xsl:with-param>
+ <xsl:with-param name="aux_css"><xsl:value-of select="$aux_css"/></xsl:with-param>
+ </xsl:call-template>
+ <script type="text/javascript" src="navTree.js"></script>
+ <script type="text/javascript" src="jgdoc.js"></script>
+ </head>
+ <body>
+ <div class="startup" id="startup">
+ <div class="banner" id="banner">
+ <h1 class="projectName">
+ <xsl:element name="a">
+ <xsl:attribute name="href">.</xsl:attribute>
+ <xsl:value-of select="$projectName"/>
+ </xsl:element>
+ </h1>
+ <div class="bar">
+ version <xsl:value-of select="$version"/>
+ </div>
+ </div>
+ <div class="content" id="docContent">
+ <div class="block">
+ <div id="searchBlock">
+ <div class="search" >
+ <div class="searchLabel">Search:</div>
+ <div class="searchBlock" style="height:100%">
+ <input id="jgsSearchString" type="text" size="60" class="jgdSearchString"/>
+ <div id="jgsSearchPanel" class="jgsSearchPanel" style="display:none">
+ <div class="jgdSearchRect" >
+ <div id="jgsSearchResults">
+ Loading....
+ </div>
+ </div>
+ <div id="jgsInfo" class="jgsInfo" >No selection</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="docScroll" class="docScroll">
+ <div>
+ <hr/>
+ <xsl:apply-templates select="/jgdoc/items/*[@id=$objectName]"/>
+ </div>
+ </div>
+ </div>
+ </div>
+ <xsl:call-template name="navigationPane">
+ <xsl:with-param name="elementType"><xsl:value-of select="$navSection"/></xsl:with-param>
+ </xsl:call-template>
+ </div>
+ </body>
+ <script type="text/javascript">
+ jgdoc.Searcher.start();
+ jgdoc.NavTree.initialize('<xsl:value-of select="$objectName"/>');
+ </script>
+ <script type="text/javascript" src="jsindex.js">
+ </script>
+ </html>
+ </xsl:template>
+
+
+
+</xsl:stylesheet>
diff --git a/buildscripts/jGrouseDoc/skins/noframes/xslt/jgsearch.xslt b/buildscripts/jGrouseDoc/skins/noframes/xslt/jgsearch.xslt
new file mode 100644
index 00000000..a8766ff0
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/noframes/xslt/jgsearch.xslt
@@ -0,0 +1,51 @@
+<!--
+ jGrouseDoc template file. Renders search pane
+ @Copyright (c) 2007 by Denis Riabtchik. All rights reserved. See license.txt and http://jgrouse.com for details@
+ $Id: jgsearch.xslt 276 2007-12-09 00:50:40Z denis.riabtchik $
+-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+ <xsl:param name='rootPath' />
+ <xsl:param name="projectDesc"/>
+ <xsl:param name='version'/>
+ <xsl:param name='aux_css'>not_specified</xsl:param>
+
+ <xsl:output method='HTML' doctype-public="-//W3C//DTD HTML 4.01//EN"
+ doctype-system="http://www.w3.org/TR/html4/strict.dtd">
+
+ </xsl:output>
+ <xsl:import href="../../common/xslt/common.xslt"/>
+
+ <xsl:template match="/">
+ <xsl:comment>Generated by jGrouseDoc</xsl:comment>
+
+ <html>
+ <head>
+ <xsl:call-template name="writeCss">
+ <xsl:with-param name="rootPath"><xsl:value-of select="$rootPath"/></xsl:with-param>
+ <xsl:with-param name="aux_css"><xsl:value-of select="$aux_css"/></xsl:with-param>
+ </xsl:call-template>
+ <script type="text/javascript" src="jgdoc.js">
+ </script>
+ </head>
+ <body>
+ <div class="search">
+ <h1>Search</h1>
+ <input id="jgsSearchString" type="text" class="jgdSearchString"/>
+ <div class="jgdSearchRect" >
+ <div id="jgsSearchResults">
+ Loading....
+ </div>
+ </div>
+ <div id="jgsInfo" class="jgsInfo" ></div>
+ </div>
+ </body>
+ <script type="text/javascript">
+ jgdoc.Searcher.start();
+ </script>
+ <script type="text/javascript" src="jsindex.js">
+ </script>
+ </html>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/buildscripts/jGrouseDoc/skins/noframes/xslt/jsindex.xslt b/buildscripts/jGrouseDoc/skins/noframes/xslt/jsindex.xslt
new file mode 100644
index 00000000..bddc7a42
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/noframes/xslt/jsindex.xslt
@@ -0,0 +1,124 @@
+<!--
+ jGrouseDoc template file. Creates Javascript index
+ @Copyright (c) 2007 by Denis Riabtchik. All rights reserved. See license.txt and http://jgrouse.com for details@
+ $Id: jsindex.xslt 276 2007-12-09 00:50:40Z denis.riabtchik $
+-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+ <xsl:param name='fileName' />
+ <xsl:param name='rootPath' />
+ <xsl:param name='version'/>
+ <xsl:param name='aux_css'>not_specified</xsl:param>
+
+ <xsl:output method='text'>
+ </xsl:output>
+ <xsl:import href="../../common/xslt/common.xslt"/>
+
+ <xsl:template match="function|constructor|ifunction|event" mode="JSwriteSummary">
+ <xsl:choose>
+ <xsl:when test="count(comment/inheritdesc) != 0">
+ <xsl:variable name="fn"><xsl:value-of select="comment/inheritdesc/tagContent/@name"/></xsl:variable>
+ <xsl:apply-templates select="/jgdoc/items/*[@id=$fn]" mode="JSwriteFuncSummary1">
+ <xsl:with-param name="origName"><xsl:value-of select="@id"/></xsl:with-param>
+ <xsl:with-param name="modifiers"><xsl:value-of select="comment/modifiers/@name"/></xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="JSwriteFuncSummary1">
+ <xsl:with-param name="origName"><xsl:value-of select="@id"/></xsl:with-param>
+ <xsl:with-param name="modifiers"><xsl:value-of select="comment/modifiers/@name"/></xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="function|constructor|ifunction|event" mode="JSwriteFuncSummary1">
+ <xsl:param name="origName"/>
+ <xsl:param name="modifiers"/>
+ <xsl:value-of select="name()"/><xsl:text> </xsl:text>
+ <xsl:choose>
+ <xsl:when test="count(comment/paramSet) != 0">
+ <xsl:for-each select="comment/paramSet"><xsl:if test="position() != 1"><xsl:text>\n</xsl:text></xsl:if><xsl:if test="string-length($modifiers) != 0">
+ <xsl:value-of select="$modifiers"/><xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:if test="count(../../comment/type) != 0">
+ <xsl:apply-templates select="../../comment/type"/>
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:value-of select="../../@localName"/>
+ <xsl:call-template name="writeFunctionParams">
+ <xsl:with-param name="funcName"><xsl:value-of select="../../@id"/></xsl:with-param>
+ <xsl:with-param name="paramSetCount"><xsl:value-of select="position()"/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="string-length($modifiers) != 0">
+ <xsl:value-of select="$modifiers"/>
+ <xsl:text> </xsl:text></xsl:if>
+ <xsl:if test="count(comment/type) != 0">
+ <xsl:apply-templates select="comment/type"/>
+ <xsl:text> </xsl:text></xsl:if><xsl:value-of select="@localName"/>()</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="class|namespace|struct|interface|object" mode="JSwriteSummary">
+ <xsl:if test="count(comment/modifiers) != 0"><xsl:value-of select="comment/modifiers/@name"/><xsl:text> </xsl:text></xsl:if>
+ <xsl:value-of select="name()"/><xsl:text> </xsl:text>
+ <xsl:value-of select="@localName"/>
+ </xsl:template>
+
+
+ <xsl:template match="variable|property" mode="JSwriteSummary">
+ <xsl:choose>
+ <xsl:when test="count(comment/inheritdesc) != 0">
+ <xsl:variable name="fn"><xsl:value-of select="comment/inheritdesc/tagContent/@name"/></xsl:variable>
+ <xsl:apply-templates select="/jgdoc/items/*[@id=$fn]" mode="JSwriteVarSummary1">
+ <xsl:with-param name="origName"><xsl:value-of select="@id"/></xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="JSwriteVarSummary1">
+ <xsl:with-param name="origName"><xsl:value-of select="@id"/></xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="variable|property" mode="JSwriteVarSummary1">
+ <xsl:param name="origName"/>
+ <xsl:value-of select="name()"/><xsl:text> </xsl:text>
+ <xsl:if test="count(comment/type) != 0">
+ <xsl:apply-templates select="comment/type"/>
+ <xsl:text> </xsl:text></xsl:if>
+ <xsl:value-of select="@localName" />
+ </xsl:template>
+
+
+
+ <xsl:template match="/">
+/*Generated by jGrouseDoc*/
+(function()
+{
+ var data = [<xsl:for-each select="/jgdoc/items/*[@elementType != 'phys_container']//comment"><xsl:sort select="@localName"/><xsl:if test="position() != 1">,</xsl:if>
+ <xsl:call-template name="writeJS"/>
+ </xsl:for-each>];
+ jgdoc.setData(data);
+
+})()
+ </xsl:template>
+
+ <xsl:template name="writeJS">
+ {
+ localName : "<xsl:value-of select="../@localName"/>",
+ fullName : "<xsl:value-of select="../@id"/>",
+ summary : "<xsl:apply-templates select=".." mode="JSwriteSummary"/>",
+ ref : "<xsl:call-template name="writeLink"><xsl:with-param name="refName"><xsl:value-of select="../@id"/></xsl:with-param></xsl:call-template>",
+ parent : "<xsl:value-of select="../@parentName"/>",
+ type : "<xsl:value-of select="name(..)"/>",
+ elementType : "<xsl:value-of select="../@elementType"/>"
+
+ }
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/buildscripts/jGrouseDoc/skins/noframes/xslt/nfcommon.xslt b/buildscripts/jGrouseDoc/skins/noframes/xslt/nfcommon.xslt
new file mode 100644
index 00000000..16759432
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/noframes/xslt/nfcommon.xslt
@@ -0,0 +1,98 @@
+<!--
+ jGrouseDoc template file. Renders search pane
+ @Copyright (c) 2007 by Denis Riabtchik. All rights reserved. See license.txt and http://jgrouse.com for details@
+ $Id: nfcommon.xslt 276 2007-12-09 00:50:40Z denis.riabtchik $
+-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+ <xsl:template name="navigationPane">
+ <xsl:param name="elementType"/>
+ <div class="navigation" id="navigation">
+ <xsl:element name="ul">
+ <xsl:if test="$elementType = 'logical'">
+ <xsl:attribute name="class">navContent</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$elementType != 'logical'">
+ <xsl:attribute name="class">navContent closed</xsl:attribute>
+ </xsl:if>
+ <li>
+ <div class="navTree">
+ <h2 onclick="jgdoc.NavPanel.clicked(event)">
+ <a href="javascript:jgdoc.NavPanel.dummy()">Navigation</a></h2>
+ <ul class="navContent2">
+ <li>
+ <div>
+ <a class="openAll" href="javascript:jgdoc.NavTree.onOpenAll()">Open All</a>
+ <a class="closeAll" href="javascript:jgdoc.NavTree.onCloseAll()">Close All</a>
+ </div>
+
+ <div>
+ <ul id = "content" class="contents">
+ Loading...
+ </ul>
+ </div>
+ </li>
+ </ul>
+ </div>
+ </li>
+ </xsl:element>
+ <xsl:element name="ul">
+ <xsl:if test="$elementType = 'file'">
+ <xsl:attribute name="class">navContent</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$elementType != 'file'">
+ <xsl:attribute name="class">navContent closed</xsl:attribute>
+ </xsl:if>
+ <li>
+ <div class="fileTree">
+ <h2 onclick="jgdoc.NavPanel.clicked(event)">
+ <a href="javascript:jgdoc.NavPanel.dummy()">Files</a></h2>
+ <ul class="navContent2">
+ <li>
+ <xsl:for-each select="/jgdoc/items/file[@isModuleFile='false']">
+ <xsl:sort select="@id"/>
+ <div>
+ <xsl:element name="a">
+ <xsl:attribute name="href">physical/<xsl:value-of select="@path"/>.html</xsl:attribute>
+ <xsl:value-of select="comment/name"/>
+ </xsl:element>
+ </div>
+ </xsl:for-each>
+ </li>
+ </ul>
+ </div>
+ </li>
+ </xsl:element>
+ <xsl:element name="ul">
+ <xsl:if test="$elementType = 'module'">
+ <xsl:attribute name="class">navContent</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$elementType != 'module'">
+ <xsl:attribute name="class">navContent closed</xsl:attribute>
+ </xsl:if>
+ <li>
+ <div class="moduleTree">
+ <h2 onclick="jgdoc.NavPanel.clicked(event)">
+ <a href="javascript:jgdoc.NavPanel.dummy()">Modules</a></h2>
+ <ul class="navContent2">
+ <li>
+ <xsl:for-each select="/jgdoc/items/module">
+ <xsl:sort select="@id"/>
+ <div>
+ <xsl:element name="a">
+ <xsl:attribute name="href">physical/<xsl:value-of select="@path"/>.html</xsl:attribute>
+ <xsl:value-of select="comment/name"/>
+ </xsl:element>
+ </div>
+ </xsl:for-each>
+ </li>
+ </ul>
+ </div>
+ </li>
+ </xsl:element>
+ </div>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/buildscripts/jGrouseDoc/skins/noframes/xslt/startup.xslt b/buildscripts/jGrouseDoc/skins/noframes/xslt/startup.xslt
new file mode 100644
index 00000000..f751561a
--- /dev/null
+++ b/buildscripts/jGrouseDoc/skins/noframes/xslt/startup.xslt
@@ -0,0 +1,99 @@
+<!--
+ jGrouseDoc template file.
+ Creates content for top-left frame with all namespaces
+ @Copyright (c) 2007 by Denis Riabtchik. All rights reserved. See license.txt and http://jgrouse.com for details@
+ $Id: startup.xslt 276 2007-12-09 00:50:40Z denis.riabtchik $
+-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+ <xsl:param name='rootPath' />
+ <xsl:param name="projectDesc"/>
+ <xsl:param name="projectName"/>
+ <xsl:param name='version'/>
+ <xsl:param name='aux_css'>not_specified</xsl:param>
+
+ <xsl:output method='HTML' doctype-public="-//W3C//DTD HTML 4.01//EN"
+ doctype-system="http://www.w3.org/TR/html4/strict.dtd">
+
+ </xsl:output>
+ <xsl:import href="../../common/xslt/common.xslt"/>
+ <xsl:import href="nfcommon.xslt"/>
+
+ <xsl:template match="/">
+ <xsl:comment>Generated by jGrouseDoc</xsl:comment>
+ <html>
+ <head>
+ <xsl:call-template name="writeCss">
+ <xsl:with-param name="rootPath"><xsl:value-of select="$rootPath"/></xsl:with-param>
+ <xsl:with-param name="aux_css"><xsl:value-of select="$aux_css"/></xsl:with-param>
+ </xsl:call-template>
+ <script type="text/javascript" src="navTree.js"></script>
+ <script type="text/javascript" src="jgdoc.js"></script>
+ <title><xsl:value-of select="$projectName"/></title>
+ </head>
+ <body>
+ <div class="startup" id="startup">
+ <div class="banner" id="banner">
+ <h1 class="projectName">
+ <xsl:element name="a">
+ <xsl:attribute name="href">.</xsl:attribute>
+ <xsl:attribute name="class">banner</xsl:attribute>
+ <xsl:value-of select="$projectName"/>
+ </xsl:element>
+ </h1>
+ <div class="bar">
+ version <xsl:value-of select="$version"/>
+ </div>
+ </div>
+ <div class="content" id="docContent">
+ <div class="block">
+ <div class="search" id="searchBlock">
+ <div class="searchLabel">Search:</div>
+ <div class="searchBlock">
+ <input id="jgsSearchString" type="text" size="60" class="jgdSearchString"/>
+ <div id="jgsSearchPanel" class="jgsSearchPanel" style="display:none">
+ <div class="jgdSearchRect" >
+ <div id="jgsSearchResults">
+ Loading....
+ </div>
+ </div>
+ <div id="jgsInfo" class="jgsInfo" >No selection</div>
+ </div>
+ </div>
+ </div>
+ <div id="docScroll" class="docScroll">
+ <div>
+ <hr/>
+ <xsl:if test="count(/jgdoc/project) != 0">
+ <div class="projectDesc">
+ <a name="desc"></a><br/>
+ <xsl:if test="string-length($projectDesc) != 0">
+ <h1><xsl:value-of select="$projectDesc"/></h1>
+ </xsl:if>
+ <xsl:apply-templates select='/jgdoc/project/comment/commentContent/content'/>
+ <p />
+ <xsl:apply-templates select="/jgdoc/project/comment" mode="genCommonAttrs" />
+ </div>
+ </xsl:if>
+ </div>
+ </div>
+ </div>
+ </div>
+ <xsl:call-template name="navigationPane">
+ <xsl:with-param name="elementType">logical</xsl:with-param>
+ </xsl:call-template>
+ </div>
+ </body>
+ <script type="text/javascript">
+ jgdoc.Searcher.start();
+ jgdoc.NavTree.initialize('GLOBAL');
+ </script>
+ <script type="text/javascript" src="jsindex.js">
+ </script>
+ </html>
+ </xsl:template>
+
+
+
+</xsl:stylesheet>
diff --git a/buildscripts/jGrouseDoc/themes/prado/build.xml b/buildscripts/jGrouseDoc/themes/prado/build.xml
new file mode 100644
index 00000000..80b31b40
--- /dev/null
+++ b/buildscripts/jGrouseDoc/themes/prado/build.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+
+<project name="prado theme" default="applyJGrouseDoc">
+
+ <target name="applyJGrouseDoc">
+ <echo>Applying simple theme</echo>
+ <copy todir="${outputDir}">
+ <fileset dir="${jGrouseHome}/themes/prado/css" includes="*.css"></fileset>
+ </copy>
+ </target>
+</project>
diff --git a/buildscripts/jGrouseDoc/themes/prado/css/theme.css b/buildscripts/jGrouseDoc/themes/prado/css/theme.css
new file mode 100644
index 00000000..8fffb79e
--- /dev/null
+++ b/buildscripts/jGrouseDoc/themes/prado/css/theme.css
@@ -0,0 +1,99 @@
+body {
+ margin:10px;
+ padding:0px;
+}
+body,div,span,p,input {
+ color:#333333;
+ font-family:Verdana,sans-serif,Arial;
+ font-size: 10pt;
+}
+h1, h2, h3, h4 {
+ color:#821B18;
+ font-family:Verdana,Helvetica,Arial,Lucida Grande,Trebuchet MS;
+ font-weight:normal;
+ margin:0px 0px 10px;
+ padding:0px;
+}
+
+a, a span {
+ color:#CD2C27;
+ text-decoration:none;
+}
+a:hover {
+ color:#821B18;
+ text-decoration:underline;
+}
+
+hr{
+ border: 0px;
+ border-top: solid 1px silver;
+ border-bottom: solid 1px #fff;
+}
+
+.banner { display: none }
+
+.comment {
+ background-color:#F0F0F0;
+ margin-bottom:5px;
+ margin-top:10px;
+ padding:1em 8px;
+}
+
+.summaryTable, .details {
+ margin-top: .5em;
+ border: 1px solid silver;
+ font-size: 1em;
+}
+.summaryTableHeader, .details .sectionHeader {
+ border: 0;
+ background-color:#F0F0F0;
+ font-size:1.2em;
+ font-weight:bold;
+ padding:5px;
+ text-align:left;
+}
+.summaryTable .summaryItem {
+ padding: .25em;
+ border-top: 1px solid silver;
+}
+.summaryTable .summaryItemDef {
+ font-family: "courier new", courier;
+}
+.summaryTable .summaryItemDesc {
+ margin-top: .25em;
+}
+
+.details .comment {
+ background-color: #fff;
+}
+
+.details h3, .details div code {
+ margin-top: .25em;
+ padding: .25em;
+}
+.details h3 a span {
+ font-size: 18px;
+ color:#750000;
+}
+.details div code {
+ color: #000;
+ font-weight: bold;
+}
+.details div code span {
+ font-weight: normal;
+}
+
+.details .returns, .details .parameters {
+ border: 1px solid silver;
+ margin: .5em;
+}
+.details .returns br, .details .parameters br, .details h3 a span.objType {
+ display: none;
+}
+.details .returns .descSection, .details .parameters .descSection {
+ display: block;
+ border-bottom: 1px solid silver;
+ background-color:#F0F0F0;
+ padding: .25em;
+}
+ \ No newline at end of file
diff --git a/buildscripts/jGrouseDoc/themes/sample/build.xml b/buildscripts/jGrouseDoc/themes/sample/build.xml
new file mode 100644
index 00000000..9e029fe5
--- /dev/null
+++ b/buildscripts/jGrouseDoc/themes/sample/build.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+
+<project name="sample theme" default="applyJGrouseDoc">
+
+ <target name="applyJGrouseDoc">
+ <echo>Applying sample theme</echo>
+ <copy todir="${outputDir}" overwrite="yes">
+ <fileset dir="${jGrouseHome}/themes/sample/css" includes="*.css"></fileset>
+ </copy>
+ <copy todir="${outputDir}" overwrite="yes">
+ <fileset dir="${jGrouseHome}/themes/sample/img" includes="*"></fileset>
+ </copy>
+ </target>
+</project>
diff --git a/buildscripts/jGrouseDoc/themes/sample/css/theme.css b/buildscripts/jGrouseDoc/themes/sample/css/theme.css
new file mode 100644
index 00000000..7a1484e5
--- /dev/null
+++ b/buildscripts/jGrouseDoc/themes/sample/css/theme.css
@@ -0,0 +1,122 @@
+/*--------- sample theme --------------*/
+
+body {
+ font-family: sans-serif;
+ font-size: 0.9em;
+}
+
+code {
+ font-size: 1.1em;
+}
+
+a:link, a:visited
+{
+ color: blue;
+}
+
+
+a:hover {
+ text-decoration: underline;
+}
+
+a[name]:hover {
+ text-decoration: none;
+}
+
+
+hr {
+ border: 1px;
+ background-color: #D0D0D0;
+}
+
+.summaryTable {
+ border: medium none;
+ margin-top: 0.5em;
+}
+
+.summaryTableHeader {
+ background-color: #66CCCC;
+ font-size: 1.3em;
+}
+
+.summaryTable .summaryItem {
+ border : none;
+ border-bottom: 1px solid;
+ border-color: #d0d0d0;
+ padding-top: 0.3em;
+}
+
+.summaryTable .summaryItemRef
+{
+ font-weight: normal;
+}
+
+
+.summaryTable .inheritanceSummary
+{
+ border: none;
+}
+
+.sectionHeader {
+ background-color: #66CCCC;
+ border: medium none;
+ font-size: 1.3em;
+}
+
+.elementName {
+ font-weight: normal;
+}
+
+.paddedDetails {
+ font-size: 0.9em;
+}
+
+.paddedDetails code {
+ font-weight: bolder;
+}
+
+.type
+{
+ color: green;
+ font-weight: bolder;
+}
+
+.modifiers
+{
+ color: purple;
+}
+
+.logicalDetail .summaryTable
+{
+ display: inherit;
+}
+
+.navbaritem
+{
+ background-color: #66CCCC;
+}
+
+.navbaritem a
+{
+ background-color: #66CCCC;
+ color: black;
+ text-decoration: underline;
+}
+
+/** this is to show how to hide parent names */
+.overview .parent
+{
+ /*display: none;*/
+}
+
+a.searchItem
+{
+ color: black;
+}
+
+a.jgdSelectedItem.searchItem
+{
+ color: white;
+ text-decoration: none;
+}
+
diff --git a/buildscripts/jGrouseDoc/themes/sample/img/closed.gif b/buildscripts/jGrouseDoc/themes/sample/img/closed.gif
new file mode 100644
index 00000000..1fe701b8
--- /dev/null
+++ b/buildscripts/jGrouseDoc/themes/sample/img/closed.gif
Binary files differ
diff --git a/buildscripts/jGrouseDoc/themes/sample/img/closedLarge.gif b/buildscripts/jGrouseDoc/themes/sample/img/closedLarge.gif
new file mode 100644
index 00000000..c136e65d
--- /dev/null
+++ b/buildscripts/jGrouseDoc/themes/sample/img/closedLarge.gif
Binary files differ
diff --git a/buildscripts/jGrouseDoc/themes/sample/img/node.gif b/buildscripts/jGrouseDoc/themes/sample/img/node.gif
new file mode 100644
index 00000000..e823455d
--- /dev/null
+++ b/buildscripts/jGrouseDoc/themes/sample/img/node.gif
Binary files differ
diff --git a/buildscripts/jGrouseDoc/themes/sample/img/open.gif b/buildscripts/jGrouseDoc/themes/sample/img/open.gif
new file mode 100644
index 00000000..eee77bda
--- /dev/null
+++ b/buildscripts/jGrouseDoc/themes/sample/img/open.gif
Binary files differ
diff --git a/buildscripts/jGrouseDoc/themes/sample/img/openLarge.gif b/buildscripts/jGrouseDoc/themes/sample/img/openLarge.gif
new file mode 100644
index 00000000..a23ed9ba
--- /dev/null
+++ b/buildscripts/jGrouseDoc/themes/sample/img/openLarge.gif
Binary files differ
diff --git a/buildscripts/jGrouseDoc/themes/simple/build.xml b/buildscripts/jGrouseDoc/themes/simple/build.xml
new file mode 100644
index 00000000..c4c8f57f
--- /dev/null
+++ b/buildscripts/jGrouseDoc/themes/simple/build.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+
+<project name="sample theme" default="applyJGrouseDoc">
+
+ <target name="applyJGrouseDoc">
+ <echo>Applying simple theme</echo>
+ <copy todir="${outputDir}">
+ <fileset dir="${jGrouseHome}/themes/simple/css" includes="*.css"></fileset>
+ </copy>
+ </target>
+</project>
diff --git a/buildscripts/jGrouseDoc/themes/simple/css/theme.css b/buildscripts/jGrouseDoc/themes/simple/css/theme.css
new file mode 100644
index 00000000..2ec9fe9b
--- /dev/null
+++ b/buildscripts/jGrouseDoc/themes/simple/css/theme.css
@@ -0,0 +1 @@
+/* empty theme */ \ No newline at end of file
diff --git a/buildscripts/jGrouseDoc/velocity-dep-1.5.jar b/buildscripts/jGrouseDoc/velocity-dep-1.5.jar
new file mode 100644
index 00000000..be52b9a2
--- /dev/null
+++ b/buildscripts/jGrouseDoc/velocity-dep-1.5.jar
Binary files differ