From dca8960e21273ed8100fa1fdaeab99ccf141a1f3 Mon Sep 17 00:00:00 2001
From: mikl <>
Date: Tue, 6 May 2008 07:53:08 +0000
Subject: Imported JS documentor jGrouseDoc-2.0
---
buildscripts/jGrouseDoc/skins/common/css/jgdoc.css | 301 +++++++++
.../jGrouseDoc/skins/common/css/jgindex.css | 53 ++
.../jGrouseDoc/skins/common/img/closed.gif | Bin 0 -> 104 bytes
.../jGrouseDoc/skins/common/img/closedLarge.gif | Bin 0 -> 132 bytes
buildscripts/jGrouseDoc/skins/common/img/node.gif | Bin 0 -> 106 bytes
buildscripts/jGrouseDoc/skins/common/img/open.gif | Bin 0 -> 101 bytes
.../jGrouseDoc/skins/common/img/openLarge.gif | Bin 0 -> 128 bytes
buildscripts/jGrouseDoc/skins/common/js/jgdoc.js | 239 +++++++
buildscripts/jGrouseDoc/skins/common/js/jgindex.js | 96 +++
buildscripts/jGrouseDoc/skins/common/js/navTree.js | 213 +++++++
buildscripts/jGrouseDoc/skins/common/vm/common.vm | 604 ++++++++++++++++++
.../jGrouseDoc/skins/common/xslt/common.xslt | 704 +++++++++++++++++++++
.../jGrouseDoc/skins/noframes/css/jgdoc.css | 473 ++++++++++++++
.../jGrouseDoc/skins/noframes/img/logo.gif | Bin 0 -> 3326 bytes
buildscripts/jGrouseDoc/skins/noframes/js/jgdoc.js | 326 ++++++++++
.../jGrouseDoc/skins/noframes/js/navTree.js | 409 ++++++++++++
.../jGrouseDoc/skins/noframes/vm/antgen.vm | 77 +++
.../jGrouseDoc/skins/noframes/vm/detail.vm | 94 +++
.../jGrouseDoc/skins/noframes/vm/jsindex.vm | 57 ++
buildscripts/jGrouseDoc/skins/noframes/vm/test.vm | 1 +
.../jGrouseDoc/skins/noframes/xslt/antgen.xslt | 357 +++++++++++
.../jGrouseDoc/skins/noframes/xslt/detail.xslt | 360 +++++++++++
.../jGrouseDoc/skins/noframes/xslt/jgsearch.xslt | 51 ++
.../jGrouseDoc/skins/noframes/xslt/jsindex.xslt | 124 ++++
.../jGrouseDoc/skins/noframes/xslt/nfcommon.xslt | 98 +++
.../jGrouseDoc/skins/noframes/xslt/startup.xslt | 99 +++
26 files changed, 4736 insertions(+)
create mode 100644 buildscripts/jGrouseDoc/skins/common/css/jgdoc.css
create mode 100644 buildscripts/jGrouseDoc/skins/common/css/jgindex.css
create mode 100644 buildscripts/jGrouseDoc/skins/common/img/closed.gif
create mode 100644 buildscripts/jGrouseDoc/skins/common/img/closedLarge.gif
create mode 100644 buildscripts/jGrouseDoc/skins/common/img/node.gif
create mode 100644 buildscripts/jGrouseDoc/skins/common/img/open.gif
create mode 100644 buildscripts/jGrouseDoc/skins/common/img/openLarge.gif
create mode 100644 buildscripts/jGrouseDoc/skins/common/js/jgdoc.js
create mode 100644 buildscripts/jGrouseDoc/skins/common/js/jgindex.js
create mode 100644 buildscripts/jGrouseDoc/skins/common/js/navTree.js
create mode 100644 buildscripts/jGrouseDoc/skins/common/vm/common.vm
create mode 100644 buildscripts/jGrouseDoc/skins/common/xslt/common.xslt
create mode 100644 buildscripts/jGrouseDoc/skins/noframes/css/jgdoc.css
create mode 100644 buildscripts/jGrouseDoc/skins/noframes/img/logo.gif
create mode 100644 buildscripts/jGrouseDoc/skins/noframes/js/jgdoc.js
create mode 100644 buildscripts/jGrouseDoc/skins/noframes/js/navTree.js
create mode 100644 buildscripts/jGrouseDoc/skins/noframes/vm/antgen.vm
create mode 100644 buildscripts/jGrouseDoc/skins/noframes/vm/detail.vm
create mode 100644 buildscripts/jGrouseDoc/skins/noframes/vm/jsindex.vm
create mode 100644 buildscripts/jGrouseDoc/skins/noframes/vm/test.vm
create mode 100644 buildscripts/jGrouseDoc/skins/noframes/xslt/antgen.xslt
create mode 100644 buildscripts/jGrouseDoc/skins/noframes/xslt/detail.xslt
create mode 100644 buildscripts/jGrouseDoc/skins/noframes/xslt/jgsearch.xslt
create mode 100644 buildscripts/jGrouseDoc/skins/noframes/xslt/jsindex.xslt
create mode 100644 buildscripts/jGrouseDoc/skins/noframes/xslt/nfcommon.xslt
create mode 100644 buildscripts/jGrouseDoc/skins/noframes/xslt/startup.xslt
(limited to 'buildscripts/jGrouseDoc/skins')
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
Binary files /dev/null and b/buildscripts/jGrouseDoc/skins/common/img/closed.gif 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
Binary files /dev/null and b/buildscripts/jGrouseDoc/skins/common/img/closedLarge.gif 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
Binary files /dev/null and b/buildscripts/jGrouseDoc/skins/common/img/node.gif 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
Binary files /dev/null and b/buildscripts/jGrouseDoc/skins/common/img/open.gif 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
Binary files /dev/null and b/buildscripts/jGrouseDoc/skins/common/img/openLarge.gif 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(' ');
+ 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('
');
+
+ // 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('');
+ }
+
+ // Render the entry's HTML
+ cn = cn.join(' ');
+ h.push(
+ '' +
+ '' + ln + ' ' +
+ ' ' +
+ '' +
+ '' + srcName + ' ' +
+ ' '
+ );
+ }
+ h.push(' ');
+
+ // 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] ?
+ '' + letter + ' ' :
+ '' + letter + ' '
+ );
+ }
+ 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 = " " + item.localName + " ";
+ 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)
+$section.text #else$section.text#end
+#end
+#end
+
+#macro (writeType $type)
+#writeContent($type)
+#end
+
+
+
+
+#macro(genCommonAttrs $comment)
+ #if($comment.author.size() > 0)
+
+
Authors:
+ #foreach($author in $comment.author)
+
#writeContent($author.content)
+ #end
+
+ #end
+ #if ($comment.see.size() > 0)
+
+
See also:
+ #foreach($see in $comment.see)
+
#writeContent($see.content)
+ #end
+
+ #end
+ #if ($comment.version.size() > 0)
+
+
Version:
+ #foreach($version in $comment.version)
+
#writeContent($version.content)
+ #end
+
+ #end
+ #if ($comment.timestamp.size() > 0)
+
+
Generated on:
+
$jg.project.timestamp
+
+ #end
+ #if ($comment.since.size() > 0)
+
+
Since:
+ #foreach($since in $comment.since)
+
#writeContent($since.content)
+ #end
+
+ #end
+ #if ($comment.deprecated.size() > 0)
+
+
Deprecated:
+ #foreach($dep in $comment.deprecated)
+
#writeContent($dep.content)
+ #end
+
+ #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)
+ view source
+ #end
+#end
+
+
+#macro(writeParamOption $paramOption)
+
+
+ #if($paramOption.hasModifier("optional"))[#end
+ $paramOption.strModifiers
+ #writeType($paramOption.typeLink)
+ $paramOption.name
+ #if($paramOption.hasModifier("optional"))]#end
+
+ #writeContent($paramOption.content)
+
+#end
+
+
+#macro(writeParam $param)
+
+
+ #if($param.hasModifier("optional"))[#end${param.name}#if($param.hasModifier("optional"))]#end
+
+ #writeContent($param.content)
+ #if($param.children.size() > 0)
+
+ #foreach($paramOption in $param.children)
+ #writeParamOption($paramOption)
+ #end
+
+ #end
+
+#end
+
+
+#macro(writePhysOwner $element)
+ #if($element.hasSamePhysOwner)
+ Defined in
+ $element.physOwner.comment.name
+ #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)
+
+ #if ($funcItself.comment.paramSets.size() > 0)
+ #foreach($paramSet in $funcItself.comment.paramSets)
+
+
+ $funcModifiers
+ #writeType($funcItself.comment.typeLink)
+ ${funcItself.localName}(#writeFunctionParams($paramSet))
+
+
+ #end
+ #else
+
+
+ $funcModifiers
+ #writeType($funcItself.comment.typeLink)
+ ${funcItself.localName}()
+
+
+ #end
+
+ #if ($funcItself.comment.paramSets.size() > 0)
+
+
Parameters:
+ #foreach($paramSet in $funcItself.comment.paramSets)
+
+
#writeContent($paramSet.content)
+
+ #foreach($param in $paramSet.params)
+ #writeParam($param)
+ #end
+
+
+ #end
+
+ #end
+ #if($funcItself.comment.returnsTag )
+
+
Returns:
+
+ #set ($return = $funcItself.comment.returnsTag)
+ #writeContent($return.content)
+ #if($return.children.size() > 0)
+
+ #foreach($paramOption in $return.children)
+ #writeParamOption($paramOption)
+ #end
+
+ #end
+
+
+ #end
+ #if($funcItself.comment.throws.size() > 0)
+
+
Throws:
+ #foreach($throws in $funcItself.comment.throws)
+
#writeContent($throws.content)
+ #end
+
+ #end
+ #genCommonAttrs($funcItself.comment)
+ #writePhysOwner($func)
+
+#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)
+
+
+ #genCommonAttrs($varItself.comment)
+ #writePhysOwner($var)
+
+#end
+
+
+
+
+#macro(writeLegacies $obj $memberType $memberName )
+ #foreach($legacy in $obj.legacies)
+ #if ($legacy.get($memberType).size() > 0)
+
+
+
+ #foreach($item in $legacy.get($memberType))#if($velocityCount > 1), #end
$item.localName #end
+
+
+
+ #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
+
+
+ #writeContent($varItself.comment.summary)
+
+#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)
+
+
$funcModifiers
+ #writeType($func.comment.typeLink)
+
$func.localName
+ (#writeFunctionParams($paramSet))
+
+ #end
+ #else
+
+
$funcModifiers
+ #writeType($func.comment.typeLink)
+
$func.localName ()
+
+ #end
+
+ #writeContent($funcItself.comment.summary)
+
+#end
+
+
+#macro(writeLogicalSummary $class)
+
+
+ #writeContent($class.comment.summary)
+
+#end
+
+
+#macro(writeSummary $coll $elemType $elemName)
+ #if($coll.size() != 0)
+
+
+ #foreach($item in $coll)
+
+ #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
+
+ #end
+
+
+ #end
+#end
+
+
+
+#macro(writeDetails $object $elemType $memberName)
+ #if ($object.get($elemType).size() > 0)
+
+
+ #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
+
+ #end
+#end
+
+
+
+
+
+#macro(navigationPane $elementType)
+
+
+
+
+
+
+
+
+ #foreach($file in $jg.files)
+ #if(!$file.isModuleFile())
+
+ #end
+ #end
+
+
+
+
+
+
+
+
+
+
+
+ #foreach($module in $jg.modules)
+
+ #end
+
+
+
+
+
+
+
+#end
+
+#macro(writeCSS $rootPath $aux_path)
+
+
+ #if($aux_path && $aux_path != 'not_specified')
+
+ #end
+#end
+
+#macro(navbarPhys $isStartup)
+
+#end
+
+#macro(navbarLog $isStartup)
+
+#end
+
+#macro(writeClassAttributes $obj)
+#if($obj.comment.extends.size() > 0)
+
+ Extends
+ #foreach ($tagContent in $obj.comment.extends)
+ #if($velocityCount > 1), #end #writeContent($tagContent.content)
+ #end
+
+#end
+#if($obj.comment.implements.size() > 0)
+
+ Implements
+ #foreach ($tagContent in $obj.comment.implements)
+ #if($velocityCount > 1), #end #writeContent($tagContent.content)
+ #end
+
+#end
+
+#if($obj.subClasses.size() > 0)
+
+
+ #if($obj.commentType == "class")Direct Known Subclasses:#{else}All Known Subinterfaces:#end
+
+
+ #foreach($subclass in $obj.subClasses)#if($velocityCount > 1), #end
$subclass.fullName #end
+
+
+#end
+
+#if($obj.implementors.size() > 0)
+
+
+ All Known Implementing Classes:
+
+
+ #foreach($subclass in $obj.implementors)#if($velocityCount > 1), #end
$subclass.fullName #end
+
+
+#end
+#end
+
+#macro(writeModuleAttributes $obj)
+#if ($obj.comment.requires.size() > 0)
+
+ Requires modules:
+ #foreach($tagContent in $obj.comment.requires)
+ #if($velocityCount > 1), #end #writeContent($tagContent.content)
+ #end
+
+#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)
+ view source
+ #end
+ $obj.capCommentType $obj.comment.name
+
+ #writeClassAttributes($obj)
+
+
+
+
+ $obj.comment.modifiers
+ $obj.commentType
+ $obj.comment.name
+
+
+ #writeModuleAttributes($obj)
+ #if($obj.comment.content)
+
+ #end
+ #genCommonAttrs($obj.comment)
+ #if ($obj.physOwner)
+ Defined in
+ $obj.physOwner.comment.name
+ #end
+
+
+
+ #writeLogicalContainerSummary($obj)
+
+ #writeLogicalContainerDetails($obj)
+#end
+
+#macro(writeOverview $object)
+
+#end
+
+#macro(writeRefOverview $coll $elementType $elementName)
+ #if ($coll.size() > 0)
+ $elementName
+ #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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ logical/ .html
+
+
+
+
+
+
+
+
+
+
+ (, [ ] )
+
+
+
+
+
+ physical/
+ logical/
+
+
+ .html
+
+
+
+ .html#___
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ physical/ .html
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ summaryTable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ classFrame
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ no
+
+
+
+
+ overview-summary-log.html
+ Logical View
+
+
+
+
+
+
+ overview-summary.html
+ Start
+
+
+
+
+
+ jgindex.html
+ Index
+
+
+
+
+ jgsearch.html
+ Search
+
+
+
+
+
+
+ no
+
+
+
+
+ overview-summary.html
+ Physical View
+
+
+
+
+
+
+ overview-summary-log.html
+ Start
+
+
+
+
+
+ jgindex.html
+ Index
+
+
+
+
+ jgsearch.html
+ Search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ___
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [
+
+
+
+ ]
+
+
+
+
+
+
+
+ srcUrlLink
+
+ view source
+
+
+
+
+
+
+
+
+
+
+ ___
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ()
+
+
+
+
+
+
+
+
Parameters:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ details
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in
+
+ physical/ .html
+
+
+
+
+
+
+
+
+
+ stylesheet
+ text/css
+ jgdoc.css
+
+
+ stylesheet
+ text/css
+ theme.css
+
+
+
+ stylesheet
+ text/css
+
+
+
+
+
+
+
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
Binary files /dev/null and b/buildscripts/jGrouseDoc/skins/noframes/img/logo.gif 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(' ');
+ 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 = "" + item.fullName + " ";
+ 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 = " " + item.localName + " ";
+ 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)
+
+
+
+
+
+ #if($aux_css != "not_specified")
+
+ #end
+
+
+
+
+
+ #end
+#end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #if($aux_css != "not_specified")
+
+ #end
+
+
+
+
+
+
+ #genSummary($jg.logical "logical" "logical")
+ #genSummary($jg.files "physical" "file")
+ #genSummary($jg.modules "physical" "module")
+
+
+
+
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
+
+
+
+ $projectName
+
+
+
+
+
+ #if ($aux_css)
+
+ #end
+
+
+
+
+
+
+
+
+ version $version
+
+
+
+ #navigationPane($navSection)
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+ true
+ /skins/noframes/css/jgdoc.css
+ not_specified
+ not_specified
+
+ /skins/common
+
+
+
+
+
+
+ ../
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation build file for . Generated by jGrouseDoc
+
+
+ applyJGrouseDoc
+
+ applyJGrouseDoc
+
+
+
+ yes
+
+ /css
+
+
+
+
+ yes
+
+ /css
+
+
+
+
+
+
+ /img
+
+
+
+
+
+ /img
+
+
+
+
+
+
+
+ /js
+
+
+
+
+
+ /xslt/startup.xslt
+ /
+ /index.html
+
+ projectName
+
+
+
+ projectDesc
+
+
+
+ version
+
+
+
+
+ aux_css
+
+
+
+
+
+
+ /xslt/jsindex.xslt
+ /
+ /jsindex.js
+
+ projectName
+
+
+
+ projectDesc
+
+
+
+ version
+
+
+
+
+
+ /xslt/detail.xslt
+ /
+
+ version
+
+
+
+
+ aux_css
+
+
+
+
+ projectName
+
+
+
+ projectDesc
+
+
+
+
+
+ /logical/ .html
+
+ objectName
+
+
+
+ rootPath
+
+
+
+ navSection
+ logical
+
+
+ trueRootPath
+ ../
+
+
+
+
+
+
+
+
+
+ /physical/ .html
+
+ objectName
+
+
+
+ rootPath
+
+
+
+ navSection
+ file
+
+
+ trueRootPath
+ ../
+
+
+
+
+
+
+
+
+
+ /physical/ .html
+
+ objectName
+
+
+
+ rootPath
+
+
+
+ navSection
+ module
+
+
+ trueRootPath
+ ../
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+ not_specified
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace
+ Class
+ Structure
+ Interface
+ Object
+
+
+
+
+
+
+
+ Extends
+
+
+ ,
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ ,
+
+
+
+
+
+
+
+
+
+
+ Direct Known Subclasses:
+ All Known Subinterfaces:
+
+
+
+
+ ,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ All Known Implementing Classes:
+
+
+
+
+ ,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in
+
+
+ physical/ .html
+
+
+
+
+
+
+
Nested
+
+
+ class
+ Class
+
+
+
+ interface
+ Interface
+
+
+
+ object
+ Object
+
+
+
+ struct
+ Structure
+
+
+
+
+
+ variable
+ Variable
+
+
+
+
+ Variables
+ variable
+
+
+
+
+
+ property
+ Property
+
+
+
+
+ Properties
+ property
+
+
+
+
+
+
+ constructor
+ Constructor
+
+
+
+
+ function
+ Function
+
+
+
+
+ event
+ Event
+
+
+
+ Functions
+ function
+
+
+
+
+
+ ifunction
+ Function Interface
+
+
+
+
+
+
+ Variable
+ variable
+
+
+
+
+
+ Property
+ property
+
+
+
+
+
+
+ Constructor
+ constructor
+
+
+
+
+
+ Function
+ function
+
+
+
+
+
+ Event
+ event
+
+
+
+
+
+ Function Interface
+ ifunction
+
+
+
+
+
+
+
+ Generated by jGrouseDoc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .
+
+
+
+
+ version
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+ not_specified
+
+
+
+
+
+
+
+ Generated by jGrouseDoc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+ not_specified
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*Generated by jGrouseDoc*/
+(function()
+{
+ var data = [,
+
+ ];
+ jgdoc.setData(data);
+
+})()
+
+
+
+ {
+ localName : " ",
+ fullName : " ",
+ summary : " ",
+ ref : " ",
+ parent : " ",
+ type : " ",
+ elementType : " "
+
+ }
+
+
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 @@
+
+
+
+
+
+
+
+
+
+ navContent
+
+
+ navContent closed
+
+
+
+
+
+
+
+ navContent
+
+
+ navContent closed
+
+
+
+
+
+
+
+
+
+
+ physical/ .html
+
+
+
+
+
+
+
+
+
+
+
+ navContent
+
+
+ navContent closed
+
+
+
+
+
+
+
+
+
+
+ physical/ .html
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+ not_specified
+
+
+
+
+
+
+
+
+ Generated by jGrouseDoc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .
+ banner
+
+
+
+
+ version
+
+
+
+
+ logical
+
+
+
+
+
+
+
+
+
+
+
--
cgit v1.2.3