Author: ben
Date: 2007-09-13 14:14:20 -0700 (Thu, 13 Sep 2007)
New Revision: 6469

Modified:
   openlaszlo/branches/legals/
   openlaszlo/branches/legals/WEB-INF/lps/lfc/data/LzDataElement.lzs
   openlaszlo/branches/legals/WEB-INF/lps/lfc/events/LaszloEvents.lzs
   openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LaszloView.lzs
   openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LzText.lzs
   openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LzViewLinkage.lzs
   openlaszlo/branches/legals/WEB-INF/lps/misc/lzx-autoincludes.properties
   
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java
   
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/LibraryWriter.java
   
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java
   openlaszlo/branches/legals/lps/components/base/basedatacombobox.lzx
   openlaszlo/branches/legals/lps/components/base/baselist.lzx
   openlaszlo/branches/legals/lps/components/extensions/views/richinputtext.lzx
   
openlaszlo/branches/legals/lps/components/incubator/rich-text/richtexteditarea.lzx
   openlaszlo/branches/legals/test/lfc/perf/build.xml
   openlaszlo/branches/legals/test/lfc/perf/reporter.lzx
   openlaszlo/branches/legals/test/lfc/resizerepl.lzx
Log:
Merged revisions 5818-5900 via svnmerge from 
http://svn.openlaszlo.org/openlaszlo/branches/wafflecone

.......
  r5818 | hqm | 2007-07-26 17:20:20 -0700 (Thu, 26 Jul 2007) | 1 line
  
  started copying webtop replicator to wafflecone
.......
  r5819 | hqm | 2007-07-26 17:28:09 -0700 (Thu, 26 Jul 2007) | 1 line
  
  updated replicator.lzx to declare attributes as instance vars in script
.......
  r5821 | ptw | 2007-07-26 18:01:38 -0700 (Thu, 26 Jul 2007) | 12 lines
  
  Change 20070726-ptw-Y by [EMAIL PROTECTED] on 2007-07-26 20:59:21 EDT
      in /Users/ptw/OpenLaszlo/wafflecone
      for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
  
  Summary: Add replicators to autoincludes
  
  Technical Reviewer: hminsky (pending)
  
  Tests:
      Inspection
.......
  r5822 | hqm | 2007-07-26 19:56:43 -0700 (Thu, 26 Jul 2007) | 1 line
  
  add setter declaration in script for setNodes
.......
  r5823 | hqm | 2007-07-26 21:02:52 -0700 (Thu, 26 Jul 2007) | 1 line
  
  replicator needs to extend view, not node, for now...
.......
  r5826 | hqm | 2007-07-27 08:53:10 -0700 (Fri, 27 Jul 2007) | 1 line
  
  lfc'ify lazyreplicator.lzx
.......
  r5827 | hqm | 2007-07-27 09:28:46 -0700 (Fri, 27 Jul 2007) | 1 line
  
  some test cases for replicators
