[Laszlo-checkins] r6846 - in openlaszlo/branches/paperpie/docs: includes src/xsl src/xsl/js2doc2dbk

ben@openlaszlo.org ben at openlaszlo.org
Mon Oct 15 12:18:52 PDT 2007


Author: ben
Date: 2007-10-15 12:18:46 -0700 (Mon, 15 Oct 2007)
New Revision: 6846

Modified:
   openlaszlo/branches/paperpie/docs/includes/docbook.css
   openlaszlo/branches/paperpie/docs/includes/styles.css
   openlaszlo/branches/paperpie/docs/src/xsl/js2doc2dbk.xsl
   openlaszlo/branches/paperpie/docs/src/xsl/js2doc2dbk/synopsis.xsl
   openlaszlo/branches/paperpie/docs/src/xsl/simple-driver.xsl
   openlaszlo/branches/paperpie/docs/src/xsl/synop-javascript.xsl
Log:
Change 20071015-ben-m by ben at slim.local on 2007-10-15 10:58:30 PDT
    in /Users/ben/src/svn/openlaszlo/branches/paperpie
    for http://svn.openlaszlo.org/openlaszlo/branches/paperpie

Summary: Make reference list more like the 3.4 attribute list

Details: 

Make the reference look more like the 3.4 reference, in these ways: 

Format attribute list as table, with type (tag) and type (js), but 
lacking usage and category, as the specification for these is not
yet clear. 

Format list of methods more succinctly - take out listing
javascript and lzx signatures separately. List parameters
in a table, with name, type, and description. Note that static 
methods are not currently listed. 

Format list of events as in 3.4 reference, with name and
description. 

Remove LZX synopsis and JavaScript synopsis. 

Issues introduced with this checkin: 
* Several cosmetic issues regarding table formatting in
parameter list, attribute list, and events list. 
* More code duplication than is desirable; this 
should be refactored to do less code-duplication, 
but my knowledge of the overall xslt architecture isn't
yet good enough to do this well. 


Tests:
cd docs/src; ant clean reference



Modified: openlaszlo/branches/paperpie/docs/includes/docbook.css
===================================================================
--- openlaszlo/branches/paperpie/docs/includes/docbook.css	2007-10-15 18:28:13 UTC (rev 6845)
+++ openlaszlo/branches/paperpie/docs/includes/docbook.css	2007-10-15 19:18:46 UTC (rev 6846)
@@ -7,14 +7,14 @@
 @import "styles.css";
 
 div.book, div.chapter, div.part, div.preface, div.appendix, div.index, div.glossary,  div.reference {
-    padding-left : 10;
-    padding-top : 20;
-    padding-right : 10;
+    padding-left : 10px;
+    padding-top : 20px;
+    padding-right : 10px;
 }
 
 div.refentry {
-    padding-left : 10;
-    padding-right : 10;
+    padding-left : 10px;
+    padding-right : 10px;
 }
 
 .toc .section {
@@ -24,7 +24,7 @@
     line-height : 18px;
     font-weight : normal;
     color: #333399;
-    margin-left : 10;
+    margin-left : 10px;
 }
 
 .toc dl dd {
@@ -39,6 +39,7 @@
     vertical-align: top;
 }
 
+
 .remark {
     background-color: yellow;
 }
@@ -48,6 +49,7 @@
     margin-top: -5px;
 }
 
+
 .refnamediv {
   margin-top: 20px;
   margin-bottom: 30px;
@@ -80,7 +82,7 @@
 
 /* This substitutes for turning on shade.verbatim in parameters.xsl */
 pre.programlisting {
-  background-color: #DDDDDD ;
+  background-color: #DDDDDD;
   border: 1px solid #7b839a ;
   padding: 1em;
 }
@@ -88,7 +90,7 @@
 em.lineannotation {
   font-style: italic ;
   font-weight: normal ;
-  color: inherit ;
+  color: inherit;
 }
 
 /* Emphasis inside a program listing is bold blue, instead of italic */
@@ -142,6 +144,44 @@
   padding-right: 3px;
 }
 
+/* Tables */ 
+.refentry .table {    
+    table-layout: fixed;
+    width: 100%;
+}
+
+.refentry .table thead {
+    color:#333333;
+    font-family:Verdana,Geneva,Arial,Helvetica,sans-serif;
+    font-size:10px;
+    font-weight:bold;    
+}
+
+.refentry .table td {
+    font-size: 10px;
+}
+
+.refentry .table thead tr {
+    background-color: #e6e6e6;
+    font-size: 10px;    
+}
+
+.refentry td {
+    border-bottom-width: 1px;
+}
+
+.refentry .table thead th {
+    background-color: #e6e6e6;
+    font-size: 10px;
+}
+
+
+.refentry .table .fieldsynopsis {
+    font-size: 12px;
+    line-height:16px;
+    color: purple;
+}
+
 /* Segmented Lists */
 
 .segmentedlist > .title {

Modified: openlaszlo/branches/paperpie/docs/includes/styles.css
===================================================================
--- openlaszlo/branches/paperpie/docs/includes/styles.css	2007-10-15 18:28:13 UTC (rev 6845)
+++ openlaszlo/branches/paperpie/docs/includes/styles.css	2007-10-15 19:18:46 UTC (rev 6846)
@@ -73,18 +73,21 @@
 }
 
 dt {
+    background-color: #EEEEEE;
+    padding-left: 2px;
+    padding-top: 2px;
+    padding-bottom: 2px;
     font-size : 11px;
     line-height : 14px;
     font-weight : bold;
     color: #1F1F1F;
-    margin-left : 10px;
 }
 
 dd {
     line-height : 14px;
     padding-bottom : 5px;
-    padding-left : 45px;
-    margin-left: 10px;
+    font-size: 10px;
+    margin-left: 0px;
 }
 
 

