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