.......
  r5847 | ben | 2007-07-28 19:21:20 -0700 (Sat, 28 Jul 2007) | 33 lines
  
  Change 20070728-ben-7 by [EMAIL PROTECTED] on 2007-07-28 16:03:28 PDT
      in /Users/ben/src/svn/openlaszlo/branches/wafflecone
      for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
  
  Summary: Fix typo in richinputtext.lzx
  
  New Features:
  
  Bugs Fixed: none
  
  Technical Reviewer: ptw
  QA Reviewer: 
  Doc Reviewer: 
  
  Documentation:
  Fix typo in richinputtext.lzx -- the function needs to be named
  _forceResetDefaultFormat, not WforceResetDefaultFormat with some weird
  characters before the function name definition. This looks suspiciously 
  like a stray-keystrokes error. 
  
  The diff is just this: 
  
  -  function _. WforceResetDefaultFormat ( ){
  +  function _forceResetDefaultFormat ( ){
  
  Release Notes:
  
  Details:
      
  
  Tests:
.......
  r5853 | ben | 2007-07-30 13:05:07 -0700 (Mon, 30 Jul 2007) | 1 line
  
  adding simple standalone test for rich text editor.
.......
  r5854 | ben | 2007-07-30 13:14:41 -0700 (Mon, 30 Jul 2007) | 1 line
  
  adding simple standalone test for richtexteditarea
.......
  r5856 | ben | 2007-07-30 14:05:40 -0700 (Mon, 30 Jul 2007) | 31 lines
  
  Change 20070730-ben-O by [EMAIL PROTECTED] on 2007-07-30 13:44:30 PDT
      in /Users/ben/src/svn/branches/wafflecone
      for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
  
  Summary: Clean up complicated logic in mouse moved handler in rich text editor
  
  New Features:
  
  Bugs Fixed: LPP-4397 rich text editor: cannot switch to the same font twice
  
  Technical Reviewer: bshine 
  QA Reviewer: mamye (pending)
  Doc Reviewer: (pending)
  
  Documentation:
  Patch by dstowell/jrobey, submitted to openlaszlo for inclusion in
  wafflecone. Bug verified and patch reviewed by me, Ben Shine. 
  (Referrer code EM-1394)
  
  Release Notes:
  
  Details:
  
  Tests:
  
http://localhost:8080/wafflecone/test/components/incubator/richtexteditarea-driver.lzx?lzr=swf8
  Select the first word and apply Helvetica formatting.
  Select the third word and apply Helvetica formatting.
  Third word should now be in Helvetica.
.......
  r5888 | max | 2007-07-31 20:50:01 -0700 (Tue, 31 Jul 2007) | 35 lines
  
  Change 20070731-maxcarlson-r by [EMAIL PROTECTED] on 2007-07-31 17:41:50 PDT
      in /Users/maxcarlson/openlaszlo/wafflecone
      for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
  
  Summary: More null protection, cache view values
  
  New Features:
  
  Bugs Fixed: LPP-4414 - Improve startup performance (partial)
  
  Technical Reviewer: promanik
  QA Reviewer: ben
  Doc Reviewer: (pending)
  
  Documentation:
  
  Release Notes:
  
  Details: LzText.lzs - Don't reset text to same value in setText().
  
  LzViewLinkage.lzs - Check for null values.
  
  LaszloView.lzs - Send onresourcewidth/height events for error/timeout.  Cache 
x, y, width and height values and don't reset.
      
  LaszloEvents.lzs - Check for null values.
  
  LzDataElement.lzs - Check for null values.
  
  baselist.lzx - Check for null values.
  
  basedatacombobox.lzx - Check for null values.
  
  Tests: ....silver/main.lzx?lzr=dhtml&lzt=html has ~1525 fewer calls during 
startup.
.......
  r5895 | ben | 2007-08-01 09:46:29 -0700 (Wed, 01 Aug 2007) | 30 lines
  
  Change 20070731-ben-h by [EMAIL PROTECTED] on 2007-07-31 21:10:15 PDT
      in /Users/ben/src/svn/openlaszlo/branches/wafflecone/test/lfc/perf
      for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone/test/lfc/perf
  
  Summary: Improvements to performance tests for functions in wafflecone
  
  New Features: scaledfunctions.lzx tests lots and lots of iterations of 
functions
  
  Bugs Fixed:
  
  Technical Reviewer: hqm
  QA Reviewer: (pending)
  Doc Reviewer: (pending)
  
  Documentation:
  This is an early quick test setup to compare various kinds of function calls.
  The numbers are not stored anywhere or reported anywhere, because the 
  comparisons are only interesting between numbers in the very same run.
  
  Release Notes:
  
  Details:
      
  
  Tests:
  http://localhost:8080/wafflecone/test/lfc/perf/scaledfunctions.lzx
  http://localhost:8080/wafflecone/test/lfc/perf/scaledfunctions.lzx?lzr=dhtml
.......
  r5896 | pbr | 2007-08-01 10:28:36 -0700 (Wed, 01 Aug 2007) | 50 lines
  
  Change 20070731-Philip-4 by [EMAIL PROTECTED] on 2007-07-31 17:09:38 EST
     in /cygdrive/f/laszlo/svn/src/svn/openlaszlo/branches/wafflecone
     for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
  
  Summary: Wafflecone: Only write 'validate' attribute if explicitly defined by 
th
  e user
  
  New Features:
  
  Bugs Fixed: LPP-3988
  
  Technical Reviewer: ptw
  QA Reviewer: (pending)
  Doc Reviewer: (pending)
  
  Documentation:
  
  Release Notes:
  
  Details:
  A canvas or library can define an attribute called 'validate' to bypass XML 
vali
  dation. If the user does not explicitly define it, validate is set to true. 
With
   binary libraries, validate was unconditionally written to the output. This 
caus
  es warning messages like the ones mentioned in LPP-3988. The fix is to write 
the
   validate attribute only when explicitly defined inside a library.
  
  CompilationEnvironment.java
   Define a new property, e_validate, that is defined only when the user 
explicit
  ly defines the validate attribute.
  ToplevelCompiler.java
   Modified setValidateProperty() to set e_validate if the user specified the 
val
  idate attribute in the canvas or library.
  LibraryWriter.java
   Writes validate attribute only if e_validate and validate are defined 
properti
  es.
  
  Tests:
   See test file attached to LPP-3988.lzx. When run without this patch, a 
warning
   is generated when lpp3988.lzx is run. No warning is reported when the patch 
is
  applied. You can also look inside the two binary compiled files to see that 
'val
  idate' is only written when explicitly specified.
  
  Files:
  M      WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java
  M      WEB-INF/lps/server/src/org/openlaszlo/compiler/LibraryWriter.java
  M      
WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.jav
  a
  
  Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20070731-Philip-4.tar
.......



Property changes on: openlaszlo/branches/legals
___________________________________________________________________
Name: svnmerge-integrated
   - /openlaszlo/branches/wafflecone:1-5746 
/openlaszlo/trunk:1-3892,3894-3952,3954-4393,4395-4461,4463-4467,4469-4471,4473-5085,5087-5171,5173-5203,5205-5209,5211-5331,5333-5334
   + /openlaszlo/branches/wafflecone:1-5746,5818-5900 
/openlaszlo/trunk:1-3892,3894-3952,3954-4393,4395-4461,4463-4467,4469-4471,4473-5085,5087-5171,5173-5203,5205-5209,5211-5331,5333-5334

Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/data/LzDataElement.lzs
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/data/LzDataElement.lzs   
2007-09-13 20:49:19 UTC (rev 6468)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/data/LzDataElement.lzs   
2007-09-13 21:14:20 UTC (rev 6469)
@@ -179,7 +179,7 @@
   * @return String: The value for the given attribute
   */
 function getAttr (name){
-    return this.attributes[ name ];
+    if (this.attributes) return this.attributes[ name ];
 }
 
 /**

Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/events/LaszloEvents.lzs
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/events/LaszloEvents.lzs  
2007-09-13 20:49:19 UTC (rev 6468)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/events/LaszloEvents.lzs  
2007-09-13 21:14:20 UTC (rev 6469)
@@ -434,7 +434,7 @@
                     evq.push(d, sd);
                 } else {
                   // d.execute( sd ); inlined
-                  d.c[d.f]( sd );
+                  if (d.c[d.f]) d.c[d.f]( sd );
                 }
             }
         }

Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LaszloView.lzs
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LaszloView.lzs     
2007-09-13 20:49:19 UTC (rev 6468)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LaszloView.lzs     
2007-09-13 21:14:20 UTC (rev 6469)
@@ -967,6 +967,8 @@
 function resourceloaderror() {
     this.resourcewidth = 0;
     this.resourceheight = 0;
+    if (this.onresourcewidth.ready) this.onresourcewidth.sendEvent(0);
+    if (this.onresourceheight.ready) this.onresourceheight.sendEvent(0);
     this.reevaluateSize();
     if (this.onerror.ready) this.onerror.sendEvent();
 }
@@ -978,6 +980,8 @@
 function resourceloadtimeout() {
     this.resourcewidth = 0;
     this.resourceheight = 0;
+    if (this.onresourcewidth.ready) this.onresourcewidth.sendEvent(0);
+    if (this.onresourceheight.ready) this.onresourceheight.sendEvent(0);
     this.reevaluateSize();
     if (this.ontimeout.ready) this.ontimeout.sendEvent();
 }
@@ -1152,85 +1156,91 @@
   * @param Number v: The new value for the width
   */
 function setWidth ( v ){
-    //Debug.write('LzView.setWidth', this, v, this.sprite);
-    this.sprite.setWidth(v);
+    if (this._width != v) {
+        this._width = v;
+        //Debug.write('LzView.setWidth', this, v, this.sprite);
+        this.sprite.setWidth(v);
 
-    if ( v == null ){
-        this.hassetwidth = false;
-        // expose proto method
-        this.__LZcheckwidth = true;
+        if ( v == null ){
+            this.hassetwidth = false;
+            // expose proto method
+            this.__LZcheckwidth = true;
+            if ( this._setrescwidth ){
+                // will be updated by reevaluateSize
+                this.unstretchedwidth = null;
+                // defaults
+                this._xscale = 1;
+                //this.__LZmovieClipRef._xscale =  100;
+            }
+            this.reevaluateSize( 'width' );
+            return;
+        }
+        this.width = v;
+        if ( this.pixellock ) v = Math.floor( v );
         if ( this._setrescwidth ){
-            // will be updated by reevaluateSize
-            this.unstretchedwidth = null;
-            // defaults
-            this._xscale = 1;
-            //this.__LZmovieClipRef._xscale =  100;
-        }
-        this.reevaluateSize( 'width' );
-        return;
-    }
-    this.width = v;
-    if ( this.pixellock ) v = Math.floor( v );
-    if ( this._setrescwidth ){
         var xscale = this.unstretchedwidth == 0 ? 100 : 
v/this.unstretchedwidth;
         this._xscale = xscale;
         //this.__LZmovieClipRef._xscale = xscale * 100;
-    } else {
-        this.__LZcheckwidth = false;
-    }
-    
-    this.hassetwidth = true;
-    
-    //this.__LZbgRef._xscale = v;
+        } else {
+            this.__LZcheckwidth = false;
+        }
+        
+        this.hassetwidth = true;
+        
+        //this.__LZbgRef._xscale = v;
 
-     if (this.immediateparent.__LZcheckwidth)
-         this.immediateparent.__LZcheckwidthFunction( this );
+        if (this.immediateparent.__LZcheckwidth)
+            this.immediateparent.__LZcheckwidthFunction( this );
 
 
-    if (this.onwidth.ready) this.onwidth.sendEvent( v );
+        if (this.onwidth.ready) this.onwidth.sendEvent( v );
+    }
 }
 
-/**
-  * Sets the height of the view the given value. If the view is set to stretch
-  * its resource, the resource will be resized to the new value. If the value
-  * 'null' is given for the new height, then the height is unset, and the 
height
-  * of the view will be the size measured of its contents.
+    /**
+    * Sets the height of the view the given value. If the view is set to 
stretch
+    * its resource, the resource will be resized to the new value. If the value
+    * 'null' is given for the new height, then the height is unset, and the 
height
+    * of the view will be the size measured of its contents.
   * @param Number v: The new value for the height
   */
 function setHeight ( v ){
-    this.sprite.setHeight(v);
+    if (this._height != v) {
+        this._height = v;
+        this.sprite.setHeight(v);
 
-    if ( v == null ){
-        this.hassetheight = false;
-        // expose proto method
-        this.__LZcheckheight = true;
+        if ( v == null ){
+            this.hassetheight = false;
+            // expose proto method
+            this.__LZcheckheight = true;
 
+            if ( this._setrescheight ){
+                // will be updated by reevaluateSize
+                this.unstretchedheight = null;
+                // defaults
+                this._yscale = 1;
+                //this.__LZmovieClipRef._yscale =  100;
+            }
+            this.reevaluateSize( 'height' );
+            return;
+        }
+        this.height = v;
+        if ( this.pixellock ) v = Math.floor( v );
         if ( this._setrescheight ){
-            // will be updated by reevaluateSize
-            this.unstretchedheight = null;
-            // defaults
-            this._yscale = 1;
-            //this.__LZmovieClipRef._yscale =  100;
+            var yscale = this.unstretchedheight == 0 ? 100 : 
v/this.unstretchedheight;
+            this._yscale = yscale;
+            //this.__LZmovieClipRef._yscale = yscale * 100;
+        } else {
+            this.__LZcheckheight = false;
         }
-        this.reevaluateSize( 'height' );
-        return;
-    }
-    this.height = v;
-    if ( this.pixellock ) v = Math.floor( v );
-    if ( this._setrescheight ){
-        var yscale = this.unstretchedheight == 0 ? 100 : 
v/this.unstretchedheight;
-        this._yscale = yscale;
-        //this.__LZmovieClipRef._yscale = yscale * 100;
-    } else {
-        this.__LZcheckheight = false;
-    }
-    this.hassetheight = true;
-    
-    if (this.immediateparent.__LZcheckheight)
-        this.immediateparent.__LZcheckheightFunction( this );
+        this.hassetheight = true;
+        
+        if (this.immediateparent.__LZcheckheight)
+            this.immediateparent.__LZcheckheightFunction( this );
 
 
-    if (this.onheight.ready) this.onheight.sendEvent( v );
+        if (this.onheight.ready) this.onheight.sendEvent( v );
+    }
 }
 
 
@@ -1260,22 +1270,25 @@
   * @param Number v: The new value for <attribute>x</attribute>.
   */
 function setX ( v ){
-    this.x = v;
-    if ( this.__LZhasoffset ){
-        if (this.sprite.capabilities.rotation) {
-            v -= ( this.xoffset * this.__LZrcos  -
-                this.yoffset * this.__LZrsin );
-        } else {
-            v -= this.xoffset;
+    if (this._x != v) {
+        this._x = v;
+        this.x = v;
+        if ( this.__LZhasoffset ){
+            if (this.sprite.capabilities.rotation) {
+                v -= ( this.xoffset * this.__LZrcos  -
+                    this.yoffset * this.__LZrsin );
+            } else {
+                v -= this.xoffset;
+            }
         }
+        
+        if ( this.pixellock ) v = Math.floor( v );
+        this.sprite.setX(v)
+        
+        if (this.immediateparent.__LZcheckwidth)
+            this.immediateparent.__LZcheckwidthFunction( this );
+        if (this.onx.ready) this.onx.sendEvent( this.x );
     }
-    
-    if ( this.pixellock ) v = Math.floor( v );
-    this.sprite.setX(v)
-    
-    if (this.immediateparent.__LZcheckwidth)
-        this.immediateparent.__LZcheckwidthFunction( this );
-    if (this.onx.ready) this.onx.sendEvent( this.x );
 }
 
 
@@ -1284,21 +1297,24 @@
   * @param Number v: The new value for <attribute>y</attribute>.
   */
 function setY ( v ){
-    this.y = v;
-    if ( this.__LZhasoffset ){
-        if (this.sprite.capabilities.rotation) {
-            v -= ( this.xoffset * this.__LZrsin  +
-                this.yoffset * this.__LZrcos );
-        } else {
-            v -= this.yoffset;
+    if (this._y != v) {
+        this._y = v;
+        this.y = v;
+        if ( this.__LZhasoffset ){
+            if (this.sprite.capabilities.rotation) {
+                v -= ( this.xoffset * this.__LZrsin  +
+                    this.yoffset * this.__LZrcos );
+            } else {
+                v -= this.yoffset;
+            }
         }
+        
+        if ( this.pixellock ) v = Math.floor( v );
+        this.sprite.setY(v)
+        if (this.immediateparent.__LZcheckheight)
+            this.immediateparent.__LZcheckheightFunction( this );
+        if (this.ony.ready) this.ony.sendEvent( this.y );
     }
-    
-    if ( this.pixellock ) v = Math.floor( v );
-    this.sprite.setY(v)
-    if (this.immediateparent.__LZcheckheight)
-        this.immediateparent.__LZcheckheightFunction( this );
-    if (this.ony.ready) this.ony.sendEvent( this.y );
 }
 
 

Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LzText.lzs
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LzText.lzs 2007-09-13 
20:49:19 UTC (rev 6468)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LzText.lzs 2007-09-13 
21:14:20 UTC (rev 6469)
@@ -642,6 +642,7 @@
 function setText ( t ){
     // force to a string
     t += '';
+    if (t == this.text) return;
     if (this.visible) this.sprite.setVisible(this.visible);
     this.sprite.setText(t);
     this.text =  t;

Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LzViewLinkage.lzs
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LzViewLinkage.lzs  
2007-09-13 20:49:19 UTC (rev 6468)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LzViewLinkage.lzs  
2007-09-13 21:14:20 UTC (rev 6469)
@@ -83,17 +83,21 @@
     var toffset= 0;
     var scale = "_" + xory + "scale";
 
-    var ual = this.uplinkArray.length;
-    for (var i = 0 ; i < ual ; i++ ){
-      var a = this.uplinkArray[i];
-      tscale *= a[scale];
-      toffset += a[xory] / tscale;
+    if (this.uplinkArray) {
+        var ual = this.uplinkArray.length;
+        for (var i = 0 ; i < ual ; i++ ){
+            var a = this.uplinkArray[i];
+            tscale *= a[scale];
+            toffset += a[xory] / tscale;
+        }
     }
 
-    for (var i = this.downlinkArray.length -1 ; i >= 0 ; i -- ){
-      var a = this.downlinkArray[i];
-      toffset -= a[xory] / tscale;
-      tscale /= a[scale];
+    if (this.downlinkArray) {
+        for (var i = this.downlinkArray.length -1 ; i >= 0 ; i -- ){
+            var a = this.downlinkArray[i];
+            toffset -= a[xory] / tscale;
+            tscale /= a[scale];
+        }
     }
 
     this.scale[xory] = tscale;

Modified: 
openlaszlo/branches/legals/WEB-INF/lps/misc/lzx-autoincludes.properties
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/misc/lzx-autoincludes.properties     
2007-09-13 20:49:19 UTC (rev 6468)
+++ openlaszlo/branches/legals/WEB-INF/lps/misc/lzx-autoincludes.properties     
2007-09-13 21:14:20 UTC (rev 6469)
@@ -2,7 +2,7 @@
 # LPS properties file for development
 
#===============================================================================
 # * P_LZ_COPYRIGHT_BEGIN ******************************************************
-# * Copyright 2001-2004 Laszlo Systems, Inc.  All Rights Reserved.            *
+# * Copyright 2001-2004, 2007 Laszlo Systems, Inc.  All Rights Reserved.       
     *
 # * Use is subject to license terms.                                          *
 # * P_LZ_COPYRIGHT_END ********************************************************
 
@@ -125,3 +125,9 @@
 columnchart: charts/columnchart/columnchart.lzx
 linechart: charts/linechart/linechart.lzx
 piechart: charts/piechart/piechart.lzx
+
+datalistlazyreplicator: utils/replicator/datalistlazyreplicator.lzx
+datalistreplicator: utils/replicator/datalistreplicator.lzx
+lazyreplicator: utils/replicator/lazyreplicator.lzx
+replicator: utils/replicator/replicator.lzx
+replicatorselectionmanager: utils/replicator/replicatorselectionmanager.lzx

Modified: 
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java
===================================================================
--- 
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java
       2007-09-13 20:49:19 UTC (rev 6468)
+++ 
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java
       2007-09-13 21:14:20 UTC (rev 6469)
@@ -33,6 +33,8 @@
     public static final String PROFILE_PROPERTY           = "profile";
     public static final String LINK_PROPERTY              = "link";
     public static final String VALIDATE_PROPERTY          = "validate";
+    // e_validate is defined if a user explicitly defined validate attribute
+    public static final String VALIDATE_EXPLICIT_PROPERTY = "e_validate";
     public static final String CSSFILE_PROPERTY           = "cssfile";
     // Log all debug.write messages back to the server
     public static final String LOGDEBUG_PROPERTY      = "logdebug";

Modified: 
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/LibraryWriter.java
===================================================================
--- 
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/LibraryWriter.java
        2007-09-13 20:49:19 UTC (rev 6468)
+++ 
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/LibraryWriter.java
        2007-09-13 21:14:20 UTC (rev 6469)
@@ -99,10 +99,13 @@
   }
 
   private void exportAttributes() {
-      // Write out the validate attribute of the source library
-      String property = CompilationEnvironment.VALIDATE_PROPERTY;
-      String validate = mEnv.getProperty(property, null);
-      if (validate != null) {
+      // Write out the validate attribute of the source library, but only if
+      // it was explicitly defined by the user
+      String property   = CompilationEnvironment.VALIDATE_PROPERTY;
+      String e_property = CompilationEnvironment.VALIDATE_EXPLICIT_PROPERTY;
+      String validate   = mEnv.getProperty(property, null);
+      String e_validate = mEnv.getProperty(e_property, null);
+      if (e_validate != null && validate != null) {
         out.println("<attribute name='" + property + "' value='" + validate + 
"' />");
       }
   }

Modified: 
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java
===================================================================
--- 
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java
     2007-09-13 20:49:19 UTC (rev 6468)
+++ 
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java
     2007-09-13 21:14:20 UTC (rev 6469)
@@ -84,8 +84,11 @@
      */
     void setValidateProperty(Element root , CompilationEnvironment env) {
         String validate = CompilationEnvironment.VALIDATE_PROPERTY;
+        String e_validate = CompilationEnvironment.VALIDATE_EXPLICIT_PROPERTY;
         // Look for canvas attribute
         if (root.getAttributeValue(validate) != null) {
+            // Record that the user explicitly defined validate
+            env.setProperty(e_validate, true);
             if ("false".equals(root.getAttributeValue("validate"))) {
                 env.setProperty(validate, false);
             } else {
@@ -99,6 +102,8 @@
             Element child = (Element) iter.next();
             if (child.getName().equals("attribute")
                 && validate.equals(child.getAttributeValue("name"))) {
+                // Record that the user explicitly defined validate
+                env.setProperty(e_validate, true);
                 if ("false".equals(child.getAttributeValue("value"))) {
                     env.setProperty(validate, false);
                 }

Modified: openlaszlo/branches/legals/lps/components/base/basedatacombobox.lzx
===================================================================
--- openlaszlo/branches/legals/lps/components/base/basedatacombobox.lzx 
2007-09-13 20:49:19 UTC (rev 6468)
+++ openlaszlo/branches/legals/lps/components/base/basedatacombobox.lzx 
2007-09-13 21:14:20 UTC (rev 6469)
@@ -197,7 +197,7 @@
 
             var t = dp.xpathQuery(this.textdatapath);
             // if t is null, use default text (if it exists)
-            if( ( t == null || t.length == 0 ) && this.defaulttext['length'] > 
0 )
+            if( ( t == null || t.length == 0 ) && this.defaulttext && 
this.defaulttext['length'] > 0 )
                t = this.defaulttext;
 
             if ( this._cbtext && (this.statictext == null) ) {
@@ -215,7 +215,7 @@
             if (this.ismenu) {
                 // Clear the selection
                 this._selectedIndex = -1;
-                if (this._cblist['_selector']) {
+                if (this._cblist && this._cblist['_selector']) {
                     this._cblist._selector.clearSelection();
                 }
             }

Modified: openlaszlo/branches/legals/lps/components/base/baselist.lzx
===================================================================
--- openlaszlo/branches/legals/lps/components/base/baselist.lzx 2007-09-13 
20:49:19 UTC (rev 6468)
+++ openlaszlo/branches/legals/lps/components/base/baselist.lzx 2007-09-13 
21:14:20 UTC (rev 6469)
@@ -89,9 +89,11 @@
         <method name="_doFocus" event="onfocus">
             <![CDATA[
             // the hiliteview is used for keyboard nav hiliting
-                if (this._selector) var sel = this._selector.getSelection();
-                if (sel && sel.length > 0) {
-                    this._hiliteview = sel[0];
+                if (this['_selector']) {
+                    var sel = this._selector.getSelection();
+                    if (sel && sel.length > 0) {
+                        this._hiliteview = sel[0];
+                    }
                 }
             ]]>
         </method>

Modified: 
openlaszlo/branches/legals/lps/components/extensions/views/richinputtext.lzx
===================================================================
--- 
openlaszlo/branches/legals/lps/components/extensions/views/richinputtext.lzx    
    2007-09-13 20:49:19 UTC (rev 6468)
+++ 
openlaszlo/branches/legals/lps/components/extensions/views/richinputtext.lzx    
    2007-09-13 21:14:20 UTC (rev 6469)
@@ -103,7 +103,7 @@
   //
   // @keywords private
   
//-----------------------------------------------------------------------------
-  function _. WforceResetDefaultFormat ( ){
+  function _forceResetDefaultFormat ( ){
     var flashformat = new TextFormat();
     for (var i in this.defaultformat) {
       flashformat[i] = this.defaultformat[i];

Modified: 
openlaszlo/branches/legals/lps/components/incubator/rich-text/richtexteditarea.lzx
===================================================================
--- 
openlaszlo/branches/legals/lps/components/incubator/rich-text/richtexteditarea.lzx
  2007-09-13 20:49:19 UTC (rev 6468)
+++ 
openlaszlo/branches/legals/lps/components/incubator/rich-text/richtexteditarea.lzx
  2007-09-13 21:14:20 UTC (rev 6469)
@@ -4,7 +4,7 @@
   -->
 <library>
     <include href="scrollrichedittext.lzx"/>
-
+    
     <!--- 
     A view which contains the text area for a rich text editor. Combine with a 
     richtexttoolbar to make an actual editor. 
@@ -14,11 +14,15 @@
         <!--- The placement for the toolbar in the richtexteditor. -->
         <attribute name="toolbarplacement" value="null"/>
 
-        <!--- Reference to the toolbar associated with this editor. --> 
-        <attribute name="toolbar" value="$once{parent.parent.toolbar}" />
+        <!--- Reference to the toolbar associated with this editor. 
+            For the toolbar to show the correct format when the insertion
+            point moves, this attribute must be set by users. -->
+        <attribute name="toolbar"  />
         
-        <!--- Reference to the hyperlink creation dialog --> 
-        <attribute name="linkpanel" value="null"/>
+        <!--- Reference to the hyperlink creation dialog.
+            This attribute should be set by users, if there is 
+            an associated link panel --> 
+        <attribute name="linkpanel"/>
         
         <!-- The defaultfontsize, defaultfontname, and defaultfontcolor
              determine the initial configuration of the toolbar, and thus, the
@@ -85,9 +89,7 @@
 
         <!--- @keywords private -->
         <method name="init">
-            // Debug.write("richtexteditor.init"); 
             super.init();
-                        
             // Create a currentformat object, and initialize it to the format
             // specified by the various 
defaultfontsize/defaultfontcolor/defaultfontname
             // attributes. 
@@ -95,17 +97,6 @@
             this._resetFormatToDefaults();
             this.startformat = this.currentformat;
             this.inp.setDefaultFormat(this.currentformat);
-            
-            // I need to force the editor's default to get pushed out to 
-            // any listeners *and* to the actual format of the text field. 
-            // However, my oncurrentformat event hasn't yet been registered. 
-            // So: explicitly push the format to the toolbar
-            this.toolbar.matchformat(this.currentformat);
-            
-            // Point my linkpanel attribute at the linkpanel associated with
-            // this text editor
-            if ("linkpanel" in this.parent.parent) 
-                this.linkpanel = this.parent.parent.linkpanel;
         </method>
 
 <!-- PUBLIC METHODS 
.........................................................-->
@@ -125,7 +116,21 @@
             this._ssel = this._esel = 0;
         ]]></method>
 
+        <!--- Hook this editor up to a toolbar, so that the toolbar's ui
+            will stay synchronized with the format at the insertion point
+            of this editor. --> 
+        <method name="setToolbar" args="tb">            
+            this.toolbar = tb;
+            if (this.isinited) this.toolbar.matchformat(this.currentformat);
+        </method>
+        
+        <!--- Hook this editor up to a link panel, so that the
+            linkpanel will be hidden when the editor is reset -->        
+        <method name="setLinkPanel" args="lp">
+            this.linkpanel = lp;
+        </method>
 
+
 <!-- EVENT HANDLERS 
.........................................................-->
        
         <!--- When a cursor movement key is released, handle the caret motion.
@@ -250,33 +255,22 @@
             if (this._fieldhasfocus) {
                 // Debug.write("onmouseup, field has focus, who is ", who); 
 
+                // [bshine 07.28.2007] the next block is a new patch from 
diamond   
+                this._caretmove(); 
                 if (this._mousedownorigin != null) {
                     // We have focus, and there _is_ a mousedown/mouseup pair 
in progress. 
                     if (this._mousedownorigin == this) {
                     
                         // The mouse click started on the richtext editor.
-                        
-                        // If the mouse click also ended on the rich text 
editor, 
-                        // it's just a caret move. 
-                        if (inp.containsPt(this.getMouse("x"), 
this.getMouse("y"))) {
-                            this._caretmove(); 
-                        } else {                        
-                            // If the mouseclick ended anywhere but the rich 
text editor,
-                            // it's a lost mousedown. 
-                            this._handleLostMouseDown();                       
+                        // If the mouse click didn't end on the rich text 
editor, 
+                        // handle that.
+                        if (!inp.containsPt(this.getMouse("x"), 
this.getMouse("y"))) {                        
+                            this._handleLostMouseDown();      
                         }
-                    } else {
-                        // We have focus, and there's a mousedown/mouseup pair 
in progress,
-                        // and it started on one of the subviews of the RTE. 
-                        // Debug.write("lost mousedown, origin was ", 
this._mousedownorigin); 
-                    } 
-
-                } else {
-                    // We have focus, but there's no mousedown/mouseup pair in 
progress.
-                    // Therefore, do nothing.                     
-                    // Debug.write("No mousedown origin. The mousedown didn't 
start on an RTE component."); 
+                    }
                 }
             }
+                        
 
             // Clear the mousedown attribute; a mouseup means that whatever
             // the mousedown was, it's gone now. 
@@ -286,6 +280,7 @@
         
         <!--- Save selected region. -->
         <method name="saveSelectionRegion"><![CDATA[  
+            // [bshine 07.28.2007] See LPP-4015. Does this need to change now 
that LPP-4015 has been changed?
             if (LzFocus.getFocus() == this._field) {
                 var selpos  = this._field.getSelectionPosition();
                 var selsize = this._field.getSelectionSize();
@@ -408,8 +403,7 @@
         --> 
         <method name="_caretmove">
         // Debug.write("caret");
-        // Don't do any of this if this message isn't already rich-text! 
-        // It's *all* just about formatting tweaks. 
+        // Don't do any of this if this field isn't already rich-text! 
         if (!this.isHTML) return; 
 
         //------------------------------------------------------------
@@ -494,8 +488,8 @@
             var havelzfocus =  (LzFocus.getFocus() == this._field); 
             if (havelzfocus) {
                 var len = this.getText().length;
-            // move the insertion point to the beginning of the text
-                this.setSelection(len, len); 
+                // move the insertion point to the beginning of the text
+                this.setSelection(len, len);
                 this._caretmove(); 
             }
         </method>

Modified: openlaszlo/branches/legals/test/lfc/perf/build.xml
===================================================================
--- openlaszlo/branches/legals/test/lfc/perf/build.xml  2007-09-13 20:49:19 UTC 
(rev 6468)
+++ openlaszlo/branches/legals/test/lfc/perf/build.xml  2007-09-13 21:14:20 UTC 
(rev 6469)
@@ -24,7 +24,7 @@
 
     <!-- The server to hit to run the tests as a client browser -->
     <property name="serverurl" value="http://localhost:8080/"; />
-    <property name="branch" value="branches-legals" />
+    <property name="branch" value="branches-wafflecone" />
     <!-- The command to invoke the browser -->
     <property name="os.opener" value="open" />
     <property name="os.browser.firefox" value="Firefox" />
@@ -143,9 +143,9 @@
             }
 
              var suites = ["sprite", "functions", "viewperf", 
"imageperformance", "textperformance"];
-             var runtimes = ["swf8",  "dhtml"]; // swf7 numbers are boring, 
almost identical to swf8 numbers
-             var browsers = ["Firefox"]; // "Safari"];
-             var webapps = ["trunk", "legalspr4", "legals"];
+             var runtimes = ["swf8", "dhtml"]; // swf7 numbers are boring, 
almost identical to swf8 numbers
+             var browsers = ["Firefox", "Safari"];
+             var webapps = ["wafflecone"];
 
              for (var b in browsers) {
                  for (var w in webapps) {
@@ -165,4 +165,4 @@
 
 </project>
 
-<!-- Copyright 2006 Laszlo Systems -->
\ No newline at end of file
+<!-- Copyright 2006-2007 Laszlo Systems -->
\ No newline at end of file

Modified: openlaszlo/branches/legals/test/lfc/perf/reporter.lzx
===================================================================
--- openlaszlo/branches/legals/test/lfc/perf/reporter.lzx       2007-09-13 
20:49:19 UTC (rev 6468)
+++ openlaszlo/branches/legals/test/lfc/perf/reporter.lzx       2007-09-13 
21:14:20 UTC (rev 6469)
@@ -1,5 +1,5 @@
 <library>
-    <!-- Copyright 2006 Laszlo Systems --> 
+    <!-- Copyright 2006-2007 Laszlo Systems --> 
 
     <node id="reporter"> 
         <method name="sendLogData" args="suitename">
@@ -31,7 +31,7 @@
                  + "&buildid=" + LzBrowser.urlEscape(buildid) 
                  + "&builddate=" + LzBrowser.urlEscape(canvas.lpsbuilddate)
                  + "&browserinfo=" + browserInfo
-                 + "&branch=" + LzBrowser.urlEscape("branches-legals"); 
+                 + "&branch=" + LzBrowser.urlEscape("branches-wafflecone"); 
                  query += "&debug=" + LzBrowser.urlEscape($debug)              
    
                 // Debug.write("sendLogData", query);
                 var completeURL = serverURL + "?" + query;

Modified: openlaszlo/branches/legals/test/lfc/resizerepl.lzx
===================================================================
--- openlaszlo/branches/legals/test/lfc/resizerepl.lzx  2007-09-13 20:49:19 UTC 
(rev 6468)
+++ openlaszlo/branches/legals/test/lfc/resizerepl.lzx  2007-09-13 21:14:20 UTC 
(rev 6469)
@@ -113,7 +113,7 @@
         <simplelayout axis='x'/>
         <text valign="middle" datapath="${'@month'}" width="50"/>
         <text valign="middle" datapath="${'@num'}" width="50"/>
-        <text valign="middle" datapath="@day"/>
+        <text valign="middle" datapath="@day" width="100"/>
         <view bgcolor="red" options="ignorelayout"
               align="right" width="30" height="10">
             <method event="onclick">
@@ -190,7 +190,7 @@
          <button>scroll-and-select first
              <method event="onclick">
                  var rm = repman;
-                 debug.write('rm', rm);
+                 Debug.write('rm', rm);
                  var first = rm.nodes[0];
                  repman.parent.setY(0);
                  var cl = rm.getCloneForNode(first);
@@ -202,6 +202,6 @@
 </canvas>
 
 <!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2006 Laszlo Systems, Inc.  All Rights Reserved.              *
+* Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.              *
 * Use is subject to license terms.                                            *
 * X_LZ_COPYRIGHT_END ****************************************************** -->


_______________________________________________
Laszlo-checkins mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-checkins

Reply via email to