Modified: openlaszlo/branches/paperpie/docs/src/xsl/js2doc2dbk/synopsis.xsl
===================================================================
--- openlaszlo/branches/paperpie/docs/src/xsl/js2doc2dbk/synopsis.xsl	2007-10-15 18:28:13 UTC (rev 6845)
+++ openlaszlo/branches/paperpie/docs/src/xsl/js2doc2dbk/synopsis.xsl	2007-10-15 19:18:46 UTC (rev 6846)
@@ -159,7 +159,36 @@
       <xsl:param name="id" select="@id"/>
       <xsl:param name="static" select="false()" />
       <xsl:param name="prototype" select="false()"/>
+      <methodsynopsis language="{$language}"> 
+        <xsl:choose>
+          <xsl:when test="$add-link = true()">
+            <methodname><link linkend="{$id}"><xsl:value-of select="@name"/></link></methodname>
+          </xsl:when>
+          <xsl:otherwise>
+            <methodname><xsl:value-of select="@name"/></methodname>
+          </xsl:otherwise>
+        </xsl:choose>
+        <xsl:for-each select="function/parameter">
+          <methodparam>
+            <parameter><xsl:value-of select="@name"/></parameter>
+            <xsl:if test="@type"><type role="javascript"><xsl:value-of select="@type"/></type></xsl:if>
+          </methodparam>
+        </xsl:for-each>        
+      </methodsynopsis>
+    </xsl:template>
+  
+    <!-- Hide this template, without turning it off, by putting it into the mode
+      "jgrandy-synopsis". We don't want to delete the code because it's probably
+      very tasty, but we also don't want to execute it right now. 
+      [bshine 10.12.2007] --> 
+    <xsl:template match="property[child::function]" mode="jgrandy-synopsis">
+      <xsl:param name="add-link"/>
+      <xsl:param name="language"/>
+      <xsl:param name="id" select="@id"/>
+      <xsl:param name="static" select="false()" />
+      <xsl:param name="prototype" select="false()"/>
       <methodsynopsis language="{$language}">
+        <xsl:text></xsl:text>      
         <xsl:if test="$static"><modifier>static</modifier></xsl:if>
         <xsl:if test="$prototype"><modifier>prototype</modifier></xsl:if>
         <xsl:if test="@access"><modifier><xsl:value-of select="@access"/></modifier></xsl:if>
@@ -194,6 +223,7 @@
       <xsl:param name="id" select="@id"/>
       <xsl:param name="static" select="true()"/>
       <methodsynopsis language="{$language}">
+        <xsl:text></xsl:text>            
         <xsl:if test="returns"><type role="javascript"><xsl:value-of select="returns/@type"/></type></xsl:if>
         <xsl:choose>
           <xsl:when test="$add-link = true()">

Modified: openlaszlo/branches/paperpie/docs/src/xsl/js2doc2dbk.xsl
===================================================================
--- openlaszlo/branches/paperpie/docs/src/xsl/js2doc2dbk.xsl	2007-10-15 18:28:13 UTC (rev 6845)
+++ openlaszlo/branches/paperpie/docs/src/xsl/js2doc2dbk.xsl	2007-10-15 19:18:46 UTC (rev 6846)
@@ -10,6 +10,8 @@
 
 <!ENTITY tagname        '(doc/tag[@name="lzxname"]/text)'>
 <!ENTITY shortdesc      '(doc/tag[@name="shortdesc"]/text)'>
+<!ENTITY lzxtype        '(doc/tag[@name="lzxtype"]/text)'>
+<!ENTITY lzxdefault     '(doc/tag[@name="lzxdefault"]/text)'>
 
 <!ENTITY commonname     '(self::node()/@name | self::node()/doc/tag[@name="lzxname"]/text)[1]'>
 
@@ -33,7 +35,22 @@
     <xsl:param name="visibility.filter" select="'public'"/>
     <xsl:param name="show.devnotes" select="contains($visibility.filter,'private')"/>
     <xsl:param name="show.fixmes" select="contains($visibility.filter,'private')"/>
-        
+  
+    <!-- These params control the presentation of attributes, methods, and events
+      using a javascript-oriented syntax and approach. -->
+    <xsl:param name="show.members.attributes" select="true()" />
+    <xsl:param name="show.properties.static" select="false()" />
+    <xsl:param name="show.methods.static" select="false()" />  
+    <xsl:param name="show.events.static" select="false()" />
+    <xsl:param name="show.inherited.attributes" select="true()" />
+    <xsl:param name="show.setters" select="false()" />    
+    <xsl:param name="show.prototype.methods" select="true()" />
+    <xsl:param name="show.prototype.events" select="true()" />
+    <xsl:param name="show.prototype.properties" select="false()" />
+    <xsl:param name="show.init.args" select="false()" />
+    <xsl:param name="show.lzx.synopsis" select="false()" />
+    <xsl:param name="show.js.synopsis" select="false()" />
+    
     <xsl:key name="id" match="*" use="@id"/>
     <xsl:key name="unitid" match="*" use="@unitid"/>
     <xsl:key name="topic" match="property" use="@topic"/>
@@ -203,91 +220,111 @@
         <xsl:variable name="ovars" select="&objectvalue;/property[not(&privateslot;) and &isvisible;]"/>
         
         <!-- Static Properties -->
