[Laszlo-checkins] r8011 - in openlaszlo/branches/devildog: . WEB-INF/lps/lfc/kernel WEB-INF/lps/lfc/kernel/dhtml WEB-INF/lps/lfc/kernel/swf WEB-INF/lps/lfc/views WEB-INF/lps/misc WEB-INF/lps/schema demos/amazon demos/calendar docs docs/src/developers test/smoke

dda@openlaszlo.org dda at openlaszlo.org
Tue Feb 12 20:42:54 PST 2008


Author: dda
Date: 2008-02-12 20:42:34 -0800 (Tue, 12 Feb 2008)
New Revision: 8011

Modified:
   openlaszlo/branches/devildog/
   openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/LzLibraryCleanup.lzs
   openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/dhtml/LzLibrary.js
   openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js
   openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzLibrary.lzs
   openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzLibraryLoader.lzs
   openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzSprite.as
   openlaszlo/branches/devildog/WEB-INF/lps/lfc/views/LaszloView.lzs
   openlaszlo/branches/devildog/WEB-INF/lps/misc/lzx-autoincludes.properties
   openlaszlo/branches/devildog/WEB-INF/lps/schema/lfc.lzx
   openlaszlo/branches/devildog/build.properties
   openlaszlo/branches/devildog/demos/amazon/address.lzx
   openlaszlo/branches/devildog/demos/amazon/amazon.lzx
   openlaszlo/branches/devildog/demos/amazon/classlib.lzx
   openlaszlo/branches/devildog/demos/amazon/creditcard.lzx
   openlaszlo/branches/devildog/demos/calendar/cal-button.lzx
   openlaszlo/branches/devildog/demos/calendar/cal-data.lzx
   openlaszlo/branches/devildog/demos/calendar/calendar.lzx
   openlaszlo/branches/devildog/demos/calendar/day.lzx
   openlaszlo/branches/devildog/demos/calendar/event.lzx
   openlaszlo/branches/devildog/demos/calendar/eventselector.lzx
   openlaszlo/branches/devildog/demos/calendar/gridsliderlayout.lzx
   openlaszlo/branches/devildog/demos/calendar/infopanel.lzx
   openlaszlo/branches/devildog/demos/calendar/selected-daylook.lzx
   openlaszlo/branches/devildog/demos/calendar/textbox.lzx
   openlaszlo/branches/devildog/demos/calendar/vscrollbar.lzx
   openlaszlo/branches/devildog/docs/index.html
   openlaszlo/branches/devildog/docs/src/developers/doc-backwards-xform.dbk
   openlaszlo/branches/devildog/docs/src/developers/doc-toolchain.dbk
   openlaszlo/branches/devildog/docs/src/developers/docbook-code.dbk
   openlaszlo/branches/devildog/docs/src/developers/docbook-local.dbk
   openlaszlo/branches/devildog/docs/src/developers/js2doc-ref.dbk
   openlaszlo/branches/devildog/test/smoke/lzunit-test.lzl
Log:
Merged revisions 7965-8010 via svnmerge from 
http://svn.openlaszlo.org/openlaszlo/trunk

.......
  r7975 | lou | 2008-02-07 07:36:53 -0500 (Thu, 07 Feb 2008) | 17 lines
  
  Change 20080207-lou-Z by lou at loumac.local on 2008-02-07 08:31:24 AST
      in /Users/lou/src/svn/openlaszlo/trunk
      for http://svn.openlaszlo.org/openlaszlo/trunk
  
  Summary: make sure the doc tool chain chapter of the dguide is valid DocBook, fix broken links and spelling errors
  
  New Features:
  
  Bugs Fixed: LPP-5409
  
  Technical Reviewer: (pending)
  QA Reviewer: (pending)
  Doc Reviewer: (pending)
  
  Tests: validate against DocBook dtd, manually verify links
.......
  r7982 | lou | 2008-02-08 08:14:32 -0500 (Fri, 08 Feb 2008) | 24 lines
  
  Change 20080208-lou-L by lou at loumac.local on 2008-02-08 09:07:03 AST
      in /Users/lou/src/svn/openlaszlo/trunk
      for http://svn.openlaszlo.org/openlaszlo/trunk
  
  Summary: Repair links on docs landing page
  
  Bugs Fixed: LPP-5102
  
  Technical Reviewer: (pending)
  QA Reviewer: (pending)
  Doc Reviewer: (pending)
  
  
  Details: 
  
  Broken links were already fixed as a part of LPP-5148
  Make the forums link point to the forum site (not the community site)
  Comment out the Master Index link. The master index exists, but it needs
     to be checked, and it is way out of date. File a JIRA bug to consider
     this for a later release.
      
  Tests: test links
.......
  r7983 | ptw | 2008-02-08 08:40:40 -0500 (Fri, 08 Feb 2008) | 19 lines
  
  Change 20080208-ptw-G by ptw at dueling-banjos.local on 2008-02-08 08:31:01 EST
      in /Users/ptw/OpenLaszlo/ringding-3
      for http://svn.openlaszlo.org/openlaszlo/trunk
  
  Summary: Make it harder to accidentally include the inspector
  
  Bugs Fixed:
  LPP-5415 'Inspector window appears in OL app' (partial)
  
  Technical Reviewer: sallen (pending)
  QA Reviewer: lhenrywilkins (pending)
  
  Details:
      Remove all but top-level inspector tag from auto-includes.
  
  Tests:
      Inspection
.......
  r7986 | lou | 2008-02-08 12:49:07 -0500 (Fri, 08 Feb 2008) | 17 lines
  
  Change 20080208-lou-l by lou at loumac.local on 2008-02-08 13:42:43 AST
      in /Users/lou/src/svn/openlaszlo/trunk
      for http://svn.openlaszlo.org/openlaszlo/trunk
  
  Summary: fix DocBook so these files validate against the DocBook dtd.
  
  Bugs Fixed: LPP-5417
  
  Technical Reviewer: (pending)
  QA Reviewer: (pending)
  Doc Reviewer: (pending)
  
  Details: DocBook tools are not very forgiving with files that are valid. Fix it.
      
  Tests: xmllint -dtdvalid ~/src/svn/vendor/docbook-xml-4.5/docbookx.dtd <filename>
.......
  r7988 | mkratt | 2008-02-08 15:53:31 -0500 (Fri, 08 Feb 2008) | 1 line
  
  Fixing problem with the installer, revision needs to be 4.1.x for now
.......
  r7993 | hqm | 2008-02-09 21:59:18 -0500 (Sat, 09 Feb 2008) | 24 lines
  
  Change 20080209-hqm-G by hqm at badtzmaru.local on 2008-02-09 21:54:33 EST
      in /Users/hqm/openlaszlo/trunk
      for http://svn.openlaszlo.org/openlaszlo/trunk
  
  Summary: 
  
  New Features:
  
  Bugs Fixed:
  
  Technical Reviewer: (pending)
  QA Reviewer: (pending)
  Doc Reviewer: (pending)
  
  Documentation:
  
  Release Notes:
  
  Details:
      
  
  Tests:
.......
  r7995 | bargull | 2008-02-11 16:57:29 -0500 (Mon, 11 Feb 2008) | 24 lines
  
  Change 20080206-bargull-0 by bargull at dell--p4--2-53 on 2008-02-06 21:22:48
      in /home/Admin/src/svn/openlaszlo/trunk
      for http://svn.openlaszlo.org/openlaszlo/trunk
  
  Summary: unregister delegates
  
  New Features:
  
  Bugs Fixed: LPP-5408 - "Missing "LzDelegate#unregisterAll(..)" in LzSprite"
  
  Technical Reviewer: ptw (pending)
  QA Reviewer: (pending)
  Doc Reviewer: (pending)
  
  Documentation:
  
  Release Notes:
  
  Details:
  added unregister for delegates
  
  Tests:
.......
  r7996 | bargull | 2008-02-11 17:05:23 -0500 (Mon, 11 Feb 2008) | 26 lines
  
  Change 20080206-bargull-6 by bargull at dell--p4--2-53 on 2008-02-06 23:55:58
      in /home/Admin/src/svn/openlaszlo/trunk
      for http://svn.openlaszlo.org/openlaszlo/trunk
  
  Summary: Cleanup for stretches
  
  New Features:
  
  Bugs Fixed: LPP-5410 - Cleanup for "stretches"
  
  Technical Reviewer: ptw (pending)
  QA Reviewer: (pending)
  Doc Reviewer: (pending)
  
  Documentation:
  
  Release Notes:
  
  Details:
  "stretches" was differently implemented in SWF compared to DHTML, especially for null-values. 
  Also the docs for "stretches" and "stretchResource" did not match each other, compared to the actual implementation. 
  
  
  Tests:
.......
  r7999 | ptw | 2008-02-11 17:41:38 -0500 (Mon, 11 Feb 2008) | 24 lines
  
  Change 20080211-ptw-8 by ptw at dueling-banjos.local on 2008-02-11 17:33:50 EST
      in /Users/ptw/OpenLaszlo/ringding-3
      for http://svn.openlaszlo.org/openlaszlo/trunk
  
  Summary: Remove superfluous informational output in lzunit-test
  
  Bugs Fixed:
  LPP-4979 'Tucker seems to have broken smokecheck'
  
  Technical Reviewer: mkratt (pending)
  
  Details:
      It appears Ben was over-zealous in his change (that I approved) to
      add informational output to the test for lzunit itself.  The
      Intentional Failure test actually intercepts the fail call
      _before_ it creates any debugger output, so it is not necessary to
      output the info message saying that the debugger output is expected.
  
  Tests:
      test/smoke/simple.lzx: All info messages have a corresponding
      warning or error (except for the few that have a debug message
      saying to ignore them).
.......
  r8007 | bargull | 2008-02-12 12:34:13 -0500 (Tue, 12 Feb 2008) | 32 lines
  
  Change 20080211-bargull-6 by bargull at dell--p4--2-53 on 2008-02-11 22:46:58
      in /home/Admin/src/svn/openlaszlo/trunk
      for http://svn.openlaszlo.org/openlaszlo/trunk
  
  Summary: Cleanup for LzLibrary
  
  New Features:
  
  Bugs Fixed: LPP-5419, LPP-4227
  
  Technical Reviewer: hminsky
  QA Reviewer: (pending)
  Doc Reviewer: dda
  
  Documentation:
  
  Release Notes:
  
  Details:
  Only a couple of minor fixes and improvements:
  - added attributes/events to the LzLibrary classes (SWF,DHTML)
  - moved code from LzLibraryCleanup to LzLibrary (LzLibrary#loadfinished(..)) (OOP-thingy)
  - added "loaded"/"loading" states for DHTML (were already supported in SWF)
  - fixed: LzLibrary#destroy(..) did not destroy the library-sprite
  - removed old code in LzLibrary#unload() (SWF) ("delete this.__LZmovieClipRef" is no longer necessary, was for OL3.x)
  - LzLibraryLoader#snippetLoaded(..) did not properly update "loaded"/"loading" states, did not fire "ontimeout"-event, etc.
  - added docs for attributes/methods
  
  
  Tests:
.......



Property changes on: openlaszlo/branches/devildog
___________________________________________________________________
Name: svnmerge-integrated
   - /openlaszlo/branches/wafflecone:1-5746,5818-6068,6070-6205,6207-6213,6216-6265,6267-6368,6370-6431,6433-6450,6497 /openlaszlo/trunk:1-7964
   + /openlaszlo/branches/wafflecone:1-5746,5818-6068,6070-6205,6207-6213,6216-6265,6267-6368,6370-6431,6433-6450,6497 /openlaszlo/trunk:1-8010

Modified: openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/LzLibraryCleanup.lzs
===================================================================
--- openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/LzLibraryCleanup.lzs	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/LzLibraryCleanup.lzs	2008-02-13 04:42:34 UTC (rev 8011)
@@ -18,13 +18,10 @@
   */
     static var tagname = '__libraryloadercomplete';
 
-
     function LzLibraryCleanup ( owner , args ) {
-        //this.callInherited( "constructor", arguments.callee ,owner ,args );
         super(owner, args);
         var lib = LzLibrary.findLibrary(args.libname);
-        lib.loading = false;
-        if (lib.onload.ready) lib.onload.sendEvent(true);
+        lib.loadfinished();
     }
 
 }; // End of LzLibraryCleanup

Modified: openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/dhtml/LzLibrary.js
===================================================================
--- openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/dhtml/LzLibrary.js	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/dhtml/LzLibrary.js	2008-02-13 04:42:34 UTC (rev 8011)
@@ -1,7 +1,7 @@
 /**
   * LzLibrary.as
   *
-  * @copyright Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.
+  * @copyright Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.
   *            Use is subject to license terms.
   *
   * @topic LZX
@@ -19,7 +19,44 @@
   */
 static var tagname = 'import';
 
+/** @access private */
+var loaded = false;
+/** @access private */
+var loading = false;
+/** @access private */
+var sprite = null;
+
 /**
+ * A reference to a target file whose content is treated as a 
+ * loadable module.
+ * 
+ * @keywords final
+ * @type string
+ * @access public 
+ */
+var href;
+
+/** 
+ * When set to 'defer', the library will not be loaded until its 
+ * load-method has been called. Otherwise, the library loads 
+ * automatically. 
+ * 
+ * @keywords final
+ * @type string 
+ * @lzxdefault "late"
+ * @access public 
+ */
+var stage = "late";//"late|defer"
+
+/**
+ * Sent when this library has finished loading. 
+ * 
+ * @lzxtype event
+ * @access public
+ */
+var onload = LzDeclaredEvent;
+
+/**
   * @access private
   */
 function construct (parent, args) {
@@ -39,8 +76,19 @@
     }
 }
 
+/**
+  * @access private
+  */
+function destroy () {
+    if (this.sprite) {
+        this.sprite.destroy();
+        this.sprite = null;
+    }
+    super.destroy.apply(this, arguments);
+}
 
-static var libraries = [];
+/** @access private */
+static var libraries = {};
 
 /**
   * @access private
@@ -49,41 +97,60 @@
     return LzLibrary.libraries[libname];
 }
 
-var loaded = false;
-var loading = false;
-var onload = LzDeclaredEvent;
-
+/**
+  * @access private
+  */
 function toString (){
     return "Library " + this.href + " named " + this.name;
 }
 
 /**
-  * @access private
+  * Loads this library dynamically at runtime. Must only be called 
+  * when stage was set to 'defer'.
+  * 
+  * @access public
   */
 function load (){
+    if (this.loading || this.loaded) {
+        return;
+    }
+    this.loading = true;
     Lz.__dhtmlLoadLibrary(this.href);
 }
 
+/** 
+ * Called by LzLibraryCleanup when this library has finished loading.
+ * 
+ * @access private 
+ */
+function loadfinished (){
+  this.loading = false;
+  if (this.onload.ready) this.onload.sendEvent(true);
+}
+
 /**
   * Callback for runtime loaded libraries
   * @access private
   */
 static function __LZsnippetLoaded (url){
     // find the lib with this url
-    var libname = null;
+    var lib = null;
     var libs = LzLibrary.libraries;
     for (var l in libs ) {
         if (libs[l].href == url) {
-            libname = libs[l].name;
+            lib = libs[l];
             break;
         }
     }
-    if (libname == null) {
+    
+    if (lib == null) {
         Debug.error("could not find library with href", url);
+    } else {
+        lib.loaded = true;
+        LzInstantiateView({attrs: {libname: lib.name}, name: "__libraryloadercomplete"}, 1);
+        // Run the queue to instantiate all pending LzInstantiateView calls.
+        canvas.initDone();
     }
-    LzInstantiateView({attrs: {libname: libname}, name: "__libraryloadercomplete"}, 1);
-    // Run the queue to instantiate all pending LzInstantiateView calls.
-    canvas.initDone();
 }
 
 }; // End of LzLibrary

Modified: openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js
===================================================================
--- openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js	2008-02-13 04:42:34 UTC (rev 8011)
@@ -1179,8 +1179,8 @@
   * none (any other value).
   */
 LzSprite.prototype.stretchResource = function(s) {
+    s = (s != "none" ? s : null);//convert "none" to null
     if (this.stretches == s) return;
-    //Debug.info('setStretches', s);
     this.stretches = s;
     this.__updateStretches();
 }

Modified: openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzLibrary.lzs
===================================================================
--- openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzLibrary.lzs	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzLibrary.lzs	2008-02-13 04:42:34 UTC (rev 8011)
@@ -1,7 +1,7 @@
 /**
   * LzLibrary.as
   *
-  * @copyright Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.
+  * @copyright Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.
   *            Use is subject to license terms.
   *
   * @topic LZX
@@ -19,7 +19,70 @@
   */
 static var tagname = 'import';
 