-        <xsl:call-template name="describe-members">
-          <xsl:with-param name="members" select="$ovars[not(child::function) and not(@type='LzEvent')]"/>
-          <xsl:with-param name="static" select="true()"/>
-          <xsl:with-param name="title" select="'Static Properties'"/>
-        </xsl:call-template>
+        <xsl:if test="$show.properties.static">
+          <xsl:call-template name="describe-members">
+            <xsl:with-param name="members" select="$ovars[not(child::function) and not(@type='LzEvent')]"/>
+            <xsl:with-param name="static" select="true()"/>
+            <xsl:with-param name="title" select="'Static Properties'"/>
+          </xsl:call-template>
+        </xsl:if>          
 
-        <!-- Static Methods -->        
+        <!-- Static Methods -->
+        <xsl:if test="$show.methods.static">
         <xsl:call-template name="describe-members">
           <xsl:with-param name="members" select="$ovars[child::function]"/>
           <xsl:with-param name="static" select="true()"/>
           <xsl:with-param name="title" select="'Static Methods'"/>
         </xsl:call-template>
+        </xsl:if>  
 
-        <!-- Static Events -->        
-        <xsl:call-template name="describe-members">
-          <xsl:with-param name="members" select="$ovars[@type='LzEvent']"/>
-          <xsl:with-param name="static" select="true()"/>
-          <xsl:with-param name="title" select="'Static Events'"/>
-        </xsl:call-template>
+        <!-- Static Events -->
+        <xsl:if test="$show.events.static">
+          <xsl:call-template name="describe-members">
+            <xsl:with-param name="members" select="$ovars[@type='LzEvent']"/>
+            <xsl:with-param name="static" select="true()"/>
+            <xsl:with-param name="title" select="'Static Events'"/>
+          </xsl:call-template>
+        </xsl:if>  
+        
+        <!-- Initialization Arguments -->
+        <xsl:if test="$show.init.args">
+          <xsl:call-template name="describe-members">
+            <xsl:with-param name="members" select="&classvalue;/initarg"/>
+            <xsl:with-param name="title">
+              <xsl:choose>
+                <xsl:when test="$lzxname"><xsl:value-of select="'Initial Attributes'"/></xsl:when>
+                <xsl:otherwise><xsl:value-of select="'Constructor Arguments'"/></xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+            <xsl:with-param name="subtitle">
+              <xsl:choose>
+                <xsl:when test="$lzxname"><xsl:value-of select="'Initial Attributes are given as attributes in LZX but are not generally available as properties in JavaScript.'"/></xsl:when>
+              </xsl:choose>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:if>
 
-        <!-- Initialization Arguments -->        
-        <xsl:call-template name="describe-members">
-          <xsl:with-param name="members" select="&classvalue;/initarg"/>
-          <xsl:with-param name="title">
-            <xsl:choose>
-              <xsl:when test="$lzxname"><xsl:value-of select="'Initial Attributes'"/></xsl:when>
-              <xsl:otherwise><xsl:value-of select="'Constructor Arguments'"/></xsl:otherwise>
-            </xsl:choose>
-          </xsl:with-param>
-          <xsl:with-param name="subtitle">
-            <xsl:choose>
-              <xsl:when test="$lzxname"><xsl:value-of select="'Initial Attributes are given as attributes in LZX but are not generally available as properties in JavaScript.'"/></xsl:when>
-            </xsl:choose>
-          </xsl:with-param>
-        </xsl:call-template>
-
-        <!-- Properties -->        
-        <xsl:call-template name="describe-members">
-          <xsl:with-param name="members" select="$ivars"/>
-          <xsl:with-param name="title" select="'Attributes'"/>
-        </xsl:call-template>
+        <!-- Properties -->    
+        <xsl:if test="$show.members.attributes">
+          <xsl:call-template name="describe-members">
+            <xsl:with-param name="members" select="$ivars | &classvalue;/initarg"/>
+            <xsl:with-param name="title" select="'Attributes'"/>
+          </xsl:call-template>
+        </xsl:if>  
         
-        <!-- Inherited Attributes --> 
-        <xsl:call-template name="describe-inherited-attributes">
-          <xsl:with-param name="class" select="class"></xsl:with-param>
-        </xsl:call-template>
+        <!-- Inherited Attributes -->
+        <xsl:if test="$show.inherited.attributes">
+          <xsl:call-template name="describe-inherited-attributes">
+            <xsl:with-param name="class" select="class"></xsl:with-param>
+          </xsl:call-template>
+        </xsl:if> 
         
-        <!-- Setters -->        
-        <xsl:call-template name="describe-members">
-          <xsl:with-param name="members" select="$svars"/>
-          <xsl:with-param name="title" select="'Setters'"/>
-          <xsl:with-param name="subtitle">
-            <xsl:text>Setters for virtual properties, to be used with setAttribute. A setter may or may not have a corresponding getter method; consult the Methods list in this section.</xsl:text>
-          </xsl:with-param>
-          <xsl:with-param name="describe-js" select="false()"/>
-          <xsl:with-param name="describe-lzx" select="false()"/>
-        </xsl:call-template>
-
-        <!-- (Prototype) Methods -->        
-        <xsl:call-template name="describe-members">
-          <xsl:with-param name="members" select="$pvars[child::function]"/>
-          <xsl:with-param name="title" select="'Methods'"/>
-        </xsl:call-template>
+        <!-- Setters -->
+        <xsl:if test="$show.setters">
+          <xsl:call-template name="describe-members">
+            <xsl:with-param name="members" select="$svars"/>
+            <xsl:with-param name="title" select="'Setters'"/>
+            <xsl:with-param name="subtitle">
+              <xsl:text>Setters for virtual properties, to be used with setAttribute. A setter may or may not have a corresponding getter method; consult the Methods list in this section.</xsl:text>
+            </xsl:with-param>
+            <xsl:with-param name="describe-js" select="false()"/>
+            <xsl:with-param name="describe-lzx" select="false()"/>
+          </xsl:call-template>
+        </xsl:if>  
         
+        <!-- (Prototype) Methods -->
+        <xsl:if test="$show.prototype.methods">
+          <xsl:call-template name="describe-members">
+            <xsl:with-param name="members" select="$pvars[child::function]"/>
+            <xsl:with-param name="title" select="'Methods'"/>
+          </xsl:call-template>
+        </xsl:if>  
+        
         <!-- Inherited Methods --> 
         <xsl:call-template name="describe-inherited-methods">
           <xsl:with-param name="class" select="class"></xsl:with-param>
         </xsl:call-template>            
-
-        <!-- (Prototype) Events -->        
-        <xsl:call-template name="describe-members">
-          <xsl:with-param name="members" select="$pvars[@type='LzEvent']"/>
-          <xsl:with-param name="title" select="'Events'"/>
-        </xsl:call-template>
         
+        <!-- (Prototype) Events -->
+        <xsl:if test="$show.prototype.events">
+          <xsl:call-template name="describe-events">
+            <xsl:with-param name="members" select="$pvars[@type='LzEvent']"/>
+            <xsl:with-param name="title" select="'Events'"/>
+          </xsl:call-template>
+        </xsl:if>
+        
         <!-- Inherited Events --> 
         <xsl:call-template name="describe-inherited-events">
           <xsl:with-param name="class" select="class"></xsl:with-param>
         </xsl:call-template>    
-
+        
         <!-- Prototype Properties -->
-        <xsl:call-template name="describe-members">
-          <xsl:with-param name="members" select="$pvars[not(child::function) and not(@type='LzEvent')]"/>
-          <xsl:with-param name="title" select="'Prototype Properties'"/>
-        </xsl:call-template>
+        <xsl:if test="$show.prototype.properties">
+          <xsl:call-template name="describe-members">
+            <xsl:with-param name="members" select="$pvars[not(child::function) and not(@type='LzEvent')]"/>
+            <xsl:with-param name="title" select="'Prototype Properties'"/>
+          </xsl:call-template>
+        </xsl:if>  
         
       </refsect1>
     </xsl:template>
@@ -295,7 +332,7 @@
     <xsl:template match="property" mode="detailed-synopsis">
         <xsl:variable name="jsname" select="@name"/>
         <xsl:variable name="lzxname" select="&tagname;"/>
-        <xsl:if test="$lzxname">
+        <xsl:if test="$lzxname and $show.lzx.synopsis">
           <refsect1><title>LZX Synopsis</title>
             <xsl:apply-templates select="." mode="synopsis">
               <xsl:with-param name="add-link" select="false()"/>
@@ -305,7 +342,7 @@
             </xsl:apply-templates>
           </refsect1>
         </xsl:if>
-        <xsl:if test="$jsname">
+        <xsl:if test="$jsname and $show.js.synopsis">
           <refsect1><title>JavaScript Synopsis</title>
             <xsl:apply-templates select="." mode="synopsis">
               <xsl:with-param name="add-link" select="false()"/>
@@ -320,29 +357,162 @@
     <xsl:template match="*" mode="refentry-details">
     </xsl:template>
 