+/** @access private */
+var loaded = false;
+/** @access private */
+var loading = false;
+/** @access private */
+var sprite = null;
+/** @access private */
+var loader;
+
 /**
+ * A reference to a target file whose content is treated as a 
+ * loadable module.
+ * 
+ * @keywords final
+ * @type string
+ * @access public 
+ */
+var href;
+
+/** 
+ * When set to 'defer', the library will not be loaded until its 
+ * load-method has been called. Otherwise, the library loads 
+ * automatically. 
+ * 
+ * @keywords final
+ * @type string 
+ * @lzxdefault "late"
+ * @access public 
+ */
+var stage = "late";//"late|defer"
+
+/** 
+ * @keywords final
+ * @type inheritableBoolean
+ * @lzxdefault "inherit"
+ * @access public 
+ */
+var proxied = null;
+
+/**
+ * Sent when this library has finished loading. 
+ * 
+ * @lzxtype event
+ * @access public
+ */
+var onload = LzDeclaredEvent;
+
+/**
+ * Sent when the request to load this library times out. 
+ * 
+ * @lzxtype event
+ * @access public
+ */
+var ontimeout = LzDeclaredEvent;
+
+/**
+ * Sent when there is an error loading this library. 
+ * 
+ * @lzxtype event
+ * @access public
+ */
+var onerror = LzDeclaredEvent;
+
+/**
   * @access private
   */
 function construct (parent, args) {
@@ -39,9 +102,9 @@
     }
 }
 
+/** @access private */
+static var libraries = {};
 
-static var libraries = [];
-
 /**
   * @access private
   */
@@ -49,15 +112,18 @@
     return LzLibrary.libraries[libname];
 }
 