-    <xsl:template name="describe-members">
-      <xsl:param name="members"/>
-      <xsl:param name="static"/>
-      <xsl:param name="title"/>
-      <xsl:param name="subtitle"/>
-      <xsl:param name="describe-js" select="boolean(@name)"/>
-      <xsl:param name="describe-lzx" select="boolean(&tagname;)"/>
-      <xsl:variable name="visible-members" select="$members[contains($visibility.filter, at access)]"/>
-      <xsl:if test="count($visible-members) > 0">
-        <variablelist>
-          <title><xsl:value-of select="$title"/> (<xsl:value-of select="count($visible-members)"/>)</title>
-          <xsl:if test="$subtitle"><para><xsl:value-of select="$subtitle"/></para></xsl:if>
-          <xsl:for-each select="$visible-members">
-            <xsl:sort select="translate(@name,'_$','  ')"/>
-            <xsl:apply-templates select="." mode="describe-member">
-              <xsl:with-param name="static" select="$static"/>
-              <xsl:with-param name="describe-js" select="$describe-js"/>
-              <xsl:with-param name="describe-lzx" select="$describe-lzx"/>
-            </xsl:apply-templates>
-          </xsl:for-each>
-        </variablelist>
-      </xsl:if>
-    </xsl:template>
+  <xsl:template name="describe-members">
+    <xsl:param name="members"/>
+    <xsl:param name="static"/>
+    <xsl:param name="title"/>
+    <xsl:param name="subtitle"/>
+    <xsl:param name="describe-js" select="boolean(@name)"/>
+    <xsl:param name="describe-lzx" select="boolean(&tagname;)"/>
+    <xsl:choose>
+      <xsl:when test="$title = 'Attributes'">
+        <xsl:call-template name="describe-members-grid">
+          <xsl:with-param name="members" select="$members"/>
+          <xsl:with-param name="static" select="$static"/>
+          <xsl:with-param name="title" select="$title"/>
+          <xsl:with-param name="subtitle" select="$subtitle"/>
+          <xsl:with-param name="describe-js" select="$describe-js" />
+          <xsl:with-param name="describe-lzx" select="$describe-lzx" />          
+        </xsl:call-template>  
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="describe-members-list">
+          <xsl:with-param name="members" select="$members"/>
+          <xsl:with-param name="static" select="$static"/>
+          <xsl:with-param name="title" select="$title"/>
+          <xsl:with-param name="subtitle" select="$subtitle"/>
+          <xsl:with-param name="describe-js" select="$describe-js" />
+          <xsl:with-param name="describe-lzx" select="$describe-lzx" />                    
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>      
+  </xsl:template>
+  
+  <xsl:template name="describe-members-list">
+    <xsl:param name="members"/>
+    <xsl:param name="static"/>
+    <xsl:param name="title"/>
+    <xsl:param name="subtitle"/>
+    <xsl:param name="describe-js" select="boolean(@name)"/>
+    <xsl:param name="describe-lzx" select="boolean(&tagname;)"/>
+    <xsl:variable name="visible-members" select="$members[contains($visibility.filter, at access)]"/>
+    <xsl:if test="count($visible-members) > 0">
+      <variablelist>
+        <title><xsl:value-of select="$title"/></title>
+        <xsl:if test="$subtitle"><para><xsl:value-of select="$subtitle"/></para></xsl:if>
+        <xsl:for-each select="$visible-members">
+          <xsl:sort select="translate(@name,'_$','  ')"/>
+          <xsl:apply-templates select="." mode="describe-member">
+            <xsl:with-param name="static" select="$static"/>
+            <xsl:with-param name="describe-js" select="$describe-js"/>
+            <xsl:with-param name="describe-lzx" select="$describe-lzx"/>
+          </xsl:apply-templates>
+        </xsl:for-each>
+      </variablelist>
+    </xsl:if>
+  </xsl:template>
+  
+  <xsl:template name="describe-members-grid">
+    <xsl:param name="members"/>
+    <xsl:param name="static"/>
+    <xsl:param name="title"/>
+    <xsl:param name="subtitle"/>
+    <xsl:param name="describe-js" select="boolean(@name)"/>
+    <xsl:param name="describe-lzx" select="boolean(&tagname;)"/>
+    <xsl:variable name="visible-members" select="$members[contains($visibility.filter, at access)]"/>
+    <xsl:if test="count($visible-members) > 0">
+      <table frame="none" colsep="0" rowsep="0">
+        <title><xsl:value-of select="$title"/></title>
+        <tgroup cols="4">
+          <colspec colname="Name" />
+          <!-- <colspec colname="Usage" /> -->
+          <colspec colname="TypeTag" />
+          <colspec colname="TypeJS" />
+          <colspec colname="Default" />
+          <!-- <colspec colname="Category" /> -->          
+          <thead>
+            <row>
+              <entry align="left">Name</entry>
+              <!-- <entry align="left">Usage</entry> -->
+              <entry align="left">Type (tag)</entry>
+              <entry align="left">Type (js)</entry>
+              <entry align="left">Default</entry>
+              <!-- <entry align="left">Category</entry> -->
+            </row>
+          </thead>
+          <tbody>
+            <xsl:for-each select="$visible-members">
+              <xsl:sort select="translate(@name,'_$','  ')"/>
+              <xsl:call-template name="member-data-row"></xsl:call-template>
+            </xsl:for-each>
+          </tbody>
+        </tgroup>
+      </table>
+    </xsl:if>
+  </xsl:template>
+  
+  <xsl:template name="describe-events">
+    <xsl:param name="members"/>
+    <xsl:param name="title"/>
+    <xsl:param name="static" select="false()"/>
+    <xsl:param name="describe-js" select="true()"/>
+    <xsl:param name="describe-lzx" select="true()"/>    
+    <xsl:variable name="visible-members" select="$members[contains($visibility.filter, at access)]"/>
+    <xsl:variable name="desc">
+      <xsl:apply-templates select="." mode="desc"/>
+    </xsl:variable>
+    <xsl:variable name="xref">
+      <xsl:apply-templates select="." mode="xref"/>
+    </xsl:variable>
+    
+    <xsl:if test="count($visible-members) > 0">
+      <table frame="none" colsep="0" rowsep="0">
+        <title>Events</title>
+        <tgroup cols="2">
+          <colspec colname="Name" />
+          <colspec colname="Description" />
+          <thead>
+            <row>
+              <entry align="left">Name</entry>
+              <entry align="left">Description</entry>
+            </row>
+          </thead>
+          <tbody>
+            <xsl:for-each select="$visible-members">
+              <xsl:sort select="translate(@name,'_$','  ')"/>
+              <row>
+                <entry>
+                  <indexterm zone="{@id}" id="{@id}">
+                    <primary>
+                      <xsl:value-of select="@name"/>
+                    </primary>                    
+                  </indexterm>
+                  <xsl:value-of select="@name"/>
+                </entry>
+                <entry><xsl:value-of select="doc/text" /></entry>
+              </row>
+            </xsl:for-each>
+          </tbody>
+        </tgroup>
+      </table>
+      
+      <!-- Also list the event out the old way. This seems to be necessary
+      to get the xref in properly. [bshine 10.11.2007] -->
+      <!--
+      <xsl:for-each select="$visible-members">
+        <xsl:sort select="translate(@name,'_$','  ')"/>        
+        <xsl:apply-templates select="." mode="describe-member">
+          <xsl:with-param name="static" select="$static"/>
+          <xsl:with-param name="describe-js" select="$describe-js"/>
+          <xsl:with-param name="describe-lzx" select="$describe-lzx"/>
+        </xsl:apply-templates>
+      </xsl:for-each>
+      
+      -->
+    </xsl:if>
+    
+    
+  </xsl:template>
 
     <xsl:template match="initarg|property" mode="describe-member">
       <!-- TO DO: special format for setters (properties with ../object/../property[@name='setters'] structure) -->
@@ -376,26 +546,45 @@
           <xsl:value-of select="$desc"/>
         </term>
         <listitem>
-          <xsl:if test="$describe-lzx">
             <refsect3>
               <xsl:apply-templates select="." mode="synopsis">
                 <xsl:with-param name="add-link" select="false()"/>
                 <xsl:with-param name="static" select="$static"/>
-                <xsl:with-param name="language" select="'lzx'" />
+                <xsl:with-param name="language" select="'javascript'" />
               </xsl:apply-templates>
             </refsect3>
-          </xsl:if>
-          <xsl:if test="$describe-js and name()='property'">
+          <xsl:if test="doc/text">
             <refsect3>
-              <xsl:apply-templates select="." mode="synopsis">
-                <xsl:with-param name="add-link" select="false()"/>
-                <xsl:with-param name="static" select="$static"/>
-                <xsl:with-param name="language" select="'javascript'" />
-              </xsl:apply-templates>
+              <xsl:apply-templates select="doc/text" mode="doc2dbk"/>
             </refsect3>
           </xsl:if>
-          <xsl:if test="doc/text">
-            <refsect3><xsl:apply-templates select="doc/text" mode="doc2dbk"/></refsect3>
+          <xsl:if test="function/parameter">
+            <refsect3>              
+              <table frame="none" colsep="0" rowsep="0">
+                <title><xsl:text>Parameters</xsl:text></title>
+                <tgroup cols="3">
+                  <colspec colname="Name" />
+                  <colspec colname="Type" />
+                  <colspec colname="Description" />          
+                  <thead>
+                    <row>
+                      <entry align="left">Name</entry>
+                      <entry align="left">Type</entry>
+                      <entry align="left">Description</entry>
+                    </row>
+                  </thead>
+                  <tbody>
+                    <xsl:for-each select="function/parameter">
+                      <row>
+                        <entry><xsl:value-of select="@name"/></entry>
+                        <entry><xsl:value-of select="@type"/></entry>
+                        <entry><xsl:value-of select="doc/text"/></entry>
+                      </row>                      
+                    </xsl:for-each>
+                  </tbody>
+                </tgroup>
+              </table>              
+              </refsect3>
           </xsl:if>
         </listitem>
       </varlistentry>
@@ -747,6 +936,7 @@
     
     <xsl:variable name="extends" select="$class/@extends"/>
     <xsl:variable name="superclass" select="(key('id',$extends) | key('name-lzx',$extends))[1]"/>
+    
     <xsl:if test="$superclass">
       <refsect2>
         <title>
@@ -766,13 +956,8 @@
             <link linkend="{@id}"><xsl:value-of select="@name"/></link>
             <xsl:text>, </xsl:text>
           </xsl:for-each>
-          <xsl:for-each select="$initargs">     
-            <xsl:sort select="@name"/>            
-            <link linkend="{@id}"><xsl:value-of select="@name"/></link>
-            <xsl:text>, </xsl:text>
-          </xsl:for-each>                               
         </para>
-      </refsect2>                  
+      </refsect2>                       
       <xsl:choose>
         <xsl:when test="contains($visibility.filter, $superclass/@access)">
           <xsl:call-template name="describe-inherited-attributes">
@@ -784,7 +969,8 @@
           <xsl:text>&nbsp;(private)&nbsp;&raquo; </xsl:text>
         </xsl:otherwise>
       </xsl:choose>
-    </xsl:if>              
+    </xsl:if>
+     
   </xsl:template>  
   
   <xsl:template name="describe-inherited-methods">
@@ -795,9 +981,10 @@
     
     <xsl:variable name="extends" select="$class/@extends"/>
     <xsl:variable name="superclass" select="(key('id',$extends) | key('name-lzx',$extends))[1]"/>
+    
     <xsl:if test="$superclass">
-      <xsl:variable name="inheritedmethods" select="$superclass/class/property/object/property[@access='public']/function"></xsl:variable>
-      <refsect2>
+      <refsect2>              
+      <xsl:variable name="inheritedmethods" select="$superclass/class/property/object/property[@access='public']/function"></xsl:variable>      
         <title>
           <xsl:text>Methods inherited from&nbsp;</xsl:text>          
           <link linkend="{$superclass/@id}">
@@ -813,7 +1000,7 @@
             <xsl:text>, </xsl:text>
           </xsl:for-each>
         </para>
-      </refsect2>
+      </refsect2>  
       <xsl:choose>
         <xsl:when test="contains($visibility.filter, $superclass/@access)">
           <xsl:call-template name="describe-inherited-methods">
@@ -825,7 +1012,9 @@
           <xsl:text>&nbsp;(private)&nbsp;&raquo; </xsl:text>
         </xsl:otherwise>
       </xsl:choose>
-    </xsl:if>        
+              
+    </xsl:if>    
+        
   </xsl:template>  
   
   
@@ -868,5 +1057,67 @@
         </xsl:otherwise>
       </xsl:choose>
     </xsl:if>        