-var loaded = false;
-var loading = false;
-
+/**
+  * @access private
+  */
 function toString (){
     return "Library " + this.href + " named " + this.name;
 }
 
 /**
-  * @access private
+  * Loads this library dynamically at runtime. Must only be called 
+  * when stage was set to 'defer'.
+  * 
+  * @access public
   */
 function load (){
   if (this.loading || this.loaded) {
@@ -65,12 +131,13 @@
   }
   this.loading = true;
   this.sprite.makeContainerResource();
-  var loader = this.loader = new LzLibraryLoader(this.sprite);
+  var loader = (this.loader = new LzLibraryLoader(this.sprite));
 
-  var proxied = canvas.proxied;
   // check if this library has a "proxied" attribute which overrides canvas switch
-  if (typeof(this.proxied) != "undefined" && this.proxied != null) {
-      proxied = (this.proxied == true);
+  if (this.proxied != null) {
+      var proxied = (this.proxied == true);
+  } else {
+      var proxied = canvas.proxied;
   }
 
   loader.proxied = proxied;
@@ -78,6 +145,16 @@
   loader.request( this.href );
 }
 
+/** 
+ * Called by LzLibraryCleanup when this library has finished loading.
+ * 
+ * @access private 
+ */
+function loadfinished (){
+  this.loading = false;
+  if (this.onload.ready) this.onload.sendEvent(true);
+}
+
 /**
   * To 'unload' a snippet, three things have to be done:
   * 1. Destroy all the instances that were created by the snippet.
@@ -113,11 +190,9 @@
   }
   this.loader.destroy();
   delete this.loader;
+  
   this.loading = false;
   this.loaded = false;
-  // TODO: [2005-08-31 ptw] Horrible modularity here, but
-  // loader.unload leaves this with a husk
-  delete this.__LZmovieClipRef
 }
 
 /**
@@ -125,6 +200,10 @@
   */
 function destroy () {
     this.unload();
+    if (this.sprite) {
+        this.sprite.destroy();
+        this.sprite = null;
+    }
     super.destroy.apply(this, arguments);
 }
 

Modified: openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzLibraryLoader.lzs
===================================================================
--- openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzLibraryLoader.lzs	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzLibraryLoader.lzs	2008-02-13 04:42:34 UTC (rev 8011)
@@ -38,26 +38,22 @@
 /**
   * @access private
   */
-
-/**
-  * @access private
-  */
 function getLoadMC (){
     return this.mc.lmc;
 }
 
-
-
 /**
   * @access private
   */
 // This is the callback when a library module has finished loading
 function snippetLoaded ( loadmc, err ){
-    Debug.write("snippetLoaded", 'loadmc=', loadmc, this);
+    // our 'owner' is a sprite, and the sprite's owner is the LzLibrary
+    var lib = this.owner.owner;
+    
     LzLoadQueue.loadFinished( loadmc );
     if ( ! loadmc.valid ) {
-        this.owner.loaded = false;
-        this.owner.loading = false;
+        lib.loaded = false;
+        lib.loading = false;
         return;
     }
 
@@ -70,23 +66,20 @@
     // this snippetLoaded method with an error arg.
 
     if ( err != null ){
-      //Debug.write( err );
-        this.owner.loaded = true;
-        this.owner.loading = false;
-        if (this.owner.onerror.ready) this.owner.onerror.sendEvent( err );
+        lib.loaded = true;
+        lib.loading = false;
+        if (lib.onerror.ready) lib.onerror.sendEvent( err );
         return;
     }
 
     if ( loadmc.timedout ){
         this.doTimeOut();
+        if (lib.ontimeout.ready) lib.ontimeout.sendEvent();
     } else {
-        // this.owner.onload.sendEvent( err );
-        this.owner.loaded = true;
+        lib.loaded = true;
     }
 
-    // our 'owner' is a sprite, and the sprite's owner is the LzLibrary
-    var libname = this.owner.owner.name
-    LzInstantiateView({attrs: {libname: libname}, name: "__libraryloadercomplete"}, 1);
+    LzInstantiateView({attrs: {libname: lib.name}, name: "__libraryloadercomplete"}, 1);
     
     // Run the queue to instantiate all pending LzInstantiateView calls.
     canvas.initDone();

Modified: openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzSprite.as
===================================================================
--- openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzSprite.as	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzSprite.as	2008-02-13 04:42:34 UTC (rev 8011)
@@ -744,16 +744,15 @@
   * the coordinate system for all children of this view, so use this method
   * with care.
   * 
-  * @param String xory: If this is defined, set the resource to stretch only in the given axis ("width" or
-  * "height").  Otherwise set the resource to stretch in both axes.
+  * @param String stretch: Set the resource to stretch only in the given axis ("width" or
+  * "height") or in both axes ("both"). 
   */
-LzSprite.prototype.stretchResource = function ( xory ){
-    //TODO: Remove null, x, y options from here when components are moved
-    if ( xory == null || xory == "x" || xory=="width" || xory=="both" ){
+LzSprite.prototype.stretchResource = function ( stretch ){
+    if (stretch == "width" || stretch == "both") {
         this._setrescwidth = true;
     }
 
-    if ( xory == null || xory == "y"|| xory=="height" || xory=="both" ){
+    if (stretch == "height" || stretch == "both") {
         this._setrescheight = true;
     }
 }
@@ -982,6 +981,13 @@
         this.doQueuedDel.unregisterAll();
         delete this.doQueuedDel;
     }
+    
+    if (this._moDel) {
+        this._moDel.unregisterAll();
+        delete this._moDel;
+        this._muDel.unregisterAll();
+        delete this._muDel;
+    }
 
     this.__LZFinishDestroyOnIdle();
 }

Modified: openlaszlo/branches/devildog/WEB-INF/lps/lfc/views/LaszloView.lzs
===================================================================
--- openlaszlo/branches/devildog/WEB-INF/lps/lfc/views/LaszloView.lzs	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/WEB-INF/lps/lfc/views/LaszloView.lzs	2008-02-13 04:42:34 UTC (rev 8011)
@@ -2304,19 +2304,30 @@
   * the coordinate system for all children of this view, so use this method
   * with care.
   * 
-  * @param String xory: If this is defined, set the resource to stretch only in the given axis ("width" or
-  * "height").  Otherwise set the resource to stretch in both axes.
+  * @param String stretch: Set the resource to stretch only in the given axis ("width" or
+  * "height") or in both axes ("both"). 
   */
-function stretchResource ( xory ){
-    this.sprite.stretchResource(xory);
-    //TODO: Remove null, x, y options from here when components are moved
-    if ( xory == null || xory == "x" || xory=="width" || xory=="both" ){
+function stretchResource ( stretch ){
+    if (!(stretch == "none" || stretch == "both" || stretch == "width" || stretch == "height")) {
+        //TODO: Remove null, x, y options from here when components are moved
+        var newstretch = (stretch == null ? "both" : stretch == "x" ? "width" : stretch == "y" ? "height" : "none");
+        if ($debug && newstretch != "none") {
+            Debug.info("%w.%s(%w) is deprecated.  Use %w.%s(%w) instead.",
+                this, arguments.callee, stretch, this, arguments.callee, newstretch);
+        }
+        stretch = newstretch;
+    }
+    
+    this.stretches = stretch;
+    this.sprite.stretchResource(stretch);
+    
+    if (stretch == "width" || stretch == "both") {
         this._setrescwidth = true;
         this.__LZcheckwidth = true;
         this.reevaluateSize( "width" );
     }
 
-    if ( xory == null || xory == "y"|| xory=="height" || xory=="both" ){
+    if (stretch == "height" || stretch == "both") {
         this._setrescheight = true;
         this.__LZcheckheight = true;
         this.reevaluateSize( "height" );

Modified: openlaszlo/branches/devildog/WEB-INF/lps/misc/lzx-autoincludes.properties
===================================================================
--- openlaszlo/branches/devildog/WEB-INF/lps/misc/lzx-autoincludes.properties	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/WEB-INF/lps/misc/lzx-autoincludes.properties	2008-02-13 04:42:34 UTC (rev 8011)
@@ -54,10 +54,6 @@
 chartbgstyle: charts/styles/chartstyle.lzx
 chartstyle: charts/styles/chartstyle.lzx
 checkbox: lz/checkbox.lzx
-colorbox: utils/diagnostic/inspector/inspector.lzx
-colormenu: utils/diagnostic/inspector/colormenu.lzx
-colormenuitem: utils/diagnostic/inspector/colormenu.lzx
-colorspot: utils/diagnostic/inspector/colormenu.lzx
 columnchart: charts/columnchart/columnchart.lzx
 columnchartplotarea: charts/columnchart/columnchartplotarea.lzx
 combobox: lz/combobox.lzx
@@ -102,7 +98,6 @@
 image: base/image.lzx
 inittimer: utils/diagnostic/inittimer.lzx
 inspector: utils/diagnostic/inspector/inspector.lzx
-item: utils/diagnostic/inspector/inspector.lzx
 javarpc: rpc/javarpc.lzx
 label: charts/common/label.lzx
 labelstyle: charts/styles/chartstyle.lzx
@@ -139,7 +134,6 @@
 plainfloatinglist: lz/plainfloatinglist.lzx
 plotstyle: charts/styles/chartstyle.lzx
 pointstyle: charts/styles/chartstyle.lzx
-propedit: utils/diagnostic/inspector/inspector.lzx
 purplestyle: base/defaultstyles.lzx
 radiobutton: lz/radio.lzx
 radiogroup: lz/radio.lzx
@@ -189,7 +183,6 @@
 tickmarklabel: charts/common/tickmarklabel.lzx
 ticks: charts/addon/slider/slider.lzx
 tickstyle: charts/styles/chartstyle.lzx
-toggletext: utils/diagnostic/inspector/inspector.lzx
 tree: lz/tree.lzx
 treeselector: base/treeselector.lzx
 valueline: charts/common/valueline.lzx

Modified: openlaszlo/branches/devildog/WEB-INF/lps/schema/lfc.lzx
===================================================================
--- openlaszlo/branches/devildog/WEB-INF/lps/schema/lfc.lzx	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/WEB-INF/lps/schema/lfc.lzx	2008-02-13 04:42:34 UTC (rev 8011)
@@ -8,7 +8,7 @@
  Note: We are going to have to generate the lzx.dtd, lzx.rng, lzx.xsd, and lzxdoc.rng
  from this file. 
  * P_LZ_COPYRIGHT_BEGIN ******************************************************
- * Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.            *
+ * Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.            *
  * Use is subject to license terms.                                          *
  * P_LZ_COPYRIGHT_END ********************************************************
 -->
@@ -500,7 +500,6 @@
 
 
 <interface name="import" extends="node">
-  <!-- A reference to a target file whose content is treated as a loadable module -->
   <attribute name="href" type="string" />
   <attribute name="stage" type="string" value="late" enum="late|defer" />
   <event name="onload"/>

Modified: openlaszlo/branches/devildog/build.properties
===================================================================
--- openlaszlo/branches/devildog/build.properties	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/build.properties	2008-02-13 04:42:34 UTC (rev 8011)
@@ -3,11 +3,11 @@
 #LPS things
 #
 LPS_NAME = OpenLaszlo
-version.id = 4.1
-version.id.upper = 4.1
+version.id = 4.1.x
+version.id.upper = 4.1.x
 # Set this in a release to the release name
 release = RingDing
-release.id = 4.1 RC
+release.id = 4.1.x Latest
 # Set this in a release to the release build
 # Otherwise an ant task will compute it from svn
 #build.id

Modified: openlaszlo/branches/devildog/demos/amazon/address.lzx
===================================================================
--- openlaszlo/branches/devildog/demos/amazon/address.lzx	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/demos/amazon/address.lzx	2008-02-13 04:42:34 UTC (rev 8011)
@@ -102,7 +102,7 @@
         <view>
             <simplelayout axis="x" spacing="4"/>
             <mouseview resource="ok_butt">
-                <method event="onclick">
+                <handler name="onclick">
                     parent.parent.form.datapath.updateData();
                     if (parent.parent.mode=="new") {
                         var dp=canvas.datasets.dsAddressList.getPointer();
@@ -110,14 +110,14 @@
                         dp.addNodeFromPointer( parent.parent.form.datapath );
                     }
                     parent.parent.done();
-                </method>
+                </handler>
             </mouseview>
             <mouseview resource="cancel_butt" onclick="parent.parent.done();"/>
         </view>
     </class>
 </library>
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.              *
+* Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
 <!-- @LZX_VERSION@                                                         -->

Modified: openlaszlo/branches/devildog/demos/amazon/amazon.lzx
===================================================================
--- openlaszlo/branches/devildog/demos/amazon/amazon.lzx	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/demos/amazon/amazon.lzx	2008-02-13 04:42:34 UTC (rev 8011)
@@ -19,35 +19,35 @@
              src="http://xml.amazon.com/onca/xml3"/>
 
     <datapointer xpath="dsKeyword:/*">
-        <method event="ondata">
+        <handler name="ondata">
             searchLoader.hide();
-        </method>
-        <method event="onerror">
+        </handler>
+        <handler name="onerror">
             searchLoader.hide();
-        </method>
-        <method event="ontimeout">
+        </handler>
+        <handler name="ontimeout">
             Debug.write( "timeout in dataset: dsKeyword" );
             searchLoader.hide();
-        </method>
+        </handler>
     </datapointer>
 
     <!-- dataset to retrieve one item identified by its ASIN (ASIN = Amazon's unique identifier -->
     <dataset name="dsAsin" type="http" request="false" src="http://xml.amazon.com/onca/xml3" />
 
     <datapointer xpath="dsAsin:/*">
-        <method event="ondata">
+        <handler name="ondata">
             recommend.setVisible( false );
             cdinfo.setVisible( true );
             cdinfo.bringToFront();
             infoLoader.hide();
-        </method>
-        <method event="onerror">
+        </handler>
+        <handler name="onerror">
             infoLoader.hide();
-        </method>
-        <method event="ontimeout">
+        </handler>
+        <handler name="ontimeout">
             Debug.write( "timeout in dataset: dsAsin" );
             infoLoader.hide();
-        </method>
+        </handler>
     </datapointer>
 
     <!-- dataset to store cart items -->
@@ -105,9 +105,9 @@
             <view resource="laszlo_powered" x="276" y="13"
                 onmouseover="setResourceNumber(2)"
                 onmouseout="setResourceNumber(1)">
-                <method event="onclick">
+                <handler name="onclick">
                     LzBrowser.loadURL("http://laszlosystems.com", "_blank");
-                </method>
+                </handler>
             </view>
         </view>
 
@@ -136,7 +136,7 @@
                                 <text x="4" font="lztahoe8,Arial,Helvetica" datapath="Artists/Artist[1]/text()" width="${parent.width-6}" resize="false"/>
 
                                 <!-- When one item is clicked, a request is sent to Amazon for deatailed informations about the item -->
-                                <method event="onclick">
+                                <handler name="onclick">
                                     <![CDATA[
                                         var dsAsin=canvas.datasets.dsAsin;
                                         var qsAsin = "t=webservices&dev-t="+canvas.developerToken+"&AsinSearch="+parent.datapath.xpathQuery("Asin/text()")+"&mode=music&type=heavy&page=1&f=xml";
@@ -144,7 +144,7 @@
                                         dsAsin.setQueryString(qsAsin);
                                         dsAsin.doRequest();
                                     ]]>
-                                </method>
+                                </handler>
                             </view>
 
                         </view>
@@ -246,22 +246,22 @@
 
                             <view width="${parent.width}" height="${parent.height-20}"
                                   datapath="Tracks" clip="true">
-                                <method event="ondata">
+                                <handler name="ondata">
                                     var dp = this.datapath.dupePointer();
                                     dp.selectChild();
                                     var numberTracks = countNodesByName( dp, 'Track' );
                                     numberTracks = (numberTracks == 0) ? "-" : numberTracks;
                                     this.parent.setAnnotation( numberTracks );
-                                </method>
+                                </handler>
 
                                 <view y="8" x="8" width="${parent.width}">
                                     <simplelayout axis="y"/>
                                     <!-- Repeated view displaying the list of tracks -->
                                     <view width="${parent.width}">
                                         <attribute name="trackid" type="string" value=""/>
-                                        <method event="onclonenumber" args="n">
+                                        <handler name="onclonenumber" args="n">
                                             this.trackid = n+1 + '.';
-                                        </method>
+                                        </handler>
                                         <datapath xpath="Track" pooling="true" />
                                         <simplelayout axis="x" spacing="4"/>
                                         <text name="tid" label="${parent.trackid}" width="20"/>
@@ -282,12 +282,12 @@
                                         <datapath xpath="Reviews" pooling="true"/>
                                         <simplelayout axis="y" spacing="0"/>
 
-                                        <method event="ondata">
+                                        <handler name="ondata">
                                             var dp = this.datapath.dupePointer();
                                             dp.selectChild();
                                             var numberReviews = countNodesByName( dp, 'CustomerReview' );
                                             this.parent.parent.parent.setAnnotation( numberReviews );
-                                        </method>
+                                        </handler>
 
 
                                         <!-- Repeated view displaying the list of customer review -->
@@ -329,12 +329,12 @@
 
             <mouseview resource="search_butt" y="1" onclick="search()">
                 <inputtext name="searchKey" x="20" y="3" fontsize="11">
-                    <method event="onkeydown" args="k">
+                    <handler name="onkeydown" args="k">
                         if (k==13) {
 Debug.write("Searching");
                             parent.search();
                         }
-                    </method>
+                    </handler>
                 </inputtext>
                 <method name="search">
                     <![CDATA[
@@ -558,7 +558,7 @@
 
 </canvas>
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.              *
+* Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
 <!-- @LZX_VERSION@                                                         -->

Modified: openlaszlo/branches/devildog/demos/amazon/classlib.lzx
===================================================================
--- openlaszlo/branches/devildog/demos/amazon/classlib.lzx	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/demos/amazon/classlib.lzx	2008-02-13 04:42:34 UTC (rev 8011)
@@ -64,7 +64,7 @@
                 onmousedown="setResourceNumber(classroot.opened=='true'?6:3)"
                 onmouseup="setResourceNumber(classroot.opened=='true'?4:1)">
                 <attribute name="resource" value="${classroot.tabresource}"/>
-                <method event="onclick">
+                <handler name="onclick">
                     if (classroot.opened=="true") {
                         classroot.close();
                         classroot.opened="false";
@@ -72,10 +72,10 @@
                         classroot.open();
                         classroot.opened="true";
                     }
-                </method>
+                </handler>
             </view>
             <vtabsliderbutton resource="slider_drag">
-                <method event="onmousedown">
+                <handler name="onmousedown">
                     classroot.xdoffset = this.getMouse("x")
                                            -( (canvas.width
                                                -classroot.getAttributeRelative('x', canvas))
@@ -84,8 +84,8 @@
                     if(classroot.container.content.visible != true){
                         classroot.container.content.setVisible(true);
                     }
-                </method>
-                <method event="onmouseup">
+                </handler>
+                <handler name="onmouseup">
                     if(classroot.opened != true) classroot.opened = 'true';
                     if ( classroot.width == parent.width ) {
                         // User has just closed the tab by dragging the panel
@@ -95,7 +95,7 @@
                     }
                     parent.tabButton.setResourceNumber(classroot.opened=='true'?4:1);
                     classroot.panelDragger.remove();
-                </method>
+                </handler>
 
             </vtabsliderbutton>
         </view>
@@ -221,7 +221,7 @@
     </class>
 </library>
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.              *
+* Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
 <!-- @LZX_VERSION@                                                         -->

Modified: openlaszlo/branches/devildog/demos/amazon/creditcard.lzx
===================================================================
--- openlaszlo/branches/devildog/demos/amazon/creditcard.lzx	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/demos/amazon/creditcard.lzx	2008-02-13 04:42:34 UTC (rev 8011)
@@ -90,7 +90,7 @@
         <view>
             <simplelayout axis="x" spacing="4"/>
             <mouseview resource="ok_butt">
-                <method event="onclick">
+                <handler name="onclick">
                     parent.parent.form.datapath.retrieveData();
                     if (parent.parent.mode=="new") {
                         Debug.write("new");
@@ -99,7 +99,7 @@
                         dp.addNodeFromPointer( parent.parent.form.datapath );
                     }
                     parent.parent.done();
-                </method>
+                </handler>
             </mouseview>
             <mouseview resource="cancel_butt" onclick="parent.parent.done();"/>
         </view>
@@ -107,7 +107,7 @@
 
 </library>
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.              *
+* Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
 <!-- @LZX_VERSION@                                                         -->

Modified: openlaszlo/branches/devildog/demos/calendar/cal-button.lzx
===================================================================
--- openlaszlo/branches/devildog/demos/calendar/cal-button.lzx	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/demos/calendar/cal-button.lzx	2008-02-13 04:42:34 UTC (rev 8011)
@@ -115,9 +115,9 @@
                 <attribute name="text" value="parent.label" when="always" />
             </text>
 
-            <method event="ontext" reference="this.title">
+            <handler name="ontext" reference="this.title">
                 this.update();
-            </method>
+            </handler>
 
             <method name="update" >
                 if (this.keepinitialwidth) {
@@ -198,7 +198,7 @@
         </state>
       
       
-    <method event="oninit" >
+    <handler name="oninit" >
         this.setEnabled(this.enabled);
         this.update();
         
@@ -211,7 +211,7 @@
         // appears like a bug.
         
         this.ocd = new LzDelegate(this,"safeclick");
-   </method>
+   </handler>
 
     <!-- OTHER METHODS -->
     <method name="safeclick" >
@@ -228,7 +228,7 @@
     </method>
 
     <!-- MOUSE EVENTS -->
-    <method event="onmousedown" >
+    <handler name="onmousedown" >
         if ( this.enabled) {
             this.mouseisdown = true;
             this.domousedown();
@@ -236,9 +236,9 @@
             this.bkgnd.mid.setResourceNumber( this.downRsrcNumber );
             this.bkgnd.rgt.setResourceNumber( this.downRsrcNumber );
         }
-    </method>
+    </handler>
 
-    <method event="onmouseup" >
+    <handler name="onmouseup" >
         this.mouseisdown = false;
         if (this.enabled) {
             this.domouseup();
@@ -252,9 +252,9 @@
                 this.bkgnd.rgt.setResourceNumber( this.normalRsrcNumber );
             }
         }
-    </method>
+    </handler>
 
-    <method event="onmouseover" ><![CDATA[
+    <handler name="onmouseover" ><![CDATA[
         if ( this.enabled) {
             this.mouseisover = true;
             if (this.mouseisdown) {
@@ -269,19 +269,19 @@
                 this.bkgnd.rgt.setResourceNumber( this.overRsrcNumber );
             }
         }
-     ]]> </method>
+     ]]> </handler>
 
-    <method event="onmouseout" > <![CDATA[
+    <handler name="onmouseout" > <![CDATA[
         this.mouseisover = false;
         this.domouseup();
         this.bkgnd.lft.setResourceNumber( this.normalRsrcNumber );
         this.bkgnd.mid.setResourceNumber( this.normalRsrcNumber );
         this.bkgnd.rgt.setResourceNumber( this.normalRsrcNumber );
-    ]]> </method>
+    ]]> </handler>
 
-    <method event="onclick" >
+    <handler name="onclick" >
         this.ocd.register(LzIdle,"onidle");
-    </method>
+    </handler>
 
 
 
@@ -293,7 +293,7 @@
 
 </library>
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.              *
+* Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
 <!-- @LZX_VERSION@                                                         -->

Modified: openlaszlo/branches/devildog/demos/calendar/cal-data.lzx
===================================================================
--- openlaszlo/branches/devildog/demos/calendar/cal-data.lzx	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/demos/calendar/cal-data.lzx	2008-02-13 04:42:34 UTC (rev 8011)
@@ -24,10 +24,10 @@
         </method>
 
         <!-- keep going if we get an error -->
-        <method event="onerror">
+        <handler name="onerror">
             this.requestrunning = false;
             this.doNextRequest();
-        </method>
+        </handler>
 
         <method name="loadData" args="mo, yr">
             if( !datatester.hasNode( mo , yr ) ){
@@ -461,7 +461,7 @@
 
 </library>
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.              *
+* Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
 <!-- @LZX_VERSION@                                                         -->

Modified: openlaszlo/branches/devildog/demos/calendar/calendar.lzx
===================================================================
--- openlaszlo/branches/devildog/demos/calendar/calendar.lzx	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/demos/calendar/calendar.lzx	2008-02-13 04:42:34 UTC (rev 8011)
@@ -57,9 +57,9 @@
 
                 <!-- shows the day titles if necessary when the grid stops
                      updating -->
-                <method name="showalldaytitles"
-                        event="onupdatestop"
-                        reference="calgrid.gridlayout"> <![CDATA[
+                <handler name="onupdatestop" method="showalldaytitles" reference="calgrid.gridlayout" />
+                <method name="showalldaytitles">
+                  <![CDATA[
                     if ( calgrid.gridlayout.displaymode != 'cell' ){
                         var svs = this.subviews;
                         for (var i = 0; i < 7; i++) {
@@ -126,13 +126,13 @@
             </text>
             <text name="monthtitle" fontstyle="bold"
                 fgcolor="#FFFFFF" y="10">
-                <method event="ontext">
+                <handler name="ontext">
                     this.setX( Math.round( ( this.parent.width -
                                this.getTextWidth())/2.0) - 2);
                     this.setWidth (this.getTextWidth()+2);
                     this.parent.monthtitleshdw.setWidth (this.getTextWidth()+2);
 
-                </method>
+                </handler>
             </text>
 
             <calButton label="Add Event" x="496" y="5"
@@ -515,14 +515,14 @@
         font="Verdana,sans-serif" />
 
     <!-- Start the ui appearing with a cool animation when the canvas is ready -->
-    <method reference="canvas" event="oninit">
+    <handler reference="canvas" name="oninit">
         slideInTopPanel.doStart(); // make the top panel slide in
         loadingView.destroy();  
-    </method>
+    </handler>
     
 </canvas>
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.              *
+* Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
 <!-- @LZX_VERSION@                                                         -->

Modified: openlaszlo/branches/devildog/demos/calendar/day.lzx
===================================================================
--- openlaszlo/branches/devildog/demos/calendar/day.lzx	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/demos/calendar/day.lzx	2008-02-13 04:42:34 UTC (rev 8011)
@@ -192,9 +192,9 @@
 
         </method>
 
-        <method event="onclick" >
+        <handler name="onclick" >
             calgrid.openday(this);
-        </method>
+        </handler>
 
         <method name="hilite" args="dohilite, dontupdate">
             if (dohilite) {
@@ -219,21 +219,21 @@
             return "calendar_day "+d.getFullYear()+"."+(d.getMonth()+1)+"."+d.getDate();
         </method>
 
-        <method event="onopenstart" >
+        <handler name="onopenstart" >
            //Debug.write('called onopenstart on day = ' + this.tostring());
            this.setAttribute( 'opened' , true);
-        </method>
+        </handler>
 
-        <method event="onclosestart" >
+        <handler name="onclosestart" >
            //Debug.write('called onclosestart on day = ' + this.tostring());
            this.setAttribute( 'opened' , false);
-        </method>
+        </handler>
 
     </class>
 
 </library>
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.              *
+* Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
 <!-- @LZX_VERSION@                                                         -->

Modified: openlaszlo/branches/devildog/demos/calendar/event.lzx
===================================================================
--- openlaszlo/branches/devildog/demos/calendar/event.lzx	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/demos/calendar/event.lzx	2008-02-13 04:42:34 UTC (rev 8011)
@@ -53,14 +53,14 @@
         <attribute name="endTime" 
                    value="${this.endHour * 60 + Number( this.endMin )}"/>
 
-        <method event="ondata">
+        <handler name="ondata">
           var dts =  this.defaultTimes;
           for (var f in dts) {
             if (! this[f]) {
               this.setAttribute(f, dts[f]);
             }
           }
-        </method>
+        </handler>
 
         <!-- VIEWS -->
         <view name="tl" bgcolor="#FFFFFF"
@@ -133,25 +133,25 @@
         </state>
 
         <!-- METHODS -->
-        <method event="onmouseover">
+        <handler name="onmouseover">
             this.setBGColor( this.hiColor );
-        </method>
+        </handler>
 
-        <method event="onmouseout">
+        <handler name="onmouseout">
             this.setBGColor( this.normalColor );
-        </method>
+        </handler>
 
-        <method event="onmousedown">
+        <handler name="onmousedown">
             this.mouseIsDown = true;
             //The next line seems redundant.  See: eventselector.lzx
             //calgrid.daySelectionMgr.select(this.classroot);
             eventselector.selectData( this );
-        </method>
+        </handler>
 
-        <method event="onmouseup">
+        <handler name="onmouseup">
             this.mouseIsDown = false;
             eventselector.domouseup();
-        </method>
+        </handler>
 
     </class>
 
@@ -201,7 +201,7 @@
 
 </library>
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.              *
+* Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
 <!-- @LZX_VERSION@                                                         -->

Modified: openlaszlo/branches/devildog/demos/calendar/eventselector.lzx
===================================================================
--- openlaszlo/branches/devildog/demos/calendar/eventselector.lzx	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/demos/calendar/eventselector.lzx	2008-02-13 04:42:34 UTC (rev 8011)
@@ -27,7 +27,7 @@
             <text name="timeArea" fgcolor="#4B5D6C"
                   datapath="start[1]" y="5" x="2" resize="true">
                   <attribute name="hour" value="$path{'@hour'}"/>
-                <method event="onhour">
+                <handler name="onhour">
                     <![CDATA[
                     if ( this.hour == null ) return;
                     h = Number( this.hour );
@@ -36,7 +36,7 @@
                     else if ( h==0 ) h='12';
                     this.setText( h + ap );
                     ]]>
-                </method>
+                </handler>
             </text>
 
             <view width="${parent.width}" height="${parent.height}" clip="true">
@@ -92,14 +92,14 @@
         <datapath p="${currenteventDP.p}"/>
 
         <!-- METHODS -->
-        <method event="oninit">
+        <handler name="oninit">
             //Debug.write("ONINIT: this =" + this);
             this.mdel = new LzDelegate(this,"trackmouse");
             this.clipdel = new LzDelegate(this,"checkClip");
             this.hidedel = new LzDelegate(this,"checkHide");
             this.startDragDel = new LzDelegate(this,"startDrag");
             //Debug.write("event selector.oninit");
-        </method>
+        </handler>
 
         <method name="hide">
             bar.setVisible(false);
@@ -204,7 +204,7 @@
             bar.gripper.button.bkgnd.setColorTransform(transColor);
         </method>
 
-        <method event="onfreedragging"><![CDATA[
+        <handler name="onfreedragging"><![CDATA[
             if ( !this.clipping && !this.freedragging ){
                 this.clipping = true;
 
@@ -217,7 +217,7 @@
                 this.setAttribute('y', this.getAttributeRelative('y', calgrid) );                
                 this.setAttribute( 'height' , calgrid.height);
             }]]>
-        </method>
+        </handler>
 
         <method name="checkClip"><![CDATA[
             if ( followview.classroot.opened && this.freedragging ){
@@ -231,13 +231,14 @@
             }]]>
         </method>
 
-        <method event="ondblclick">
+        <handler name="ondblclick">
             //Debug.write("eventselector doubleclick");
             infopanel.open();
             // OLD  cal_interior.showInfo(smallevent.event);
-        </method>
+        </handler>
 
-        <method name="domousedown" event="onmousedown">   <![CDATA[
+        <handler name="onmousedown" method="domousedown"/>
+        <method name="domousedown"><![CDATA[
             //wait 150ms before starting drag; prevents moving the 
             //event selector on a click -- 150ms is empirical
             this.origx = bar.x;
@@ -257,7 +258,8 @@
             calgrid.gridlayout.startTrack(); ]]>
         </method>
 
-        <method name="domouseup" event="onmouseup">   <![CDATA[
+        <handler name="onmouseup" method="domouseup"/>
+        <method name="domouseup"><![CDATA[
             if ( this.dragging ){
                 this.mdel.unregisterAll( );
                 this.setAttribute('dragging',false);
@@ -383,14 +385,14 @@
 
 
         <!-- MOUSEEVENT METHODS-->
-        <method event="onmousedown" >
+        <handler name="onmousedown" >
             this.mouseisdown = true;
             this.bkgnd.button.setResourceNumber( this.downRsrcNumber );
             this.i.setX(1);
             this.i.setY(1);
-        </method>
+        </handler>
 
-        <method event="onmouseup" >
+        <handler name="onmouseup" >
             this.mouseisdown = false;
             if (this.mouseisover) {
                 this.bkgnd.button.setResourceNumber( this.overRsrcNumber );
@@ -399,9 +401,9 @@
             }
             this.i.setX(0);
             this.i.setY(0);
-        </method>
+        </handler>
 
-        <method event="onmouseover" ><![CDATA[
+        <handler name="onmouseover" ><![CDATA[
             this.mouseisover = true;
             if (this.mouseisdown) {
                 this.bkgnd.button.setResourceNumber( this.downRsrcNumber );
@@ -413,20 +415,20 @@
                 this.i.setY(0);
             }
 
-         ]]> </method>
+         ]]> </handler>
 
-        <method event="onmouseout" > <![CDATA[
+        <handler name="onmouseout" > <![CDATA[
             this.mouseisover = false;
             this.bkgnd.button.setResourceNumber( this.normalRsrcNumber );
             this.i.setX(0);
             this.i.setY(0);
-        ]]> </method>
+        ]]> </handler>
 
    </class>
 
 </library>
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.              *
+* Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
 <!-- @LZX_VERSION@                                                         -->

Modified: openlaszlo/branches/devildog/demos/calendar/gridsliderlayout.lzx
===================================================================
--- openlaszlo/branches/devildog/demos/calendar/gridsliderlayout.lzx	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/demos/calendar/gridsliderlayout.lzx	2008-02-13 04:42:34 UTC (rev 8011)
@@ -48,12 +48,12 @@
     <attribute name="addedOpenHeight" value="170" />
 
 
-    <method event="oninit" > <![CDATA[
+    <handler name="oninit" > <![CDATA[
         // Create delegates used by the update method.
         this.updateDelegate.register( immediateparent,  "onwidth");
         this.updateDelegate.register( immediateparent,  "onheight");
         this.resetvisDL = new LzDelegate(this,'resetVisibility');
-    ]]> </method>
+    ]]> </handler>
 
     <!-- METHOD: addSubview -->
     <!-- As subviews are added to this layout store their row and col.
@@ -497,7 +497,7 @@
 </class>
 </library>
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.              *
+* Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
 <!-- @LZX_VERSION@                                                         -->

Modified: openlaszlo/branches/devildog/demos/calendar/infopanel.lzx
===================================================================
--- openlaszlo/branches/devildog/demos/calendar/infopanel.lzx	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/demos/calendar/infopanel.lzx	2008-02-13 04:42:34 UTC (rev 8011)
@@ -42,25 +42,25 @@
             <resizelayout axis="y"/>
             
         <!-- METHODS -->
-        <method event="onopenstart" >
+        <handler name="onopenstart" >
             // tab is about to open
             this.interior.setVisible(true);
             this.top.setBGColor(0xE2E4DF);
             this.top.tline.setBGColor(0xB8B9B5)
             this.top.bline.setBGColor(0xFDFFFF)
-        </method>
+        </handler>
 
-        <method event="onclosestart" >
+        <handler name="onclosestart" >
             //tab is about to close
             this.top.setBGColor(0xEEF0EB);
             this.top.tline.setBGColor(0xFDFFFF)
             this.top.bline.setBGColor(0xC6C7C4)
-        </method>
+        </handler>
 
-        <method event="onclosestop" >
+        <handler name="onclosestop" >
             //tab is closed
             this.interior.setVisible(false);
-        </method>
+        </handler>
 
         <method name="toggle">
             // ugh - tabslider doesn't support closing tabs yet
@@ -102,7 +102,7 @@
                         </method>
                     </textbox>
                     <basebutton x="149" width="14" resource="info_larrow">
-                        <method event="onclick">
+                        <handler name="onclick">
                             calgrid.keepinfoopen = true;
                             var thiscell = calgrid.open_day.id;
                             thiscell = Number(thiscell.substr(4));
@@ -121,10 +121,10 @@
                                 calgrid.showweekview();
                             }
                             calgrid.keepinfoopen = false;
-                        </method>
+                        </handler>
                     </basebutton>
                     <basebutton x="163" width="14" resource="info_rarrow">
-                        <method event="onclick">
+                        <handler name="onclick">
                             calgrid.keepinfoopen = true;
                             var thiscell = calgrid.open_day.id;
                             thiscell = Number(thiscell.substr(4));
@@ -149,7 +149,7 @@
                                 calgrid.showweekview();
                             }
                             calgrid.keepinfoopen = false;
-                        </method>
+                        </handler>
                     </basebutton>
                             
                 </view>
@@ -264,12 +264,12 @@
                 bgcolor="0xFDFFFF"/>
 
             <calButton label="Apply" x="15" y="13">
-                <method event="onclick">
+                <handler name="onclick">
                     eventDataMgr.changeTitle(sitbox.getText());
                     eventDataMgr.changeNotes(classroot.tabs.notes.txt.getText());
                     eventDataMgr.changeLocation(classroot.tabs.location.txt.getText());
                     eventDataMgr.changeAttendees(classroot.tabs.attendees.txt.getText());
-                </method>
+                </handler>
             </calButton>
                 
             <calButton label="Delete" x="${parent.width - width - 15}" y="13"
@@ -295,10 +295,10 @@
 
         <!-- METHODS -->
 
-        <method event="oninit">
+        <handler name="oninit">
             this.setWindowTitle( "Event Info" );
             this.closeDel = new LzDelegate( this , "close" );
-        </method>
+        </handler>
         
         <method name="open">
             this.completeInstantiation();
@@ -346,7 +346,7 @@
     </class>
 </library>
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.              *
+* Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
 <!-- @LZX_VERSION@                                                         -->

Modified: openlaszlo/branches/devildog/demos/calendar/selected-daylook.lzx
===================================================================
--- openlaszlo/branches/devildog/demos/calendar/selected-daylook.lzx	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/demos/calendar/selected-daylook.lzx	2008-02-13 04:42:34 UTC (rev 8011)
@@ -12,7 +12,7 @@
                     width="${parent.width - 22}" x="5"/>
                 <multistatebutton name="r" resource="tpRgt_multi" maxstate="1" statelength="3"
                     x="${parent.m.x + parent.m.width - 1}" y="-1">
-                    <method event="onclick">
+                    <handler name="onclick">
                         if (this.statenum ==0){
                             calgrid.openday(classroot.dayview,true)
                         }else{
@@ -23,7 +23,7 @@
                                 calgrid.showmonthview();
                             } else calgrid.gridlayout.setopenview(null,true);
                         }
-                    </method>
+                    </handler>
                 </multistatebutton>
             </view>
             <text name="day" fgcolor="#DAE3E8"
@@ -106,7 +106,7 @@
     </class>
 </library>
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.              *
+* Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
 <!-- @LZX_VERSION@                                                         -->

Modified: openlaszlo/branches/devildog/demos/calendar/textbox.lzx
===================================================================
--- openlaszlo/branches/devildog/demos/calendar/textbox.lzx	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/demos/calendar/textbox.lzx	2008-02-13 04:42:34 UTC (rev 8011)
@@ -32,21 +32,21 @@
              active="false"/>
     -->                      
     
-    <method event="onfocus">
+    <handler name="onfocus">
         // [bshine 9.28.06] TODO legals does not support LzCommand // myenter.setAttribute( "active" ,true );
-    </method>
+    </handler>
 
-    <method event="onblur">
+    <handler name="onblur">
         this.datapath.updateData();
         // [bshine 9.28.06] TODO legals does not support LzCommand //myenter.setAttribute( "active" ,false );
-    </method>
+    </handler>
     
 </class>
 
 </library>
 
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2006 Laszlo Systems, Inc.  All Rights Reserved.              *
+* Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
 <!-- @LZX_VERSION@                                                         -->

Modified: openlaszlo/branches/devildog/demos/calendar/vscrollbar.lzx
===================================================================
--- openlaszlo/branches/devildog/demos/calendar/vscrollbar.lzx	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/demos/calendar/vscrollbar.lzx	2008-02-13 04:42:34 UTC (rev 8011)
@@ -20,16 +20,16 @@
 <class name="basevscrollbar">
     <attribute name="targetview" when="always"/>
     <attribute name="stepsize" value="10"/>
-    <method event="oninit">
+    <handler name="oninit">
         this.initcomplete = true;
         this.onheight.sendEvent();
-    </method>
-    <method event="onheight" reference="this.targetview">
+    </handler>
+    <handler name="onheight" reference="this.targetview">
         if (this.initcomplete) {
           this.thumb.updateHeight();
         }
-    </method>
-    <method event="onheight">
+    </handler>
+    <handler name="onheight">
     <![CDATA[
        if (this['initcomplete']) {
             // should hide thumb if the target view is smaller than the scrollbar
@@ -49,7 +49,7 @@
             }
         }
     ]]>
-    </method>
+    </handler>
 
     <!-- set the targetView position                                    -->
     <!-- change: change in position, note: positive number scrolls down -->
@@ -100,12 +100,12 @@
     <!-- up arrow -->
     <view name="toparrow">
         <basebuttonrepeater x="1" y="1" resource="ScrollButton_rsc" >
-            <method event="onmousedown">
+            <handler name="onmousedown">
                 classroot.step(-1);
-            </method>
-            <method event="onmousestilldown">
+            </handler>
+            <handler name="onmousestilldown">
                 classroot.step(-1);
-            </method>
+            </handler>
         </basebuttonrepeater>
         <view x="4" y="3" resource="ScrollArrowUp_rsc"/>
     </view>
@@ -116,7 +116,7 @@
             <!-- top of the scroll track -->
             <attribute name="height" value="parent.height" when="always"/>
             <attribute name="width" value="parent.width" when="always"/>
-            <method event="onmousedown">
+            <handler name="onmousedown">
             <![CDATA[
                 if (this.parent.getMouse( 'y' ) < parent.thumb.y) {
                     classroot.page(-1);
@@ -124,23 +124,23 @@
                     classroot.page(1);
                 }
             ]]>
-            </method>
+            </handler>
         </view>
 
          <view x="1" name="thumb" id="th"  
             onmousedown="thumbdrag.apply();" onmouseup="thumbdrag.remove()">
             <attribute name="inthumbdrag" value="false"/>
-            <method event="oninit">
+            <handler name="oninit">
                 classroot.thumb = this;
-            </method>
+            </handler>
 
-             <method event="ony" reference="classroot.targetview">
+             <handler name="ony" reference="classroot.targetview">
                 // when the y position of the target view changes then update
                 //  the thumb position, unless the thumb causes the change
                  if (!this.inthumbdrag) {
                     this.updateY();
                  }
-             </method>
+             </handler>
 
              <method name="updateY">
                if (classroot.targetview) {
@@ -206,21 +206,21 @@
             <attribute name="y" value="parent.thumb.y+parent.thumb.height" when="always"/>
             <attribute name="height" value= "parent.height - parent.thumb.y" when="always"/>
             <attribute name="width" value="parent.width" when="always"/>
-            <method event="onmousedown">
+            <handler name="onmousedown">
                 classroot.page(1);
-            </method>
+            </handler>
         </view-->
     </view>
 
     <!-- down arrow -->
     <view name="bottomarrow" height="13">
         <basebuttonrepeater x="1" resource="ScrollButton_rsc">
-            <method event="onmousedown">
+            <handler name="onmousedown">
                 classroot.step(1);
-            </method>
-            <method event="onmousestilldown">
+            </handler>
+            <handler name="onmousestilldown">
                 classroot.step(1);
-            </method>
+            </handler>
         </basebuttonrepeater>
         <view x="4" y="3" resource="ScrollArrowDown_rsc" />
     </view>
@@ -232,7 +232,7 @@
 
 </library>
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.              *
+* Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
 <!-- @LZX_VERSION@                                                         -->

Modified: openlaszlo/branches/devildog/docs/index.html
===================================================================
--- openlaszlo/branches/devildog/docs/index.html	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/docs/index.html	2008-02-13 04:42:34 UTC (rev 8011)
@@ -44,18 +44,19 @@
 An Overview of the OpenLaszlo Component Set for User Interface Designers.
 </li>
 
-<li>
+<!-- <li>
 <b><a href="./indexapa.html">Master Index</a></b><br />
 A complete index covering the Developer and Adminstrator's Guides as well as the OpenLaszlo Reference.
-</li>
+</li> 
+-->
 
 </ul>
 
-<p>If you cannot find answers here, please ask your question on the <a href="http://www.openlaszlo.org/community">forums</a>. Comments on the documents themselves can be posted to the forums as well, or filed in the OpenLaszlo <a href="http://www.openlaszlo.org/jira">bug database</a>.  </p>
+<p>If you cannot find answers here, please ask your question on the <a href="http://forum.openlaszlo.org/">forums</a>. Comments on the documents themselves can be posted to the forums as well, or filed in the OpenLaszlo <a href="http://www.openlaszlo.org/jira">bug database</a>.  </p>
 
 
 <!-- * H_LZ_COPYRIGHT_BEGIN *********************************************** -->
-<p class="copyright">Copyright &copy; 2002-2007 <a target="_top"
+<p class="copyright">Copyright &copy; 2002-2008 <a target="_top"
 href="http://www.laszlosystems.com/">Laszlo Systems, Inc.</a>
 All Rights Reserved. Unauthorized use, duplication or
 distribution is strictly prohibited. This is the proprietary

Modified: openlaszlo/branches/devildog/docs/src/developers/doc-backwards-xform.dbk
===================================================================
--- openlaszlo/branches/devildog/docs/src/developers/doc-backwards-xform.dbk	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/docs/src/developers/doc-backwards-xform.dbk	2008-02-13 04:42:34 UTC (rev 8011)
@@ -5,16 +5,16 @@
   * Use is subject to license terms.                                            *
   * X_LZ_COPYRIGHT_END ****************************************************** -->
 
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter language="en" id="doc-backwards">
+<chapter id="doc-backwards">
   <title>The Backwards Transformation: From Reference Page to Source</title>
   <para>In this chapter, we will show where several elements on the end product reference page
   can be traced back to their origins in the sources. </para>
-  <note>At this point we strongly, strongly encourage the reader 
+  <note><para>At this point we strongly, strongly encourage the reader 
     to undergo an investigation of XPath 1.0 and to find an XML editor which is capable of doing live
     XPath queries. (Oxygen XML Editor works.) Then, <emphasis>actually run some queries on a js2doc dataset</emphasis>.
-    Without this exercise, the remainder of this chapter will be utter gobbledygook. 
+    Without this exercise, the remainder of this chapter will be utter gobbledygook.</para> 
   </note>
   
   <section><title>Page Header</title>
@@ -182,7 +182,7 @@
         &lt;xsl:variable name=&quot;svars&quot; select=&quot;&amp;objectvalue;/property[@name=&apos;setters&apos;]/object/property[&amp;isvisible;]&quot;/&gt;
       </programlisting>
       The value of these variables is a result tree fragment; it's not just the name of the variables. This becomes important when we descend into the <literal>describe-members</literal> template.</para>
-    <note>Review the table in <xref linkend="LFC-to-js2doc"/> to get a feel for why these XPath's return the desired result sets.</note>
+    <note><para>Review the table in <xref linkend="LFC-to-js2doc"/> to get a feel for why these XPath's return the desired result sets.</para></note>
     <para>This all ends up down in the <literal>member-data-row</literal> template in js2doc2dbk.xsl, which fill in columns K, L, M, N, and O in the diagram above. Turn to LzText.lzs, to find where these variables were declared:</para>
     <informalexample><programlisting>
       /**  
@@ -243,7 +243,7 @@
       </programlisting></informalexample>
     </para>      
     
-    To carry this reasoning all the way back to the javascript code definining the method, in <literal>WEB-INF/lps/lfc/views/LzText.lzs</literal>:
+    <para>To carry this reasoning all the way back to the javascript code definining the method, in <literal>WEB-INF/lps/lfc/views/LzText.lzs</literal>:</para>
     <programlisting>
       <emphasis>/**</emphasis>
       * Formatted output.

Modified: openlaszlo/branches/devildog/docs/src/developers/doc-toolchain.dbk
===================================================================
--- openlaszlo/branches/devildog/docs/src/developers/doc-toolchain.dbk	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/docs/src/developers/doc-toolchain.dbk	2008-02-13 04:42:34 UTC (rev 8011)
@@ -5,9 +5,9 @@
   * Use is subject to license terms.                                            *
   * X_LZ_COPYRIGHT_END ****************************************************** -->
 
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter language="en" id="doc-toolchain">
+<chapter id="doc-toolchain">
 
   <title>The Documentation Toolchain</title>
   <para>The documentation for OpenLaszlo, including this chapter of the developer's guide, is built
@@ -30,37 +30,37 @@
   <variablelist id="doctools-vocabulary">
     <varlistentry>
       <term>js2doc</term>
-      <listitem>Think of this as the xml schema to describe JavaScript 2. The '2' in the term
+      <listitem><para>Think of this as the xml schema to describe JavaScript 2. The '2' in the term
           <literal>js2doc</literal> refers to the version of javascript, not to a transformation.
         "js2doc files" refers to a collection of xml files which follow the js2doc
-      schema.</listitem>
+      schema.</para></listitem>
     </varlistentry>
     <varlistentry>
       <term>LFC</term>
-      <listitem>Laszlo Foundation Classes. For the purposes of the documentation toolchain, the LFC
-        consists of classes which are written in JavaScript.</listitem>
+      <listitem><para>Laszlo Foundation Classes. For the purposes of the documentation toolchain, the LFC
+        consists of classes which are written in JavaScript.</para></listitem>
     </varlistentry>
     <varlistentry>
       <term>Developer's Guide</term>
-      <listitem>The Developer's Guide, which you are reading, is a text about developing with
+      <listitem><para>The Developer's Guide, which you are reading, is a text about developing with
         OpenLaszlo. It is mostly written as sentences and paragraphs by human technical writers. The
         developer's guide is where one would look when trying to figure out how to improve startup
-        performance, how to debug a live application, or why to choose a SOLO deployment.</listitem>
+        performance, how to debug a live application, or why to choose a SOLO deployment.</para></listitem>
     </varlistentry>
     <varlistentry>
       <term>Reference Guide</term>
-      <listitem>The Reference Guide is a detailed reference manual of all of the public API's in
+      <listitem><para>The Reference Guide is a detailed reference manual of all of the public API's in
         OpenLaszlo. It is where one would look to find out what methods are available on
-          <literal>drawview</literal>, or what events a <literal>button</literal> might
-      generate.</listitem>
+        <literal>drawview</literal>, or what events a <literal>button</literal> might
+        generate.</para></listitem>
     </varlistentry>
     <varlistentry>
       <term>doc-comment</term>
-      <listitem>The term doc-comment is shorthand to refer to to a special comment in a source file
-        whose purpose is to document the nearby code. </listitem>
+      <listitem><para>The term doc-comment is shorthand to refer to a special comment in a source file
+        whose purpose is to document the nearby code.</para> </listitem>
     </varlistentry>
   </variablelist>
-
+  
   <para>With those definitions in mind, let's look at a simplified version of the rather
     intimidating diagram above: <informalfigure>
       <mediaobject>
@@ -70,17 +70,17 @@
       </mediaobject>
     </informalfigure>Much better: two rows, unified in one final step. The top row is how we build
     the reference. The bottom row is how we build the developer's guide. The final transformation,
-    labeled docbook processing, turns intermediate files into the output html that you are probably
+    labeled DocBook processing, turns intermediate files into the output html that you are probably
     reading right now. </para>
   
   <section id="figuring-things-out"><title>Figuring things out</title>
-    <para>The docbook toolchain is long and complicated, and the builds take upwards of ten minutes, as much as 40 minutes for a complete build. Do not allow this slow debug-edit-compile loop to dictate the pace of your progress! This author found that it was very effective to work on well-formed subsets of the data, and transform those subsets through a driver stylesheet containing only the templates of interest. With this technique, a debug-edit-compile iteration can take seconds, not hours. The source code includes a simple driver, aptly named <literal>docs/src/xsl/simple-driver.xsl</literal>, which is currently configured to investigate methods of <literal>LzBrowser</literal> when applied to <literal>LaszloLibrary-verbose.js2doc</literal>.</para>
-    <para>A simpler way of figuring things out is just to run XPath queries against <literal>LaszloLibrary-verbose.js2doc</literal> Various XML editors support live XPath queries, including <ulink linkend="http://www.oxygenxml.com/">Oxygen XML Editor</ulink></para>
+    <para>The DocBook toolchain is long and complicated, and the builds take upwards of ten minutes, as much as 40 minutes for a complete build. Do not allow this slow debug-edit-compile loop to dictate the pace of your progress! This author found that it was very effective to work on well-formed subsets of the data, and transform those subsets through a driver stylesheet containing only the templates of interest. With this technique, a debug-edit-compile iteration can take seconds, not hours. The source code includes a simple driver, aptly named <literal>docs/src/xsl/simple-driver.xsl</literal>, which is currently configured to investigate methods of <literal>LzBrowser</literal> when applied to <literal>LaszloLibrary-verbose.js2doc</literal>.</para>
+    <para>A simpler way of figuring things out is just to run XPath queries against <literal>LaszloLibrary-verbose.js2doc</literal> Various XML editors support live XPath queries, including <ulink url="http://www.oxygenxml.com/">Oxygen XML Editor</ulink></para>
   </section>  
   
   <section id="docbook-is-central">
     <title>DocBook is the Center of the Documentation Toolchain</title>
-    <para>Another way to understand the documentation toolchain centers on docbook. Various processes create docbook files, then a giant XSL transformation convertse those docbook files into output HTML. This diagram shows the whole process from this point of view: 
+    <para>Another way to understand the documentation toolchain centers on DocBook. Various processes create DocBook files, then a giant XSL transformation converts those DocBook files into output HTML. This diagram shows the whole process from this point of view: 
       <informalfigure>
         <mediaobject>
           <imageobject>
@@ -88,7 +88,7 @@
           </imageobject>
         </mediaobject>
       </informalfigure>
-    The rest of this document is structured like the image above: first we describe how to get to docbook files for the reference, then for the developer's guide; then we describe how to generate HTML output from the docbook files. Finally, we'll consider the "backwards" transformation, tracing elements in an output page of the reference back to their origins in comments.</para>
+    The rest of this document is structured like the image above: first we describe how to get to DocBook files for the reference, then for the developer's guide; then we describe how to generate HTML output from the DocBook files. Finally, we'll consider the "backwards" transformation, tracing elements in an output page of the reference back to their origins in comments.</para>
   </section>
 
   <section id="reference-toolchain-source-to-doc">
@@ -99,7 +99,7 @@
       field of view while he's editing the code.) This section will walk you through the processes
       which discover the documentation in various source materials, to an intermediate XML format
       which we call "js2doc", to the end project: the HTML reference manual.</para>
-    <para>The OpenLaszlo platform is heterogenous, so our reference toolchain must accept several
+    <para>The OpenLaszlo platform is heterogeneous, so our reference toolchain must accept several
       types of source as input: a basic language definition, JavaScript sources that implement the
       Laszlo Foundation Classes, and lzx sources that implement the lion's share of the application
       development classes. (For the purposes of this document, we'll ignore the Java API's for the
@@ -193,13 +193,13 @@
               &lt;/class&gt;
             &lt;/property&gt;            
       </programlisting>
-      Later in this document, we'll see how this js2doc intermediate fragment becomes the reference
-      page for the method tag. </section>
+      <para>Later in this document, we'll see how this js2doc intermediate fragment becomes the reference
+        page for the method tag.</para></section>
 
     <section id="LFC-to-js2doc">
       <title>JavaScript to js2doc</title>
       <para>The LFC (Laszlo Foundation Classes) are written in JavaScript, and their documentation
-        is inline with their implementation. <xref linkend="LzView">LzView</xref> is an example of
+        is inline with their implementation. <xref linkend="LzView" /> is an example of
         an LFC class. In javascript, comments are indicated with the javadoc-style comment,
         beginning with a slash followed by two asterisks. Here's an example, from LaszloView.lzs
           (<literal>$LPS_HOME/WEB-INF/lps/lfc/views/LaszloView.lzs</literal>):</para>
@@ -321,11 +321,11 @@
         lzx code. lzx is the language in which all of the components are described, all of the
         extensions, all of the utilities, and so forth. When you think about developing an
         OpenLaszlo application, you are probably thinking about writing lzx code. </para>
-      <para>The source for <xref linkend="lz.basewindow">basewindow</xref>
+      <para>The source for <xref linkend="lz.basewindow" />
           (<literal>lps/components/base/basewindow.lzx</literal>) is a typical lzx file for which
         the doctools generate documentation. In an lzx file, documentation comments are set apart by
         beginning an XML comment with three hyphens, instead of the customary two. <xref
-          linkend="js2doc-reference"/> describes the available annotations within a doc comment in
+          linkend="js2doc-reference" /> describes the available annotations within a doc comment in
         lzx.</para>
       <programlisting>&lt;!--- Brings the window to front when it has the
 windowfocus and sets the 'state' to 2, the selected state.
@@ -364,7 +364,7 @@
 
     <section id="js2doc2dbk">
       <title>Turning the API into the Reference: js2doc2dbk</title>
-      <para>So far, we've seen how the js2doc intermediate form is generated from various source files. The next step in the transformation is to build a docbook representation of the reference material. Let's look at the detailed diagram for this transformation:
+      <para>So far, we've seen how the js2doc intermediate form is generated from various source files. The next step in the transformation is to build a DocBook representation of the reference material. Let's look at the detailed diagram for this transformation:
         <informalfigure>
           <mediaobject>
             <imageobject>
@@ -374,15 +374,17 @@
         </informalfigure>That looks simple and straightforward, with just one path through the transformation. Actually, this transformation is the most complicated part of the documentation toolchain. The complexity is all located within the js2doc2dbk XSL transformation.</para>
       <para>Consider this step abstractly: <emphasis>From a large, structured set of information, construct another large, structured set of information.</emphasis> The linear order in which XSL transformations execute isn't really important, but it helps to think of this transformation procedurally. (XSL's functional programming style can be very intimidating; it helps to trace it through as if it were procedural.) </para>
       <orderedlist>
-        <listitem>For each section of the reference, create a docbook file to contain the reference docbook content for that section.  (Sections are listed in <literal>docs/src/reference/index.dbk</literal>, and the section docbook files are generated in <literal>docs/src/build/reference/[lfcref.dbk|lzxref.dbk|compref.dbk|...]</literal>.)      
+        <listitem><para>For each section of the reference, create a DocBook file to contain the reference DocBook content for that section.  
+          (Sections are listed in <literal>docs/src/reference/index.dbk</literal>, and the section DocBook files are generated in 
+          <literal>docs/src/build/reference/[lfcref.dbk|lzxref.dbk|compref.dbk|...]</literal>.)</para>      
           <orderedlist>
-            <listitem>Identify the pages in that section.</listitem>
-            <listitem>For each page in the reference:
+            <listitem><para>Identify the pages in that section.</para></listitem>
+            <listitem><para>For each page in the reference:</para>
               <orderedlist>
-                <listitem>Describe the class by name, inheritance chain, and introductory text.</listitem>
-                <listitem>List all of the attributes for that class. Also list all of the inherited attributes for that class.</listitem>
-                <listitem>List all of the methods for that class. Also list all of the inherited methods for that class.</listitem>
-                <listitem>List all of the events for that class. Also list all of the inherited events for that class.</listitem>            
+                <listitem><para>Describe the class by name, inheritance chain, and introductory text.</para></listitem>
+                <listitem><para>List all of the attributes for that class. Also list all of the inherited attributes for that class.</para></listitem>
+                <listitem><para>List all of the methods for that class. Also list all of the inherited methods for that class.</para></listitem>
+                <listitem><para>List all of the events for that class. Also list all of the inherited events for that class.</para></listitem>            
               </orderedlist>          
             </listitem>
           </orderedlist>
@@ -401,8 +403,8 @@
         </section>
         <section id="utility-stylesheets"><title>Utility Stylesheets and Templates in js2doc2dbk</title>
           <itemizedlist>
-            <listitem>docs/src/xsl/js2doc2dbk/synopsis.xsl</listitem>
-            <listitem>docs/src/xsl/js2doc2dbk/utilities.xsl</listitem>          
+            <listitem><para>docs/src/xsl/js2doc2dbk/synopsis.xsl</para></listitem>
+            <listitem><para>docs/src/xsl/js2doc2dbk/utilities.xsl</para></listitem>          
           </itemizedlist>
           
         </section>
@@ -411,30 +413,34 @@
         </section>
         <section id="js2doc2dbk-params"><title>Parameters for controlling the js2doc2dbk transformation</title>
           <itemizedlist>
-            <listitem>generating warnings, errors, fixme's</listitem>
+            <listitem><para>generating warnings, errors, fixme's</para></listitem>
           </itemizedlist>        
         </section>
-        <section id="js2doc2dbk-indices"><title>Indicies, Appendices, Cross-references, etc</title>
+        <section id="js2doc2dbk-indices">
+          <title>Indicies, Appendices, Cross-references, etc</title>
+          <para></para>
         </section>
         <section id="very-complex-templates">
           <title>Very complex templates</title>
           <itemizedlist>
-            <listitem>Subclass and superclass chains</listitem>
-            <listitem>Attributes list (with lzxtype, final, read-only, initialize-only)</listitem>          
+            <listitem><para>Subclass and superclass chains</para></listitem>
+            <listitem><para>Attributes list (with lzxtype, final, read-only, initialize-only)</para></listitem>          
           </itemizedlist>        
         </section>
       </section>
       <section id="js2doc2dbk-walkthrough">
         <title>js2doc2dbk walkthrough</title>
-        <note>Get a beverage and a comfortable chair, then turn off the phone and lock the door. The next section is the very heart of the reference toolchain, and understanding it requires holding a lot of context in your head all at once.</note>
-        <para>Let's look at the reference page for <xref linkend="LzText">LzText</xref>. The js2doc description of it is in <literal>docs/src/xsl/build/reference/LaszloLibrary-verbose.js2doc</literal>. Open that file and find the element describing <literal>LzText</literal>. Copy that element into a smaller file so you can look at it in detail. The element describing the <literal>LzText</literal> class begins with this line: 
+        <note><para>Get a beverage and a comfortable chair, then turn off the phone and lock the door. The next section is the very heart of 
+          the reference toolchain, and understanding it requires holding a lot of context in your head all at once.</para></note>
+        <para>Let's look at the reference page for <xref linkend="LzText" />. The js2doc description of it is in <literal>docs/src/xsl/build/reference/LaszloLibrary-verbose.js2doc</literal>. Open that file and find the element describing <literal>LzText</literal>. Copy that element into a smaller file so you can look at it in detail. The element describing the <literal>LzText</literal> class begins with this line: 
           <programlisting>&lt;<emphasis>property</emphasis> id=&quot;LzText&quot; name=&quot;LzText&quot; unitid=&quot;views.LzText.lzs&quot; access=&quot;public&quot; topic=&quot;LFC&quot; subtopic=&quot;Text&quot;&gt;</programlisting>
         </para> 
-        <note>To find a particular item in the giant LaszloLibrary-verbose.js2doc file, just search for it by id. This works because id's are globally unique. 
+        <note><para>To find a particular item in the giant LaszloLibrary-verbose.js2doc file, just search for it by id. This works because id's 
+          are globally unique.</para> 
         </note>      
         <para>Notice that the containing element here is <literal>&lt;property&gt;</literal>. In js2doc, property is the element that represents a useful chunk of the api. This particular element describes everything there is to know about <literal>LzText</literal>.</para>
         
-        <para>The main template for generating a page in the reference is in the file <literal>docs/src/xsl/js2doc2dbk.xsl</literal>. We can tell from the js2doc output below, and our knowledge of docbook, that the output begins with a &lt;refentry&gt; tag, so we can find the template that generates it by searching <literal>js2doc2dbk.xsl</literal> for <literal>&lt;refentry</literal> or by performing the equivalent XPath query: <literal>//refentry</literal>. This takes us to two templates, one that starts with     
+        <para>The main template for generating a page in the reference is in the file <literal>docs/src/xsl/js2doc2dbk.xsl</literal>. We can tell from the js2doc output below, and our knowledge of DocBook, that the output begins with a &lt;refentry&gt; tag, so we can find the template that generates it by searching <literal>js2doc2dbk.xsl</literal> for <literal>&lt;refentry</literal> or by performing the equivalent XPath query: <literal>//refentry</literal>. This takes us to two templates, one that starts with     
           <programlisting>&lt;xsl:template <emphasis>match=&quot;property&quot; </emphasis>mode=&quot;refentry&quot;&gt;</programlisting>
           and another that starts with 
           <programlisting>&lt;xsl:template <emphasis>match=&quot;unit&quot;</emphasis> mode=&quot;refentry&quot;&gt;</programlisting>
@@ -468,19 +474,19 @@
             ...</programlisting></informalexample> 
           So the value of <literal>$lzxname</literal> is "text".      
         </para>      
-        <note>The double meaning of "text" and "tag" here is unavoidable. Keep track of when we're talking about a domain concept -- LzText, aka "text," is a concept in the OpenLaszlo domain -- and when we're talking about a tools concept -- the text value of an XML element.</note>
+        <note><para>The double meaning of "text" and "tag" here is unavoidable. Keep track of when we're talking about a domain concept -- LzText, aka "text," is a concept in the OpenLaszlo domain -- and when we're talking about a tools concept -- the text value of an XML element.</para></note>
         
         <para>Continuing our walkthrough of the main template for a reference entry in js2doc2dbk.xsl, skip over the next few variable declarations. Now we're at the first output instructions:
           <programlisting>&lt;refentry id=&quot;{$id-for-output}&quot; xreflabel=&quot;{$desc}&quot;&gt;
             &lt;xsl:if test=&quot;$lzxname&quot;&gt;&lt;anchor id=&quot;{concat(&apos;tag.&apos;,$lzxname)}&quot;/&gt;&lt;/xsl:if&gt; 
             ...</programlisting>
           <literal>$id-for-output</literal> was one of the variables we skipped over; experience reveals that <literal>$id-for-output</literal> evaluates to <literal>LzText</literal> and that $desc  evaluates to <literal>&lt;text&gt;</literal>. The next line says, "if the variable named $lzxname has a non-null value, output an &lt;anchor&gt; tag with an id of 'tag.' + $lzxname." For LzText, we figured out above that <literal>$lzxname</literal> is <literal>text</literal>.</para>
-        <para> Now we can predict the docbook output from this part of the template:
+        <para> Now we can predict the DocBook output from this part of the template:
           <informalexample><programlisting>&lt;refentry xreflabel=&quot;&amp;lt;text&amp;gt;&quot; id=&quot;LzText&quot;&gt;
             &lt;anchor id=&quot;tag.text&quot;/&gt;</programlisting></informalexample>
         </para>
-        <para>To verify that's the output we'll get, look at the docbook output for <emphasis>LzText</emphasis>. If you've done a documentation build, the LzText reference entry will be in <literal>docs/src/build/reference/lfcref.dbk</literal>. Open that file, and again find the <emphasis>LzText</emphasis> section.</para>
-        <note>In docbook files, the trick for finding a particular element is the same as in LaszloLibrary-verbose; just search for <literal>id="LzText"</literal></note>      
+        <para>To verify that's the output we'll get, look at the DocBook output for <emphasis>LzText</emphasis>. If you've done a documentation build, the LzText reference entry will be in <literal>docs/src/build/reference/lfcref.dbk</literal>. Open that file, and again find the <emphasis>LzText</emphasis> section.</para>
+        <note><para>In DocBook files, the trick for finding a particular element is the same as in LaszloLibrary-verbose; just search for <literal>id="LzText"</literal></para></note>      
         <informalexample><programlisting>&lt;<emphasis>refentry xreflabel=&quot;&amp;lt;text&amp;gt;&quot; id=&quot;LzText&quot;&gt;</emphasis>        
           <emphasis>&lt;anchor id=&quot;tag.text&quot;/&gt;</emphasis>        
           &lt;refnamediv&gt;
@@ -491,25 +497,25 @@
           &lt;/refnamediv&gt;
           ...</programlisting></informalexample>
         <para>See if you can find where the <emphasis>refnamediv</emphasis> element in the listing above come from.</para>      
-        <note>A docbook reference entry is a <literal>&lt;refentry&gt;</literal> tag. See <ulink url="http://www.docbook.org/tdg/en/html/refentry.html">the DocBook reference for refentry</ulink>.</note>  
-        <para>The docbook output at this step is a semantic representation of the content we'll see on the output reference HTML pages. It is almost but not quite a listing of the words that will appear in the output HTML, with lots of semantic markup. The markup will give the final stage in the transformation (docbook to html) information necessary to format the output nicely.</para>
-        <note>You can now open the door and turn your phone's ringer back on -- you're through the worst of it!</note>
+        <note><para>A DocBook reference entry is a <literal>&lt;refentry&gt;</literal> tag. See <ulink url="http://www.docbook.org/tdg/en/html/refentry.html">the DocBook reference for refentry</ulink>.</para></note>  
+        <para>The DocBook output at this step is a semantic representation of the content we'll see on the output reference HTML pages. It is almost but not quite a listing of the words that will appear in the output HTML, with lots of semantic markup. The markup will give the final stage in the transformation (DocBook to html) information necessary to format the output nicely.</para>
+        <note><para>You can now open the door and turn your phone's ringer back on -- you're through the worst of it!</para></note>
       </section>
     </section>      
   </section>
- 
+  
   <section id="developers-guide-toolchain">
     <title>Developer's Guide Toolchain: Just DocBook</title>
-    <para>After all that, you may be relieved to learn that the developer's guide is far simpler. Chapters in the developer's guide are written as docbook files directly, so no transformation is necessary to create docbook files. The developer's guide docbook files enter the docbook-xsl processing stage in the same conceptual role as do the reference guide docbook files. </para>
+    <para>After all that, you may be relieved to learn that the developer's guide is far simpler. Chapters in the developer's guide are written as DocBook files directly, so no transformation is necessary to create DocBook files. The developer's guide DocBook files enter the docbook-xsl processing stage in the same conceptual role as do the reference guide DocBook files. </para>
   </section>
   
   <section id="docbook-to-output">
-    <title>Docbook to Output, at Last!</title>
-    <para>The last step in the transformation process is not as complicated as the preceding steps. This final step is mostly just the vanilla transformation of docbook files to html files, using the vanilla docbook-xsl transformations. <ulink linkend="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide by Bob Stayton</ulink> is an excellent reference on this topic.</para>
-    <para>There are two ways in which the OpenLaszlo docbook to html transformation differs from the standard docbook-xsl transformation:
+    <title>DocBook to Output, at Last!</title>
+    <para>The last step in the transformation process is not as complicated as the preceding steps. This final step is mostly just the vanilla transformation of DocBook files to html files, using the vanilla docbook-xsl transformations. <ulink url="http://www.sagehill.net/docbookxsl/">DocBook XSL: The Complete Guide by Bob Stayton</ulink> is an excellent reference on this topic.</para>
+    <para>There are two ways in which the OpenLaszlo DocBook to html transformation differs from the standard docbook-xsl transformation:
       <orderedlist>
-        <listitem>Customizations to standard docbook-xsl templates, also known as the "docbook customization layer." This is such a common pattern for customization that the DocBook-XSL book referenced above has a <ulink url="http://www.docbook.org/tdg/en/html/ch05.html">chapter about customizing docbook</ulink>. We customize the standard docbook by specifying parameters in <literal>docs/src/xsl/parameters.xsl</literal>.</listitem>        
-        <listitem>Inclusion of specially-formatted examples. DocBook includes the notion of program listings and embedded illustrations, but it doesn't know about <emphasis>live</emphasis> examples, or how to format lzx code, or how to emphasize parts of example listings. The step labeled "docbook-preprocess" in the diagram below represents some of this process, but the truth is more complicated.</listitem>                
+        <listitem><para>Customizations to standard docbook-xsl templates, also known as the "DocBook customization layer." This is such a common pattern for customization that the DocBook-XSL book referenced above has a <ulink url="http://www.docbook.org/tdg/en/html/ch05.html">chapter about customizing DocBook</ulink>. We customize the standard DocBook by specifying parameters in <literal>docs/src/xsl/parameters.xsl</literal>.</para></listitem>        
+        <listitem><para>Inclusion of specially-formatted examples. DocBook includes the notion of program listings and embedded illustrations, but it doesn't know about <emphasis>live</emphasis> examples, or how to format lzx code, or how to emphasize parts of example listings. The step labeled "docbook-preprocess" in the diagram below represents some of this process, but the truth is more complicated.</para></listitem>                
       </orderedlist>
     </para>
     <informalfigure><mediaobject><imageobject>
@@ -518,18 +524,18 @@
     </mediaobject></informalfigure>
     
     <itemizedlist>
-      <listitem>common-html.xsl</listitem>
-      <listitem>conditional-html.xsl</listitem>
-      <listitem>styles.css</listitem>
-      <listitem>lzx-pretty-print.css</listitem>
-      <listitem>dguide.xsl</listitem>
-      <listitem>dbkpreprocessexamples.xsl</listitem>
-      <listitem>lzx-pretty-print.xsl</listitem>      
+      <listitem><para>common-html.xsl</para></listitem>
+      <listitem><para>conditional-html.xsl</para></listitem>
+      <listitem><para>styles.css</para></listitem>
+      <listitem><para>lzx-pretty-print.css</para></listitem>
+      <listitem><para>dguide.xsl</para></listitem>
+      <listitem><para>dbkpreprocessexamples.xsl</para></listitem>
+      <listitem><para>lzx-pretty-print.xsl</para></listitem>      
     </itemizedlist>
   <section>
   <title>How the copyright gets generated</title>
  <para>There is a copyright notice at the bottom of every dguide and reference page. This notice is generated
- during the docbook transform by the template user.footer.content in the file common-html.xsl. To change
+ during the DocBook transform by the template user.footer.content in the file common-html.xsl. To change
  to copyright date for all generated documents, change the date in this template.</para>
  <para>The copyright notice for files that are <emphasis>not generated</emphasis> is entered manually.</para>
   </section>  
@@ -607,39 +613,39 @@
       
       <para>Here's that same information, organized hierarchically:        
         <itemizedlist>
-          <listitem>$LPS_HOME          
+          <listitem><para>$LPS_HOME</para>          
             <itemizedlist>
-              <listitem>docs
+              <listitem><para>docs</para>
                 <itemizedlist>
-                  <listitem>reference/ ($reference.output.dir)</listitem>
-                  <listitem>developers/ ($developers.output.dir)</listitem>
-                  <listitem>src/  ($docs.src.dir)
+                  <listitem><para>reference/ ($reference.output.dir)</para></listitem>
+      <listitem><para>developers/ ($developers.output.dir)</para></listitem>
+                  <listitem><para>src/  ($docs.src.dir)</para>
                     <itemizedlist>
-                      <listitem>xsl/ (holds the xsl templates for both the conversion from lzx to js2doc, and from js2doc to docbook)</listitem>
-                      <listitem>developers/  ($developers.src.dir)
+                      <listitem><para>xsl/ (holds the xsl templates for both the conversion from lzx to js2doc, and from js2doc to DocBook)</para></listitem>
+                      <listitem><para>developers/  ($developers.src.dir)</para>
                         <itemizedlist>
-                          <listitem>tutorials/
+                          <listitem><para>tutorials/</para>
                             <itemizedlist>
-                              <listitem>programs</listitem>
-                              <listitem>images</listitem>              
+                              <listitem><para>programs</para></listitem>
+                              <listitem><para>images</para></listitem>              
                             </itemizedlist>                  
                           </listitem>
-                          <listitem>programs</listitem>
-                          <listitem>images</listitem>              
+                          <listitem><para>programs</para></listitem>
+                          <listitem><para>images</para></listitem>              
                         </itemizedlist>                      
                       </listitem>
-                      <listitem>reference/   ($reference.src.dir)
+                      <listitem><para>reference/   ($reference.src.dir)</para>
                         <itemizedlist>
-                          <listitem>images</listitem>
-                          <listitem>resources</listitem>
-                          <listitem>navbuilder/  command-line tool for building the left-nav in the reference</listitem>                
+                          <listitem><para>images</para></listitem>
+                          <listitem><para>resources</para></listitem>
+                          <listitem><para>navbuilder/  command-line tool for building the left-nav in the reference</para></listitem>                
                         </itemizedlist>              
                       </listitem>
-                      <listitem>build/  (temporary) ($docs.build.dir)
+                      <listitem><para>build/  (temporary) ($docs.build.dir)</para>
                         <itemizedlist>
-                          <listitem>js2doc/ (js2doc.build.dir) holds the initial js2doc output </listitem>
-                          <listitem>developers/  ($developers.build.dir) where the processed developers guide docbook files go after they've had the examples and callouts inserted</listitem>
-                          <listitem>reference/  ($reference.build.dir) where the js2doc output is joined together into LaszloLibrary-verbose.js2doc, and where the processed reference guide docbook files go after they've had the examples and callouts inserted</listitem>    
+                          <listitem><para>js2doc/ (js2doc.build.dir) holds the initial js2doc output</para> </listitem>
+                          <listitem><para>developers/  ($developers.build.dir) where the processed developers guide DocBook files go after they've had the examples and callouts inserted</para></listitem>
+                          <listitem><para>reference/  ($reference.build.dir) where the js2doc output is joined together into LaszloLibrary-verbose.js2doc, and where the processed reference guide DocBook files go after they've had the examples and callouts inserted</para></listitem>    
                         </itemizedlist>
                       </listitem>
                     </itemizedlist>
@@ -664,8 +670,8 @@
       </para>
       <para><literal>reference.js2doc.generate</literal> drives the creation of the js2doc intermediate file, <literal>LaszloLibrary-verbose.js2doc</literal>, from the several sources (langref.xml, lzx files, and js files).</para>
       <para><literal>dbk.topic.generate</literal> drives the js2doc2dbk transformation. It says, "find all the elements in the input file ( <literal>LaszloLibrary-verbose.js2doc</literal> for the reference) that match the topic specified in the <literal>filter.topic</literal> parameter. Apply the transformations in <literal>js2doc2dbk.xsl</literal> to those elements, and output the results to the file specified in the <literal>local.output.file</literal>." </para>
-      <para><literal>book.html.generate</literal> drives the docbook to HTML transformation.</para>
-      <para><literal>dbk.examples.preprocess</literal> prepares the examples in the specified docbook for rendering and final output, by running the docbook through <literal>xsl/dbkpreprocessexamples.xsl</literal>.</para>
+      <para><literal>book.html.generate</literal> drives the DocBook to HTML transformation.</para>
+      <para><literal>dbk.examples.preprocess</literal> prepares the examples in the specified DocBook for rendering and final output, by running the DocBook through <literal>xsl/dbkpreprocessexamples.xsl</literal>.</para>
       <para>This diagram shows the major targets in the developer's guide build. As before, parameterized targets are highlighted:
         <informalfigure><mediaobject><imageobject>
           <imagedata fileref="images/doc-ant-build-developers.png"/>

Modified: openlaszlo/branches/devildog/docs/src/developers/docbook-code.dbk
===================================================================
--- openlaszlo/branches/devildog/docs/src/developers/docbook-code.dbk	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/docs/src/developers/docbook-code.dbk	2008-02-13 04:42:34 UTC (rev 8011)
@@ -1,36 +1,44 @@
 <?xml version="1.0"?>
-
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
 * Copyright 2007-2008 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
-
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-
-<chapter language="en" id="docbook-code">
-<title>Documenting Your Code</title>
-
-<section><title>The Basics</title>
-</section>
-
-<section><title>Documenting LZX classes</title>
-  <section><title>Using comments</title>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+    "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter id="docbook-code">
+  <title>Documenting Your Code</title>
+  <para></para>
+  <section>
+    <title>The Basics</title>
+    <para></para>
   </section>
-  
-  <section><title>Using the <sgmltag>doc</sgmltag> tag</title>
+  <section>
+    <title>Documenting LZX classes</title>
+    <para></para>
+    <section>
+      <title>Using comments</title>
+      <para></para>
+    </section>
+    <section>
+      <title>Using the 
+      <sgmltag>doc</sgmltag>tag</title>
+      <para></para>
+    </section>
   </section>
-</section>
-
-<section><title>Documenting JavaScript files</title>
-
-  <section><title>JS2 class declarations</title>
+  <section>
+    <title>Documenting JavaScript files</title>
+    <para></para>
+    <section>
+      <title>JS2 class declarations</title>
+      <para></para>
+    </section>
+    <section>
+      <title>Function-as-class declarations</title>
+      <para></para>
+    </section>
+    <section>
+      <title>Object-as-singleton declarations</title>
+      <para></para>
+    </section>
   </section>
-  
-  <section><title>Function-as-class declarations</title>
-  </section>
-  
-  <section><title>Object-as-singleton declarations</title>
-  </section>
-  
-</section>
 </chapter>

Modified: openlaszlo/branches/devildog/docs/src/developers/docbook-local.dbk
===================================================================
--- openlaszlo/branches/devildog/docs/src/developers/docbook-local.dbk	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/docs/src/developers/docbook-local.dbk	2008-02-13 04:42:34 UTC (rev 8011)
@@ -1,222 +1,286 @@
 <?xml version="1.0"?>
-
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
 * Copyright 2007-2008 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
-
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-
-<chapter language="en" id="docbook-local">
-<title>Local Docbook Style Guide</title>
-
-<section><title>Introduction</title>
-
-  <para>This chapter contains information about writing Docbook documentation within the OpenLaszlo project. It builds on the standard information available about <ulink url="http://www.docbook.org/tdg/en/html/docbook.html">Docbook itself</ulink> and the <ulink url="http://www.sagehill.net/docbookxsl/">Docbook-XSL tool</ulink>. Content in this chapter assumes you are familiar with the basic information available in those references. For general information about the local Docbook-based OpenLaszlo documentation tool chain, see <xref linkend="doc-toolchain"/>.</para>
-
-</section>
-
-<section><title>General information</title>
-
-  <section><title>Index term label generation</title>
-    <para>When using an <sgmltag class="element">indexterm</sgmltag> tag, be aware that the text of the corresponding entry in the index will be generated from the <sgmltag class="element">title</sgmltag> or <sgmltag class="attribute">xreflabel</sgmltag> found nearest to the <sgmltag class="element">indexterm</sgmltag> itself.</para>
-    
-    <informalexample><programlisting>&lt;section&gt;
-  &lt;title&gt;Including HTML markup in OpenLaszlo applications&lt;/title&gt;
-  &lt;para&gt;Openlaszlo provides support for incorporating HTML. Here's a list of tags that are supported:&lt;/para&gt;
-  &lt;simplelist&gt;
-    &lt;listitem&gt;
-      &lt;indexterm&gt;&lt;primary&gt;a&lt;/primary&gt;&lt;/indexterm&gt;
-      &lt;sgmltag class="element"&gt;&lt;a&gt;&lt;/sgmltag&gt;
-    &lt;/listitem&gt;
-    &lt;listitem&gt;
-      &lt;indexterm&gt;&lt;primary&gt;font&lt;/primary&gt;&lt;/indexterm&gt;
-      &lt;sgmltag class="element"&gt;&lt;font&gt;&lt;/sgmltag&gt;
-    &lt;/listitem&gt;
-  &lt;/simplelist&gt;
-&lt;/section&gt;
-</programlisting></informalexample>
-
-    <para>Here, the index entry text for <sgmltag class="element">a</sgmltag> and <sgmltag class="element">font</sgmltag> both read, "Including HTML markup in OpenLaszlo applications."</para>
-    
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter id="docbook-local">
+  <title>Local Docbook Style Guide</title>
+  <section>
+    <title>Introduction</title>
+    <para>This chapter contains information about writing Docbook
+    documentation within the OpenLaszlo project. It builds on the
+    standard information available about 
+    <ulink url="http://www.docbook.org/tdg/en/html/docbook.html">
+    Docbook itself</ulink>and the 
+    <ulink url="http://www.sagehill.net/docbookxsl/">Docbook-XSL
+    tool</ulink>. Content in this chapter assumes you are familiar
+    with the basic information available in those references. For
+    general information about the local Docbook-based OpenLaszlo
+    documentation tool chain, see 
+    <xref linkend="doc-toolchain" />.</para>
   </section>
-  
-</section>
-
-<section><title>Markup for class members</title>
-
-  <para>Mentions of class members (properties, methods, etc.) within the text that have been properly declared are automatically expanded to include index entries and hyperlinks to the appropriate section of the reference guide.</para>
-  
-  <para>For example, this declaration:</para>
-  
-  <informalexample><programlisting>&lt;sgmltag class="attribute" role="<replaceable>LzView.__ivars__.resourcewidth</replaceable>"&gt;<replaceable>resourcewidth</replaceable>&lt;/sgmltag&gt;</programlisting></informalexample>
-
-  <para>is expanded to this Docbook markup:</para>
-  
-  <informalexample><programlisting>&lt;indexterm&gt;
-  &lt;primary&gt;resourcewidth&lt;/primary&gt;
-&lt;/indexterm&gt;
-&lt;link linkend="LzView.__ivars__.resourcewidth">
-  &lt;sgmltag class="attribute"&gt;resourcewidth&lt;/sgmltag&gt;
-&lt;/link&gt;</programlisting></informalexample>
-
-  <para>The <sgmltag class="element">indexterm</sgmltag> block generates an entry in the index. The entry text is automatically derived from the nearest surrounding section title.</para>
-  
-  <para>The <sgmltag class="element">link</sgmltag> block is a hypertext link into the appropriate reference page. The value of the <sgmltag class="attribute">role</sgmltag> attribute is the same as the automatically-generated <sgmltag class="attribute">id</sgmltag> of that member in the js2doc output.</para>
-  
-  <section><title>Markup tags that are automatically expanded</title>
-    <para>Expansion of markup occurs in the preprocess stage, and requires inclusion of the <sgmltag class="attribute">role</sgmltag> attribute in the relevant tag. The tags currently supported are:
-    <simplelist type='inline'>
-      <member><sgmltag class="element">structfield</sgmltag></member>
-      <member><sgmltag class="element">property</sgmltag></member>
-      <member><sgmltag class="element">methodname</sgmltag></member>
-      <member><sgmltag class="element">sgmltag</sgmltag></member>
-    </simplelist>
-    .</para>
-    <para>Note that <sgmltag class="element">classname</sgmltag>, <sgmltag class="element">tag</sgmltag>, and other potentially relevant tags, are not currently supported. Adding support should be relatively straightforward, perhaps as simple as adding a new match clause to the relevant XSLT template.</para>
+  <section>
+    <title>General information</title>
+    <section>
+      <title>Index term label generation</title>
+      <para>When using an 
+      <sgmltag class="element">indexterm</sgmltag>tag, be aware
+      that the text of the corresponding entry in the index will be
+      generated from the 
+      <sgmltag class="element">title</sgmltag>or 
+      <sgmltag class="attribute">xreflabel</sgmltag>found nearest
+      to the 
+      <sgmltag class="element">indexterm</sgmltag>itself.</para>
+      <informalexample>
+        <programlisting>&lt;section&gt; &lt;title&gt;Including HTML
+        markup in OpenLaszlo applications&lt;/title&gt;
+        &lt;para&gt;Openlaszlo provides support for incorporating
+        HTML. Here's a list of tags that are
+        supported:&lt;/para&gt; &lt;simplelist&gt; &lt;listitem&gt;
+        &lt;indexterm&gt;&lt;primary&gt;a&lt;/primary&gt;&lt;/indexterm&gt;
+        &lt;sgmltag class="element"&gt;&lt;a&gt;&lt;/sgmltag&gt;
+        &lt;/listitem&gt; &lt;listitem&gt;
+        &lt;indexterm&gt;&lt;primary&gt;font&lt;/primary&gt;&lt;/indexterm&gt;
+        &lt;sgmltag class="element"&gt;&lt;font&gt;&lt;/sgmltag&gt;
+        &lt;/listitem&gt; &lt;/simplelist&gt;
+        &lt;/section&gt;</programlisting>
+      </informalexample>
+      <para>Here, the index entry text for 
+      <sgmltag class="element">a</sgmltag>and 
+      <sgmltag class="element">font</sgmltag>both read, "Including
+      HTML markup in OpenLaszlo applications."</para>
+    </section>
   </section>
-  
-  <section><title>Determining <sgmltag class="attribute">role</sgmltag> values</title>
-    <para>The simplest way of determining what string to put into the <sgmltag class="attribute">role</sgmltag> value is to find the desired entry in the HTML version of the Reference Guide and note the first <sgmltag class="element">a</sgmltag> tag in the member entry.</para>
-    
-    <informalexample><programlisting>
-      &lt;span class="term"&gt;
-        &lt;a name="LzView.__ivars__.resourcewidth"&gt;
-        &lt;a class="indexterm" name="d0e187250"&gt;
-        "resourcewidth"
-      &lt;/span&gt;
-    </programlisting></informalexample>
-    
+  <section>
+    <title>Markup for class members</title>
+    <para>Mentions of class members (properties, methods, etc.)
+    within the text that have been properly declared are
+    automatically expanded to include index entries and hyperlinks
+    to the appropriate section of the reference guide.</para>
+    <para>For example, this declaration:</para>
+    <informalexample>
+      <programlisting>&lt;sgmltag class="attribute" role="
+      <replaceable>
+      LzView.__ivars__.resourcewidth</replaceable>"&gt;
+      <replaceable>
+      resourcewidth</replaceable>&lt;/sgmltag&gt;</programlisting>
+    </informalexample>
+    <para>is expanded to this Docbook markup:</para>
+    <informalexample>
+      <programlisting>&lt;indexterm&gt;
+      &lt;primary&gt;resourcewidth&lt;/primary&gt;
+      &lt;/indexterm&gt; &lt;link
+      linkend="LzView.__ivars__.resourcewidth"&gt; &lt;sgmltag
+      class="attribute"&gt;resourcewidth&lt;/sgmltag&gt;
+      &lt;/link&gt;</programlisting>
+    </informalexample>
+    <para>The 
+    <sgmltag class="element">indexterm</sgmltag>block generates an
+    entry in the index. The entry text is automatically derived
+    from the nearest surrounding section title.</para>
+    <para>The 
+    <sgmltag class="element">link</sgmltag>block is a hypertext
+    link into the appropriate reference page. The value of the 
+    <sgmltag class="attribute">role</sgmltag>attribute is the same
+    as the automatically-generated 
+    <sgmltag class="attribute">id</sgmltag>of that member in the
+    js2doc output.</para>
+    <section>
+      <title>Markup tags that are automatically expanded</title>
+      <para>Expansion of markup occurs in the preprocess stage, and
+      requires inclusion of the 
+      <sgmltag class="attribute">role</sgmltag>attribute in the
+      relevant tag. The tags currently supported are: 
+      <simplelist type='inline'>
+        <member>
+          <sgmltag class="element">structfield</sgmltag>
+        </member>
+        <member>
+          <sgmltag class="element">property</sgmltag>
+        </member>
+        <member>
+          <sgmltag class="element">methodname</sgmltag>
+        </member>
+        <member>
+          <sgmltag class="element">sgmltag</sgmltag>
+        </member>
+      </simplelist>.</para>
+      <para>Note that 
+      <sgmltag class="element">classname</sgmltag>, 
+      <sgmltag class="element">tag</sgmltag>, and other potentially
+      relevant tags, are not currently supported. Adding support
+      should be relatively straightforward, perhaps as simple as
+      adding a new match clause to the relevant XSLT
+      template.</para>
+    </section>
+    <section>
+      <title>Determining 
+      <sgmltag class="attribute">role</sgmltag>values</title>
+      <para>The simplest way of determining what string to put into
+      the 
+      <sgmltag class="attribute">role</sgmltag>value is to find the
+      desired entry in the HTML version of the Reference Guide and
+      note the first 
+      <sgmltag class="element">a</sgmltag>tag in the member
+      entry.</para>
+      <informalexample>
+        <programlisting>&lt;span class="term"&gt; &lt;a
+        name="LzView.__ivars__.resourcewidth"&gt; &lt;a
+        class="indexterm" name="d0e187250"&gt; "resourcewidth"
+        &lt;/span&gt;</programlisting>
+      </informalexample>
+    </section>
   </section>
-  
-</section>
-
-<section><title>Inline examples</title>
-
-  <section><title>Basic inline examples</title>
-    <para>Here is an simple version of an inline example:</para>
-  
-    <informalexample><programlisting>&lt;example&gt;
-  &lt;title&gt;A simple animator&lt;/title&gt;
-  &lt;programlisting language="lzx"&gt;
-&amp;lt;canvas height="100" width="500"&amp;gt;
-  &amp;lt;window&amp;gt;
-    &amp;lt;animator attribute="x" to="100" duration="1000"/&amp;gt;
-  &amp;lt;/window&amp;gt;
-&amp;lt;/canvas&amp;gt;&lt;/programlisting&gt;
-&lt;/example&gt;</programlisting></informalexample>
-
-    <para>Here is a version that transcludes the source code.</para>
-
-    <informalexample><programlisting>&lt;example&gt;
-  &lt;title&gt;A simple animator&lt;/title&gt;
-  &lt;programlisting language="lzx" &gt;
-    <emphasis>&lt;textobject&gt;
-      &lt;textdata fileref="programs/animation-$4.lzx"/&gt;
-    &lt;/textobject&gt;</emphasis>
-  &lt;/programlisting&gt;
-&lt;/example&gt;</programlisting></informalexample>
-  
+  <section>
+    <title>Inline examples</title>
+    <section>
+      <title>Basic inline examples</title>
+      <para>Here is an simple version of an inline example:</para>
+      <informalexample>
+        <programlisting>&lt;example&gt; &lt;title&gt;A simple
+        animator&lt;/title&gt; &lt;programlisting
+        language="lzx"&gt; &amp;lt;canvas height="100"
+        width="500"&amp;gt; &amp;lt;window&amp;gt; &amp;lt;animator
+        attribute="x" to="100" duration="1000"/&amp;gt;
+        &amp;lt;/window&amp;gt;
+        &amp;lt;/canvas&amp;gt;&lt;/programlisting&gt;
+        &lt;/example&gt;</programlisting>
+      </informalexample>
+      <para>Here is a version that transcludes the source
+      code.</para>
+      <informalexample>
+        <programlisting>&lt;example&gt; &lt;title&gt;A simple
+        animator&lt;/title&gt; &lt;programlisting language="lzx"
+        &gt; 
+        <emphasis>&lt;textobject&gt; &lt;textdata
+        fileref="programs/animation-$4.lzx"/&gt;
+        &lt;/textobject&gt;</emphasis>&lt;/programlisting&gt;
+        &lt;/example&gt;</programlisting>
+      </informalexample>
+    </section>
+    <section>
+      <title>Live examples</title>
+      <para>Here is a version that runs within the documentation
+      page:</para>
+      <informalexample>
+        <programlisting>&lt;example 
+        <emphasis>role="live-example"</emphasis>&gt;
+        &lt;title&gt;Importing a resource&lt;/title&gt;
+        &lt;programlisting language="lzx"&gt; &lt;textobject&gt;
+        &lt;textdata fileref="programs/animation-$4.lzx" /&gt;
+        &lt;/textobject&gt; &lt;/programlisting&gt;
+        &lt;/example&gt;</programlisting>
+      </informalexample>
+    </section>
+    <section>
+      <title>Emphasized Areas</title>
+      <para>Here is a version with highlighted areas:</para>
+      <informalexample>
+        <programlisting>&lt;example role="live-example"&gt;
+        &lt;title&gt;Controlling animation with a
+        script&lt;/title&gt; 
+        <emphasis>
+        &lt;programlistingco&gt;</emphasis>&lt;programlisting
+        language="lzx"&gt; &lt;textobject&gt;&lt;textdata
+        fileref="programs/animation-$4.lzx"/&gt;&lt;/textobject&gt;
+        &lt;/programlisting&gt; 
+        <emphasis>&lt;areaspec&gt; &lt;area units="other"
+        otherunits="/canvas[1]/view[1]/@onclick"/&gt;
+        &lt;/areaspec&gt;</emphasis>
+        <emphasis>
+        &lt;/programlistingco&gt;</emphasis>&lt;/example&gt;</programlisting>
+      </informalexample>
+      <para>The 
+      <sgmltag class="element">areaspec</sgmltag>block is an
+      OpenLaszlo specialization of Docbook-XSL that highlights any
+      portion of an LZX program that matches the given XPath
+      expression. Here, we are targeting a section of the following
+      LZX source:</para>
+      <informalexample>
+        <programlisting>&lt;canvas height="100" width="500"&gt;
+        &lt;view bgcolor="red" width="100" height="100" 
+        <emphasis>
+        onclick="this.myAnimator.doStart()"</emphasis>&gt;
+        &lt;animator name="myAnimator" attribute="x" to="100"
+        duration="1000" start="false"/&gt; &lt;/view&gt;
+        &lt;/canvas&gt;</programlisting>
+      </informalexample>
+      <para>The XPath expression refers to the attribute
+      highlighted in the above source.</para>
+    </section>
+    <section>
+      <title>Callouts</title>
+      <para>Less commonly, there is a need to use callouts within
+      live examples.</para>
+      <informalexample>
+        <programlisting>&lt;example role="live-example"&gt;
+        &lt;title&gt;Using attributes and class children
+        together&lt;/title&gt; &lt;programlisting
+        language="lzx"&gt; &lt;textobject&gt;&lt;textdata
+        fileref="programs/class-1.lzx"/&gt;&lt;/textobject&gt;
+        &lt;/programlisting&gt; &lt;/example&gt;
+        &lt;calloutlist&gt; &lt;callout
+        arearefs="N10086"&gt;&lt;para&gt;Blah
+        blah&lt;/para&gt;&lt;/callout&gt; &lt;callout
+        arearefs="N10090"&gt;&lt;para&gt;Blah
+        blah&lt;/para&gt;&lt;/callout&gt;
+        &lt;/calloutlist&gt;</programlisting>
+      </informalexample>
+      <para>To accomplish this, we can't use XPath expressions, so
+      we have to embed processing instructions into the
+      source.</para>
+      <informalexample>
+        <programlisting>&lt;canvas height="40"&gt; &lt;class
+        name="myframe" extends="view"&gt;&lt;?lzx-co N10086 ?&gt;
+        &lt;attribute name="bgcolor" value="red"/&gt; &lt;view
+        x="5" y="5" width="${parent.width-10}"
+        height="${parent.height-10}" bgcolor="blue"/&gt;
+        &lt;/class&gt; &lt;myframe width="40"
+        height="40"/&gt;&lt;?lzx-co N10090 ?&gt;
+        &lt;/canvas&gt;</programlisting>
+      </informalexample>
+    </section>
+    <section>
+      <title>Current Gotchas</title>
+      <itemizedlist>
+        <listitem>
+        <para><ulink url="http://www.openlaszlo.org/jira/browse/LPP-4308">
+        LPP-4308</ulink>: Examples whose text is not transcluded
+        (included from an external file) are not
+        pretty-printed.</para></listitem>
+        <listitem>
+         <para> <ulink url="http://www.openlaszlo.org/jira/browse/LPP-4033">
+            LPP-4033</ulink>: Long source code lines are not
+          auto-wrapped.</para></listitem>
+        <listitem>
+          <para><ulink url="http://www.openlaszlo.org/jira/browse/LPP-4146">
+            LPP-4146</ulink>: Reports of erroneously-compiled example
+        scripts are too small to read in devguide.</para></listitem>
+      </itemizedlist>
+    </section>
   </section>
-  
-  <section><title>Live examples</title>
-
-    <para>Here is a version that runs within the documentation page:</para>
-  
-    <informalexample><programlisting>&lt;example <emphasis>role="live-example"</emphasis>&gt;
-  &lt;title&gt;Importing a resource&lt;/title&gt;
-  &lt;programlisting language="lzx"&gt;
-    &lt;textobject&gt;
-      &lt;textdata fileref="programs/animation-$4.lzx" /&gt;
-    &lt;/textobject&gt;
-  &lt;/programlisting&gt;
-&lt;/example&gt;
-    </programlisting></informalexample>
-  
-  </section>
-  
-  <section><title>Emphasized Areas</title>
-
-    <para>Here is a version with highlighted areas:</para>
-    
-    <informalexample><programlisting>&lt;example role="live-example"&gt;
-  &lt;title&gt;Controlling animation with a script&lt;/title&gt;
-  <emphasis>&lt;programlistingco&gt;</emphasis>
-    &lt;programlisting language="lzx"&gt;
-      &lt;textobject&gt;&lt;textdata fileref="programs/animation-$4.lzx"/&gt;&lt;/textobject&gt;
-    &lt;/programlisting&gt;
-    <emphasis>&lt;areaspec&gt;
-      &lt;area units="other" otherunits="/canvas[1]/view[1]/@onclick"/&gt;
-    &lt;/areaspec&gt;</emphasis>
-  <emphasis>&lt;/programlistingco&gt;</emphasis>
-&lt;/example&gt;</programlisting></informalexample>
-
-    <para>The <sgmltag class="element">areaspec</sgmltag> block is an OpenLaszlo specialization of Docbook-XSL that highlights any portion of an LZX program that matches the given XPath expression. Here, we are targeting a section of the following LZX source:</para>
-  
-    <informalexample><programlisting>&lt;canvas height="100" width="500"&gt;
-  &lt;view bgcolor="red" width="100" height="100" <emphasis>onclick="this.myAnimator.doStart()"</emphasis>&gt;
-    &lt;animator name="myAnimator" attribute="x" to="100" duration="1000" start="false"/&gt;
-  &lt;/view&gt;
-&lt;/canvas&gt;</programlisting></informalexample>
-
-  <para>The XPath expression refers to the attribute highlighted in the above source.</para>
-  
-  </section>
-  
-  <section><title>Callouts</title>
-    
-    <para>Less commonly, there is a need to use callouts within live examples. </para>
-
-    <informalexample><programlisting>&lt;example role="live-example"&gt;
-   &lt;title&gt;Using attributes and class children together&lt;/title&gt;
-   &lt;programlisting language="lzx"&gt;
-   &lt;textobject&gt;&lt;textdata fileref="programs/class-1.lzx"/&gt;&lt;/textobject&gt; 
-   &lt;/programlisting&gt;
-&lt;/example&gt;
-&lt;calloutlist&gt;
-  &lt;callout arearefs="N10086"&gt;&lt;para&gt;Blah blah&lt;/para&gt;&lt;/callout&gt;
-  &lt;callout arearefs="N10090"&gt;&lt;para&gt;Blah blah&lt;/para&gt;&lt;/callout&gt;
-&lt;/calloutlist&gt;</programlisting></informalexample>
-
-    <para>To accomplish this, we can't use XPath expressions, so we have to embed processing instructions into the source.</para>
-    
-    <informalexample><programlisting>&lt;canvas height="40"&gt;
-  &lt;class name="myframe" extends="view"&gt;&lt;?lzx-co N10086 ?&gt;
-    &lt;attribute name="bgcolor" value="red"/&gt;
-    &lt;view x="5" y="5" width="${parent.width-10}" 
-          height="${parent.height-10}" 
-          bgcolor="blue"/&gt;
-  &lt;/class&gt;
-  
-  &lt;myframe width="40" height="40"/&gt;&lt;?lzx-co N10090 ?&gt;
-&lt;/canvas&gt;</programlisting></informalexample>
-    
-  </section>
-  
-  <section><title>Current Gotchas</title>
+  <section>
+    <title>Runtime-specific content</title>
+    <para>Docbook content can be marked as runtime specific. This
+    is done using the 
+    <sgmltag class="attribute">condition</sgmltag>attribute within
+    a selection of Docbook markup tags.</para>
+    <para>The currently-supported list of tags is 
     <itemizedlist>
-      <listitem><ulink url="http://www.openlaszlo.org/jira/browse/LPP-4308">LPP-4308</ulink>: Examples whose text is not transcluded (included from an external file) are not pretty-printed.</listitem>
-      <listitem><ulink url="http://www.openlaszlo.org/jira/browse/LPP-4033">LPP-4033</ulink>: Long source code lines are not auto-wrapped</listitem>
-      <listitem><ulink url="http://www.openlaszlo.org/jira/browse/LPP-4146">LPP-4146</ulink>: Reports of erroneously-compiled example scripts are too small to read in devguide</listitem>
+      <listitem>
+       <para><sgmltag class="element">para</sgmltag></para>
+      </listitem>
+      <listitem>
+        <para><sgmltag class="element">title</sgmltag> within a 
+      <sgmltag class="element">section</sgmltag></para></listitem>
     </itemizedlist>
+    </para>
+    <para>Support within other tags is possible by editing the
+    relevant portion of 
+    <literal>docs/src/xsl/conditional-html.xsl</literal>.</para>
+    <para>Currently only one runtime may be given within an 
+    <sgmltag class="attribute">condition</sgmltag>attribute.</para>
   </section>
-  
-</section>
-
-<section><title>Runtime-specific content</title>
-
-  <para>Docbook content can be marked as runtime specific. This is done using the <sgmltag class="attribute">condition</sgmltag> attribute within a selection of Docbook markup tags.</para>
-  
-  <para>The currently-supported list of tags is
-  <simplelist type="inline">
-    <listitem><sgmltag class="element">para</sgmltag></listitem>
-    <listitem><sgmltag class="element">title</sgmltag> within a <sgmltag class="element">section</sgmltag></listitem>
-  </simplelist></para>
-  
-  <para>Support within other tags is possible by editing the relevant portion of <literal>docs/src/xsl/conditional-html.xsl</literal>.</para>
-
-  <para>Currently only one runtime may be given within an <sgmltag class="attribute">condition</sgmltag> attribute.</para>
-
-</section>
-
 </chapter>

Modified: openlaszlo/branches/devildog/docs/src/developers/js2doc-ref.dbk
===================================================================
--- openlaszlo/branches/devildog/docs/src/developers/js2doc-ref.dbk	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/docs/src/developers/js2doc-ref.dbk	2008-02-13 04:42:34 UTC (rev 8011)
@@ -5,30 +5,30 @@
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
 
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
 
-<chapter language="en" id="js2doc-reference">
+<chapter id="js2doc-reference">
 <title>JS2Doc Reference</title>
 
-<note>This book part is currently being drafted. Stay tuned for more contents!</note>
+<note><para>This book part is currently being drafted. Stay tuned for more contents!</para></note>
+  
+  <section><title>Overview</title>
+    
+    <para>The <application>js2doc</application> tool extracts reference documentation from ECMAScript (ECMA-262) 3rd Edition source code, with some provision for ECMAScript 4th Edition extensions such as <literal>class</literal>. (It is intended that eventually <application>js2doc</application> will support the full <acronym>ES4</acronym> language once that standard has been finalized.) The tool generates an XML representation of the declarations in the source, augmented by material extracted from specially-formatted comments found adjacent to the program declarations. This XML output can be used to generate human-readable documentation in a number of different formats, or to extract information about the program source under study.</para>
 
-<section><title>Overview</title>
-
-  <para>The <application>js2doc</application> tool extracts reference documentation from ECMAScript (ECMA-262) 3rd Edition source code, with some provision for ECMAScript 4th Edition extensions such as <literal>class</literal>. (It is intended that eventually <application>js2doc</application> will support the full <acronym>ES4</acronym> language once that standard has been finalized.) The tool generates an XML representation of the declarations in the source, augmented by material extracted from specially-formatted comments found adjacent to the program declarations. This XML output can be used to generate human-readable documentation in a number of different formats, or to extract information about the program source under study.</para>
-
-  <note>The <application>js2doc</application> tool was built to document JavaScript source associated with the OpenLaszlo project, and as such contains several proprietary extensions in support of OpenLaszlo. The intention is to remove these extensions as the <acronym>ES4</acronym> language nears acceptance.</note>
-
-</section>
-
-<section><title>Format of Structured Comments</title>
-
-  <para>Structured comments generally follow the format defined for <ulink url="http://java.sun.com/j2se/javadoc/">javadoc</ulink>.</para>
-</section>
-
-<section><title>Matching Comments to Declarations</title>
-
-  <para>The js2doc tool works by matching comments to declarations. Generally speaking, the comment immediately preceding the declaration is matched if it has the correct format. The comment must immediately precede the declaration: if an improperly-formatted (or unformatted) comment intervenes between a properly formatted comment and a declaration, there is no match. Note that special rules apply to a structured comment intended to apply to the source file as a whole; see below for details.</para>
+  <note><para>The <application>js2doc</application> tool was built to document JavaScript source associated with the OpenLaszlo project, and as such contains several proprietary extensions in support of OpenLaszlo. The intention is to remove these extensions as the <acronym>ES4</acronym> language nears acceptance.</para></note>
+    
+  </section>
   
+  <section><title>Format of Structured Comments</title>
+    
+    <para>Structured comments generally follow the format defined for <ulink url="http://java.sun.com/j2se/javadoc/">javadoc</ulink>.</para>
+  </section>
+  
+  <section><title>Matching Comments to Declarations</title>
+    
+    <para>The js2doc tool works by matching comments to declarations. Generally speaking, the comment immediately preceding the declaration is matched if it has the correct format. The comment must immediately precede the declaration: if an improperly-formatted (or unformatted) comment intervenes between a properly formatted comment and a declaration, there is no match. Note that special rules apply to a structured comment intended to apply to the source file as a whole; see below for details.</para>
+  
   <para>Here is a simple example:</para>
   
   <informalexample><programlisting>/** Whether the process is complete **/
@@ -70,13 +70,13 @@
 
   <para>The js2doc tool tracks the use of top-level conditional expressions and automatically annotates its output with information about those conditionals. Two types of constants are tracked: <emphasis>runtime designators</emphasis>, and <emphasis>build types</emphasis>.</para>
   
-  <para>In the following example, the js2doc output will annotate the <literal>foo</literal> variable as if it had an associated comment with the field <code>@runtimes $swf7</code>.</para>
+  <para>In the following example, the js2doc output will annotate the <literal>foo</literal> variable as if it had an associated comment with the field <literal>@runtimes $swf7</literal>.</para>
   
   <informalexample><programlisting>if ($swf7) {
   var foo = 10;
 }</programlisting></informalexample>
 
-  <para>Only boolean literals (<literal>true</literal> or <literal>false</literal>) or predefined constants are tracked, but complex boolean expressions combining those elements are supported. In the following example, with a set of three known runtime constants (<literal>$swf7</literal>, <literal>$swf8</literal>, and <literal>$dhtml</literal>) <literal>foo</literal> is annotated as if by <code>@runtimes $swf7 $swf8</code>, and <literal>bar</literal> is annotated as if by <code>@runtimes $dhtml</code>.</para>
+  <para>Only boolean literals (<literal>true</literal> or <literal>false</literal>) or predefined constants are tracked, but complex boolean expressions combining those elements are supported. In the following example, with a set of three known runtime constants (<literal>$swf7</literal>, <literal>$swf8</literal>, and <literal>$dhtml</literal>) <literal>foo</literal> is annotated as if by <literal>@runtimes $swf7 $swf8</literal>, and <literal>bar</literal> is annotated as if by <literal>@runtimes $dhtml</literal>.</para>
   
   <informalexample><programlisting>if ($swf7 || $swf8) {
   var foo = 10;
@@ -99,44 +99,44 @@
         <varlistentry>
             <term>topic</term>
             <term>subtopic</term>
-            <listitem>The topic and subtopic used to organize this declaration within its output book. Valid only for file-level and top-level declarations.</listitem>
+            <listitem><para>The topic and subtopic used to organize this declaration within its output book. Valid only for file-level and top-level declarations.</para></listitem>
         </varlistentry>
-        <varlistentry>
-            <term>copyright</term>
-            <listitem></listitem>
-        </varlistentry>
+      <varlistentry>
+        <term>copyright</term>
+        <listitem><para></para></listitem>
+      </varlistentry>
         
         <varlistentry>
             <term>access</term>
-            <listitem>The visibility (private|public|protected) of the declaration.</listitem>
+            <listitem><para>The visibility (private|public|protected) of the declaration.</para></listitem>
         </varlistentry>
         <varlistentry>
             <term>type</term>
-            <listitem>The JavaScript type of the declaration. Will become unnecessary once type declaration support is added to the compiler. May not exist if @lzxtype is given since in that case the JS type can be trivially derived (<code>lz.<replaceable>lzxtype</replaceable></code>).</listitem>
+            <listitem><para>The JavaScript type of the declaration. Will become unnecessary once type declaration support is added to the compiler. May not exist if @lzxtype is given since in that case the JS type can be trivially derived (<literal>lz.<replaceable>lzxtype</replaceable></literal>).</para></listitem>
         </varlistentry>
         <varlistentry>
-            <term>modifiers</term>            <listitem>(final|virtual|deprecated|override|abstract|const|readonly|read-only)</listitem>
+            <term>modifiers</term>            <listitem><para>(final|virtual|deprecated|override|abstract|const|readonly|read-only)</para></listitem>
         </varlistentry>
-        <varlistentry>
-            <term>param</term>
-            <listitem>Used to describe a particular function or method parameter. Format is <code>@param [<replaceable>jstype</replaceable>] <replaceable>name</replaceable> : <replaceable>description</replaceable></code>. The description may be multi-line, as with all comment fields. Ignored if not given as part of a function or method comment.</listitem>
+      <varlistentry>
+        <term>param</term>
+            <listitem><para>Used to describe a particular function or method parameter. Format is <literal>@param [<replaceable>jstype</replaceable>] <replaceable>name</replaceable> : <replaceable>description</replaceable></literal>. The description may be multi-line, as with all comment fields. Ignored if not given as part of a function or method comment.</para></listitem>
         </varlistentry>
-        <varlistentry>
-            <term>return</term>
-            <term>returns</term>
-            <listitem>Used to describe the return value of a function or method. Format is <code>@param [<replaceable>jstype</replaceable> : ] <replaceable>description</replaceable></code>. The description may be multi-line, as with all comment fields. Ignored if not given as part of a function or method comment.</listitem>
+      <varlistentry>
+        <term>return</term>
+        <term>returns</term>
+        <listitem><para>Used to describe the return value of a function or method. Format is <literal>@param [<replaceable>jstype</replaceable> : ] <replaceable>description</replaceable></literal>. The description may be multi-line, as with all comment fields. Ignored if not given as part of a function or method comment.</para></listitem>
         </varlistentry>
-        <varlistentry>
-            <term>keyword</term>
-            <term>keywords</term>
-            <listitem>
-                <para>The <literal>keywords</literal> field is a mechanism to give various forms of modifiers.</para>
-                <variablelist><title>Standard Comment Keywords</title>
+      <varlistentry>
+        <term>keyword</term>
+        <term>keywords</term>
+        <listitem>
+          <para>The <literal>keywords</literal> field is a mechanism to give various forms of modifiers.</para>
+          <variablelist><title>Standard Comment Keywords</title>
                     <varlistentry>
                         <term>public</term>
                         <term>protected</term>
                         <term>private</term>
-                        <listitem>Equivalent to giving <code>@access</code>.</listitem>
+                        <listitem><para>Equivalent to giving <literal>@access</literal>.</para></listitem>
                     </varlistentry>
                     <varlistentry>
                         <term>final</term>
@@ -147,28 +147,28 @@
                         <term>const</term>
                         <term>readonly</term>
                         <term>read-only</term>
-                        <listitem>Equivalent to giving <code>@modifiers</code>.</listitem>
+                        <listitem><para>Equivalent to giving <literal>@modifiers</literal>.</para></listitem>
                     </varlistentry>
-                </variablelist>
+          </variablelist>
             </listitem>
         </varlistentry>
     </variablelist>
     <variablelist><title>OpenLaszlo-specific Comment Fields</title>
       <varlistentry>
         <term>initarg</term>
-        <listitem></listitem>
+        <listitem><para></para></listitem>
       </varlistentry>
       <varlistentry>
         <term>runtimes</term>
-        <listitem></listitem>
+        <listitem><para></para></listitem>
       </varlistentry>
       <varlistentry>
         <term>lzxtype</term>
-        <listitem></listitem>
+        <listitem><para></para></listitem>
       </varlistentry>
       <varlistentry>
         <term>lzxname</term>
-        <listitem></listitem>
+        <listitem><para></para></listitem>
       </varlistentry>
     </variablelist>
 </section>
@@ -193,7 +193,9 @@
   
 </section>
 
-<section><title>To Do</title>
+<section>
+  <title>To Do</title>
+  <para></para>
 </section>
 
 <section id="js2doc-schema"><title>JS2Doc Schema</title>

Modified: openlaszlo/branches/devildog/test/smoke/lzunit-test.lzl
===================================================================
--- openlaszlo/branches/devildog/test/smoke/lzunit-test.lzl	2008-02-12 23:02:09 UTC (rev 8010)
+++ openlaszlo/branches/devildog/test/smoke/lzunit-test.lzl	2008-02-13 04:42:34 UTC (rev 8011)
@@ -341,7 +341,10 @@
       super.construct(parent, args);
     </method>
 
-    <!-- Override fail for testing purposes -->
+    <!-- Override fail for testing purposes.  We intercept the fail
+         call before it outputs an error to the debugger, so we don't
+         have to output any info message saying that an error output
+         was expected. -->
     <method name="fail" args="message">
       <![CDATA[
         if (typeof(expectedFailure) == "null") {
@@ -349,12 +352,10 @@
         } else if (typeof(expectedFailure) == "function") {
             if (expectedFailure(message)) {
                 expectedFailures++;
-                Debug.info("Testing test system: '%0.24s' (above) is expected as part of this test", message);
                 return;
             }
         } else if (expectedFailure == message) {
             expectedFailures++;
-            Debug.info("Testing test system: '%0.24s' (above) is expected as part of this test", message);
             return;
         }
         super.fail(format("Wrong failure", expectedFailure,
@@ -373,9 +374,12 @@
       expectedFailure = null;
     </method>
 
+    <!-- NOTE: [2008-02-11 ptw] Since we do _not_ intercept a
+         successful test, we have to test that the expected number of
+         errors have occured to determine if one of the intentional
+         failures is not occuring. -->
     <method name="testFailure">
       expectedFailure = "This is an intentional failure"
-      Debug.debug("Testing test system: '%0.24s' will NOT be output as an error (even though you will get a message saying it is expected)", expectedFailure);
       fail(expectedFailure);
       assertEquals(expectedFailures, 1, "Total number of expected failures");
     </method>
@@ -618,7 +622,7 @@
   </class>
 </library>
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.              *
+* Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->
 



More information about the Laszlo-checkins mailing list