-  </xsl:template>    
+  </xsl:template>
+  
+  <xsl:template name="member-data-row">
+    <xsl:param name="describe-js" select="true()"/>
+    <xsl:param name="describe-lzx" select="true()"/>
+    
+    <xsl:variable name="jsname" select="@name"/>
+    <xsl:variable name="lzxname" select="&tagname;"/>
+    <xsl:variable name="name" select="&commonname;"/>
+    <xsl:variable name="sortasname" select="translate($name,'_$','  ')"/>
+    <xsl:variable name="id" select="@id"/>
+    <xsl:variable name="desc">
+      <xsl:apply-templates select="." mode="desc"/>
+    </xsl:variable>
+    
+    <xsl:variable name="xref">
+      <xsl:apply-templates select="." mode="xref"/>
+    </xsl:variable>
+    
+    <term id="{@id}" xreflabel="{$xref}">
+      <!-- how to get the indexterm to use a different name than xreflabel? -->
+      <indexterm zone="{@id}">
+        <primary>
+          <xsl:if test="$name != $sortasname">
+            <xsl:attribute name="sortas"><xsl:value-of select="$sortasname"/></xsl:attribute>
+          </xsl:if>
+          <xsl:value-of select="$name"/>
+        </primary>
+      </indexterm>
+      <xsl:value-of select="$desc"/>
+    </term>    
+    <row>
+      <entry><xsl:value-of select="@name"/></entry>
+      <!-- "Usage" will go here <entry>(unknown)</entry> -->
+      <entry><xsl:value-of select="&lzxtype;" /> </entry>
+      <entry>
+        <xsl:call-template name="jstype">
+          <xsl:with-param name="tag" select="'type'"/>
+        </xsl:call-template>
+      </entry>
+      <entry><xsl:value-of select="&lzxdefault;" /></entry>
+      <!-- Category will go here 
+      <entry> 
+        <xsl:choose>
+          <xsl:when test="initarg">
+            <xsl:text>initarg</xsl:text>
+          </xsl:when>
+          <xsl:otherwise>
+          </xsl:otherwise>
+        </xsl:choose>        
+      </entry>
+      -->
+    </row>
+    <xsl:if test="doc/text">  
+      <row>
+        <entry namest="TagType" nameend="Category">
+          <xsl:value-of select="doc/text" />
+        </entry>
+      </row>
+    </xsl:if>        
+    
+  </xsl:template>
+  
 </xsl:stylesheet>
\ No newline at end of file

Modified: openlaszlo/branches/paperpie/docs/src/xsl/simple-driver.xsl
===================================================================
--- openlaszlo/branches/paperpie/docs/src/xsl/simple-driver.xsl	2007-10-15 18:28:13 UTC (rev 6845)
+++ openlaszlo/branches/paperpie/docs/src/xsl/simple-driver.xsl	2007-10-15 19:18:46 UTC (rev 6846)
@@ -13,6 +13,7 @@
 <!ENTITY shortdesc      '(doc/tag[@name="shortdesc"]/text)'>
 <!ENTITY lzxtype        '(doc/tag[@name="lzxtype"]/text)'>
 <!ENTITY lzxdefault     '(doc/tag[@name="lzxdefault"]/text)'>
+<!ENTITY commonname     '(self::node()/@name | self::node()/doc/tag[@name="lzxname"]/text)[1]'>
 
 <!ENTITY objectvalue    '(object|class|function)'>
 <!ENTITY classvalue     '(class|function)'>
@@ -40,128 +41,53 @@
     <xsl:template match="/">
         <body>
             <!-- find all properties which have exactly one class child -->
-            <xsl:apply-templates select="descendant::property[count(class)=1]"
-            > </xsl:apply-templates>
+            <xsl:apply-templates select="descendant::function"></xsl:apply-templates>
         </body>
     </xsl:template>
-
-    <xsl:template match="property">
-        <refentry>
-            <xsl:value-of select="@name"/>
-            <xsl:apply-templates select="descendant::class"/>
-        </refentry>
+    
+    <xsl:template match="function">
+        <function>
+            <xsl:attribute name="name"><xsl:value-of select="../@name" /></xsl:attribute>
+            <class>
+                <xsl:value-of select="ancestor::property/@name"/>
+            </class>            
+        </function>
     </xsl:template>
-
-
-    <xsl:template match="class">
-        <xsl:if test="attribute::extends != ''">
-<!--            
-            <xsl:call-template name="describe-inherited-initargs">
-                <xsl:with-param name="class" select="."/>
-            </xsl:call-template>
--->          
-<!--            
-            <xsl:call-template name="describe-superclass-methods">
-                <xsl:with-param name="class" select="."/>
-            </xsl:call-template>
--->            
-            <xsl:call-template name="describe-superclass-chain-inner">
-                <xsl:with-param name="class" select="."/>
-            </xsl:call-template>
-        </xsl:if>    
-    </xsl:template>
     
-    <xsl:template name="describe-inherited-initargs">
-        <xsl:param name="class" />
-        <xsl:variable name="extends" select="$class/@extends"/>
-        <xsl:variable name="superclass" select="(key('id',$extends) | key('name-lzx',$extends))[1]"/>
-        <xsl:if test="$superclass">
-            <xsl:variable name="initargs" select="$superclass/class/initarg[@access='public']"></xsl:variable>            
-            <refsect2>
-                <title>
-                    <xsl:text>Initialization Arguments Inherited From </xsl:text>
-                    <xref linkend="{$superclass/@id}">
-                        <xsl:value-of select="$superclass/doc/tag[@name='lzxname']/text"/>
-                    </xref>
-                </title>                
-                <para>
-                    <xsl:for-each select="$initargs">
-                        <link linkend="{@id}"><xsl:value-of select="@name"/></link>
-                        <xsl:text>, </xsl:text>
-                    </xsl:for-each>
-                </para>
-                
-            </refsect2>
-        </xsl:if>
+    <xsl:template name="functionfun" >
+        <!-- TO DO: special format for setters (properties with ../object/../property[@name='setters'] structure) -->
+        <xsl:param name="static"/>
+        <xsl:param name="describe-js" select="true()"/>
+        <xsl:param name="describe-lzx" select="true()"/>
+        <xsl:variable name="property" select=".."></xsl:variable>
         
-    </xsl:template>
-
-    <xsl:template name="describe-superclass-chain-inner">
-        <xsl:param name="class"/>        
-        
-        <xsl:variable name="jsname" select="@name"/>
+        <xsl:variable name="jsname" select="$property/@name"/>
         <xsl:variable name="lzxname" select="&tagname;"/>
+        <xsl:variable name="name" select="&commonname;"/>
+        <xsl:variable name="sortasname" select="translate($name,'_$','  ')"/>
+        <xsl:variable name="id" select="$property/@id"/>
+        <xsl:variable name="desc">
+            <xsl:apply-templates select="$property" mode="desc"/>
+        </xsl:variable>
+        <xsl:variable name="xref">
+            <xsl:apply-templates select="$property" mode="xref"/>
+        </xsl:variable>
         
-        <xsl:variable name="extends" select="$class/@extends"/>
-        <xsl:variable name="superclass" select="(key('id',$extends) | key('name-lzx',$extends))[1]"/>
-        <xsl:if test="$superclass">
-            <div>
-                <xsl:variable name="inheritedattrs" select="$superclass/class/property[@name='__ivars__']/object/property[@access='public']"></xsl:variable>
-                <xsl:variable name="initargs" select="$superclass/class/initarg[@access='public']"></xsl:variable>                            
-                <xsl:text>Attributes inherited from&nbsp;</xsl:text>
-                <xref linkend="{$superclass/@id}">
-                    <xsl:value-of select="$superclass/doc/tag[@name='lzxname']/text"/>
-                </xref>
-                <xsl:text>: &nbsp;</xsl:text>
-                <xsl:for-each select="$inheritedattrs"><xsl:value-of select="@name"/> <xref linkend="{$superclass/@id}"/> &nbsp;</xsl:for-each>
-                <xsl:for-each select="$initargs"><xsl:value-of select="@name"/> <link linkend="{@id}"/> &nbsp;</xsl:for-each>                
-            </div>
-            <xsl:choose>
-                <xsl:when test="contains($visibility.filter, $superclass/@access)">
-                    <xsl:call-template name="describe-superclass-chain-inner">
-                        <xsl:with-param name="class" select="$superclass/class"/>
-                    </xsl:call-template>
-                </xsl:when>
-                <xsl:otherwise>
-                    <xsl:value-of select="($superclass/@name | $superclass/doc/tag[@name='lzxname']/text)[1]"/>
-                    <xsl:text>&nbsp;(private)&nbsp;&raquo; </xsl:text>
-                </xsl:otherwise>
-            </xsl:choose>
-        </xsl:if>        
+        <varlistentry>
+            <term id="{$id}" xreflabel="{$xref}">
+                <!-- how to get the indexterm to use a different name than xreflabel? -->
+                <indexterm zone="{$id}">
+                    <primary>
+                        <xsl:if test="$name != $sortasname">
+                            <xsl:attribute name="sortas"><xsl:value-of select="$sortasname"/></xsl:attribute>
+                        </xsl:if>
+                        <xsl:value-of select="$name"/>
+                    </primary>
+                </indexterm>
+                <xsl:value-of select="$desc"/>
+            </term>
+        </varlistentry>
     </xsl:template>
-            
-    <xsl:template name="describe-superclass-methods">
-<!--        
-        <xsl:param name="class"/>        
-        
-        <xsl:variable name="jsname" select="@name"/>
-        <xsl:variable name="lzxname" select="&tagname;"/>
-        
-        <xsl:variable name="extends" select="$class/@extends"/>
-        <xsl:variable name="superclass" select="(key('id',$extends) | key('name-lzx',$extends))[1]"/>
-        <xsl:if test="$superclass">
-            <div>
-                <xsl:variable name="inheritedmethods" select="$superclass/class/property/object/property[@access='public']/function"></xsl:variable>
-                <xsl:text>Methods inherited from&nbsp;</xsl:text>
-                <xref linkend="{$superclass/@id}">
-                    <xsl:value-of select="$superclass/doc/tag[@name='lzxname']/text"/>
-                </xref>
-                <xsl:text>: &nbsp;</xsl:text>
-                <xsl:for-each select="$inheritedmethods"><xsl:value-of select="../@name"/> <xref linkend="{../@id}"/> &nbsp;</xsl:for-each>                               
-            </div>
-            <xsl:choose>
-                <xsl:when test="contains($visibility.filter, $superclass/@access)">
-                    <xsl:call-template name="describe-superclass-methods">
-                        <xsl:with-param name="class" select="$superclass/class"/>
-                    </xsl:call-template>
-                </xsl:when>
-                <xsl:otherwise>
-                    <xsl:value-of select="($superclass/@name | $superclass/doc/tag[@name='lzxname']/text)[1]"/>
-                    <xsl:text>&nbsp;(private)&nbsp;&raquo; </xsl:text>
-                </xsl:otherwise>
-            </xsl:choose>
-        </xsl:if>        
--->        
-    </xsl:template>
+
     
 </xsl:stylesheet>

Modified: openlaszlo/branches/paperpie/docs/src/xsl/synop-javascript.xsl
===================================================================
--- openlaszlo/branches/paperpie/docs/src/xsl/synop-javascript.xsl	2007-10-15 18:28:13 UTC (rev 6845)
+++ openlaszlo/branches/paperpie/docs/src/xsl/synop-javascript.xsl	2007-10-15 19:18:46 UTC (rev 6846)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2006 Laszlo Systems, Inc.  All Rights Reserved.                   *
+* Copyright 2006-2007 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
 <!DOCTYPE xsl:stylesheet [
@@ -139,6 +139,7 @@
 </xsl:template>
 
 <xsl:template match="methodname" mode="javascript">
+  <xsl:variable name="class" select="ooclass[not(@role)]"/>  
   <span class="{name(.)}">
     <xsl:apply-templates mode="javascript"/>
   </span>
@@ -195,8 +196,6 @@
       <xsl:text>&nbsp;</xsl:text>
     </xsl:for-each>
   
-    <xsl:text>function </xsl:text>
-
     <xsl:apply-templates select="methodname" mode="javascript"/>
 
     <xsl:text>(</xsl:text>



More information about the Laszlo-checkins mailing list