[Laszlo-checkins] r6473 - in openlaszlo/branches/legals: . WEB-INF/lps/lfc WEB-INF/lps/lfc/compiler WEB-INF/lps/lfc/core WEB-INF/lps/lfc/data WEB-INF/lps/lfc/debugger WEB-INF/lps/lfc/kernel/dhtml WEB-INF/lps/lfc/kernel/swf WEB-INF/lps/lfc/services WEB-INF/lps/lfc/views WEB-INF/lps/schema WEB-INF/lps/server/bin WEB-INF/lps/server/sc/src/org/openlaszlo/sc WEB-INF/lps/server/src/org/openlaszlo/cm WEB-INF/lps/server/src/org/openlaszlo/compiler WEB-INF/lps/server/src/org/openlaszlo/sc WEB-INF/lps/server/src/org/openlaszlo/server WEB-INF/lps/server/src/org/openlaszlo/servlets/responders demos/calendar docs laszlo-explorer laszlo-explorer/coverpages laszlo-explorer/coverpages/welcome lps/admin lps/components/base lps/components/extensions lps/components/incubator/rich-text lps/components/incubator/rich-text/test lps/components/lz lps/components/rpc/library/dhtml lps/components/utils/replicator lps/includes/source lps/utils/viewer test test/components/base test/explicit-replicators test/lfc/lztrack test/style/simple
ben@openlaszlo.org
ben at openlaszlo.org
Thu Sep 13 16:39:22 PDT 2007
Author: ben
Date: 2007-09-13 16:38:53 -0700 (Thu, 13 Sep 2007)
New Revision: 6473
Removed:
openlaszlo/branches/legals/test/replicators/
Modified:
openlaszlo/branches/legals/
openlaszlo/branches/legals/WEB-INF/lps/lfc/build.xml
openlaszlo/branches/legals/WEB-INF/lps/lfc/compiler/Class.lzs
openlaszlo/branches/legals/WEB-INF/lps/lfc/core/LzDefs.lzs
openlaszlo/branches/legals/WEB-INF/lps/lfc/core/LzNode.lzs
openlaszlo/branches/legals/WEB-INF/lps/lfc/data/LzDataAttrBind.lzs
openlaszlo/branches/legals/WEB-INF/lps/lfc/data/LzDataProvider.lzs
openlaszlo/branches/legals/WEB-INF/lps/lfc/data/LzDataRequest.lzs
openlaszlo/branches/legals/WEB-INF/lps/lfc/data/LzHTTPDataProvider.lzs
openlaszlo/branches/legals/WEB-INF/lps/lfc/debugger/LzDebug.lzs
openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js
openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/swf/LzInputTextSprite.as
openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/swf/LzMakeLoadSprite.as
openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/swf/LzSprite.as
openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/swf/LzTextSprite.as
openlaszlo/branches/legals/WEB-INF/lps/lfc/services/LzCSSStyle.js
openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LaszloCanvas.lzs
openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LaszloView.lzs
openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LzInputText.lzs
openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LzText.lzs
openlaszlo/branches/legals/WEB-INF/lps/schema/lzx.rnc
openlaszlo/branches/legals/WEB-INF/lps/server/bin/lzc
openlaszlo/branches/legals/WEB-INF/lps/server/sc/src/org/openlaszlo/sc/Parser.jjt
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/cm/CompilationManager.java
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/Canvas.java
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/CanvasCompiler.java
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/Main.java
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/sc/CodeGenerator.java
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptCompressor.java
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/server/LPS.java
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/servlets/responders/ResponderCompile.java
openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/servlets/responders/ResponderLFC.java
openlaszlo/branches/legals/demos/calendar/cal-data.lzx
openlaszlo/branches/legals/demos/calendar/eventselector.lzx
openlaszlo/branches/legals/docs/index.html
openlaszlo/branches/legals/index.jsp
openlaszlo/branches/legals/laszlo-explorer/coverpages/documentation_cover.html
openlaszlo/branches/legals/laszlo-explorer/coverpages/welcome/index.html
openlaszlo/branches/legals/laszlo-explorer/explore-nav.lzx
openlaszlo/branches/legals/laszlo-explorer/nav.rnc
openlaszlo/branches/legals/laszlo-explorer/nav.xml
openlaszlo/branches/legals/lps/admin/dev-console.lzx
openlaszlo/branches/legals/lps/admin/dev-console.lzx.js
openlaszlo/branches/legals/lps/admin/dev-console.lzx.swf
openlaszlo/branches/legals/lps/components/base/basecomponent.lzx
openlaszlo/branches/legals/lps/components/base/basescrollbar.lzx
openlaszlo/branches/legals/lps/components/base/basetabelement.lzx
openlaszlo/branches/legals/lps/components/base/basetrackgroup.lzx
openlaszlo/branches/legals/lps/components/base/datalistselector.lzx
openlaszlo/branches/legals/lps/components/extensions/drawview.lzx
openlaszlo/branches/legals/lps/components/incubator/rich-text/formatfontcolor.lzx
openlaszlo/branches/legals/lps/components/incubator/rich-text/richtexteditarea.lzx
openlaszlo/branches/legals/lps/components/incubator/rich-text/scrollrichedittext.lzx
openlaszlo/branches/legals/lps/components/incubator/rich-text/test/formatfontsize.lzx
openlaszlo/branches/legals/lps/components/incubator/rich-text/test/richtexteditarea-test.lzx
openlaszlo/branches/legals/lps/components/lz/list.lzx
openlaszlo/branches/legals/lps/components/lz/radio.lzx
openlaszlo/branches/legals/lps/components/lz/tree.lzx
openlaszlo/branches/legals/lps/components/rpc/library/dhtml/rpc.js
openlaszlo/branches/legals/lps/components/utils/replicator/lazyreplicator.lzx
openlaszlo/branches/legals/lps/components/utils/replicator/replicator.lzx
openlaszlo/branches/legals/lps/components/utils/replicator/replicatorselectionmanager.lzx
openlaszlo/branches/legals/lps/includes/source/embednew.js
openlaszlo/branches/legals/lps/utils/viewer/viewer.jsp
openlaszlo/branches/legals/test/components/base/lzunit-basedatacombobox.lzx
openlaszlo/branches/legals/test/explicit-replicators/lazy-replicator.lzx
openlaszlo/branches/legals/test/explicit-replicators/replicator.lzx
openlaszlo/branches/legals/test/explicit-replicators/test-replicator.lzx
openlaszlo/branches/legals/test/lfc/lztrack/depthbug.lzx
openlaszlo/branches/legals/test/lfc/lztrack/trackgroups.lzx
openlaszlo/branches/legals/test/style/simple/simple.lzx
openlaszlo/branches/legals/test/style/simple/undefineds.lzx
Log:
Merged revisions 6000-6068,6071-6199 via svnmerge from
http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
.......
r6001 | hqm | 2007-08-10 10:15:54 -0700 (Fri, 10 Aug 2007) | 28 lines
Change 20070810-hqm-2 by hqm at IBM-2E06404CB67 on 2007-08-10 12:28:29 EDT
in /cygdrive/c/users/hqm/openlaszlo/wafflecone/lps/components
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone/lps/components
Summary: amazon soap fails in dhtml / wafflecone branch
New Features:
Bugs Fixed: LPP-4474
Bug: LPP-4474
Technical Reviewer: max
QA Reviewer: (pending)
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details:
Tests:
amazon soap
.......
r6004 | ben | 2007-08-10 11:17:28 -0700 (Fri, 10 Aug 2007) | 33 lines
Change 20070809-ben-u by ben at slim.local on 2007-08-09 14:30:16 PDT
in /Users/ben/src/svn/openlaszlo/branches/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Explicitly hook up font color combobox to editor's font color
New Features:
Bugs Fixed: LPP-4461 In rich text editor, font color combo box does not update when cursor moves to different colored text
Technical Reviewer: max
QA Reviewer: mkratt (pending)
Doc Reviewer: (pending)
Documentation:
This change is more of the process of making connections between the editor and the
editing components explicit. When the editor is hooked up to the font color combo box, the
font color combo box must change its color to match the color of the editor's default
font color. This sounds like doubletalk, but it's actually more like quadrupletalk.
Release Notes:
Details:
In order for the font color combo box to match the color of the default font of the
associated editor, the default font of the editor *must* be one of the color options
in the fontcolors dataset.
Tests:
http://localhost:8080/wafflecone/lps/components/incubator/rich-text/test/richtexteditarea-driver.lzx?debug=true&lzr=swf8
Select some text. Choose a color. Move the cursor to some other text. The color combo box should take on the color of the text it is currently in. Select some more text, set it's color. Move the cursor between text of various colors, and the color combo box should always update to match the color of the text at the current insertion point.
.......
r6007 | ptw | 2007-08-10 13:46:33 -0700 (Fri, 10 Aug 2007) | 25 lines
Change 20070808-ptw-E by ptw at dueling-banjos.local on 2007-08-08 16:24:00 EDT
in /Users/ptw/OpenLaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Update explicit replicator tests
Bugs Fixed:
LPP-4487 'test/explicit-replicators/replicator.lzx not working'
Technical Reviewer: mamye (pending)
Details:
Pablo change the API of simple replicator. Conform to that.
Updated test-replicator to have a better layout, and commented out
scrollbars with bug filed to fix them.
Silence warnings in replicator. Test for ready before sending events.
Fix replicationselectionmanager to work as a sibling to the
explicit replicator.
Tests:
Inspection
.......
r6010 | max | 2007-08-10 14:21:06 -0700 (Fri, 10 Aug 2007) | 27 lines
Change 20070810-maxcarlson-U by maxcarlson at Plastik.local on 2007-08-10 13:58:38 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: More LFC optimization
New Features:
Bugs Fixed: LPP-4414 - Improve startup performance (partial)
Technical Reviewer: promanik
QA Reviewer: ben
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: LzNode.lzs - Move test for __LZstyleConstraints outside __LZapplyStyleConstraints() to save method calls. Avoid checking dep.length twice in applyConstraint().
LzCSSStyle.js - Inline _compoundSelectorApplies() call in getPropertyValueFor(). Simplify/rename _selectorApplies() _compoundSelectorApplies() as it now only applies to compound selectors.
LzSprite.as - Avoid sending resource load events for empty resources.
Tests: http://localhost:8080/wafflecone/...silver/main.lzx?lzr=dhtml&lzt=html shows ~37152 fewer total method calls (from 206356 to 169204). At least 44288 calls to _compoundSelectorApplies() have been eliminated. http://localhost:8080/wafflecone/test/smoke/smokecheck.lzx passes.
.......
r6011 | max | 2007-08-10 14:21:58 -0700 (Fri, 10 Aug 2007) | 1 line
+ rename t to a unique name to prevent namespace conflict in http://localhost:8080/wafflecone/test/style/metasuite.lzx?lzr=swf8&debug=true
.......
r6012 | mkratt | 2007-08-10 14:34:46 -0700 (Fri, 10 Aug 2007) | 1 line
add debug
.......
r6014 | max | 2007-08-10 15:32:41 -0700 (Fri, 10 Aug 2007) | 24 lines
Change 20070810-maxcarlson-y by maxcarlson at Plastik.local on 2007-08-10 15:19:49 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Don't evalueate CSS that would be overridden by a static attribute
New Features:
Bugs Fixed: LPP-4443 - Don't warn on undefined style constraints when constant specified
Technical Reviewer: ben
QA Reviewer: promanik
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: LzNode.lzs - Don't get CSS value if it would be overridden by a instance/class attribute later
Tests: http://localhost:8080/wafflecone/test/style/constraints/main.lzx?lzr=swf8 passes without warning for 'dyson' instance. http://localhost:8080/wafflecone/diamond-legals/client/future/lzmail-silver/main.lzx?lzr=swf8&debug=true has far fewer spurious warnings.
.......
r6033 | ptw | 2007-08-13 13:23:15 -0700 (Mon, 13 Aug 2007) | 22 lines
Change 20070813-ptw-I by ptw at dueling-banjos.local on 2007-08-13 15:52:57 EDT
in /Users/ptw/OpenLaszlo/wafflecone/lps/components
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone/lps/components
Summary: Upgrade test-replicator test
New Features:
The test now presents explicit and implicit cases side-by-side for
easier comparison.
Technical Reviewer: mkratt (pending)
QA Reviewer: pkang (pending)
Details:
Replicated the test to show simple and lazy replication both
explicit and implicit for comparison. Explicit lazy replication
still does not interact correctly with scrollbars (LPP-4484).
Tests:
IWFM
.......
r6037 | max | 2007-08-13 16:19:30 -0700 (Mon, 13 Aug 2007) | 23 lines
Change 20070813-maxcarlson-j by maxcarlson at plastik on 2007-08-13 14:20:00 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: replicator performance improvements, safety
New Features:
Bugs Fixed: LPP-4405 'Implement ExplicitReplication'
Technical Reviewer: ptw
QA Reviewer: promanik
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: Only call setVisible() if visibility changed. Lock layouts before replication, and unlock after. Only call applyData() if it exists.
Tests: http://localhost:8080/wafflecone/test/explicit-replicators/lazy-replicator.lzx, http://localhost:8080/wafflecone/test/explicit-replicators/replicator.lzx and http://localhost:8080/wafflecone/test/explicit-replicators/test-replicator.lzx pass in SWF and DHTML.
.......
r6038 | max | 2007-08-13 16:23:05 -0700 (Mon, 13 Aug 2007) | 1 line
+ Update testcase with warning about known failure
.......
r6040 | max | 2007-08-13 16:29:22 -0700 (Mon, 13 Aug 2007) | 24 lines
Change 20070813-maxcarlson-a by maxcarlson at plastik on 2007-08-13 12:18:32 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Add support for Iceweasel
New Features:
Bugs Fixed: LPP-3738 - Remove DHTML startup warning message for IceWeasel browser
Technical Reviewer: promanik
QA Reviewer: jcrowley
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: Add wupport for Iceweasel per LPP-3738.
Tests: Type about:config in the address bar of FireFox, and set the preference name "general.useragent.override" to 'Iceweasel/2.0.0.6'. You should no longer see warnings when loading DHTML apps. Iceweasel is just another name for Firefox...
.......
r6041 | ben | 2007-08-13 16:51:55 -0700 (Mon, 13 Aug 2007) | 37 lines
Change 20070813-ben-W by ben at slim.local on 2007-08-13 16:40:21 PDT
in /Users/ben/src/svn/openlaszlo/branches/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Fix rich text edit area bug where clicking bold moved insertion point
New Features:
Bugs Fixed: LPP-4396 rich text editor: clicking bold moves insertion point
Technical Reviewer: bshine
QA Reviewer: (pending)
Doc Reviewer: (pending)
Documentation:
This is an application of a patch submitted by Dan Stowell, reviewed and
committed by Ben Shine. The patch from dstowell had to be updated to be
legals-friendly.
Note that this change only works in swf, because the rich text editor
does not work in DHTML at all.
Release Notes:
Details:
Also fixes EM-1182.
However!
LPP-4489 "Richedittext: Can't change formatting before typing" is still present.
So is LPP-4480 "Richedittext: Moving focus outside the text editor doesn't clear selection."
and LPP-4481 "Richedittext: Text size 18 doesn't seem to do anything."
Tests:
http://localhost:8080/wafflecone/lps/components/incubator/rich-text/test/richtexteditarea-test.lzx?lzr=swf7
http://localhost:8080/wafflecone/lps/components/incubator/rich-text/test/richtexteditarea-test.lzx?lzr=swf8
.......
r6042 | max | 2007-08-13 16:52:08 -0700 (Mon, 13 Aug 2007) | 25 lines
Change 20070813-maxcarlson-b by maxcarlson at plastik on 2007-08-13 16:24:27 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: UPDATED: performance improvements
New Features:
Bugs Fixed: LPP-4394 - "LzGlobalMouse.onmousemove" is way to slow for "LzView.prototype.getMouse.dependencies" in SWF, LPP-4414 - Improve startup performance (partial)
Technical Reviewer: promanik
QA Reviewer: ben
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: LzCSSStyle.js - Inlined getSpecificity() and getSelectorSpecificity() in __compareSpecificity(). Swf 7 profiler shows 2217 fewer function calls.
LaszloView.lzs - Fix per LPP-4394, cache setVisible() and setVisibility() values.
Tests: Swf 7 profiler shows 2217 fewer calls to getSpecificity() and getSelectorSpecificity() and 47 fewer calls to __LZupdateShown(). Also passes http://localhost:8080/wafflecone/test/style/metasuite.lzx?lzr=swf8&debug=true
.......
r6043 | max | 2007-08-13 17:29:51 -0700 (Mon, 13 Aug 2007) | 24 lines
Change 20070813-maxcarlson-7 by maxcarlson at plastik on 2007-08-13 14:45:34 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Use png resource for tree
New Features:
Bugs Fixed: LPP-4414 - Improve startup performance (partial)
Technical Reviewer: promanik
QA Reviewer: ben
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: Use png resource for tree to save space.
Tests: http://localhost:8080/wafflecone/examples/components/style_example.lzx?lzt=info shows ~2kb less compressed
.......
r6048 | ptw | 2007-08-14 10:00:28 -0700 (Tue, 14 Aug 2007) | 28 lines
Change 20070814-ptw-o by ptw at dueling-banjos.local on 2007-08-14 11:49:58 EDT
in /Users/ptw/OpenLaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Improve debug printing of LzDataAttrBind objects
Technical Reviewer: hminsky (pending)
QA Reviewer: max (pending)
Details:
Improved the printing of LzDataAttrBind objects a little to help
me diagnose LPP-4494.
LzDebug: Don't escape quotes in strings if you are not quoting the
string.
LzText: Don't override lz.node#_dbg_name unless it would resort to
calling lz.text.toString.
LzDataAttrBind: Don't quote the $path expression
LzClass: Distinguish between class instance methods and methods
that have been added directly to an instance.
Tests:
IWFM
.......
r6050 | ben | 2007-08-14 16:36:50 -0700 (Tue, 14 Aug 2007) | 34 lines
Change 20070813-ben-I by ben at slim.local on 2007-08-13 17:54:29 PDT
in /Users/ben/src/svn/openlaszlo/branches/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Fix rich text editor: now you can change the formatting before typing
New Features:
Bugs Fixed: LPP-4489 Can't change format before typing
LPP-4495 Richedittext: can't change font
LPP-4477 Selecting all of the text in a richedittext and then changing the text's properties doesn't change the final character.
LPP-4479 Richedittext: Successive changing of a text's properties shortens the selected text range by one character.
Technical Reviewer: max
QA Reviewer: jcrowley
Doc Reviewer: (pending)
Documentation:
There was an onblur handler for the rich text edit area that was just a horrible idea,
and never helped. The LzModeManager.rawMouseEvent handler (added in the previous change to
this file) now handles selection management when the focus changes. Getting rid of this
onblur handler fixes four bugs, listed above.
Release Notes:
Details:
Still present:
LPP-4480 Richedittext: Moving focus outside the text editor doesn't clear selection. STILL PRESENT
Tests:
http://localhost:8080/wafflecone/lps/components/incubator/rich-text/test/richtexteditarea-test.lzx?lzr=swf8&debug=true
.......
r6057 | max | 2007-08-14 17:28:24 -0700 (Tue, 14 Aug 2007) | 28 lines
Change 20070814-maxcarlson-j by maxcarlson at plastik on 2007-08-14 16:34:59 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: LFC cleanup
New Features:
Bugs Fixed: LPP-4414 - Improve startup performance (partial)
Technical Reviewer: promanik
QA Reviewer: ptw
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: LzTextSprite.as - Clean up font name lookups.
LzCSSStyle.js - Fix assignment to free variable t in services/LzCSSStyle.js (thanks Tucker!)
LzNode.lzs - Add a note to a recent CSS styling fix referencing the bug number it fixed.
Tests: 'cd WEB-INF/lps/lfc/; ant;' no longer warns about the unassigned variable.
.......
r6065 | max | 2007-08-15 11:26:15 -0700 (Wed, 15 Aug 2007) | 24 lines
Change 20070815-maxcarlson-h by maxcarlson at plastik on 2007-08-15 11:06:48 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Fix brain-o in replicator
New Features:
Bugs Fixed: LPP-4405 'Implement ExplicitReplication'
Technical Reviewer: ptw
QA Reviewer: promanik
Doc Reviewer: (pending)
Documentation:
Release Notes: Lock and unlock layouts at the right time.
Details:
Tests: http://localhost:8080/wafflecone/test/explicit-replicators/lazy-replicator.lzx, http://localhost:8080/wafflecone/test/explicit-replicators/replicator.lzx and http://localhost:8080/wafflecone/test/explicit-replicators/test-replicator.lzx pass in SWF and DHTML.
.......
r6072 | ben | 2007-08-15 14:58:46 -0700 (Wed, 15 Aug 2007) | 31 lines
Change 20070815-ben-1 by ben at slim.local on 2007-08-15 14:47:59 PDT
in /Users/ben/src/svn/openlaszlo/branches/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Eliminate some warnings in doc build
New Features:
Bugs Fixed: LPP-4505 Eliminate several warnings in doc build
Technical Reviewer: none
QA Reviewer: frisco (pending)
Doc Reviewer: (pending)
Documentation:
Markup inside doc comments must be properly formed, and p tags cannot
enclose more than one line that starts with @foo.
Release Notes:
Details:
Tests:
ant doc builds without these warnings:
WARNING: Could not parse comment '<fragment><p>
or
[java] [Fatal Error] :2:107: The element type "p" must be terminated by the matching end-tag "</p>".
.......
r6073 | ben | 2007-08-15 15:51:58 -0700 (Wed, 15 Aug 2007) | 25 lines
Change 20070815-ben-z by ben at slim.local on 2007-08-15 15:50:38 PDT
in /Users/ben/src/svn/openlaszlo/branches/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Fix broken links on quick index page.
New Features:
Bugs Fixed: LPP-4510 Quick Index page has broken doc links
Technical Reviewer: none
QA Reviewer: mkratt (pending)
Doc Reviewer: (pending)
Documentation:
Fixed broken links to contributor's guide and developer's guide.
Release Notes:
Details:
Tests:
.......
r6074 | ben | 2007-08-15 15:57:10 -0700 (Wed, 15 Aug 2007) | 27 lines
Change 20070815-ben-M by ben at slim.local on 2007-08-15 15:55:59 PDT
in /Users/ben/src/svn/openlaszlo/branches/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Fixed broken links on index page
New Features:
Bugs Fixed: LPP-4509 internal index page has broken link to deployer's guide
Technical Reviewer: none
QA Reviewer: mkratt (pending)
Doc Reviewer: (pending)
Documentation:
Things moved; the index needs to point to where things are now.
Release Notes:
Details:
Tests:
http://localhost:8080/wafflecone/
follow links in section "Docs." None of them should be 404s.
.......
r6090 | ptw | 2007-08-16 12:07:05 -0700 (Thu, 16 Aug 2007) | 24 lines
Change 20070816-ptw-6 by ptw at dueling-banjos.local on 2007-08-16 12:33:26 EDT
in /Users/ptw/OpenLaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Support for enabling backtraces at runtime
Bugs Fixed:
LP-1417 'Allow backtracing to be invoked from the developer console' (partial)
Technical Reviewer: hminksy (pending)
QA Reviewer: max (pending)
Details:
buildlfcbacktrace, build.xml: Build LFC*-backtrace
Tests:
Henry is going to make the modifications to the compilation
manager to allow you to say ?debug=backtrace which will enable
backtrace generation in the compiler and link with the
LFC*-backtrace lfc. This will allow you to enable/disable
backtracing at runtime, rather than having to rebuild your system
each time you switch.
.......
r6098 | ptw | 2007-08-16 17:44:39 -0700 (Thu, 16 Aug 2007) | 18 lines
Change 20070816-ptw-W by ptw at dueling-banjos.local on 2007-08-16 20:41:14 EDT
in /Users/ptw/OpenLaszlo/wafflecone/test
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone/test
Summary: Build swf backtrace lfc's
Bugs Fixed:
LP-1417 'Allow backtracing to be invoked from the developer console' (partial)
Technical Reviewer: hminsky (pending)
QA Reviewer: max (pending)
Details:
Forgot that swf lfc's are in their own branch
Tests:
Inspection, Henry will test with his compilation-manager part
.......
r6099 | ptw | 2007-08-16 18:02:14 -0700 (Thu, 16 Aug 2007) | 18 lines
Change 20070816-ptw-f by ptw at dueling-banjos.local on 2007-08-16 20:47:40 EDT
in /Users/ptw/OpenLaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Ok, once more with feeling
Bugs Fixed:
LPP-1417 'Allow backtracing to be invoked from the developer console' (partial)
Technical Reviewer: hminsky (pending)
QA Reviewer: max (pending)
Details:
Actually get it right this time
Tests:
ant make shows that LFC{7,8}-backtrace.lzl is built
.......
r6100 | jcrowley | 2007-08-16 19:36:17 -0700 (Thu, 16 Aug 2007) | 37 lines
Change 20070816-jcrowley-k by jcrowley at doctormanhattan.mshome.net on 2007-08-16 17:00:53 EDT
in /Users/jcrowley/src/svn/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Calendar demo presents no sample data; 'p is null' warnings in Wafflecone Calendar
New Features:
Bugs Fixed: LPP-4504, LPP-4514
Technical Reviewer: henry
QA Reviewer: pbr
Doc Reviewer:
Documentation:
Release Notes:
Details: The reason it wasn't loading was because of changes to
data handling. I managed to fix that, and to fix the
subsequent lock-up that resulted.
We might still want to examine why the lock-up occurred
in SWF, but not in DHTML, but for now, this solves this
particular Calendar-specific bug.
UPDATE: Okay, think I've hammered down all the Debugger
warnings about 'p is null'.
Tests: Run Calendar demo in SWF. Notice that a) data loads, and
b) the app doesn't lock up and throw out a "script
taking too long"-type error.
Also: In Debugger, notice an absence of warnings about
'p is null'.
.......
r6105 | max | 2007-08-16 21:07:26 -0700 (Thu, 16 Aug 2007) | 24 lines
Change 20070816-maxcarlson-h by maxcarlson at plastik on 2007-08-16 19:59:43 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Fix resource unload/reload in dhtml
New Features:
Bugs Fixed: LPP-4261 - Unable to load and unload resources repeatedly - DHTML
Technical Reviewer: promanik
QA Reviewer: jcrowley
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details:
Tests: See LPP-4261.
.......
r6110 | max | 2007-08-17 05:11:57 -0700 (Fri, 17 Aug 2007) | 24 lines
Change 20070816-maxcarlson-f by maxcarlson at plastik on 2007-08-16 20:44:10 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: UPDATED: Add flag to only setAttribute() if it the value passed in changed.
New Features:
Bugs Fixed:
Technical Reviewer: ptw
QA Reviewer: promanik
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: Add a flag that only sets the attribute if its value changed. It's a common pattern to only set an attribute when it changed. With inlining of setAttribute it will also make sense for performance.
Tests: IWFM
.......
r6111 | hqm | 2007-08-17 09:57:52 -0700 (Fri, 17 Aug 2007) | 39 lines
Change 20070817-hqm-8 by hqm at IBM-2E06404CB67 on 2007-08-17 03:06:14 EDT
in /cygdrive/c/users/hqm/openlaszlo/wafflecone2
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: add lzbacktrace query arg to turn on backtraces
New Features:
Bugs Fixed: LPP-1417
Bug: LPP-1417
Technical Reviewer: ptw (pending)
QA Reviewer: max (pending)
Doc Reviewer: (pending)
Documentation:
Release Notes:
backtrace is enabled via new button on dev console, or by
lzbacktrace=true query arg, or new --backtrace arg to lzc
Details:
+ support new backtrace flag
Added new checkbox on dev console to enable backtrace
Tests:
test app prints Debug.warn('foo'), click on it to see if backtraces are turned on
see JIRA for test case
.......
r6121 | ben | 2007-08-17 11:30:10 -0700 (Fri, 17 Aug 2007) | 32 lines
Change 20070815-ben-j by ben at slim.local on 2007-08-15 13:36:15 PDT
in /Users/ben/src/svn/openlaszlo/branches/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Fix richtext: font size 18 doesn't do anything
New Features:
Bugs Fixed: LPP-4451: Richedittext: Text size 18 doesn't seem to do anything.
Technical Reviewer: jcrowley
QA Reviewer: (pending)
Doc Reviewer: (pending)
Documentation:
The formatfontsize combo box needs to act as if it's changed, in order
to make sure that we tell the editor to change the font size. The superclass
(lzcombobox) doesn't seem to be setting it's "changed" instance variable
properly, so for now I'm just forcing changed to true when onselect is called.
The lzcombobox potential bug is filed as LPP-4506.
Release Notes:
Details:
Tests:
http://localhost:8080/wafflecone/lps/components/incubator/rich-text/test/richtexteditarea-driver.lzx?lzr=swf8
Select some text. Change it to size 72. Select some of the text inside that 72-point text. Set it to size 18. The text should now be size 18.
.......
r6125 | max | 2007-08-17 12:38:57 -0700 (Fri, 17 Aug 2007) | 24 lines
Change 20070817-maxcarlson-J by maxcarlson at plastik on 2007-08-17 11:45:38 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Fix view.updateResourceSize() in DHTML
New Features:
Bugs Fixed: LPP-4240 - View.updateResourceSize() generates error in DHTML
Technical Reviewer: promanik
QA Reviewer: jcrowley
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: Implement updateResourceSize() in DHTML.
Tests: See LPP-4240
.......
r6127 | max | 2007-08-17 13:15:14 -0700 (Fri, 17 Aug 2007) | 1 line
+ update lztrack testcases
.......
r6130 | ben | 2007-08-17 14:27:34 -0700 (Fri, 17 Aug 2007) | 31 lines
Change 20070817-ben-0 by ben at slim.local on 2007-08-17 14:24:44 PDT
in /Users/ben/src/svn/openlaszlo/branches/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Extending the test case for basedatacombobox to show some odd behavior.
New Features:
Bugs Fixed:
Technical Reviewer: none
QA Reviewer: (pending)
Doc Reviewer: (pending)
Documentation:
This adds a test that tries to select items by index. It mostly works,
but fails when the index is -1.
Release Notes:
Details:
Tests:
http://localhost:8080/wafflecone/test/components/base/lzunit-basedatacombobox.lzx
fails with
Tests: 5 Failures: 2 Errors: 0
TestFailure: testSelectItemAt failed: Equals: expected 2 got ''
TestFailure: testBadSelectionIndex failed: False: expected false got true
.......
r6131 | max | 2007-08-17 15:22:51 -0700 (Fri, 17 Aug 2007) | 24 lines
Change 20070817-maxcarlson-e by maxcarlson at plastik on 2007-08-17 11:54:00 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Fix stretches with clickable in swf
New Features:
Bugs Fixed: LPP-3726 - stretches breaks clickable in swf7/8
Technical Reviewer: promanik
QA Reviewer: hminsky
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: Update resource and button size after media is loaded.
Tests: See LPP-3726.
.......
r6132 | max | 2007-08-17 15:29:20 -0700 (Fri, 17 Aug 2007) | 26 lines
Change 20070817-maxcarlson-I by maxcarlson at plastik on 2007-08-17 12:08:41 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Fix duplicate onfocus and onblur events
New Features:
Bugs Fixed: LPP-3907 - edittext and inputtext may fire onfocus resp. onblur twice
Technical Reviewer: promanik
QA Reviewer: jcrowley
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: LzInputTextSprite.as - Fix test for current focus in __handlelostFocus().
LzInputTextSprite.lzs - Track current focus/blur state to avoid sending duplicate events.
Tests: Testcase from LPP-3907 passes in swf and dhtml.
.......
r6134 | ptw | 2007-08-17 16:26:58 -0700 (Fri, 17 Aug 2007) | 33 lines
Change 20070817-ptw-3 by ptw at dueling-banjos.local on 2007-08-17 07:12:53 EDT
in /Users/ptw/OpenLaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Remove `make` trampoline from Class system
Bugs Fixed:
LPP-1605 'ctor precedence is wrong'
LPP-4365 'Adding prototype functions to builtin objects a bit broken'
LPP-4513 'Compiler Improvements to address performance'
Technical Reviewer: max (Message-ID: <46C62AAF.1070400 at openlaszlo.org>)
QA Reviewer: hminsky (pending)
Details:
LzDefs: Rework LzInheritedHash to not require .make.
Class: Rework contstructors to call .initialize, .make retained
for backwards-compatibility. Split out class validation code.
Compiler: Remove passThroughNodes before dispatching. Print new
expressions with correct associativity.
JavascriptGenerator, JavascriptCompressor, CodeGenerator: Remove
translation of new to .make
Parser.jjt: Learn how to correctly parse a `new` expressions and
maintain associativity.
Tests:
smokecheck in swf7, swf8, dhtml
.......
r6135 | max | 2007-08-17 17:08:10 -0700 (Fri, 17 Aug 2007) | 24 lines
Change 20070817-maxcarlson-j by maxcarlson at plastik on 2007-08-17 13:59:45 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Clean up radio
New Features:
Bugs Fixed: LPP-3560 - radiogroup and selecting an item
Technical Reviewer: jcrowley
QA Reviewer: promanik
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: Per LPP-3560, move duplicate selection code to applyData() and remove extra onclick handler.
Tests: See LPP-3560.
.......
r6136 | max | 2007-08-17 17:13:09 -0700 (Fri, 17 Aug 2007) | 29 lines
Change 20070817-maxcarlson-L by maxcarlson at plastik on 2007-08-17 13:21:33 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Unify capability warnings across runtimes
New Features:
Bugs Fixed: LPP-4200 - Missing warnings in "LzBrowser.js" (DHTML)
Technical Reviewer: promanik
QA Reviewer: ben
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: LzInputText.lzs - Use this.capabilities instead of this.sprite.capabilities and __warnCapability() instead of homespun warnings.
LzText.lzs - Only set advanced text methods and setters in construct() if capabilities.advancedtext is true. Use this.capabilities instead of this.sprite.capabilities and __warnCapability() instead of homespun warnings.
LaszloView.lzs - Expose LzSprite.prototype.capabilities as view.capabilities. Add shared __warnCapability() method. Use this.capabilities instead of this.
sprite.capabilities and __warnCapability() instead of homespun warnings.
Tests: 'ant lztest' and smoketest pass.
.......
r6137 | max | 2007-08-17 17:14:47 -0700 (Fri, 17 Aug 2007) | 38 lines
Should have been part of r6136...
Change 20070817-maxcarlson-L by maxcarlson at plastik on 2007-08-17 13:21:33 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Unify capability warnings across runtimes
New Features:
Bugs Fixed: LPP-4200 - Missing warnings in "LzBrowser.js" (DHTML)
Technical Reviewer: promanik
QA Reviewer: ben
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: LzInputText.lzs - Use this.capabilities instead of this.sprite.capabilities and __warnCapability() instead of homespun warnings.
LzText.lzs - Only set advanced text methods and setters in construct() if capabilities.advancedtext is true. Use this.capabilities instead of this.sprite.capabilities and __warnCapability() instead of homespun warnings.
LaszloView.lzs - Expose LzSprite.prototype.capabilities as view.capabilities. Add shared __warnCapability() method. Use this.capabilities instead of this.
sprite.capabilities and __warnCapability() instead of homespun warnings.
Tests: 'ant lztest' and smoketest pass.
Files:
M WEB-INF/lps/lfc/views/LzInputText.lzs
M WEB-INF/lps/lfc/views/LzText.lzs
M WEB-INF/lps/lfc/views/LaszloView.lzs
Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20070817-maxcarlson-L.tar
.......
r6141 | max | 2007-08-17 17:59:23 -0700 (Fri, 17 Aug 2007) | 25 lines
Change 20070817-maxcarlson-c by maxcarlson at plastik on 2007-08-17 17:26:25 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: UPDATED: Fix swf mouse coordinate rounding issue
New Features:
Bugs Fixed: LPP-4436 - window decrements its x and y coordinates when clicked
Technical Reviewer: promanik
QA Reviewer: jcrowley
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: LzSprite.as - Round off coordinates in getMouse()
Tests: See LPP-4436
.......
r6142 | max | 2007-08-17 18:18:14 -0700 (Fri, 17 Aug 2007) | 24 lines
Change 20070817-maxcarlson-D by maxcarlson at plastik on 2007-08-17 17:44:06 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: <list> should disable "autoscrollbar" on destroy
New Features:
Bugs Fixed: LPP-4431 - <list> should disable "autoscrollbar" on destroy
Technical Reviewer: promanik
QA Reviewer: jcrowley
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: Add destroy() method per LPP-4431
Tests: http://localhost:8080/legals-clean/examples/components/style_example.lzx and http://localhost:8080/legals-clean/examples/components/list_example.lzx run as before in dhtml and swf.
.......
r6151 | max | 2007-08-19 10:18:15 -0700 (Sun, 19 Aug 2007) | 24 lines
Change 20070817-maxcarlson-o by maxcarlson at plastik on 2007-08-17 18:21:44 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: datalistselector fixes
New Features:
Bugs Fixed: LPP-4315 - "datalistselector#findIndex(..)" attempts to compare a "LzDataElement" against a "LzView", LPP-4316 - "datalistselector#getItemByData(..)" and "datalistselector#getItemIndexByData(..)" should test against null
Technical Reviewer: promanik
QA Reviewer: jcrowley
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: Updated findIndex() per LPP-4315, getItemByData() and getItemIndexByData() per LPP-4316.
Tests:
.......
r6156 | max | 2007-08-20 12:44:08 -0700 (Mon, 20 Aug 2007) | 24 lines
Change 20070819-maxcarlson-g by maxcarlson at plastik on 2007-08-19 10:28:24 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Clean-up for "basescrollbar"
New Features:
Bugs Fixed: LPP-4427 - Clean-up for "basescrollbar"
Technical Reviewer: promanik
QA Reviewer: jcrowley
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: Patched per LPP-4427.
Tests: See LPP-4427.
.......
r6158 | max | 2007-08-20 13:12:42 -0700 (Mon, 20 Aug 2007) | 24 lines
Change 20070820-maxcarlson-g by maxcarlson at plastik on 2007-08-20 12:47:48 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Eliminate warnings in basecomponent.lzx
New Features:
Bugs Fixed: LPP-4200 - Missing warnings in "LzBrowser.js"
Technical Reviewer: promanik
QA Reviewer: jcrowley
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: Only set tint if 'view.capabilities.colortransform' is true.
Tests: Any component test in DHTML will have far fewer warnings in debug mode.
.......
r6160 | max | 2007-08-20 17:28:38 -0700 (Mon, 20 Aug 2007) | 24 lines
Change 20070820-maxcarlson-Q by maxcarlson at plastik on 2007-08-20 15:06:50 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Better performance for <basetrackgroup>
New Features:
Bugs Fixed: LPP-4433 - Better performance for <basetrackgroup>
Technical Reviewer: promanik
QA Reviewer: jcrowley
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: Applied changes per LPP-4433.
Tests: All tests in wafflecone/test/lfc/lztrack/ pass in swf and dhtml.
.......
r6163 | ben | 2007-08-20 17:45:08 -0700 (Mon, 20 Aug 2007) | 47 lines
Change 20070820-ben-Q by ben at slim.local on 2007-08-20 16:02:38 PDT
in /Users/ben/src/svn/openlaszlo/branches/wafflecone-doctools
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Make laszlo explorer, internal index, docs/index point to 3.4 reference on www.openlaszlo.org
New Features:
Bugs Fixed: LPP-4533 Link to 3.4 docs on openlaszlo.org from laszlo explorer
Technical Reviewer: max
QA Reviewer: frisco (pending)
Doc Reviewer: frisco (pending)
Documentation:
With wafflecone, we have decided to have all the links point to the 3.4 documentation on
www.openlaszlo.org. This change makes the documentation and index and laszlo explorer all
point to the reference on www.openlaszlo.org.
Release Notes:
Details:
Tests:
For the internal index:
http://localhost:8080/wafflecone-doctools/ scroll to the bottom.
Notice link to Reference Guide goes to www.openlaszlo.org.
For laszlo explorer:
Go to Laszlo Explorer http://localhost:8080/wafflecone-doctools/laszlo-explorer/
Click on Documentation.
Notice that the right pane includes a link to OL Reference for 3.4, served from
www.openlaszlo.org.
Click on LZX Reference in the left nav pane.
A new window opens up, with full chrome, with the reference served from
www.openlaszlo.org/lps3/reference.
For the documentation index:
Go to http://localhost:8080/wafflecone-doctools/docs/
Notice that the OpenLaszlo Reference bullet list describes where to find both 3.4 and 4.0 docs,
and why you might want to look at each.
Note LPP-4450, "Laszlo Explorer hierarchical menu does not display in dhtml/firefox" is still open,
but is not caused by this change.
.......
r6164 | max | 2007-08-20 19:27:44 -0700 (Mon, 20 Aug 2007) | 24 lines
Change 20070820-maxcarlson-u by maxcarlson at plastik on 2007-08-20 17:32:03 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Fix memory leaks in "basetabelement"
New Features:
Bugs Fixed: LPP-4432 - Memory leaks in "basetabelement"
Technical Reviewer: promanik
QA Reviewer: jcrowley
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: Applied fixes per LPP-4432.
Tests: http://localhost:8080/wafflecone/examples/components/tabs_example.lzx and http://localhost:8080/wafflecone/test/components/base/lzunit-basetabs.lzx pass in swf and dhtml.
.......
r6172 | ben | 2007-08-21 17:37:56 -0700 (Tue, 21 Aug 2007) | 30 lines
Change 20070821-ben-W by ben at slim.local on 2007-08-21 17:35:02 PDT
in /Users/ben/src/svn/openlaszlo/branches/wafflecone-doctools
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Fix links to contributor's guide, developer's guide, in documentation cover page in laszlo explorer
New Features:
Bugs Fixed: LPP-4497 Selecting Contributor's and Developer's Guide results in 404 error
Technical Reviewer: none
QA Reviewer: mkratt (pending)
Doc Reviewer: (pending)
Documentation:
The right-hand-pane of the documentation section of the Laszlo Explorer had broken
links to the developer's guide and the contributor's guide. I have fixed these.
Release Notes:
Details:
Tests:
Go to Laszlo Explorer. Click "Documentation" in the left-nav. In the right-hand pane, click "Contributor's Guide" --
you should get the contributor's guide, not a 404.
Go to Laszlo Explorer. Click "Documentation" in the left-nav. In the right-hand pane, click "Developer's Guide" --
you should get the developer's guide, not a 404.
.......
r6175 | max | 2007-08-21 18:51:46 -0700 (Tue, 21 Aug 2007) | 24 lines
Change 20070821-maxcarlson-N by maxcarlson at plastik on 2007-08-21 17:59:00 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Make swf drawviews respec visible attribute
New Features:
Bugs Fixed: LPP-4370 - drawview doesn't respect visibility
Technical Reviewer: ben
QA Reviewer: jcrowley
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: Reset visibility to the value of thie visible attribute.
Tests: See LPP-4370.
.......
r6176 | ben | 2007-08-21 21:26:21 -0700 (Tue, 21 Aug 2007) | 33 lines
Change 20070821-ben-d by ben at slim.local on 2007-08-21 17:53:53 PDT
in /Users/ben/src/svn/openlaszlo/branches/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Eliminate warnings in richtext tests.
New Features:
Bugs Fixed:
Technical Reviewer: jcrowley
QA Reviewer: mkratt (pending)
Doc Reviewer: (pending)
Documentation:
Several warnings and errors were being emitted at startup of the rich text
edit area test and driver files. These were because the linking up of the
editor to the formatting menus was fuzzy; I've made the linking up
explicit, and now we don't get these warnings, but the functionality
still works once we are all hooked up.
Release Notes:
Details:
Tests:
http://localhost:8080/wafflecone/lps/components/incubator/rich-text/test/richtexteditarea-test.lzx?lzr=swf8&debug=true&lzbacktrace=true
http://localhost:8080/wafflecone/lps/components/incubator/rich-text/test/richtexteditarea-driver.lzx?lzr=swf8&debug=true&lzbacktrace=true
...runs without warnings or errors.
.......
r6181 | ptw | 2007-08-22 05:48:23 -0700 (Wed, 22 Aug 2007) | 26 lines
Change 20070821-ptw-e by ptw at dueling-banjos.local on 2007-08-21 16:28:27 EDT
in /Users/ptw/OpenLaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Allow overriding container and mask for explicit replicator
Bugs Fixed:
LPP-4544 'Ability to override default container and mask views for explicit replicator'
Submitted on behalf of: pkang
Technical Reviewer: ptw (pending)
QA Reviewer: mamye (pending)
Details:
Removed old tests. Added new floating-list test from Pablo.
Updated test-replicators (side-by-side test) to actually show
implicit lazy replication.
Exposed `container` (defaults to replicator immediateparent) and
`mask` (defaults to container immediateparent) attributes of
replicator so that Pablo can override them in subclasses.
Tests:
test/explicit-replicators/*
.......
r6183 | max | 2007-08-22 10:18:35 -0700 (Wed, 22 Aug 2007) | 24 lines
Change 20070822-maxcarlson-o by maxcarlson at plastik on 2007-08-22 10:06:35 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Vis source viewer JSP
New Features:
Bugs Fixed: LPP-4425 - Source for Small applications, Demos, and Components can't be viewed
Technical Reviewer: promanik
QA Reviewer: ben
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: Use new fileresolver API
Tests: http://localhost:8080/wafflecone/lps/utils/viewer/viewer.jsp?file=/demos/amazon/amazon.lzx works again.
.......
r6185 | max | 2007-08-22 10:52:57 -0700 (Wed, 22 Aug 2007) | 24 lines
Change 20070822-maxcarlson-F by maxcarlson at plastik on 2007-08-22 10:33:12 PDT
in /Users/maxcarlson/openlaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: Fix memory leaks in swf loader
New Features:
Bugs Fixed: LPP-4535 - Memory leaks in "LzMakeLoadSprite"
Technical Reviewer: promanik
QA Reviewer: ben
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details: See LPP-4535.
Tests: IWFM.
.......
r6194 | max | 2007-08-22 16:19:41 -0700 (Wed, 22 Aug 2007) | 1 line
+ this fixes the testcase (per comments in LPP-4523 and LPP-4524)
.......
r6197 | ptw | 2007-08-23 12:28:00 -0700 (Thu, 23 Aug 2007) | 22 lines
Change 20070823-ptw-n by ptw at dueling-banjos.local on 2007-08-23 15:22:32 EDT
in /Users/ptw/OpenLaszlo/wafflecone
for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
Summary: lzc should not clobber JAVA_OPTS
Bugs Fixed:
LPP-4560 'lzc does not respect JAVA_OPTS on non-windows platforms'
Technical Reviewer: ben (pending)
QA Reviewer: mamye (pending)
Doc Reviewer: (pending)
Details:
It looks like someone (maybe me?) was trying to tweak lzc and
accidentally checked it in. Remove the bogus line that clobbers
JAVA_OPTS.
Tests:
My assertions are firing now.
.......
r6199 | jsundman | 2007-08-23 14:48:07 -0700 (Thu, 23 Aug 2007) | 1 line
bug:lpp-4539 editted copy to make it more appropriate for 4.0.5. Still needs review.
.......
Property changes on: openlaszlo/branches/legals
___________________________________________________________________
Name: svnmerge-integrated
- /openlaszlo/branches/wafflecone:1-5746,5818-6000 /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-6068,6070-6199 /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/build.xml
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/build.xml 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/build.xml 2007-09-13 23:38:53 UTC (rev 6473)
@@ -107,7 +107,7 @@
</ant>
</target>
- <!-- We want to build the cross-product of [dhtml, swf7, swf8] with [ regular, debug, profile ] -->
+ <!-- We want to build the cross-product of [dhtml, swf7, swf8] with [ regular, debug, backtrace, profile ] -->
<target name="lfcs"
depends="init">
@@ -169,6 +169,14 @@
"dhtml",
"--option nameFunctions --option warnGlobalAssignments '-D$debug=true'");
}
+ var backtrace = LFCdir + "LFCdhtml-backtrace.js";
+ if (!(new File(backtrace)).exists()) {
+ // TODO: [2006-06-07 ptw] (LPP-2034) When the LFC is 'clean' of
+ // warnings, the options can be changed to simply -g3
+ dobuild(backtrace,
+ "dhtml",
+ "--option debugBacktrace --option nameFunctions --option warnGlobalAssignments '-D$debug=true'");
+ }
}
if (buildProfile) {
var profile = LFCdir + "LFCdhtml-profile.js";
@@ -199,6 +207,14 @@
"swf" + v,
"--option nameFunctions --option warnGlobalAssignments '-D$debug=true'");
}
+ var backtrace = LFCdir + "LFC" + v + "-backtrace.lzl";
+ if (!(new File(backtrace)).exists()) {
+ // TODO: [2006-06-07 ptw] (LPP-2034) When the LFC is 'clean' of
+ // warnings, the options can be changed to simply -g3
+ dobuild(backtrace,
+ "swf" + v,
+ "--option debugBacktrace --option nameFunctions --option warnGlobalAssignments '-D$debug=true'");
+ }
}
if (buildProfile) {
var profile = LFCdir + "LFC" + v + "-profile.lzl";
Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/compiler/Class.lzs
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/compiler/Class.lzs 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/compiler/Class.lzs 2007-09-13 23:38:53 UTC (rev 6473)
@@ -20,8 +20,14 @@
*
* @access private
* @bootstrap true
+ *
+ * @devnote This is the first class constructor. Constructors for
+ * all other classes are created by Class.make (below).
*/
-var Instance = function () { this.constructor = arguments.callee };
+var Instance = function constructor () {
+ this.constructor = arguments.callee
+ this.initialize.apply(this, arguments);
+};
Instance.prototype.constructor = Instance;
Instance.prototype.__initialized = false;
Instance.classname = 'Instance';
@@ -68,8 +74,20 @@
}
if ($debug) {
if (! value._dbg_typename) {
+ // Delay 'til runtime so classes can adjust their name to be
+ // their tag name
value._dbg_owner = this;
- value._dbg_typename = function () {return this._dbg_owner._dbg_typename + ' function'};
+ value._dbg_typename = function _dbg_typename () {
+ var o = this._dbg_owner;
+ var t = o._dbg_typename;
+ // Prototypes have their own typename, instances should
+ // not, use that to distinguish methods that have been
+ // added directly to instances
+ if (! o.hasOwnProperty('_dbg_typename')) {
+ t += '#' + Debug.IDForObject(o);
+ }
+ return t + ' function';
+ }
}
}
}
@@ -127,6 +145,8 @@
* Default method does nothing
*
* @access private
+ *
+ * @devnote The call to the default method is optimized away in class constructors
*/
Instance.prototype.addProperty('initialize', function initialize () {});
@@ -161,74 +181,89 @@
* Make a new instance of a class.
*
* @access private
+ *
+ * @devnote This is just for coherence with the Class interface.
+ * Normally new instances will be created by `new _class_`.
*/
Instance.make = function make () {
- // Scaffolding until the LFC is rewritten to use NewClass
- var prototype = this.prototype;
- do {
- var constructor = prototype.constructor;
- if (! prototype.__initialized) {
- // Debug.debug('Initializing', this.classname);
- for (var k in prototype) {
- if (prototype.hasOwnProperty(k) && k != 'constructor') {
- // Debug.debug(k);
- var value = prototype[k];
- // Cf., Instance.addProperty
- if (value instanceof Function) {
- if (value.hasOwnProperty('superclasses')) {
- var os = value.superclasses, found = false;
- for (var i = os.length - 1; i >= 0; i--) {
- if (os[i] === constructor) {
- found = true;
- break;
+ // Should not be called in the new world...
+ if ($debug) {
+ Debug.warn("`%w.%s` is deprecated. Use `new %w` instead.", this, arguments.callee, this);
+ }
+ {
+ #pragma "passThrough=true"
+ if (arguments.length > 0) {
+ // We have to work hard to break a conventional constructor into a
+ // constructor and initializer when there are args, because
+ // Javascript does not support apply of new.
+ var constructor = this;
+ function xtor () { this.constructor = constructor; };
+ xtor.prototype = constructor.prototype;
+ var o = new xtor();
+ constructor.apply(o, arguments);
+ return o;
+ }
+ return new this();
+ }
+};
+
+if ($debug) {
+ Instance.make._dbg_typename = 'Instance static function';
+};
+
+if ($debug) {
+ Instance.prototype.addProperty('validateClassStructure', function validateClassStructure () {
+ // Verifies that superclass links for nextMethod are correct
+ var prototype = this.constructor.prototype;
+ do {
+ var constructor = prototype.constructor;
+ if (! prototype.__initialized) {
+ // Debug.debug('Validating', constructor);
+ for (var k in prototype) {
+ if (prototype.hasOwnProperty(k) && k != 'constructor') {
+ // Debug.debug(k);
+ var value = prototype[k];
+ // Cf., Instance.addProperty
+ if (value instanceof Function) {
+ if (value.hasOwnProperty('superclasses')) {
+ var os = value.superclasses, found = false;
+ for (var i = os.length - 1; i >= 0; i--) {
+ if (os[i] === constructor) {
+ found = true;
+ break;
+ }
+ }
+ if (! found) {
+ value.superclasses.push(constructor);
+ Debug.error('Invalid class structure [3+]: Use `addProperty` to create %w.%s', this, k);
+ }
+ } else if (value.hasOwnProperty('superclass')) {
+ var o = value.superclass;
+ if (o !== constructor) {
+ delete value.superclass;
+ value.superclasses = [ o, constructor ];
+ Debug.error('Invalid class structure [2]: Use `addProperty` to create %w.%s', this, k);
+ }
+ } else {
+ value.superclass = constructor;
+ Debug.error('Invalid class structure [1]: Use `addProperty` to create %w.%s', this, k);
}
}
- if (! found) {
- value.superclasses.push(constructor);
- if ($debug) {
- Debug.debug('Shim %s.%s [3+]', this, k)
- }
- }
- } else if (value.hasOwnProperty('superclass')) {
- var o = value.superclass;
- if (o !== constructor) {
- delete value.superclass;
- value.superclasses = [ o, constructor ];
- if ($debug) {
- Debug.debug('Shim %s.%s [2]', this, k);
- }
- }
- } else {
- value.superclass = constructor;
- if ($debug) {
- Debug.debug('Shim %s.%s [1]', this, k);
- }
}
}
+ prototype.__initialized = true;
}
- }
- // Debug.debug('[2] Initializing', this.classname);
- prototype.__initialized = true;
- }
- prototype = constructor.prototype;
- } while (constructor !== Instance);
+ prototype = constructor.prototype;
+ } while (constructor !== Instance);
+ });
+};
- #pragma "passThrough=true"
- var i = new this();
- i.initialize.apply(i, arguments);
- return i;
-}
-
-if ($debug) {
- Instance.make._dbg_typename = 'Instance static function';
-}
-
/**
* Bootstrap Class class
* @todo [2006-05-03 ptw] Rename to Class when LFC has been converted
*/
var Class = {
- prototype: Instance.make(),
+ prototype: new Instance(),
// Add a method to a class by adding it to the class's prototype
addProperty: function addProperty (name, value) {
var proto = this.prototype;
@@ -263,7 +298,7 @@
if ($debug) {
if (value instanceof Function && (! value._dbg_typename)) {
value._dbg_owner = this;
- value._dbg_typename = function () { return this._dbg_owner._dbg_name + ' static function'};
+ value._dbg_typename = function _dbg_typename () { return this._dbg_owner._dbg_name + ' static function'};
}
}
},
@@ -277,7 +312,19 @@
// staticProperties:Object is a hash of the inital class properties;
make: function make (classname, traitsAndSuperclass, instanceProperties, staticProperties) {
// The constructor notes itself in every instance
- var nc = function () { this.constructor = arguments.callee; };
+ var nc = function constructor () {
+ this.constructor = arguments.callee;
+ if ($debug) {
+ // Must come after the constructor is installed
+// Debug.debug("Validate", this, this.validateClassStructure);
+ this.validateClassStructure();
+ }
+ // Call the initializer if it is not the default
+ if (this.initialize !== Instance.prototype.initialize) {
+ // Debug.debug('Initializing', this);
+ this.initialize.apply(this, arguments);
+ }
+ };
nc.constructor = this;
nc.classname = classname;
if ($debug) {
@@ -316,8 +363,12 @@
// The prototype is an instance of our super, which causes us to
// inherit our super's instanceProperties
{
+ // This has to be constructed carefully, so as _not_ to run the
+ // class instance initializer
+ var xtor = function prototype () { this.constructor = superclass; };
+ xtor.prototype = superclass.prototype;
#pragma "passThrough=true"
- var prototype = new superclass; // --- superclass.make();
+ var prototype = new xtor(); // --- superclass.make();
}
// Create any trait interstitials, following the pattern above
if (traitsAndSuperclass instanceof Array) {
@@ -367,7 +418,7 @@
/** Bootstrap Trait class */
var Trait = {
- prototype: Instance.make(),
+ prototype: new Instance(),
allTraits: {},
_dbg_typename: Class._dbg_name,
_dbg_name: 'Trait',
@@ -382,7 +433,7 @@
t.addProperty.apply(t, arguments);
}
if ($debug) {
- if (value instanceof Function) {
+ if (value instanceof Function && (! value._dbg_typename)) {
value._dbg_typename = this._dbg_name + ' function';
}
}
@@ -390,7 +441,7 @@
addStaticProperty: function addStaticProperty (name, value) {
this[name] = value;
if ($debug) {
- if (value instanceof Function) {
+ if (value instanceof Function && (! value._dbg_typename)) {
value._dbg_typename = this._dbg_name + ' static function';
}
}
@@ -425,7 +476,7 @@
superclassInstance.addProperty.call(superclassInstance, name, prototype[name]);
}
// Make the interstitial
- var xtor = function () { this.constructor = arguments.callee; };
+ var xtor = function interstitial () { this.constructor = arguments.callee; };
xtor.prototype = superclassInstance;
// The trait's initialize method will run in Class.make (in the
// proper order).
@@ -437,8 +488,10 @@
// Unique name must identify superclass chain, punctuation is
// added for debugging
xtor.classname = mash;
- xtor._dbg_typename = 'Interstitial Constructor';
- xtor._dbg_name = xtor.classname;
+ if ($debug) {
+ xtor._dbg_typename = 'Interstitial Constructor';
+ xtor._dbg_name = xtor.classname;
+ }
#pragma "passThrough=true"
var t = new xtor();
// Remember
Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/core/LzDefs.lzs
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/core/LzDefs.lzs 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/core/LzDefs.lzs 2007-09-13 23:38:53 UTC (rev 6473)
@@ -69,18 +69,21 @@
* Used to efficiently clone hashtables using Object's
* N.B. these tables incorrectly will appear to have entries for all
* the properties of Object.prototype. To avoid this (but pay the
- * of a slower implementation, use LzDictionary).
+ * overhead of a slower implementation, use LzDictionary).
* @access private
*/
-var LzInheritedHash = {
- make: function make (parent) {
-#pragma "passThrough=true"
- if (parent) {
- function xtor() {};
+function LzInheritedHash (parent) {
+ var constructor = arguments.callee
+ if (! parent) {
+ this.constructor = constructor;
+ } else {
+ if ($as2) {
+ this.__proto__ = parent;
+ } else {
+ function xtor() { this.constructor = constructor; };
xtor.prototype = parent;
return new xtor();
}
- return new Object;
}
}
Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/core/LzNode.lzs
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/core/LzNode.lzs 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/core/LzNode.lzs 2007-09-13 23:38:53 UTC (rev 6473)
@@ -498,6 +498,10 @@
for ( var k in stylemap ){
//we are going to bypass the CSS API and call the underlying
//implementation because we're concerned about speed
+ if (initialArgs[k] != null) {
+ // Don't get CSS value if it would be overridden by a instance/class attribute later
+ continue;
+ }
var v = LzCSSStyle.getPropertyValueFor( this , stylemap[ k ] );
// This is a hack because people want to give color styles as
@@ -514,6 +518,7 @@
if (! (k in initialArgs)) {
// A style that is a function is a constraint
if (v instanceof Function) {
+ //Only set styleConstraints[k] if this[k] is null. See LPP-2894 - CSS: subclasses and instances can't override style constraints set on superclass*
if (this[k] == null) {
// Debug.warn("setting %w[%w] to %w, was %w", this, k, v, this[k]);
styleConstraints[k] = v;
@@ -537,14 +542,12 @@
* @keywords private
*/
function __LZapplyStyleConstraints() {
- if (this.hasOwnProperty('__LZstyleConstraints')) {
- var styleConstraints = this.__LZstyleConstraints;
- for ( var k in styleConstraints ) {
- var fn = styleConstraints[ k ];
- var v = fn.call(this);
+ var styleConstraints = this.__LZstyleConstraints;
+ for ( var k in styleConstraints ) {
+ var fn = styleConstraints[ k ];
+ var v = fn.call(this);
// Debug.format("%w[%s] (%#w) %#w -> %#w", this, k, stylemap[k], this.k, v);
- this.setAttribute(k, v);
- }
+ this.setAttribute(k, v);
}
}
@@ -707,7 +710,7 @@
this.isinited = true;
this.__LZresolveReferences();
- this.__LZapplyStyleConstraints();
+ if (this.__LZstyleConstraints) this.__LZapplyStyleConstraints();
var sl = this.subnodes;
if (sl) {
var i = 0;
@@ -897,9 +900,11 @@
*
* @param String prop: A string naming the key of attribute to set
* @param any val: The value for that attribute
+ * @param Boolean ifchanged: If true, only set the attribute if the value
+ * changed
*/
-function setAttribute(prop, val) {
- if (this.__LZdeleted) return;
+function setAttribute(prop, val, ifchanged) {
+ if (this.__LZdeleted || (ifchanged && (this[prop] == val))) return;
var s = this.setters;
if (s && (prop in s)) {
@@ -1320,7 +1325,8 @@
* [ this, "x" , myfriend, "width" ]
*/
function applyConstraint ( prop , cfunc, dep ){
- if ( dep.length ){
+ var l = dep.length;
+ if (l){
if ( !this.__LZdelegates ){
this.__LZdelegates = [];
}
@@ -1338,7 +1344,6 @@
// be called more than once in an event chain, because it gets
// a separate delegate for each dependency, and people have
// written code that only works because of this loophole...
- var l = dep.length;
var dp;
for ( var i = 0 ; i < l ; i+=2 ){
var d = new LzDelegate( this , refF );
Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/data/LzDataAttrBind.lzs
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/data/LzDataAttrBind.lzs 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/data/LzDataAttrBind.lzs 2007-09-13 23:38:53 UTC (rev 6473)
@@ -94,7 +94,7 @@
if ($debug) {
function _dbg_name () {
- return Debug.formatToString("%w.%s=\"$path{'%w'}\"", this.node, this.setAttr, this.xpath);
+ return Debug.formatToString("%w.%s=\"$path{%w}\"", this.node, this.setAttr, this.xpath);
}
}
Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/data/LzDataProvider.lzs
===================================================================
(Binary files differ)
Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/data/LzDataRequest.lzs
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/data/LzDataRequest.lzs 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/data/LzDataRequest.lzs 2007-09-13 23:38:53 UTC (rev 6473)
@@ -14,7 +14,7 @@
* <class>LzDataRequest</class> is an abstract class that can be extended to create new kinds
* of data requests, which are passed to a <class>DataProvider</class> when making a request.
* </p>
- * <event>onstatus</event>: Sent as data or other conditions occur during the execution of this request.</p>
+ * <event>onstatus</event>: Sent as data or other conditions occur during the execution of this request.
*
* @shortdesc An abstract class to represent data requests.
* @lzxname datarequest
Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/data/LzHTTPDataProvider.lzs
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/data/LzHTTPDataProvider.lzs 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/data/LzHTTPDataProvider.lzs 2007-09-13 23:38:53 UTC (rev 6473)
@@ -13,6 +13,7 @@
/**
* <p>
* <class>LzHTTPDataProvider</class> implements the DataProvider interface, to support HTTP data requests.
+ * </p>
* @shortdesc DataProvider which implements HTTP request transport
* @lzxname httpdataprovider
*/
@@ -269,6 +270,7 @@
/**
* <p>
* <class>LzHTTPDataRequest</class> implements the DataProvider interface, to support HTTP data requests.
+ * </p>
* @shortdesc A class to represent HTTP data requests.
* @lzxname httpdatarequest
*/
Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/debugger/LzDebug.lzs
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/debugger/LzDebug.lzs 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/debugger/LzDebug.lzs 2007-09-13 23:38:53 UTC (rev 6473)
@@ -274,9 +274,12 @@
// Have to handle '\\' first.
s = s.split('\\').join('\\\\');
var np = this.singleEscapeCharacters;
- var skip = "";
+ // quotes are skipped and ignored unless quoted
+ var skip = '"';
var quote = "";
+ var ignore = "'";
if (quoted) {
+ ignore = "";
var singles = s.split("'").length;
var doubles = s.split('"').length;
if (singles > doubles) {
@@ -289,7 +292,7 @@
}
for (var rep in np) {
var ch = np[rep];
- if ((ch != '\\') && (ch != skip)) {
+ if ((ch != '\\') && (ch != skip) && (ch != ignore)) {
s = s.split(ch).join(rep);
}
}
Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js 2007-09-13 23:38:53 UTC (rev 6473)
@@ -1496,11 +1496,17 @@
return this.__z;
}
+LzSprite.prototype.updateResourceSize = function () {
+ this.owner.resourceload({width: this.resourceWidth, height: this.resourceHeight, resource: this.resource, skiponload: true});
+}
+
LzSprite.prototype.unload = function () {
if (this.__ImgPool) {
this.__ImgPool.destroy();
this.__ImgPool = null;
}
+ if (this.__LZimg) this.__discardElement(this.__LZimg);
+ this.__LZimg = null;
}
/**
Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/swf/LzInputTextSprite.as
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/swf/LzInputTextSprite.as 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/swf/LzInputTextSprite.as 2007-09-13 23:38:53 UTC (rev 6473)
@@ -256,8 +256,8 @@
* @access private
*/
TextField.prototype.__handlelostFocus = function ( ){
- //Debug.write('lostfocus', this.__lzview.hasFocus, dunno, LzFocus.lastfocus, this, LzFocus.getFocus(), this.__lzview);
- if (this.__lzview.hasFocus) {
+ //Debug.write('lostfocus', this.__lzview.hasFocus, LzFocus.lastfocus, this, LzFocus.getFocus(), this.__lzview, this.__lzview.inputtextevent);
+ if (this.__lzview == LzFocus.getFocus()) {
LzFocus.clearFocus();
if (this.__lzview) this.__lzview.inputtextevent('onblur');
}
Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/swf/LzMakeLoadSprite.as
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/swf/LzMakeLoadSprite.as 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/swf/LzMakeLoadSprite.as 2007-09-13 23:38:53 UTC (rev 6473)
@@ -174,6 +174,7 @@
if ( this.totalframes > 1 ){
this.checkPlayStatus();
}
+ this.updateResourceSize();
if ( this._setrescheight ){
var yscale = this.height/this.resourceheight;
this.__LZmovieClipRef._yscale = yscale * 100;
@@ -182,6 +183,10 @@
var xscale =this.width/this.resourcewidth;
this.__LZmovieClipRef._xscale = xscale * 100;
}
+ if (this.setButtonSize)
+ this.setButtonSize( "height" , this.height );
+ if (this.setButtonSize)
+ this.setButtonSize( "width" , this.width );
//Debug.write(xscale, yscale, this);
@@ -251,9 +256,15 @@
* @access private
*/
LzMakeLoadSprite.destroy = function (recur) {
-
+ if ('updateDel' in this)
+ this.updateDel.unregisterAll();
+ if ('errorDel' in this)
+ this.errorDel.unregisterAll();
+ if ('timeoutDel' in this)
+ this.timeoutDel.unregisterAll();
+
this.loader.unload( );
// call shadowed destroy()
- this.___destroy( recur );
+ this.___destroy( recur );
}
Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/swf/LzSprite.as
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/swf/LzSprite.as 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/swf/LzSprite.as 2007-09-13 23:38:53 UTC (rev 6473)
@@ -932,7 +932,7 @@
*/
LzSprite.prototype.getMouse = function() {
if ( ! this.__LZmovieClipRef ) { this.makeContainerResource() };
- return {x: this.__LZmovieClipRef._xmouse, y: this.__LZmovieClipRef._ymouse}
+ return {x: Math.round(this.__LZmovieClipRef._xmouse), y: Math.round(this.__LZmovieClipRef._ymouse)}
}
/**
Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/swf/LzTextSprite.as
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/swf/LzTextSprite.as 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/swf/LzTextSprite.as 2007-09-13 23:38:53 UTC (rev 6473)
@@ -626,12 +626,8 @@
*/
LzTextSprite.prototype.__setFormat = function (){
this.setFontInfo();
- var mapped = LzFontManager.__fontnameCacheMap[this.fontname];
- var cfontname;
- if (mapped != null) {
- //Debug.write("found cached font", this.fontname, mapped);
- cfontname = mapped;
- } else {
+ var cfontname = LzFontManager.__fontnameCacheMap[this.fontname];
+ if (cfontname == null) {
cfontname = LzFontManager.__findMatchingFont(this.fontname);
LzFontManager.__fontnameCacheMap[this.fontname] = cfontname;
//Debug.write("caching fontname", this.fontname, cfontname);
Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/services/LzCSSStyle.js
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/services/LzCSSStyle.js 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/services/LzCSSStyle.js 2007-09-13 23:38:53 UTC (rev 6473)
@@ -21,6 +21,8 @@
LzCSSStyleRule.prototype.selector = null;
//No rule has a specificity of zero
LzCSSStyleRule.prototype.specificity = 0;
+
+// this is inlined in __compareSpecificity() - keep in sync
LzCSSStyleRule.prototype.getSpecificity = function () {
// Only calculate this once. Store it after we've calculated it once.
@@ -103,12 +105,45 @@
for ( var i = this._rules.length -1; i >=0; i-- ){
r = this._rules[ i ];
var rp = r.parsed;
- if ( rp.type == this._sel_star ||
+ //inlined: if (rp.type == this._sel_compound && this._compoundSelectorApplies( rp, node )) {
+ if (rp.type == this._sel_compound) {
+ var curnode = node;
+ var sindex = rp.length - 1;
+ var firstone = true;
+ var result = false;
+
+ while (curnode != canvas){
+ //recursively loop through selectors, ensuring each applies to the current node or a parent
+ var nrp = rp[sindex]
+ t = nrp.type;
+
+ if ( t == this._sel_star ||
+ (t == this._sel_id && nrp.id == curnode.id) ||
+ (t == this._sel_tag && (((nrp.classname in lz) && (curnode instanceof lz[ nrp.classname ])) || ( (nrp.classname in global) && (curnode instanceof global[ nrp.classname ])))) ||
+ (t == this._sel_attribute && curnode[ nrp.attrname ] == nrp.attrvalue) ||
+ (t == this._sel_tagAndAttr && curnode[ nrp.attrname ] == nrp.attrvalue && (((nrp.classname in lz) && (curnode instanceof lz[ nrp.classname ])) || ( (nrp.classname in global) && (curnode instanceof global[ nrp.classname ])))) ||
+ (t == this._sel_compound && this._compoundSelectorApplies( nrp, curnode, true ))){
+ if ( sindex-- == 0 ){
+ result = true;
+ break;
+ }
+ } else if ( firstone ){
+ //if the last selector doesn't apply, then bail -- we'll
+ //come back for this when we recurse over the parents in
+ //getPropertyValueFor
+ result = false;
+ break;
+ }
+
+ curnode = curnode.parent;
+ firstone = false;
+ }
+ if (result) rules.push(r);
+ } else if ( rp.type == this._sel_star ||
(rp.type == this._sel_id && rp.id == node.id) ||
(rp.type == this._sel_tag && (((rp.classname in lz) && (node instanceof lz[ rp.classname ])) || ( (rp.classname in global) && (node instanceof global[ rp.classname ])))) ||
(rp.type == this._sel_attribute && node[ rp.attrname ] == rp.attrvalue) ||
- (rp.type == this._sel_tagAndAttr && node[ rp.attrname ] == rp.attrvalue && (((rp.classname in lz) && (node instanceof lz[ rp.classname ])) || ( (rp.classname in global) && (node instanceof global[ rp.classname ])))) ||
- (rp.type == this._sel_compound && this._selectorApplies( rp, node ))){
+ (rp.type == this._sel_tagAndAttr && node[ rp.attrname ] == rp.attrvalue && (((rp.classname in lz) && (node instanceof lz[ rp.classname ])) || ( (rp.classname in global) && (node instanceof global[ rp.classname ]))))) {
rules.push(r);
}
}
@@ -125,12 +160,45 @@
for ( var i = pprules.length -1; i >=0; i-- ){
r = pprules[ i ];
var rp = r.parsed;
- if ( rp.type == this._sel_star ||
- (rp.type == this._sel_id && rp.id == node.id) ||
- (rp.type == this._sel_tag && (((rp.classname in lz) && (node instanceof lz[ rp.classname ])) || ( (rp.classname in global) && (node instanceof global[ rp.classname ])))) ||
- (rp.type == this._sel_attribute && node[ rp.attrname ] == rp.attrvalue) ||
- (rp.type == this._sel_tagAndAttr && node[ rp.attrname ] == rp.attrvalue && (((rp.classname in lz) && (node instanceof lz[ rp.classname ])) || ( (rp.classname in global) && (node instanceof global[ rp.classname ])))) ||
- (rp.type == this._sel_compound && this._selectorApplies( rp, node ))){
+ //inlined: if (rp.type == this._sel_compound && this._compoundSelectorApplies( rp, node )) {
+ if (rp.type == this._sel_compound) {
+ var curnode = node;
+ var sindex = rp.length - 1;
+ var firstone = true;
+ var result = false;
+
+ while (curnode != canvas){
+ //recursively loop through selectors, ensuring each applies to the current node or a parent
+ var nrp = rp[sindex]
+ t = nrp.type;
+
+ if ( t == this._sel_star ||
+ (t == this._sel_id && nrp.id == curnode.id) ||
+ (t == this._sel_tag && (((nrp.classname in lz) && (curnode instanceof lz[ nrp.classname ])) || ( (nrp.classname in global) && (curnode instanceof global[ nrp.classname ])))) ||
+ (t == this._sel_attribute && curnode[ nrp.attrname ] == nrp.attrvalue) ||
+ (t == this._sel_tagAndAttr && curnode[ nrp.attrname ] == nrp.attrvalue && (((nrp.classname in lz) && (curnode instanceof lz[ nrp.classname ])) || ( (nrp.classname in global) && (curnode instanceof global[ nrp.classname ])))) ||
+ (t == this._sel_compound && this._compoundSelectorApplies( nrp, curnode, true ))){
+ if ( sindex-- == 0 ){
+ result = true;
+ break;
+ }
+ } else if ( firstone ){
+ //if the last selector doesn't apply, then bail -- we'll
+ //come back for this when we recurse over the parents in
+ //getPropertyValueFor
+ result = false;
+ break;
+ }
+
+ curnode = curnode.parent;
+ firstone = false;
+ }
+ if (result) rules.push(r);
+ } else if ( rp.type == this._sel_star ||
+ (rp.type == this._sel_id && rp.id == node.id) ||
+ (rp.type == this._sel_tag && (((rp.classname in lz) && (node instanceof lz[ rp.classname ])) || ( (rp.classname in global) && (node instanceof global[ rp.classname ])))) ||
+ (rp.type == this._sel_attribute && node[ rp.attrname ] == rp.attrvalue) ||
+ (rp.type == this._sel_tagAndAttr && node[ rp.attrname ] == rp.attrvalue && (((rp.classname in lz) && (node instanceof lz[ rp.classname ])) || ( (rp.classname in global) && (node instanceof global[ rp.classname ]))))) {
rules.push(r);
}
}
@@ -175,6 +243,7 @@
}
}
+// this is inlined in __compareSpecificity() - keep in sync
LzCSSStyle.getSelectorSpecificity = function ( parsedsel ){
// Go through all the selectors in the selector, keeping a running
// count of various kinds of selectors:
@@ -206,8 +275,117 @@
// if rA specificity is less than rB specifity, return -1
// if they're equal specificity, return 0
// if rB specifitity is less than rA specificity, return 1
- var specificityA = rA.getSpecificity();
- var specificityB = rB.getSpecificity();
+ if (! rA.specificity) {
+ //inline: rA.getSpecificity();
+ // Only calculate this once. Store it after we've calculated it once.
+ // No rule has a specificity of 0
+ if ( !rA.specificity ) {
+ //need to treat compound selectors differently
+
+ if ( rA.parsed.type == LzCSSStyle._sel_compound ){
+ for ( var i = 0; i < rA.parsed.length; i++ ){
+ //inline: rA.specificity += LzCSSStyle.getSelectorSpecificity( rA.parsed[ i ] );
+ switch ( rA.parsed[i].type ){
+ case (LzCSSStyle._sel_tag ):
+ case (LzCSSStyle._sel_star ):
+ rA.specificity += 1;
+ break;
+
+ case (LzCSSStyle._sel_id ):
+ rA.specificity += 100;
+ break;
+
+ case (LzCSSStyle._sel_attribute ):
+ rA.specificity += 10;
+ break;
+
+ case (LzCSSStyle._sel_tagAndAttr ):
+ rA.specificity += 11;
+ break;
+ }
+ }
+ } else {
+ //inline: rA.specificity = LzCSSStyle.getSelectorSpecificity( rA.parsed );
+ switch ( rA.parsed.type ){
+ case (LzCSSStyle._sel_tag ):
+ case (LzCSSStyle._sel_star ):
+ rA.specificity = 1;
+ break;
+
+ case (LzCSSStyle._sel_id ):
+ rA.specificity = 100;
+ break;
+
+ case (LzCSSStyle._sel_attribute ):
+ rA.specificity = 10;
+ break;
+
+ case (LzCSSStyle._sel_tagAndAttr ):
+ rA.specificity = 11;
+ break;
+ }
+ }
+
+ //Debug.write( 'specificity for' , this , this.specificity );
+ }
+ }
+ if (! rB.specificity) {
+ //inline: rB.getSpecificity();
+ // Only calculate this once. Store it after we've calculated it once.
+ // No rule has a specificity of 0
+ if ( !rB.specificity ) {
+ //need to treat compound selectors differently
+
+ if ( rB.parsed.type == LzCSSStyle._sel_compound ){
+ for ( var i = 0; i < rB.parsed.length; i++ ){
+ //inline: rB.specificity += LzCSSStyle.getSelectorSpecificity( rB.parsed[ i ] );
+ switch ( rB.parsed[i].type ){
+ case (LzCSSStyle._sel_tag ):
+ case (LzCSSStyle._sel_star ):
+ rB.specificity += 1;
+ break;
+
+ case (LzCSSStyle._sel_id ):
+ rB.specificity += 100;
+ break;
+
+ case (LzCSSStyle._sel_attribute ):
+ rB.specificity += 10;
+ break;
+
+ case (LzCSSStyle._sel_tagAndAttr ):
+ rB.specificity += 11;
+ break;
+ }
+ }
+ } else {
+ //inline: rB.specificity = LzCSSStyle.getSelectorSpecificity( rB.parsed );
+ switch ( rB.parsed.type ){
+ case (LzCSSStyle._sel_tag ):
+ case (LzCSSStyle._sel_star ):
+ rB.specificity = 1;
+ break;
+
+ case (LzCSSStyle._sel_id ):
+ rB.specificity = 100;
+ break;
+
+ case (LzCSSStyle._sel_attribute ):
+ rB.specificity = 10;
+ break;
+
+ case (LzCSSStyle._sel_tagAndAttr ):
+ rB.specificity = 11;
+ break;
+ }
+ }
+
+ //Debug.write( 'specificity for' , this , this.specificity );
+ }
+ }
+
+ var specificityA = rA.specificity;
+ var specificityB = rB.specificity;
//Debug.write( rA, specificityA );
//Debug.write( rB, specificityB );
@@ -272,47 +450,42 @@
}
-/** @devnote this ideally would be two separate functions, but merging them
- * and inlining the cases of the switch statement is a 2x speedup [awolff]
- * @access private */
-LzCSSStyle._selectorApplies = function ( rp , node ){
- //rp is the parsed selector
- var t = rp.type;
- if ( t == this._sel_star ||
- (t == this._sel_id && rp.id == node.id) ||
- (t == this._sel_tag && (((rp.classname in lz) && (node instanceof lz[ rp.classname ])) || ( (rp.classname in global) && (node instanceof global[ rp.classname ])))) ||
- (t == this._sel_attribute && node[ rp.attrname ] == rp.attrvalue) ||
- (t == this._sel_tagAndAttr && node[ rp.attrname ] == rp.attrvalue && (((rp.classname in lz) && (node instanceof lz[ rp.classname ])) || ( (rp.classname in global) && (node instanceof global[ rp.classname ]))))) {
- return true;
- } else if (t == this._sel_compound) {
- var curnode = node;
- var sindex = rp.length -1;
- var firstone = true;
+/** @access private
+ * This is inlined above in getPropertyValueFor() - make sure they stan in sync
+ */
+LzCSSStyle._compoundSelectorApplies = function (rp , node){
+ var curnode = node;
+ var sindex = rp.length - 1;
+ var firstone = true;
+ var result = false;
- while (curnode != canvas){
- var nrp = rp[sindex]
- t = nrp.type;
+ while (curnode != canvas){
+ //recursively loop through selectors, ensuring each applies to the current node or a parent
+ var nrp = rp[sindex]
+ var t = nrp.type;
- if ( t == this._sel_star ||
- (t == this._sel_id && nrp.id == curnode.id) ||
- (t == this._sel_tag && (((nrp.classname in lz) && (curnode instanceof lz[ nrp.classname ])) || ( (nrp.classname in global) && (curnode instanceof global[ nrp.classname ])))) ||
- (t == this._sel_attribute && curnode[ nrp.attrname ] == nrp.attrvalue) ||
- (t == this._sel_tagAndAttr && curnode[ nrp.attrname ] == nrp.attrvalue && (((nrp.classname in lz) && (curnode instanceof lz[ nrp.classname ])) || ( (nrp.classname in global) && (curnode instanceof global[ nrp.classname ])))) ||
- (t == this._sel_compound && this._selectorApplies( nrp, curnode ))){
- if ( sindex-- == 0 ){
- return true;
- }
- } else if ( firstone ){
- //if the last selector doesn't apply, then bail -- we'll
- //come back for this when we recurse over the parents in
- //getPropertyValueFor
- return false;
+ if ( t == this._sel_star ||
+ (t == this._sel_id && nrp.id == curnode.id) ||
+ (t == this._sel_tag && (((nrp.classname in lz) && (curnode instanceof lz[ nrp.classname ])) || ( (nrp.classname in global) && (curnode instanceof global[ nrp.classname ])))) ||
+ (t == this._sel_attribute && curnode[ nrp.attrname ] == nrp.attrvalue) ||
+ (t == this._sel_tagAndAttr && curnode[ nrp.attrname ] == nrp.attrvalue && (((nrp.classname in lz) && (curnode instanceof lz[ nrp.classname ])) || ( (nrp.classname in global) && (curnode instanceof global[ nrp.classname ])))) ||
+ (t == this._sel_compound && this._compoundSelectorApplies( nrp, curnode, true ))){
+ if ( sindex-- == 0 ){
+ result = true;
+ break;
}
+ } else if ( firstone ){
+ //if the last selector doesn't apply, then bail -- we'll
+ //come back for this when we recurse over the parents in
+ //getPropertyValueFor
+ result = false;
+ break;
+ }
- curnode = curnode.parent;
- firstone = false;
- }
+ curnode = curnode.parent;
+ firstone = false;
}
+ return result;
}
/** @access private */
Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LaszloCanvas.lzs
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LaszloCanvas.lzs 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LaszloCanvas.lzs 2007-09-13 23:38:53 UTC (rev 6473)
@@ -128,7 +128,7 @@
if (args.width.charAt(args.width.length-1) == '%') {
var percent = Number(args.width.substr(0, args.width.length-1));
this.__canvaswidthratio = percent/100;
- if (this.sprite.capabilities.scalecanvastopercentage != true) {
+ if (this.capabilities.scalecanvastopercentage != true) {
// some runtimes already scale the viewport size, so take the reported size literally to avoid scaling twice
this.__canvaswidthratio = 1;
}
@@ -147,7 +147,7 @@
if (args.height.charAt(args.height.length-1) == '%') {
var percent = Number(args.height.substr(0, args.height.length-1));
this.__canvasheightratio = percent/100;
- if (this.sprite.capabilities.scalecanvastopercentage != true) {
+ if (this.capabilities.scalecanvastopercentage != true) {
// some runtimes already scale the viewport size, so take the reported size literally to avoid scaling twice
this.__canvasheightratio = 1;
}
Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LaszloView.lzs
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LaszloView.lzs 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LaszloView.lzs 2007-09-13 23:38:53 UTC (rev 6473)
@@ -190,6 +190,8 @@
DeclareEvent(prototype, 'ondblclick' );
var DOUBLE_CLICK_TIME = 500;
+var capabilities = LzSprite.prototype.capabilities;
+
/**
* Base level constructor for views. See <method
* classname="LzNode">construct</method> for more on this.
@@ -1082,17 +1084,21 @@
* @param Boolean amVisible: boolean for visibility of view
*/
function setVisible( amVisible ) {
+ if (this._visible == amVisible) return;
+ this._visible = amVisible;
+
// make us compatible with the new 'visibility' attribute
if (amVisible) {
- this.visibility = "visible";
+ var v = "visible";
} else if (amVisible == null) {
- this.visibility = "collapse";
+ var v = "collapse";
if ($debug) {
Debug.warn("setVisible(null) is deprecated, use setVisibility('collapse') instead");
}
} else {
- this.visibility = "hidden";
+ var v = "hidden";
}
+ this.visibility = v;
//
if (this.onvisibility.ready) this.onvisibility.sendEvent( this.visibility );
@@ -1112,6 +1118,7 @@
* @param String amVisible: visibility of view
*/
function setVisibility( amVisible ) {
+ if (this.visibility == amVisible) return;
this.visibility = amVisible;
if ($debug) {
if (! (amVisible == "visible" || amVisible == "hidden" || amVisible == "collapse")) {
@@ -1253,8 +1260,10 @@
* @param Number v: The new value for the opacity
*/
function setOpacity ( v ){
- if (this.sprite.capabilities.opacity) {
+ if (this.capabilities.opacity) {
this.sprite.setOpacity(v);
+ } else if ($debug) {
+ this.__warnCapability('view.setOpacity()');
}
this.opacity = v;
if (this.onopacity.ready) this.onopacity.sendEvent( v );
@@ -1277,7 +1286,7 @@
this._x = v;
this.x = v;
if ( this.__LZhasoffset ){
- if (this.sprite.capabilities.rotation) {
+ if (this.capabilities.rotation) {
v -= ( this.xoffset * this.__LZrcos -
this.yoffset * this.__LZrsin );
} else {
@@ -1304,7 +1313,7 @@
this._y = v;
this.y = v;
if ( this.__LZhasoffset ){
- if (this.sprite.capabilities.rotation) {
+ if (this.capabilities.rotation) {
v -= ( this.xoffset * this.__LZrsin +
this.yoffset * this.__LZrcos );
} else {
@@ -1326,8 +1335,10 @@
* @param Number v: The new value for <attribute>rotation</attribute>.
*/
function setRotation ( v ){
- if (this.sprite.capabilities.rotation) {
+ if (this.capabilities.rotation) {
this.sprite.setRotation(v)
+ } else if ($debug) {
+ this.__warnCapability('view.setRotation()');
}
this.rotation = v;
var rrad = Math.PI /180 * this.rotation;
@@ -1545,8 +1556,10 @@
* @runtimes as2
*/
function setColorTransform ( o ){
- if (this.sprite.capabilities.colortransform) {
+ if (this.capabilities.colortransform) {
this.sprite.setColorTransform(o);
+ } else if ($debug) {
+ this.__warnCapability('view.setColorTransform()');
}
}
@@ -1567,8 +1580,10 @@
* @runtimes as2
*/
function getColorTransform (){
- if (this.sprite.capabilities.colortransform) {
+ if (this.capabilities.colortransform) {
return this.sprite.getColorTransform();
+ } else if ($debug) {
+ this.__warnCapability('view.getColorTransform()');
}
}
@@ -1984,7 +1999,7 @@
}
prototype.getMouse.dependencies = function( ) {
- return [ LzGlobalMouse, "mousemove" ];
+ return [ LzIdle, "idle" ];
}
/**
@@ -2254,8 +2269,10 @@
* @param Integer v: A number from 0 to 100 representing a volume level
*/
function setVolume (v) {
- if (this.sprite.capabilities.audio) {
+ if (this.capabilities.audio) {
this.sprite.setVolume(v);
+ } else if ($debug) {
+ this.__warnCapability('view.setVolume()');
}
}
@@ -2264,8 +2281,10 @@
* @return Integer: A number from 0 to 100 representing a volume level
*/
function getVolume () {
- if (this.sprite.capabilities.audio) {
+ if (this.capabilities.audio) {
return this.sprite.getVolume();
+ } else if ($debug) {
+ this.__warnCapability('view.getVolume()');
}
}
@@ -2274,8 +2293,10 @@
* @param Integer p: A number from -100 to 100 representing a pan level
*/
function setPan (p) {
- if (this.sprite.capabilities.audio) {
+ if (this.capabilities.audio) {
this.sprite.setPan(p);
+ } else if ($debug) {
+ this.__warnCapability('view.setPan()');
}
}
@@ -2284,8 +2305,10 @@
* @return Integer: A number from -100 to 100 representing a pan level
*/
function getPan () {
- if (this.sprite.capabilities.audio) {
+ if (this.capabilities.audio) {
return this.sprite.getPan();
+ } else if ($debug) {
+ this.__warnCapability('view.getPan()');
}
}
@@ -2395,8 +2418,10 @@
* @param Boolean accessible
*/
function setAccessible (accessible) {
- if (this.sprite.capabilities.accessibility) {
+ if (this.capabilities.accessibility) {
this.sprite.setAccessible(accessible);
+ } else if ($debug) {
+ this.__warnCapability('view.setAccessible()');
}
}
@@ -2405,8 +2430,10 @@
* @param Boolean s: If true, activate the current view and all of its children
*/
function setAAActive ( s, mc ){
- if (this.sprite.capabilities.accessibility) {
+ if (this.capabilities.accessibility) {
this.sprite.setAAActive(s, mc);
+ } else if ($debug) {
+ this.__warnCapability('view.setAAActive()');
}
}
@@ -2416,8 +2443,10 @@
* @param string s: Sets the accessibility name for this view
*/
function setAAName ( s, mc ){
- if (this.sprite.capabilities.accessibility) {
+ if (this.capabilities.accessibility) {
this.sprite.setAAName(s, mc);
+ } else if ($debug) {
+ this.__warnCapability('view.setAAName()');
}
}
@@ -2426,8 +2455,10 @@
* @param string s: Sets the accessibility name for this view
*/
function setAADescription ( s, mc ){
- if (this.sprite.capabilities.accessibility) {
+ if (this.capabilities.accessibility) {
this.sprite.setAADescription(s, mc);
+ } else if ($debug) {
+ this.__warnCapability('view.setAADescription()');
}
}
@@ -2436,8 +2467,10 @@
* @param number s: The tab order index for this view. Must be a unique number.
*/
function setAATabIndex ( s, mc ){
- if (this.sprite.capabilities.accessibility) {
+ if (this.capabilities.accessibility) {
this.sprite.setAATabIndex(s, mc);
+ } else if ($debug) {
+ this.__warnCapability('view.setAATabIndex()');
}
}
@@ -2447,8 +2480,10 @@
* If false, it is active to the screen reader.
*/
function setAASilent ( s, mc ){
- if (this.sprite.capabilities.accessibility) {
+ if (this.capabilities.accessibility) {
this.sprite.setAASilent(s, mc);
+ } else if ($debug) {
+ this.__warnCapability('view.setAASilent()');
}
}
@@ -2537,5 +2572,9 @@
return this.sprite.getContextMenu();
}
+function __warnCapability(msg) {
+ Debug.warn('The %s runtime does not support %s', lzr, msg);
+}
+
} // End of LzView
Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LzInputText.lzs
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LzInputText.lzs 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LzInputText.lzs 2007-09-13 23:38:53 UTC (rev 6473)
@@ -162,20 +162,27 @@
/** @access private */
function _gotFocusEvent(){
+ this._focused = true;
this.sprite.gotFocus();
}
/** @access private */
function _gotBlurEvent(){
+ this._focused = false;
this.sprite.gotBlur();
}
// Receive input text events from sprite
function inputtextevent (eventname, value){
+ //Debug.warn('inputtextevent', eventname, value);
+ if (eventname == 'onfocus' && this._focused) return;
+ if (eventname == 'onblur' && ! this._focused) return;
if (eventname == 'onfocus' || eventname == 'onmousedown') {
+ this._focused = true;
if (LzFocus.getFocus() != this) {
var tabdown = LzKeys.isKeyDown('tab');
LzFocus.setFocus(this, tabdown);
+ return;
}
} else if (eventname == 'onchange') {
//multiline resizable fields adjust their height
@@ -186,7 +193,9 @@
}
if (this.ontext.ready) this.ontext.sendEvent(value);
return;
- }
+ } else if (eventname == 'onblur') {
+ this._focused = false;
+ }
if (this[eventname].ready) this[eventname].sendEvent(value);
}
@@ -224,10 +233,10 @@
* Set the html flag on this text view
*/
function setHTML (htmlp) {
- if (this.sprite.capabilities['htmlinputtext']) {
+ if (this.capabilities['htmlinputtext']) {
this.sprite.setHTML(htmlp);
} else if ($debug) {
- Debug.warn('This runtime does not support inputtext.setHTML()');
+ this.__warnCapability('inputtext.setHTML()');
}
}
Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LzText.lzs
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LzText.lzs 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/lfc/views/LzText.lzs 2007-09-13 23:38:53 UTC (rev 6473)
@@ -250,30 +250,49 @@
}
- if ('antiAliasType' in args && args.antiAliasType != null) {
- this.setAntiAliasType(args.antiAliasType);
- } else {
- this.setAntiAliasType("normal");
- }
+ if (this.capabilities.advancedfonts) {
+ if ('antiAliasType' in args && args.antiAliasType != null) {
+ this.setAntiAliasType(args.antiAliasType);
+ } else {
+ this.setAntiAliasType("normal");
+ }
- if ('gridFit' in args && args.gridFit != null) {
- this.setGridFit(args.gridFit);
- } else {
- this.setGridFit("subpixel");
- }
+ if ('gridFit' in args && args.gridFit != null) {
+ this.setGridFit(args.gridFit);
+ } else {
+ this.setGridFit("subpixel");
+ }
- if ('sharpness' in args && args.sharpness != null) {
- this.setSharpness(args.sharpness);
- } else {
- this.setSharpness(0);
- }
+ if ('sharpness' in args && args.sharpness != null) {
+ this.setSharpness(args.sharpness);
+ } else {
+ this.setSharpness(0);
+ }
- if ('thickness' in args && args.thickness != null) {
- this.setThickness(args.thickness);
- } else {
- this.setThickness(0);
+ if ('thickness' in args && args.thickness != null) {
+ this.setThickness(args.thickness);
+ } else {
+ this.setThickness(0);
+ }
+ if (! LzText.prototype.setters.antiAliasType) {
+ /**
+ * @lzxtype string
+ * @modifiers virtual
+ */
+ // no var decl since this is a virtual field
+ LzText.prototype.setters.antiAliasType = "setAntiAliasType";
+ LzText.prototype.defaultattrs.antiAliasType = "normal";
+
+ LzText.prototype.setters.gridFit = "setGridFit";
+ LzText.prototype.defaultattrs.gridfit = "subpixel";
+
+ LzText.prototype.setters.sharpness = "setSharpness";
+ LzText.prototype.defaultattrs.sharpness = 0;
+
+ LzText.prototype.setters.thickness = "setThickness";
+ LzText.prototype.defaultattrs.thickness = 0;
+ }
}
-
}
/**
@@ -343,24 +362,9 @@
defaultattrs.clip = true;
-/**
- * @lzxtype string
- * @modifiers virtual
- */
-// no var decl since this is a virtual field
-setters.antiAliasType = "setAntiAliasType";
-defaultattrs.antiAliasType = "normal";
-setters.gridFit = "setGridFit";
-defaultattrs.gridfit = "subpixel";
-setters.sharpness = "setSharpness";
-defaultattrs.sharpness = 0;
-setters.thickness = "setThickness";
-defaultattrs.thickness = 0;
-
-
/**
* setResize set behavior of text field width when new text is added.
* LzText only (cannot be used with LzInputText).
@@ -478,6 +482,19 @@
}
+if ($debug) {
+/**
+ * @access private
+ */
+function _dbg_name ( ){
+ var id = super._dbg_name();
+ if (id != this.toString()) {
+ return id;
+ } else {
+ return Debug.stringEscape(this.getText(), true);
+ }
+}
+}
/**
* @access private
@@ -841,13 +858,15 @@
* @param aliasType "normal" or "advanced"
*/
function setAntiAliasType( aliasType ){
- if (this.sprite.capabilities.advancedfonts) {
+ if (this.capabilities.advancedfonts) {
if ((aliasType == "normal") || (aliasType == "advanced")) {
this.antiAliasType = aliasType;
this.sprite.setAntiAliasType(aliasType);
} else if ($debug) {
Debug.warn("antiAliasType invalid, must be 'normal' or 'advanced', but you said '" + aliasType + "'");
}
+ } else if ($debug) {
+ this.__warnCapability('text.setAntiAliasType()');
}
}
@@ -855,8 +874,10 @@
* Gets the kind of antialiasing set on this text object
*/
function getAntiAliasType() {
- if (this.sprite.capabilities.advancedfonts) {
+ if (this.capabilities.advancedfonts) {
return this.antiAliasType;
+ } else if ($debug) {
+ this.__warnCapability('text.getAntiAliasType()');
}
}
@@ -866,13 +887,15 @@
* @param gridFit "none", "pixel", or "subpixel"
*/
function setGridFit( gridFit ){
- if (this.sprite.capabilities.advancedfonts) {
+ if (this.capabilities.advancedfonts) {
if ((gridFit == "none") || (gridFit == "pixel") || (gridFit == "subpixel")) {
this.gridFit = gridFit;
this.sprite.setGridFit(gridFit);
} else if ($debug) {
Debug.warn("gridFit invalid, must be 'none', 'pixel', or 'subpixel' but you said '" + gridFit + "'");
}
+ } else if ($debug) {
+ this.__warnCapability('text.setGridFit()');
}
}
@@ -880,8 +903,10 @@
* Gets the kind of grid fitting set on this text object
*/
function getGridFit() {
- if (this.sprite.capabilities.advancedfonts) {
+ if (this.capabilities.advancedfonts) {
return this.gridFit;
+ } else if ($debug) {
+ this.__warnCapability('text.getGridFit()');
}
}
@@ -892,13 +917,15 @@
* @param sharpness -400 to 400
*/
function setSharpness( sharpness ){
- if (this.sprite.capabilities.advancedfonts) {
+ if (this.capabilities.advancedfonts) {
if ((sharpness >= -400) && (sharpness <= 400)) {
this.sharpness = sharpness;
this.sprite.setSharpness(sharpness);
} else if ($debug) {
Debug.warn("sharpness out of range, must be -400 to 400");
}
+ } else if ($debug) {
+ this.__warnCapability('text.setSharpness()');
}
}
@@ -906,8 +933,10 @@
* Gets the sharpness rendering property of this text object
*/
function getSharpness() {
- if (this.sprite.capabilities.advancedfonts) {
+ if (this.capabilities.advancedfonts) {
return this.sharpness;
+ } else if ($debug) {
+ this.__warnCapability('text.getSharpness()');
}
}
@@ -918,13 +947,15 @@
* @param thickness -200 to 200
*/
function setThickness( thickness ){
- if (this.sprite.capabilities.advancedfonts) {
+ if (this.capabilities.advancedfonts) {
if ((thickness >= -200) && (thickness <= 200)) {
this.thickness = thickness;
this.sprite.setThickness(thickness);
} else if ($debug) {
Debug.warn("thickness out of range, must be -200 to 200");
}
+ } else if ($debug) {
+ this.__warnCapability('text.setThickness()');
}
}
@@ -932,8 +963,10 @@
* Gets the thickness rendering property of this text object
*/
function getThickness() {
- if (this.sprite.capabilities.advancedfonts) {
+ if (this.capabilities.advancedfonts) {
return this.thickness;
+ } else if ($debug) {
+ this.__warnCapability('text.getThickness()');
}
}
Modified: openlaszlo/branches/legals/WEB-INF/lps/schema/lzx.rnc
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/schema/lzx.rnc 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/schema/lzx.rnc 2007-09-13 23:38:53 UTC (rev 6473)
@@ -73,6 +73,7 @@
[a:defaultValue="true"] attribute validate {booleanLiteral}?
& [a:defaultValue="inherit"] attribute proxied {inheritableBooleanLiteral}?
& [a:defaultValue="false"] attribute debug {booleanLiteral}?
+ & [a:defaultValue="false"] attribute backtrace {booleanLiteral}?
& ## If present, specifies the maximum width in pixels of any output text field.
## Text which extends beyond this width will be clipped.
## If this attribute is omitted, it defaults to the canvas width.
Modified: openlaszlo/branches/legals/WEB-INF/lps/server/bin/lzc
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/server/bin/lzc 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/server/bin/lzc 2007-09-13 23:38:53 UTC (rev 6473)
@@ -22,7 +22,6 @@
else
export LPS_HOME
. "${LPS_HOME}/WEB-INF/lps/server/bin/lzenv"
- JAVA_OPTS="-Xbatch -Xmx512m"
fi
"${JAVA_HOME}/bin/java" ${JAVA_OPTS} -DLPS_HOME="${LPS_HOME}" -cp "$LZCP" org.openlaszlo.compiler.Main "$@"
Modified: openlaszlo/branches/legals/WEB-INF/lps/server/sc/src/org/openlaszlo/sc/Parser.jjt
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/server/sc/src/org/openlaszlo/sc/Parser.jjt 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/server/sc/src/org/openlaszlo/sc/Parser.jjt 2007-09-13 23:38:53 UTC (rev 6473)
@@ -384,12 +384,11 @@
void PrimarySuffix() #void : {}
{
- ((Arguments()) #FunctionCallParameters)
-| (("[" Expression() "]") #PropertyValueReference)
+ (("[" Expression() "]") #PropertyValueReference)
| (("." IdentifierOrKeyword()) #PropertyIdentifierReference)
}
-void Arguments() # void: {}
+void Arguments() #FunctionCallParameters: {}
{
"(" [ArgumentList()] ")"
}
@@ -418,9 +417,23 @@
(Identifier() | StringLiteral() | NumericLiteral()) ":" AssignmentExpression()
}
+// A member expression is any number of '.' and '[' expressions
+void MemberExpression() #CallExpression(>1) : {}
+{
+ PrimaryExpression() ((LOOKAHEAD("." | "[") PrimarySuffix())*)
+}
+
+// A new expression ends with the first argument list
+void NewExpression() #NewExpression : {}
+{
+ "new" MemberExpression() ([LOOKAHEAD("(") Arguments()] #EmptyExpression(jjtree.nodeArity()==0))
+}
+
+// Whereas a call expression allows intermingled '.', '[', and '(' expressions
void CallExpression() #CallExpression(>1) : {}
{
- PrimaryExpression() ((PrimarySuffix())*)
+ PrimaryExpression() (PrimarySuffix() | Arguments())*
+ | NewExpression() (PrimarySuffix() | Arguments())*
| SuperCallExpression()
}
@@ -430,17 +443,9 @@
([ LOOKAHEAD("." Identifier(), { "apply".equals(getToken(2).image) || "call".equals(getToken(2).image) })
"." Identifier()
] #EmptyExpression(jjtree.nodeArity()==0))
- (Arguments() #FunctionCallParameters)
+ Arguments()
}
-
-void LeftHandSideExpression() #NewExpression(>1) : {}
-{
-// LOOKAHEAD(3)
- (("new" CallExpression()) #NewExpression) | CallExpression()
-//| ("new" "super" (Arguments() #FunctionCallParameters))
-}
-
void PostfixOp() #Operator : {Token t;}
{
("++" | "--")
@@ -449,7 +454,7 @@
void PostfixExpression() #PostfixExpression(>1) : {}
{
- LeftHandSideExpression() [PostfixOp()]
+ CallExpression() [PostfixOp()]
}
void UnaryOp() #Operator : {Token t;}
Modified: openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/cm/CompilationManager.java
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/cm/CompilationManager.java 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/cm/CompilationManager.java 2007-09-13 23:38:53 UTC (rev 6473)
@@ -310,8 +310,10 @@
boolean isDebug = "true".equals(props.getProperty("debug"));
boolean isProfile = "true".equals(props.getProperty("profile"));
+ boolean isBacktrace = "true".equals(props.getProperty("backtrace"));
+ String runtime = props.getProperty(CompilationEnvironment.RUNTIME_PROPERTY);
- String lfc = LPS.getLFCname( "dhtml", isDebug, isProfile);
+ String lfc = LPS.getLFCname( runtime, isDebug, isProfile, isBacktrace);
String path = LPS.getLFCDirectory();
File lfcfile = new File(path, lfc);
@@ -372,7 +374,6 @@
}
}
- String version = props.getProperty(CompilationEnvironment.RUNTIME_PROPERTY);
return "<info size=\"" + size +
"\" debug=\"" + isDebug +
"\" encoding=\"" + enc +
@@ -380,7 +381,7 @@
"\" debug-up-to-date=\"" + debugUptodate +
"\" nondebug-exists=\"" + nondebugExists +
"\" nondebug-up-to-date=\"" + nondebugUptodate +
- "\" runtime=\"" + version +
+ "\" runtime=\"" + runtime +
"\" gzsize=\"" + gzsize +
"\" lfcsize=\"" + lfcsize +
"\" gzlfcsize=\"" + gzlfcsize +
Modified: openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/Canvas.java
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/Canvas.java 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/Canvas.java 2007-09-13 23:38:53 UTC (rev 6473)
@@ -3,7 +3,7 @@
* ****************************************************************************/
/* J_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. *
* J_LZ_COPYRIGHT_END *********************************************************/
@@ -123,6 +123,9 @@
/** computed debug flag, based on canvas 'debug' attribute + compilation request args **/
private boolean mDebug = false;
+ /** computed backtrace flag, based on canvas 'backtrace' attribute + compilation request args **/
+ private boolean mBacktrace = false;
+
/** computed profile flag from request args **/
private boolean mProfile = false;
@@ -170,7 +173,14 @@
return(mDebug);
}
+ public void setBacktrace(boolean val) {
+ mBacktrace = val;
+ }
+ public boolean getBacktrace() {
+ return(mBacktrace);
+ }
+
public void setProfile(boolean val) {
mProfile = val;
}
@@ -443,7 +453,7 @@
"proxied='" + isProxied() + "' " +
"runtime='" + getRuntime() +"' " +
"lfc='" + LPS.getProperty("compiler.runtime.dir") +
- "/" + LPS.getLFCname(getRuntime(), mDebug, mProfile) + "' " +
+ "/" + LPS.getLFCname(getRuntime(), mDebug, mProfile, mBacktrace) + "' " +
"debug='" + mDebug + "' " +
"id='" + XMLUtils.escapeXml(getID()) +"' " +
"accessible='" + XMLUtils.escapeXml(getAccessible() + "") +"' " +
Modified: openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/CanvasCompiler.java
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/CanvasCompiler.java 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/CanvasCompiler.java 2007-09-13 23:38:53 UTC (rev 6473)
@@ -46,6 +46,7 @@
canvas.setDebug(mEnv.getBooleanProperty(CompilationEnvironment.DEBUG_PROPERTY));
canvas.setProfile(mEnv.getBooleanProperty(CompilationEnvironment.PROFILE_PROPERTY));
+ canvas.setBacktrace(mEnv.getBooleanProperty(CompilationEnvironment.BACKTRACE_PROPERTY));
// Set the "proxied" flag for this app.
// canvas attribute overrides passed in arg, warn for conflict
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 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java 2007-09-13 23:38:53 UTC (rev 6473)
@@ -30,6 +30,10 @@
public static final String RUNTIME_PROPERTY = "runtime";
public static final String PROXIED_PROPERTY = "lzproxied";
public static final String DEBUG_PROPERTY = "debug";
+
+ // matches the value of sc.Compiler.DEBUG_BACKTRACE
+ public static final String BACKTRACE_PROPERTY = "debugBacktrace";
+
public static final String PROFILE_PROPERTY = "profile";
public static final String LINK_PROPERTY = "link";
public static final String VALIDATE_PROPERTY = "validate";
Modified: openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java 2007-09-13 23:38:53 UTC (rev 6473)
@@ -300,6 +300,14 @@
env.setProperty(CompilationEnvironment.DEBUG_PROPERTY, debug);
}
+ String backtrace = props.getProperty(CompilationEnvironment.BACKTRACE_PROPERTY);
+ if (backtrace != null) {
+ if ("true".equals(backtrace)) {
+ env.setProperty(CompilationEnvironment.DEBUG_PROPERTY, "true" );
+ }
+ env.setProperty(CompilationEnvironment.BACKTRACE_PROPERTY, backtrace);
+ }
+
String validate = props.getProperty(CompilationEnvironment.VALIDATE_PROPERTY,
LPS.getProperty("compiler.validate", "true"));
if (validate != null) {
@@ -388,6 +396,8 @@
env.getBooleanProperty(CompilationEnvironment.DEBUG_PROPERTY)));
compileTimeConstants.put("$profile", new Boolean(
env.getBooleanProperty(CompilationEnvironment.PROFILE_PROPERTY)));
+ compileTimeConstants.put("$backtrace", new Boolean(
+ env.getBooleanProperty(CompilationEnvironment.BACKTRACE_PROPERTY)));
runtime = env.getProperty(env.RUNTIME_PROPERTY);
Modified: openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/Main.java
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/Main.java 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/Main.java 2007-09-13 23:38:53 UTC (rev 6473)
@@ -43,8 +43,10 @@
" Output directory.",
"-c | --compile",
" Compile and assemble, but do not link",
- "-g | --debug",
- " Add debugging information into the output object.",
+ "-g1 | --debug",
+ " Add debugging support into the output object.",
+ "-g | -g2 | --backtrace",
+ " Add debugging and backtrace support into the output object.",
"-p | --profile",
" Add profiling information into the output object.",
"",
@@ -181,8 +183,11 @@
if (level != "" && level != null) {
thisLogger.setLevel(Level.toLevel(level));
}
- } else if (arg == "-g" || arg == "--debug") {
+ } else if (arg == "-g1" || arg == "--debug") {
compiler.setProperty(CompilationEnvironment.DEBUG_PROPERTY, "true");
+ } else if (arg == "-g" || arg == "-g2" || arg == "--backtrace") {
+ compiler.setProperty(CompilationEnvironment.DEBUG_PROPERTY, "true");
+ compiler.setProperty(CompilationEnvironment.BACKTRACE_PROPERTY, "true");
} else if (arg == "-p" || arg == "--profile") {
compiler.setProperty(CompilationEnvironment.PROFILE_PROPERTY, "true");
} else if (arg == "-c" || arg == "--compile") {
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 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java 2007-09-13 23:38:53 UTC (rev 6473)
@@ -291,7 +291,8 @@
static String getBaseLibraryName (CompilationEnvironment env) {
return LPS.getLFCname(env.getRuntime(),
env.getBooleanProperty(env.DEBUG_PROPERTY),
- env.getBooleanProperty(env.PROFILE_PROPERTY));
+ env.getBooleanProperty(env.PROFILE_PROPERTY),
+ env.getBooleanProperty(env.BACKTRACE_PROPERTY));
}
static void handleAutoincludes(CompilationEnvironment env, Element element) {
Modified: openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/sc/CodeGenerator.java
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/sc/CodeGenerator.java 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/sc/CodeGenerator.java 2007-09-13 23:38:53 UTC (rev 6473)
@@ -2048,40 +2048,20 @@
public boolean visitNewExpression(SimpleNode node, boolean isReferenced, SimpleNode[] children) {
SimpleNode ref = children[0];
- SimpleNode[] args = new SimpleNode[0];
- if (ref instanceof ASTCallExpression) {
- SimpleNode[] cn = ref.getChildren();
- ref = cn[0];
- args = cn[1].getChildren();
- }
- boolean primitive = false;
- if (ref instanceof ASTIdentifier) {
- String name = ((ASTIdentifier)ref).getName();
- primitive = "Object".equals(name) || "Array".equals(name) || "String".equals(name) ||
- "Boolean".equals(name) || "Number".equals(name) || "Date".equals(name) ||
- "Function".equals(name) || "RegExp".equals(name) || "Error".equals(name);
- }
- if (primitive || options.getBoolean("passThrough")) {
- visitCallParameters(node, isReferenced, args);
- boolean isref = translateReferenceForCall(ref, true, node);
- if (isref) {
- if (ref instanceof ASTPropertyIdentifierReference ||
- ref instanceof ASTPropertyValueReference) {
- collector.emit(Instructions.NewMethod);
- } else {
- collector.emit(Instructions.NEW);
- }
- } else {
- // This is how you invoke a function value
- collector.push(Values.Undefined);
+ SimpleNode[] args = children[1].getChildren();
+ visitCallParameters(node, isReferenced, args);
+ boolean isref = translateReferenceForCall(ref, true, node);
+ if (isref) {
+ if (ref instanceof ASTPropertyIdentifierReference ||
+ ref instanceof ASTPropertyValueReference) {
collector.emit(Instructions.NewMethod);
+ } else {
+ collector.emit(Instructions.NEW);
}
} else {
- Map map = new HashMap();
- map.put("_1", ref);
- map.put("_2", new Compiler.Splice(args));
- SimpleNode n = (new Compiler.Parser()).substitute("_1.make(_2)", map);
- visitCallExpression(n, isReferenced, n.getChildren());
+ // This is how you invoke a function value
+ collector.push(Values.Undefined);
+ collector.emit(Instructions.NewMethod);
}
return false;
}
Modified: openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java 2007-09-13 23:38:53 UTC (rev 6473)
@@ -278,14 +278,14 @@
}
options.putBoolean(NAME_FUNCTIONS, true);
}
+
// TODO: [2005-04-15 ptw] This pretty much sucks, but the debug
// lfc only sets nameFunctions, not debug. This can go away
// when we can turn on debug for the lfc.
if (options.getBoolean(DEBUG) ||
options.getBoolean(NAME_FUNCTIONS)) {
if (! options.containsKey(DEBUG_BACKTRACE)) {
- options.put(DEBUG_BACKTRACE,
- Boolean.valueOf(LPS.getProperty("compiler.debug.backtrace", "false")));
+ options.put(DEBUG_BACKTRACE, Boolean.valueOf("false"));
}
// TODO: [2007-02-21 ptw] Remove after Leopard
options.put("debugSafari", LPS.getProperty("compiler.debug.safari", "false"));
@@ -607,7 +607,7 @@
SimpleNode prop = node.get(1);
assert ((prop instanceof ASTPropertyIdentifierReference ||
prop instanceof ASTPropertyValueReference) &&
- prop.size() > 0 ): prop;
+ prop.size() > 0 ): (new Compiler.ParseTreePrinter()).visit(prop);
int size = node.size();
SimpleNode children[] = new SimpleNode[2];
children[0] = node.get(0);
@@ -854,9 +854,14 @@
}
int size = node.size();
+ SimpleNode[] childnodes = node.getChildren();
String[] children = new String[size];
for (int i = 0; i < size; i++) {
- children[i] = visit(node.get(i)) ;
+ SimpleNode n = childnodes[i];
+ if (n instanceof PassThroughNode) {
+ n = childnodes[i] = ((PassThroughNode)n).realNode;
+ }
+ children[i] = visit(n) ;
}
Class nt = node.getClass();
@@ -1133,12 +1138,10 @@
return defaultVisitor(node, children);
}
public String visitNewExpression(SimpleNode node, String[] children) {
- // Associativity makes these parens superfluous
-// int thisPrec = prec(Ops.NEW, true);
-// SimpleNode c = node.get(0);
-// children[0] = maybeAddParens(thisPrec, c, children[0]);
- // Kludge for (new Foo).whatever
- return "(new " + children[0] + ")";
+ int thisPrec = prec(Ops.NEW, true);
+ SimpleNode c = node.get(0);
+ children[0] = maybeAddParens(thisPrec, c, children[0]);
+ return "new " + children[0] + "(" + children[1] + ")";
}
public String visitPragmaDirective(SimpleNode node, String[] children) {
return "#pragma " + children[0];
Modified: openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptCompressor.java
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptCompressor.java 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptCompressor.java 2007-09-13 23:38:53 UTC (rev 6473)
@@ -45,15 +45,6 @@
return node;
}
- // Don't transform new calls for compression
- public SimpleNode visitNewExpression(SimpleNode node, boolean isReferenced, SimpleNode[] children) {
- for (int i = 0, len = children.length; i < len; i++) {
- SimpleNode child = children[i];
- children[i] = visitExpression(child, isReferenced);
- }
- return node;
- }
-
}
/**
Modified: openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java 2007-09-13 23:38:53 UTC (rev 6473)
@@ -1457,29 +1457,10 @@
}
public SimpleNode visitNewExpression(SimpleNode node, boolean isReferenced, SimpleNode[] children) {
- SimpleNode ref = children[0];
- SimpleNode[] args = new SimpleNode[0];
- if (ref instanceof ASTCallExpression) {
- SimpleNode[] cn = ref.getChildren();
- ref = cn[0];
- args = cn[1].getChildren();
+ for (int i = 0, len = children.length; i < len; i++) {
+ SimpleNode child = children[i];
+ children[i] = visitExpression(child, isReferenced);
}
- boolean primitive = false;
- if (ref instanceof ASTIdentifier) {
- String name = ((ASTIdentifier)ref).getName();
- primitive = "Object".equals(name) || "Array".equals(name) || "String".equals(name) ||
- "Boolean".equals(name) || "Number".equals(name) || "Date".equals(name) ||
- "Function".equals(name) || "RegExp".equals(name) || "Error".equals(name);
- }
- if (primitive || options.getBoolean("passThrough")) {
- children[0] = visitExpression(children[0]);
- } else {
- Map map = new HashMap();
- map.put("_1", ref);
- map.put("_2", new Compiler.Splice(args));
- SimpleNode n = (new Compiler.Parser()).substitute("_1.make(_2)", map);
- node = visitExpression(n, isReferenced);
- }
return node;
}
Modified: openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/server/LPS.java
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/server/LPS.java 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/server/LPS.java 2007-09-13 23:38:53 UTC (rev 6473)
@@ -206,7 +206,7 @@
return HOME() + File.separator + LPS.getProperty("compiler.runtime.dir").replace('/', File.separatorChar);
}
- public static String getLFCname(String runtime, boolean debug, boolean profile) {
+ public static String getLFCname(String runtime, boolean debug, boolean profile, boolean backtrace) {
String lfc = "LFC";
String extension = "js";
if (runtime == null) {
@@ -224,7 +224,9 @@
lfc += "-profile";
}
- if (debug) {
+ if (backtrace) {
+ lfc += "-backtrace";
+ } else if (debug) {
lfc += "-debug";
}
Modified: openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/servlets/responders/ResponderCompile.java
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/servlets/responders/ResponderCompile.java 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/servlets/responders/ResponderCompile.java 2007-09-13 23:38:53 UTC (rev 6473)
@@ -406,6 +406,7 @@
* <ul>
* <li> "debug"
* <li> "logdebug"
+ * <li> "lzbacktrace"
* <li> "profile"
* <li> "validate"
* <li> "sourcelocators"
@@ -465,6 +466,13 @@
if (profile != null) {
props.setProperty(CompilationEnvironment.PROFILE_PROPERTY, profile);
}
+
+ // Look for "lzbacktrace=true" flag
+ props.setProperty(CompilationEnvironment.BACKTRACE_PROPERTY, "false");
+ String backtrace = req.getParameter("lzbacktrace");
+ if (backtrace != null) {
+ props.setProperty(CompilationEnvironment.BACKTRACE_PROPERTY, backtrace);
+ }
}
Modified: openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/servlets/responders/ResponderLFC.java
===================================================================
--- openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/servlets/responders/ResponderLFC.java 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/WEB-INF/lps/server/src/org/openlaszlo/servlets/responders/ResponderLFC.java 2007-09-13 23:38:53 UTC (rev 6473)
@@ -3,7 +3,7 @@
* ****************************************************************************/
/* J_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. *
* J_LZ_COPYRIGHT_END *********************************************************/
@@ -71,9 +71,10 @@
String lfc = LPS.getLFCname(
req.getParameter("lzr"),
- req.getParameter(CompilationEnvironment.DEBUG_PROPERTY) != null ||
+ "true".equals(req.getParameter(CompilationEnvironment.DEBUG_PROPERTY)) ||
req.getParameter("_canvas_debug") != null,
- req.getParameter(CompilationEnvironment.PROFILE_PROPERTY) != null);
+ "true".equals(req.getParameter(CompilationEnvironment.PROFILE_PROPERTY)),
+ "true".equals(req.getParameter(CompilationEnvironment.BACKTRACE_PROPERTY)));
String path = LPS.getLFCDirectory();
File lfcfile = new File(path, lfc);
Modified: openlaszlo/branches/legals/demos/calendar/cal-data.lzx
===================================================================
--- openlaszlo/branches/legals/demos/calendar/cal-data.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/demos/calendar/cal-data.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -8,14 +8,11 @@
<script>
var dataloader = null;
</script>
- <datasource name="http">
- <dataset name="serverdata"
- ondata="if (!dataloader) return; dataloader.run()" />
- </datasource>
+ <dataset name="serverdata" type="http"/>
<!-- controls loading of server data; once data has loaded calls
notifies localdatacontroller -->
- <datapointer name="dataloader" xpath="serverdata:/*" >
+ <datapointer name="dataloader" xpath="serverdata:/*" ondata="this.run()">
<attribute name="reqq" value="[]"/>
<attribute name="requestrunning" value="false"/>
@@ -44,8 +41,8 @@
var nr = this.reqq.shift();
//Debug.write( "make request " + nr );
this.requestrunning = true;
- http.serverdata.setAttribute( "src", nr );
- http.serverdata.doRequest();
+ serverdata.setAttribute( "src", nr );
+ serverdata.doRequest();
</method>
<method name="enqueueRequest" args="r">
@@ -62,7 +59,11 @@
this.setXPath( "eventdata:/vcalendar/year" + yr + "/month" + mo );
//this is unfortunate, but there's no easy way to see if this
//succeeded as v1
- return this.getNodeName() == "month"+mo;
+ if(this.p != null){
+ return this.getNodeName() == "month"+mo;
+ } else {
+ return false;
+ }
</method>
</datapointer>
@@ -75,8 +76,11 @@
while ( ptr.getNodeCount() == 1 ){
var op = this.p;
- this.setXPath( ptr.getNodeName() );
- if ( this.getNodeName() != ptr.getNodeName() ){
+ if(ptr.p != null){
+ this.setXPath( ptr.getNodeName() );
+ }
+ var thisgnn = (this.p == null ? null : this.getNodeName());
+ if ( thisgnn != ptr.getNodeName() ){
this.setPointer ( op );
break;
}
Modified: openlaszlo/branches/legals/demos/calendar/eventselector.lzx
===================================================================
--- openlaszlo/branches/legals/demos/calendar/eventselector.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/demos/calendar/eventselector.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -118,7 +118,9 @@
//Debug.write("selectData: "+e);
//Debug.write ("selectData Deselecting: "+
//currenteventDP.serialize());
- currenteventDP.setNodeAttribute( "selected" , false );
+ if(currenteventDP.p != null){
+ currenteventDP.setNodeAttribute( "selected" , false );
+ }
e.datapath.setNodeAttribute( "selected" , true );
</method>
Modified: openlaszlo/branches/legals/docs/index.html
===================================================================
--- openlaszlo/branches/legals/docs/index.html 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/docs/index.html 2007-09-13 23:38:53 UTC (rev 6473)
@@ -35,8 +35,9 @@
</li>
<li>
-<b><a href="./reference/index.html">OpenLaszlo Reference</a></b><br />
+<b><a href="http://www.openlaszlo.org/lps3/docs/reference">OpenLaszlo Reference</a></b><br />
A complete listing of every public LZX tag and API -- including tag attributes and API methods and parameters.
+(The link above takes you to the OpenLaszlo 3.4 reference on www.openlaszlo.org. <a href="./reference">OpenLaszlo 4 Reference</a> is also available locally, but it is not as polished as the 3.4 reference. We recommend you use the <a href="http://www.openlaszlo.org/lps3/docs/reference">OpenLaszlo 3.4 Reference</a>.)
</li>
<li>
Modified: openlaszlo/branches/legals/index.jsp
===================================================================
--- openlaszlo/branches/legals/index.jsp 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/index.jsp 2007-09-13 23:38:53 UTC (rev 6473)
@@ -86,13 +86,13 @@
<p>Docs</p>
<ul>
<li><a href="docs">Docs index</a></li>
- <li><a href="docs/guide">Software Developer's Guide</a></li>
- <li><a href="docs/design">UI Designer's Guide</a></li>
- <li><a href="docs/deploy">Deployer's Guide</a></li>
- <li><a href="docs/reference">Reference Guide</a></li>
+ <li><a href="docs/developers">Software Developer's Guide</a></li>
+ <li><a href="docs/component-design">UI Designer's Guide</a></li>
+ <li><a href="docs/deployers">Deployer's Guide</a></li>
+ <li><a href="http://www.openlaszlo.org/lps3/docs/reference">Reference Guide (for OL 3.4, served from www.openlaszlo.org)</a> or <a href="docs/reference">Reference Guide (local)</a></li>
<li><a href="docs/contributors">Contributor's Guide</a></li>
<li><a href="docs/release-notes.html">Latest Release Notes</a></li>
- </ul>
+ </ul>
<p>OpenLaszlo Admin tools</p>
<ul>
<li><a href="lps/admin/console.lzx">Console</a></li>
Modified: openlaszlo/branches/legals/laszlo-explorer/coverpages/documentation_cover.html
===================================================================
--- openlaszlo/branches/legals/laszlo-explorer/coverpages/documentation_cover.html 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/laszlo-explorer/coverpages/documentation_cover.html 2007-09-13 23:38:53 UTC (rev 6473)
@@ -15,7 +15,7 @@
<body>
<h1>Documentation</h1>
<div class="desc">
- <strong><a href="../../docs/guide/index.html" target="laszlo-dguide">Software Developer's Guide to OpenLaszlo Applications</a></strong>
+ <strong><a href="../../docs/developers/index.html" target="laszlo-dguide">Software Developer's Guide to OpenLaszlo Applications</a></strong>
<p>In depth explanations of OpenLaszlo concepts—from tutorials through advanced concepts.</p>
<strong><a href="../../docs/deployers/index.html" target="laszlo-deployers-guide">System Administrator's Guide to Deploying OpenLaszlo Applications</a></strong>
<p>Information for system administrators about how to deploy the OpenLaszlo Server, including explanations of configuration settings and server
@@ -23,17 +23,17 @@
<!--strong><a href="../../docs/design/index.html" target="laszlo-designer-guide">Designer's Guide</a></strong>
<p>An explication of OpenLaszlo for
graphic designers and information architects.</p-->
- <strong><a href="../../docs/reference/index.html" target="laszlo-reference">LZX Reference Manual</a></strong>
+ <strong><a href="http://www.openlaszlo.org/lps3/docs/reference/index.html" target="laszlo-reference">LZX Reference Manual</a></strong>
<p>Comprehensive listing of all LZX tag definitions and APIs—
- including tag attributes and API methods and parameters.
+ including tag attributes and API methods and parameters. (We recommend that you use <a href="http://www.openlaszlo.org/lps3/docs/reference/index.html" target="laszlo-reference">the OpenLaszlo 3.4 Reference Manual</a>, because the <a href="../../docs/reference/index.html" target="laszlo-reference">4.0 docs included in this distribution</a> are only at "alpha" status. The 3.4 docs contain the same information as the 4.0 docs, because the API's have not changed from 3.4. Consult <a href="../../docs/reference/index.html" target="laszlo-reference">the local 4.0 docs</a> only if you are concerned that you are missing 4.0-specific information.
</p>
<strong><a href="../../docs/component-design/index.html" target="laszlo-componentguide">Components Guide</a></strong>
<p>A visual design guide for the LZ Components, including detailed
explanations of their construction
(<a href="../../docs/component-design/component-design-2.0.pdf" target="laszlo-componentguide-pdf">PDF</a>).
</p>
- <strong><a href="../../docs/contribref/contribref/index.html" target="laszlo-contributorsguide">Contributor's Guide</a> (beta)</strong>
- <p>Documentation for use by contributors to the OpenLaszlo platform, including private interfaces and kernel APIs</p>
+ <strong><a href="../../docs/contributors/index.html" target="laszlo-contributorsguide">Contributor's Guide</a> (alpha)</strong>
+ <p>Documentation for use by contributors to the OpenLaszlo platform, including private interfaces and kernel APIs. This is still in "alpha" status.</p>
<strong><a href="../../index.html" target="lzquickindex">Quick Index</a></strong>
<p>An list of links to all the content and applications referenced by the OpenLaszlo Explorer.
</p>
Modified: openlaszlo/branches/legals/laszlo-explorer/coverpages/welcome/index.html
===================================================================
--- openlaszlo/branches/legals/laszlo-explorer/coverpages/welcome/index.html 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/laszlo-explorer/coverpages/welcome/index.html 2007-09-13 23:38:53 UTC (rev 6473)
@@ -32,7 +32,7 @@
</head>
<body>
<h2>
-Welcome to OpenLaszlo 4.0
+Welcome to OpenLaszlo 4.0.5
</h2>
<h1 style="margin-top: 2px">
The open source platform for building rich internet applications
@@ -49,7 +49,7 @@
<h3>
It's not just Flash anymore!
</h3>
-In earlier releases, OpenLaszlo applications were compiled in .swf format to run on Adobe's Flash Player. With OpenLaszlo 4.0 (OL4), we add the option of compilation to DHTML (browser-native JavaScript). OpenLaszlo 4.0 handles browser idiosyncracies so you don't have to.
+Before OpenLaszlo 4.0, OpenLaszlo applications were compiled in .swf format to run on Adobe's Flash Player. With OpenLaszlo 4.0 (OL4), we added the option of compilation to DHTML (browser-native JavaScript). OpenLaszlo 4 handles browser idiosyncracies so you don't have to.
</div>
@@ -58,9 +58,9 @@
<div id="left">
<div class="column-in">
<h3>
-This is a fully-qualified release
+OpenLaszlo 4.0.5 is the recommended platform for .swf development
</h3>
-OpenLaszlo 4.0 has been beta-tested by users world wide and vetted by the Laszlo Systems Quality Assurance team. Hundreds of improvements have been made since OL4B1. We invite you to start developing against it now. Please see the <a href="../../../docs/release-notes.html" target="_top">release notes</a> for a detailed description of new features in this release, changes since the last major release, and known problems.
+OpenLaszlo 4.0.5 is now the recommended platform for developing OpenLaszlo applications compiled to .swf format. If you've been holding back on OpenLaszlo 3.4, now's the time to move up. Support for applications to DHTML remains at "beta" level; it will be fully supported with OL 4.1. This release has been tested by users world wide and vetted by the Laszlo Systems Quality Assurance team. Hundreds of improvements have been made since OpenLaszlo 4.0. Please see the <a href="../../../docs/release-notes.html" target="_top">release notes</a> for a detailed description of new features in this release, changes since the last major release, and known problems.
</div>
</div>
Modified: openlaszlo/branches/legals/laszlo-explorer/explore-nav.lzx
===================================================================
--- openlaszlo/branches/legals/laszlo-explorer/explore-nav.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/laszlo-explorer/explore-nav.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -19,6 +19,7 @@
navset = "nav.xml";
var lzr = global['lzr'];
if (lzr && lzr == 'dhtml') {
+ Debug.info("gonna use dhtml nav.");
navset = "nav_dhtml.xml";
}
}
@@ -222,7 +223,7 @@
}
var action = dp.xpathQuery("@action");
- if (action == 'popup' || action == 'source') {
+ if (action == 'popup' || action == 'source' || action == 'popupexternal') {
icon.setResourceNumber(4);
}
</handler>
@@ -256,6 +257,12 @@
LzBrowser.loadURL('content.jsp?src=' + src + '&tag=' + tagline +
'&title=' + title + '&lzr=' + runtime, 'content');
}
+ } else if (action =='popupexternal') {
+ var jsOpenStr = "window.open('" + src + "',"
+ + "'" + target + "'," +
+ "'scrollbars=yes,resizable=yes,toolbar=yes,location=yes,menubar=yes,width=860,height=600')";
+ LzBrowser.loadJS(jsOpenStr);
+
} else {
if (title ==null){
title = classroot.name;
Modified: openlaszlo/branches/legals/laszlo-explorer/nav.rnc
===================================================================
--- openlaszlo/branches/legals/laszlo-explorer/nav.rnc 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/laszlo-explorer/nav.rnc 2007-09-13 23:38:53 UTC (rev 6473)
@@ -28,7 +28,7 @@
}
itemAttributes =
- attribute action { "edit" | "explore" | "popup" | "source" }?,
+ attribute action { "edit" | "explore" | "popup" | "source" | "popupexternal" }?,
attribute name { text },
attribute params { string }?,
attribute popup { xsd:anyURI }?,
Modified: openlaszlo/branches/legals/laszlo-explorer/nav.xml
===================================================================
--- openlaszlo/branches/legals/laszlo-explorer/nav.xml 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/laszlo-explorer/nav.xml 2007-09-13 23:38:53 UTC (rev 6473)
@@ -305,12 +305,12 @@
<section name="Documentation" title="Documentation" src="/laszlo-explorer/coverpages/documentation_cover.html" text="Tutorial, advanced, reference">
<topic src="/docs/installation/index.html" name="Installation" />
- <topic popup="/docs/reference/index.html" name="LZX Reference" action="popup" target="laszlolzxreference" />
- <topic popup="/docs/guide/index.html" name="Developer's Guide" action="popup" target="laszlodevguide" />
+ <topic src="http://www.openlaszlo.org/lps3/docs/reference/index.html" name="LZX Reference" action="popupexternal" target="laszlolzxreference" />
+ <topic popup="/docs/developers/index.html" name="Developer's Guide" action="popup" target="laszlodevguide" />
<topic popup="/docs/deployers/index.html" name="Administrator's Guide" action="popup" target="laszloadminguide" />
<!--topic popup="/docs/design/index.html" name="UI Designer's Guide" action="popup" target="laszlouiguide" /-->
<topic popup="/docs/component-design/index.html" name="Components Guide" action="popup" target="laszlocomponentguide" />
- <topic popup="/docs/contribref/contribref/index.html" name="Contributor's Guide" action="popup" target="laszlocontributorsguide" />
+ <topic popup="/docs/contribref/index.html" name="Contributor's Guide" action="popup" target="laszlocontributorsguide" />
<topic src="/docs/release-notes.html" name="Release Notes" />
<topic src="/tools/index.html" name="Developer's Tools" title="Development Tools" text="Tips for IDEs"/>
</section>
Modified: openlaszlo/branches/legals/lps/admin/dev-console.lzx
===================================================================
--- openlaszlo/branches/legals/lps/admin/dev-console.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/admin/dev-console.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -69,6 +69,7 @@
app_runtime = appdata.getPointer().xpathQuery("/request/param[@name = 'lzr']/@value");
}
var app_debug = appdata.getPointer().xpathQuery("/request/param[@name = 'debug']/@value");
+ var app_backtrace = appdata.getPointer().xpathQuery("/request/param[@name = 'lzbacktrace']/@value");
if (app_debug == 'y') app_debug = 'true';
var app_console_debug =
appdata.getPointer().xpathQuery("/request/@console-remote-debug") == 'true';
@@ -137,8 +138,8 @@
<view name="controls" x="70">
<view name="firstrow" y="4">
<text fontsize="11" x="8" y="7"><b>Compile Options:</b></text>
- <view x="125" width="319" height="32" bgcolor="black">
- <view x="1" y="1" width="317" height="30" bgcolor="#9494ad"/>
+ <view x="125" width="412" height="32" bgcolor="black">
+ <view x="1" y="1" width="410" height="30" bgcolor="#9494ad"/>
</view>
<view x="125" name="compilecontrols">
<radiogroup id="rg_runtime" layout="class: simplelayout; axis: x; spacing:4" x="6" y="8.75">
@@ -151,11 +152,24 @@
</radiogroup>
<view height="14" width="1" bgcolor="black" x="173" y="9.5"/>
- <checkbox id="cb_debug" value="${app_debug}" x="181" y="8.25">Debug</checkbox>
- <button onclick="canvas.gotoApp()" x="244" y="4">Compile</button>
+ <checkbox id="cb_debug" value="${app_debug == 'true'}"
+ x="181" y="8.25">Debug</checkbox>
+ <checkbox id="cb_backtrace"
+ value="${app_backtrace == 'true'}" x="250" y="8.25">Backtrace</checkbox>
+ <button onclick="canvas.gotoApp()" x="334" y="4">Compile</button>
+ <handler name="onvalue" reference="cb_backtrace">
+ if (cb_backtrace.value) {
+ cb_debug.setAttribute('value', true);
+ }
+ </handler>
+ <handler name="onvalue" reference="cb_debug">
+ if (cb_debug.value == false) {
+ cb_backtrace.setAttribute('value', false);
+ }
+ </handler>
</view>
<view width="22" x="450"/>
- <button onclick="canvas.viewSource()" x="540" y="3">View Source</button>
+ <button onclick="canvas.viewSource()" x="580" y="3">View Source</button>
</view>
<view bgcolor="black" width="${canvas.width - 70}" height="1" y="39"/>
@@ -185,7 +199,7 @@
-->
- <checkbox y="10" x="700" id="cb_remotedebug" visible="${app_runtime != 'dhtml'}" value="${app_console_debug}">Console Remote Debug</checkbox>
+ <checkbox y="10" x="740" id="cb_remotedebug" visible="${app_runtime != 'dhtml'}" value="${app_console_debug}">Console Remote Debug</checkbox>
<!-- <checkbox id="cb_popup" value="${app_floating_window}">in separate window</checkbox> -->
@@ -261,6 +275,7 @@
<![CDATA[
var qruntime = rg_runtime.value;
var qdebug = cb_debug.value;
+ var qbacktrace = cb_backtrace.value;
var consoledebug = cb_remotedebug.value;
// parse original app query string, override with user settings
@@ -270,6 +285,7 @@
var qitems = LzParam.prototype.parseQueryString(app_query);
// override debug,runtime args
qitems['debug'] = qdebug;
+ qitems['lzbacktrace'] = qbacktrace;
qitems['lzr'] = qruntime;
/*
@@ -394,7 +410,7 @@
</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 ****************************************************** -->
<!-- @LZX_VERSION@ -->
Modified: openlaszlo/branches/legals/lps/admin/dev-console.lzx.js
===================================================================
--- openlaszlo/branches/legals/lps/admin/dev-console.lzx.js 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/admin/dev-console.lzx.js 2007-09-13 23:38:53 UTC (rev 6473)
@@ -69,72 +69,6 @@
$modules.lz=$modules.runtime
$modules.user=$modules.lz
var global=$modules.user
-Debug={}
-Debug.write=function($1){
-
-}
-Debug.trace=function($1){
-
-}
-Debug.monitor=function($1){
-
-}
-Debug.warn=function($1){
-
-}
-Debug.error=function($1){
-
-}
-Debug.info=function($1){
-
-}
-Debug.debug=function($1){
-
-}
-var black=0
-var green=32768
-var silver=12632256
-var lime=65280
-var gray=8421504
-var olive=8421376
-var white=16777215
-var yellow=16776960
-var maroon=8388608
-var navy=128
-var red=16711680
-var blue=255
-var purple=8388736
-var teal=32896
-var fuchsia=16711935
-var aqua=65535
-var LzDeclaredEvent={}
-LzDeclaredEvent.sendEvent=function(){
-
-}
-LzDeclaredEvent.toString=function(){
-return "Declared event"
-}
-function DeclareEvent($1,$2){
-$1[$2]=LzDeclaredEvent
-}
-function DeclareEvents($1,$2){
-for(var $3 in $2){
-$1[$2[$3]]=LzDeclaredEvent
-}
-}
-var LzInheritedHash={make:function($1){
-var $2
-$2=function(){
-
-}
-if($1){
-$2.prototype=$1
-return(new $2())
-}
-return(new Object)
-}}
-var ConstructorMap={}
-var lz=ConstructorMap
var Instance=function(){
this.constructor=arguments.callee
}
@@ -344,10 +278,422 @@
this.allTraits[$1]=$5
return $5
}}
+var LzMessage=Class.make("LzMessage",null,{message:"",appendInternal:function($1,$2){
+this.message+=$1
+},append:function($1){
+var $2=arguments.length
+for(var $3=0;$3<$2;$3++){
+this.appendInternal(String(arguments[$3]))
+}
+},toString:function(){
+return this.message
+},toHTML:function(){
+return this.toString()
+}},{initialize:function($1){
+this.message=$1
+}})
+var LzFormatter=Trait.make("LzFormatter",null,{pad:function($1,$2,$3,$4,$5,$6,$7){
+switch(arguments.length){
+case 0:
+$1=""
+case 1:
+$2=null
+case 2:
+$3=null
+case 3:
+$4=" "
+case 4:
+$5="-"
+case 5:
+$6=10
+case 6:
+$7=false
+
+}
+var $8=typeof $1=="number"
+if($8){
+if($3!=null){
+var $9=Math.pow(10,-$3)
+$1=Math.round($1/$9)*$9
+}
+$1=Number($1).toString($6)
+if($5!="-"){
+if($1.indexOf("-")!=0){
+if($1!=0){
+$1=$5+$1
+}else{
+$1=" "+$1
+}
+}
+}
+}else{
+$1=""+$1
+}
+var $10=$1.length
+if($3!=null){
+if($8){
+var $11=$1.lastIndexOf(".")
+if($11==-1){
+var $12=0
+if($7||$3>0){
+$1+="."
+}
+}else{
+var $12=$10-($11+1)
+}
+for(var $13=$12;$13<$3;$13++){
+$1+="0"
+}
+}else{
+$1=$1.substring(0,$3)
+}
+}
+$10=$1.length
+if(!$2){
+$2=0
+}
+var $14=false
+if($2<0){
+$2=-$2
+$14=true
+}
+if($10>=$2){
+return $1
+}
+if($14){
+for(var $13=$10;$13<$2;$13++){
+$1=$1+" "
+}
+}else{
+$5=null
+if($4!=" "){
+if(" +-".indexOf($1.substring(0,1))>=0){
+$5=$1.substring(0,1)
+$1=$1.substring(1)
+}
+}
+for(var $13=$10;$13<$2;$13++){
+$1=$4+$1
+}
+if($5!=null){
+$1=$5+$1
+}
+}
+return $1
+},formatToString:function(control,$1){
+var $8
+$8=function($1){
+if($1>=al){
+return null
+}
+return arglist[$1]
+}
+var al=arguments.length
+if(!(typeof control=="string"||control instanceof String)||al>1!=control.indexOf("%")>=0){
+var $2=LzMessage.make()
+for(var $3=0;$3<al;$3++){
+var $4=arguments[$3]
+var $5=$3==al-1?"\n":" "
+$2.append($4)
+$2.appendInternal($5)
+}
+return $2
+}
+if(al<1){
+control=""
+}
+var $6=""+control
+var $7=1
+var arglist=arguments
+var $9=0
+var $10=$6.length
+var $11=0
+var $12=0
+var $2=LzMessage.make()
+while($11<$10){
+$12=$6.indexOf("%")
+if($12==-1){
+$2.append($6.substring($11,$10))
+break
+}
+$2.append($6.substring($11,$12))
+$9=$12
+$11=$12+1
+$12=$12+2
+var $13="-"
+var $14=" "
+var $15=false
+var $16=""
+var $17=null
+var $18=null
+while($11<$10&&$18==null){
+var $19=$6.substring($11,$12)
+$11=$12++
+switch($19){
+case "-":
+$16=$19
+break
+case "+":
+case " ":
+$13=$19
+break
+case "#":
+$15=true
+break
+case "0":
+if($16===""&&$17===null){
+$14=$19
+break
+}
+case "1":
+case "2":
+case "3":
+case "4":
+case "5":
+case "6":
+case "7":
+case "8":
+case "9":
+if($17!==null){
+$17+=$19
+}else{
+$16+=$19
+}
+break
+case "$":
+$7=$16
+$16=""
+break
+case "*":
+if($17!==null){
+$17=$8($7)
+$7++
+}else{
+$16=$8($7)
+$7++
+}
+break
+case ".":
+$17=""
+break
+case "h":
+case "l":
+break
+default:
+$18=$19
+break
+
+}
+}
+var $20=$8($7)
+var $21=null
+var $22=false
+if($17!==null){
+$21=1*$17
+}else{
+switch($18){
+case "F":
+case "E":
+case "G":
+case "f":
+case "e":
+case "g":
+$21=6
+$22=$15
+break
+case "O":
+case "o":
+if($15&&$20!=0){
+$2.append("0")
+}
+break
+case "X":
+case "x":
+if($15&&$20!=0){
+$2.append("0"+$18)
+}
+break
+
+}
+}
+var $23=10
+switch($18){
+case "o":
+case "O":
+$23=8
+break
+case "x":
+case "X":
+$23=16
+break
+
+}
+switch($18){
+case "U":
+case "O":
+case "X":
+case "u":
+case "o":
+case "x":
+if($20<0){
+$20=-$20
+var $24=Math.abs(parseInt($16))
+if(isNaN($24)){
+$24=Number($20).toString($23).length
+}
+var $25=Math.pow($23,$24)
+$20=$25-$20
+}
+
+}
+switch($18){
+case "D":
+case "U":
+case "I":
+case "O":
+case "X":
+case "F":
+case "E":
+case "G":
+$20=Number($20)
+$2.append(this.pad($20,$16,$21,$14,$13,$23,$22).toUpperCase())
+$7++
+break
+case "c":
+$20=String.fromCharCode($20)
+case "w":
+
+case "s":
+var $27
+if($20 instanceof Function){
+if(!$27){
+$27="function () {...}"
+}
+}else{
+if(typeof $20=="number"){
+$27=Number($20).toString($23)
+}else{
+$27=""+$20
+}
+}
+$2.appendInternal(this.pad($27,$16,$21,$14,$13,$23,$22),$20)
+$7++
+break
+case "d":
+case "u":
+case "i":
+case "o":
+case "x":
+case "f":
+case "e":
+case "g":
+$20=Number($20)
+$2.append(this.pad($20,$16,$21,$14,$13,$23,$22))
+$7++
+break
+case "%":
+$2.append("%")
+break
+default:
+$2.append($6.substring($9,$11))
+break
+
+}
+$6=$6.substring($11,$10)
+$9=0,$10=$6.length
+$11=0,$12=0
+}
+if($7<al){
+$2.appendInternal(" ")
+for(;$7<al;$7++){
+var $4=$8($7)
+var $5=$7==al-1?"\n":" "
+$2.append($4)
+$2.appendInternal($5)
+}
+}
+return $2
+}},null)
+Debug={}
+Debug.write=function($1){
+
+}
+Debug.trace=function($1){
+
+}
+Debug.monitor=function($1){
+
+}
+Debug.warn=function($1){
+
+}
+Debug.error=function($1){
+
+}
+Debug.info=function($1){
+
+}
+Debug.debug=function($1){
+
+}
+var black=0
+var green=32768
+var silver=12632256
+var lime=65280
+var gray=8421504
+var olive=8421376
+var white=16777215
+var yellow=16776960
+var maroon=8388608
+var navy=128
+var red=16711680
+var blue=255
+var purple=8388736
+var teal=32896
+var fuchsia=16711935
+var aqua=65535
+var LzDeclaredEvent={}
+LzDeclaredEvent.sendEvent=function(){
+
+}
+LzDeclaredEvent.clearDelegates=function(){
+
+}
+LzDeclaredEvent.removeDelegate=function(){
+
+}
+LzDeclaredEvent.getDelegateCount=function(){
+return 0
+}
+LzDeclaredEvent.toString=function(){
+return "LzDeclaredEvent"
+}
+LzDeclaredEvent.ready=false
+function DeclareEvent($1,$2){
+$1[$2]=LzDeclaredEvent
+}
+function DeclareEvents($1,$2){
+for(var $3 in $2){
+$1[$2[$3]]=LzDeclaredEvent
+}
+}
+var LzInheritedHash={make:function($1){
+var $2
+$2=function(){
+
+}
+if($1){
+$2.prototype=$1
+return(new $2())
+}
+return(new Object)
+}}
+var ConstructorMap={}
+var lz=ConstructorMap
var LzNode=Class.make("LzNode",null,{initialize:function($1,$2,$3,$4){
+this.__LZUID="__U"+ ++LzNode.__UIDs
this.__LZdeferDelegates=true
-var $5=LzDelegate.__LZdelegatesQueue.length
-this.nextMethod(arguments.callee,"initialize").apply(this,arguments)
+var $5=LzDelegate.__LZdelegatesQueue.length;(arguments.callee.superclass?arguments.callee.superclass.prototype["initialize"]:this.nextMethod(arguments.callee,"initialize")).apply(this,arguments)
var $7
if($2&&$2["$hasdefaultattrs"]){
$7=$2
@@ -389,7 +735,7 @@
if(!$7.hasOwnProperty("$refs")){
$7.$refs=LzInheritedHash.make($9)
}
-var $16=this._ignoreAttribute
+var $16=LzNode._ignoreAttribute
for(var $11 in $10){
$7.$refs[$11]=$16
}
@@ -425,12 +771,16 @@
if($19){
this.__LZstyleConstraints=this.__LZapplyStyleMap($19,$2)
}
+if(this.constructWithArgs){
this.constructWithArgs($17)
+}
delete this.__LZdeferDelegates
if($5!=LzDelegate.__LZdelegatesQueue.length){
LzDelegate.__LZdrainDelegatesQueue($5)
}
+if(this.onconstruct.ready){
this.onconstruct.sendEvent(this)
+}
if($3&&$3.length){
this.createChildren($3)
}else{
@@ -439,31 +789,35 @@
},__LZlateinit:null,__LZpreventSubInit:null,__LZresolveDict:null,__LZsourceLocation:null,__LZUID:null,__LZdelegates:null,defaultattrs:{$hasdefaultattrs:true},isinited:false,subnodes:null,datapath:null,initstage:null,$isstate:false,doneClassRoot:false,parent:null,children:null,cloneManager:null,name:null,id:null,defaultplacement:null,placement:null,$cfn:0,__LZdeleted:false,immediateparent:null,dependencies:null,classroot:null,nodeLevel:null,$styles:function(){
return null
},__LZapplyStyleMap:function($1,$2){
-for(var $3 in $1){
-var $4=LzCSSStyle.getPropertyValueFor(this,$1[$3])
-if(typeof $4=="string"&&!isNaN($4)){
-$4=Number($4)
+var $3={}
+for(var $4 in $1){
+if($2[$4]!=null){
+continue
}
-if(!($3 in $2)){
-if($4 instanceof Function){
-styleConstraints[$3]=$4
+var $5=LzCSSStyle.getPropertyValueFor(this,$1[$4])
+if(typeof $5=="string"&&!isNaN($5)){
+$5=Number($5)
+}
+if(!($4 in $2)){
+if($5 instanceof Function){
+if(this[$4]==null){
+$3[$4]=$5
+}
}else{
-if($4!=null){
-this.setAttribute($3,$4)
+if($5!=null){
+this.setAttribute($4,$5)
}
}
}
}
-return styleConstraints
+return $3
},__LZapplyStyleConstraints:function(){
-if(this.hasOwnProperty("__LZstyleConstraints")){
var $1=this.__LZstyleConstraints
for(var $2 in $1){
var $3=$1[$2]
var $4=$3.call(this)
this.setAttribute($2,$4)
}
-}
},construct:function($1,$2){
var $3=$1
this.parent=$3
@@ -502,8 +856,6 @@
}else{
this.nodeLevel=1
}
-},constructWithArgs:function($1,$2){
-
},init:function(){
return
},__LZinstantiationDone:function(){
@@ -526,7 +878,9 @@
}
this.isinited=true
this.__LZresolveReferences()
+if(this.__LZstyleConstraints){
this.__LZapplyStyleConstraints()
+}
var $1=this.subnodes
if($1){
var $2=0
@@ -548,7 +902,9 @@
}
}
this.init()
+if(this.oninit.ready){
this.oninit.sendEvent(this)
+}
if(this.datapath&&this.datapath.__LZApplyDataOnInit){
this.datapath.__LZApplyDataOnInit()
}
@@ -562,9 +918,7 @@
LzInstantiator.completeTrickle(this)
}
}
-},_ignoreAttribute:{toString:function(){
-return "_ignoreAttribute"
-}},__LZapplyArgs:function($1,$2){
+},__LZapplyArgs:function($1,$2){
var $3={}
var $4=[]
var $5=null
@@ -573,7 +927,7 @@
}
var $6=this.setters
for(var $7 in $1){
-if($3[$7]||$1[$7]===this._ignoreAttribute){
+if($3[$7]||$1[$7]===LzNode._ignoreAttribute){
continue
}
$3[$7]=true
@@ -582,9 +936,11 @@
if(!$2){
var $8="on"+$7
if($8 in this){
+if(this[$8].ready){
this[$8].sendEvent($1[$7])
}
}
+}
}else{
if($6&&$6[$7]!=-1){
if(this.earlySetters&&this.earlySetters[$7]){
@@ -636,6 +992,9 @@
return this[this.getters[$1]]()
}
},setAttribute:function($1,$2){
+if(this.__LZdeleted){
+return
+}
var $3=this.setters
if($3&&$1 in $3){
this[$3[$1]]($2)
@@ -646,9 +1005,11 @@
this[$1]=$2
var $4="on"+$1
if($4 in this){
+if(this[$4].ready){
this[$4].sendEvent($2)
}
}
+}
},setProp:function($1,$2){
this.setAttribute($1,$2)
},getExpectedAttribute:function($1){
@@ -746,8 +1107,7 @@
}
},__LZstoreRefs:function($1,$2){
for(var $3 in $1){
-var $4=this[$3]
-if($4==null&&!$4){
+if(!($3 in this)){
this[$3]=null
}
}
@@ -817,16 +1177,16 @@
this.__LZdelegates.push(LzDelegate.make(this,$6,$5,$1[$3]))
}
},applyConstraint:function($1,$2,$3){
-if($3.length){
+var $4=$3.length
+if($4){
if(!this.__LZdelegates){
this.__LZdelegates=[]
}
-var $4="$cf"+this.$cfn++
-this[$4]=$2
-var $5=$3.length
+var $5="$cf"+this.$cfn++
+this[$5]=$2
var $6
-for(var $7=0;$7<$5;$7+=2){
-var $8=LzDelegate.make(this,$4)
+for(var $7=0;$7<$4;$7+=2){
+var $8=LzDelegate.make(this,$5)
this.__LZdelegates.push($8)
$6=$3[$7]
if($6){
@@ -870,11 +1230,18 @@
}
},setDatapath:function($1){
-if(null!=this.datapath){
+if(null!=this.datapath&&$1!=LzNode._ignoreAttribute){
this.datapath.setXPath($1)
}else{
LzDatapath.make(this,{xpath:$1})
}
+},setData:function($1){
+this.data=$1
+var $2=this.datapath!=null?this.datapath:LzDatapath.make(this)
+$2.setPointer($1)
+if(this.ondata.ready){
+this.ondata.sendEvent($1)
+}
},__LZsetEvents:function($1){
var $2=$1.length
for(var $3=0;$3<$2;$3++){
@@ -942,10 +1309,15 @@
}
}
return null
+},searchParents:function($1){
+var $2=this
+do{
+$2=$2.immediateparent
+if($2[$1]!=null){
+return $2
+}
+}while($2!=canvas)
},getUID:function(){
-if(this.__LZUID==null){
-this.__LZUID="__U"+ ++LzNode.UIDs
-}
return this.__LZUID
},childOf:function($1){
if($1==null){
@@ -964,7 +1336,9 @@
return
}
this.__LZdeleted=true
+if(this.ondestroy.ready){
this.ondestroy.sendEvent(this)
+}
this.__LZinstantiationDone=null
this.setters=null
if(this.subnodes!=null){
@@ -1075,8 +1449,6 @@
}
this.makeChild($1,true)
-},constructWithArgs:function($1,$2){
-
}},{tagname:"node",initialize:function($1){
if(this.hasOwnProperty("tagname")){
var $2=this.tagname
@@ -1091,7 +1463,9 @@
$1[$3]=LzInheritedHash.make($1[$3])
}
}
-},UIDs:0});(function(){
+},_ignoreAttribute:{toString:function(){
+return "_ignoreAttribute"
+}},__UIDs:0});(function(){
with(LzNode){
with(LzNode.prototype){
DeclareEvent(prototype,"oninit")
@@ -1135,7 +1509,6 @@
}
var $12=$11.prototype
delete $5.name
-$12.addProperty("userclass",true)
var $13
if("classChildren" in $7.prototype&&$7.prototype.classChildren.length){
$13=$7.prototype.classChildren.concat()
@@ -1143,7 +1516,6 @@
$13=[]
}
if("children" in $3&&$3.children.length){
-LzFixTags($3)
$13=$13.concat($3.children)
}
if("defaultplacement" in $5&&$5.defaultplacement!=null){
@@ -1218,7 +1590,7 @@
if(!$22.hasOwnProperty("$refs")){
$22.$refs=LzInheritedHash.make($23)
}
-var $31=LzNode.prototype._ignoreAttribute
+var $31=LzNode._ignoreAttribute
for(var $17 in $24){
$22.$refs[$17]=$31
}
@@ -1229,7 +1601,7 @@
$1.defaultplacement=$2
}
var LzDelegate=Class.make("LzDelegate",null,{initialize:function($1,$2,$3,$4){
-this.nextMethod(arguments.callee,"initialize").apply(this,arguments)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["initialize"]:this.nextMethod(arguments.callee,"initialize")).apply(this,arguments)
this.c=$1
this.f=$2
if($3!=null){
@@ -1273,7 +1645,8 @@
this[$3]=null
}
this.lastevent=0
-for(var $3=0;$3<$2.length;$3++){
+var $5=$2.length
+for(var $3=0;$3<$5;$3++){
this[this.lastevent++]=$2[$3]
}
},disable:function(){
@@ -1289,13 +1662,15 @@
while($4<$3){
var $5=$2[$4]
var $6=$2[$4+1]
+if($5.c[$5.f]){
$5.c[$5.f]($6)
+}
$4+=2
}
$2.length=$1
}})
var LzEvent=Class.make("LzEvent",null,{initialize:function($1,$2,$3){
-this.nextMethod(arguments.callee,"initialize").apply(this,arguments)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["initialize"]:this.nextMethod(arguments.callee,"initialize")).apply(this,arguments)
var $4=$1._events
if($4==null){
$1._events=[this]
@@ -1305,10 +1680,12 @@
$1[$2]=this
if($3){
this.delegateList=[$3]
+this.ready=true
}else{
this.delegateList=[]
}
-},locked:false,addDelegate:function($1){
+},locked:false,ready:false,addDelegate:function($1){
+this.ready=true
this.delegateList.push($1)
},sendEvent:function($1){
if(this.locked){
@@ -1329,14 +1706,15 @@
$4.push($5)
if($5.enabled&&$5.c){
if($5.c.__LZdeferDelegates){
-$6[$6.length]=$5
-$6[$6.length]=$1
+$6.push($5,$1)
}else{
+if($5.c[$5.f]){
$5.c[$5.f]($1)
}
}
}
}
+}
while($5=$4.pop()){
$5.event_called=false
}
@@ -1350,13 +1728,13 @@
}
}
if(this.delegateList.length==0){
-this.hasNoDelegates=true
+this.ready=false
}
},clearDelegates:function(){
while(this.delegateList.length){
this.delegateList[0].unregisterFrom(this)
}
-this.hasNoDelegates=true
+this.ready=false
},getDelegateCount:function(){
return this.delegateList.length
},toString:function(){
@@ -1408,7 +1786,24 @@
}
delete $1.__callbacks
}
-}},color:{hextoint:function($1){
+}},dectohex:function($1,$2){
+if(typeof $1=="number"){
+var $3="0123456789ABCDEF"
+var $4=$3.substr($1&15,1)
+while($1>15){
+$1>>=4
+$4=$3.substr($1&15,1)+$4
+}
+var $2=$2-$4.length
+while($2>0){
+$4="0"+$4
+$2--
+}
+return $4
+}else{
+return $1
+}
+},color:{hextoint:function($1){
if(typeof $1!="string"){
return $1
}
@@ -1433,19 +1828,9 @@
$1=$1*1
}
if(typeof $1=="number"){
-var $2="0123456789ABCDEF"
-var $3=$2.substr($1&15,1)
-while($1>15){
-$1>>=4
-$3=$2.substr($1&15,1)+$3
+var $2=LzUtils.dectohex($1,6)
+$1="#"+$2
}
-var $4=6-$3.length
-while($4>0){
-$3="0"+$3
-$4--
-}
-$1="#"+$3
-}
return $1
},torgb:function($1){
if(typeof $1=="number"){
@@ -1459,6 +1844,14 @@
}
return "rgb("+parseInt($1.substring(1,3),16)+","+parseInt($1.substring(3,5),16)+","+parseInt($1.substring(5,7),16)+($1.length>7?","+parseInt($1.substring(7,9),16):"")+")"
}}}
+var LzLibraryCleanup=Class.make("LzLibraryCleanup",LzNode,{initialize:function($1,$2){
+(arguments.callee.superclass?arguments.callee.superclass.prototype["initialize"]:this.nextMethod(arguments.callee,"initialize")).apply(this,arguments)
+var $3=LzLibrary.findLibrary($2.libname)
+$3.loading=false
+if($3.onload.ready){
+$3.onload.sendEvent(true)
+}
+}},{tagname:"__libraryloadercomplete"})
var LzResourceLibrary={}
var getTimer=function(){
return(new Date()).valueOf()-getTimer.startTime
@@ -1659,7 +2052,7 @@
document.onmousedown=LzMouseKernel.__mouseEvent
document.onmouseup=LzMouseKernel.__mouseEvent
document.oncontextmenu=LzMouseKernel.__mouseEvent
-},showHandCursor:function($1){
+},__showhand:"pointer",showHandCursor:function($1){
var $2=$1==true?"pointer":"default"
this.__showhand=$2
LzMouseKernel.setCursorGlobal($2)
@@ -1703,7 +2096,7 @@
if($4.height){
$3.style.height=$4.height
}
-if($4.width&&$4.width.indexOf("%")==-1&&$4.height&&$4.height.indexOf("%")==-1){
+if(this.quirks.canvas_div_cannot_be_clipped==false&&$4.width&&$4.width.indexOf("%")==-1&&$4.height&&$4.height.indexOf("%")==-1){
$3.style.clip="rect(0px "+$4.width+" "+$4.height+" 0px)"
$3.style.overflow="hidden"
}
@@ -1758,57 +2151,71 @@
}}
LzSprite.prototype.__defaultStyles["#lzcontextmenu a"]={color:"#000",display:"block",textDecoration:"none"}
LzSprite.prototype.__defaultStyles["#lzcontextmenu a:hover"]={color:"#FFF",backgroundColor:"#333"}
-LzSprite.prototype.__defaultStyles["#lzcontextmenu"]={position:"absolute",zIndex:10000000,backgroundColor:"#CCC",border:"2px outset #999",padding:"4px",fontFamily:"Verdana,Vera,sans-serif",fontSize:"14px",margin:"2px",color:"#999"}
+LzSprite.prototype.__defaultStyles["#lzcontextmenu"]={position:"absolute",zIndex:10000000,backgroundColor:"#CCC",border:"1px outset #999",padding:"4px",fontFamily:"Verdana,Vera,sans-serif",fontSize:"13px",margin:"2px",color:"#999"}
LzSprite.prototype.uid=0
-LzSprite.prototype.quirks={fix_clickable:true,fix_ie_background_height:false,fix_ie_clickable:false,ie_alpha_image_loader:false,ie_leak_prevention:false,invisible_parent_image_sizing_fix:false,emulate_flash_font_metrics:true,inner_html_strips_newlines:true,inner_html_no_entity_apos:false,css_hide_canvas_during_init:true,firefox_autocomplete_bug:false,hand_pointer_for_clickable:true,alt_key_sends_control:false,safari_textarea_subtract_scrollbar_height:false,safari_avoid_clip_position_input_text:false,reverse_mouse_wheel:false,no_cursor_colresize:false,safari_visibility_instead_of_display:false,preload_images_only_once:false,absolute_position_accounts_for_offset:false}
-LzSprite.prototype.capabilities={rotation:false,scalecanvastopercentage:true,opacity:true,colortransform:false,audio:false,accessibility:false}
+LzSprite.prototype.quirks={fix_clickable:true,fix_ie_background_height:false,fix_ie_clickable:false,ie_alpha_image_loader:false,ie_leak_prevention:false,invisible_parent_image_sizing_fix:false,emulate_flash_font_metrics:true,inner_html_strips_newlines:true,inner_html_no_entity_apos:false,css_hide_canvas_during_init:true,firefox_autocomplete_bug:false,hand_pointer_for_clickable:true,alt_key_sends_control:false,safari_textarea_subtract_scrollbar_height:false,safari_avoid_clip_position_input_text:false,reverse_mouse_wheel:false,no_cursor_colresize:false,safari_visibility_instead_of_display:false,preload_images_only_once:false,absolute_position_accounts_for_offset:false,canvas_div_cannot_be_clipped:false,inputtext_parents_cannot_contain_clip:false,minimize_opacity_changes:false,set_height_for_multiline_inputtext:false,ie_offset_position_by_2:false}
+LzSprite.prototype.capabilities={rotation:false,scalecanvastopercentage:true,opacity:true,colortransform:false,audio:false,accessibility:false,htmlinputtext:false,advancedfonts:false}
+LzSprite.prototype.__updateQuirks=function(){
if(window["Lz"]&&Lz.__BrowserDetect){
Lz.__BrowserDetect.init()
-if(LzSprite.prototype.quirks["inner_html_strips_newlines"]==true){
+if(this.quirks["inner_html_strips_newlines"]==true){
LzSprite.prototype.inner_html_strips_newlines_re=RegExp("$","mg")
}
-if(Lz.__BrowserDetect.browser=="Explorer"){
-LzSprite.prototype.quirks["ie_alpha_image_loader"]=true
-LzSprite.prototype.quirks["ie_leak_prevention"]=true
-LzSprite.prototype.quirks["fix_ie_clickable"]=true
-LzSprite.prototype.quirks["fix_ie_background_height"]=true
-LzSprite.prototype.quirks["inner_html_no_entity_apos"]=true
+if(Lz.__BrowserDetect.isIE){
+this.quirks["ie_alpha_image_loader"]=true
+this.quirks["ie_leak_prevention"]=true
+this.quirks["fix_ie_clickable"]=true
+this.quirks["fix_ie_background_height"]=true
+this.quirks["inner_html_no_entity_apos"]=true
+this.quirks["inputtext_parents_cannot_contain_clip"]=true
+this.quirks["minimize_opacity_changes"]=true
+this.quirks["set_height_for_multiline_inputtext"]=true
+if(Lz.__BrowserDetect.version>6){
+this.quirks["ie_offset_position_by_2"]=true
}
-if(Lz.__BrowserDetect.browser=="Safari"){
-LzSprite.prototype.quirks["invisible_parent_image_sizing_fix"]=true
-LzSprite.prototype.quirks["alt_key_sends_control"]=true
-LzSprite.prototype.quirks["safari_textarea_subtract_scrollbar_height"]=true
-LzSprite.prototype.quirks["safari_avoid_clip_position_input_text"]=true
-LzSprite.prototype.quirks["safari_visibility_instead_of_display"]=true
-LzSprite.prototype.quirks["absolute_position_accounts_for_offset"]=true
+}else{
+if(Lz.__BrowserDetect.isSafari){
+this.quirks["invisible_parent_image_sizing_fix"]=true
+this.quirks["alt_key_sends_control"]=true
+this.quirks["safari_textarea_subtract_scrollbar_height"]=true
+this.quirks["safari_avoid_clip_position_input_text"]=true
+this.quirks["safari_visibility_instead_of_display"]=true
+this.quirks["absolute_position_accounts_for_offset"]=true
+this.quirks["canvas_div_cannot_be_clipped"]=true
+}else{
+if(Lz.__BrowserDetect.isOpera){
+this.quirks["invisible_parent_image_sizing_fix"]=true
+this.quirks["reverse_mouse_wheel"]=true
+this.quirks["no_cursor_colresize"]=true
+this.quirks["absolute_position_accounts_for_offset"]=true
+this.quirks["canvas_div_cannot_be_clipped"]=true
+}else{
+if(Lz.__BrowserDetect.isFirefox&&Lz.__BrowserDetect.version<2){
+this.quirks["firefox_autocomplete_bug"]=true
}
-if(Lz.__BrowserDetect.browser=="Opera"){
-LzSprite.prototype.quirks["invisible_parent_image_sizing_fix"]=true
-LzSprite.prototype.quirks["reverse_mouse_wheel"]=true
-LzSprite.prototype.quirks["no_cursor_colresize"]=true
-LzSprite.prototype.quirks["absolute_position_accounts_for_offset"]=true
}
-if(Lz.__BrowserDetect.browser=="Firefox"&&Lz.__BrowserDetect.version<2){
-LzSprite.prototype.quirks["firefox_autocomplete_bug"]=true
}
}
-if(LzSprite.prototype.quirks["safari_avoid_clip_position_input_text"]){
-LzSprite.prototype.__defaultStyles.lzswfinputtext.marginTop="0px"
-LzSprite.prototype.__defaultStyles.lzswfinputtext.marginLeft="0px"
-LzSprite.prototype.__defaultStyles.lzswfinputtextmultiline.marginTop="0px"
-LzSprite.prototype.__defaultStyles.lzswfinputtextmultiline.marginLeft="0px"
}
-if(LzSprite.prototype.quirks["css_hide_canvas_during_init"]){
-if(LzSprite.prototype.quirks["safari_visibility_instead_of_display"]){
+if(this.quirks["safari_avoid_clip_position_input_text"]){
+LzSprite.prototype.__defaultStyles.lzswfinputtext.marginTop="-2px"
+LzSprite.prototype.__defaultStyles.lzswfinputtext.marginLeft="-2px"
+LzSprite.prototype.__defaultStyles.lzswfinputtextmultiline.marginTop="-2px"
+LzSprite.prototype.__defaultStyles.lzswfinputtextmultiline.marginLeft="-2px"
+}
+if(this.quirks["css_hide_canvas_during_init"]){
+if(this.quirks["safari_visibility_instead_of_display"]){
LzSprite.prototype.__defaultStyles.lzcanvasdiv.visibility="hidden"
}else{
LzSprite.prototype.__defaultStyles.lzcanvasdiv.display="none"
}
LzSprite.prototype.__defaultStyles.lzcanvasclickdiv.display="none"
}
-if(LzSprite.prototype.quirks["hand_pointer_for_clickable"]){
+if(this.quirks["hand_pointer_for_clickable"]){
LzSprite.prototype.__defaultStyles.lzclickdiv.cursor="pointer"
}
+}
+LzSprite.prototype.__updateQuirks()
LzSprite.prototype.__defaultStyles.writeCSS()
LzSprite.prototype.__LZdiv=null
LzSprite.prototype.__LZimg=null
@@ -2109,17 +2516,24 @@
}
this.__poscachedirty=true
this.x=$1
-this.__LZdiv.style.left=this.CSSDimension($1)
+$1=this.CSSDimension($1)
+if(this._x!=$1){
+this._x=$1
+this.__LZdiv.style.left=$1
if(this.quirks.fix_clickable){
-this.__LZclickdiv.style.left=this.__LZdiv.style.left
+this.__LZclickdiv.style.left=$1
}
}
+}
LzSprite.prototype.setWidth=function($1){
if($1==null||$1<0||isNaN($1)||this.width==$1){
return
}
this.width=$1
-this.__LZdiv.style.width=this.CSSDimension($1)
+$1=this.CSSDimension($1)
+if(this._w!=$1){
+this._w=$1
+this.__LZdiv.style.width=$1
if(this.clip){
this.__updateClip()
}
@@ -2127,26 +2541,34 @@
this.__updateStretches()
}
if(this.__LZclick){
-this.__LZclick.style.width=this.__LZdiv.style.width
+this.__LZclick.style.width=$1
}
}
+}
LzSprite.prototype.setY=function($1){
if($1==null||$1==this.y||isNaN($1)){
return
}
this.__poscachedirty=true
this.y=$1
-this.__LZdiv.style.top=this.CSSDimension($1)
+$1=this.CSSDimension($1)
+if(this._y!=$1){
+this._y=$1
+this.__LZdiv.style.top=$1
if(this.quirks.fix_clickable){
-this.__LZclickdiv.style.top=this.__LZdiv.style.top
+this.__LZclickdiv.style.top=$1
}
}
+}
LzSprite.prototype.setHeight=function($1){
if($1==null||$1<0||isNaN($1)||this.height==$1){
return
}
this.height=$1
-this.__LZdiv.style.height=this.CSSDimension($1)
+$1=this.CSSDimension($1)
+if(this._h!=$1){
+this._h=$1
+this.__LZdiv.style.height=$1
if(this.clip){
this.__updateClip()
}
@@ -2154,9 +2576,10 @@
this.__updateStretches()
}
if(this.__LZclick){
-this.__LZclick.style.height=this.__LZdiv.style.height
+this.__LZclick.style.height=$1
}
}
+}
LzSprite.prototype.setMaxLength=function($1){
}
@@ -2192,7 +2615,7 @@
return
}
this.bgcolor=$1
-this.__LZdiv.style.backgroundColor=LzUtils.color.inttohex($1)
+this.__LZdiv.style.backgroundColor=$1==null?"transparent":LzUtils.color.inttohex($1)
if(this.quirks.fix_ie_background_height){
if(this.height!=null&&this.height<2){
this.setSource(LzSprite.prototype.blankimage,true)
@@ -2278,17 +2701,16 @@
}
LzSprite.prototype.__findParents=function($1){
var $2=[]
-var $3=this.owner
+var $3=this
if($3[$1]!=null){
-$2.push($3.sprite)
+$2.push($3)
}
do{
-var $4=$3
-var $3=$3.searchParents($1)
-if($3){
-$2.push($3.sprite)
+$3=$3.__parent
+if($3[$1]!=null){
+$2.push($3)
}
-}while($3!=LzSprite.__rootSprite.owner)
+}while($3!=LzSprite.__rootSprite)
return $2
}
LzSprite.prototype.__imgonload=function($1){
@@ -2441,9 +2863,10 @@
}
LzSprite.prototype.__updateClip=function(){
if(this.clip&&this.width!=null&&this.width>=0&&this.height!=null&&this.height>=0){
-this.__LZdiv.style.clip="rect(0px "+this.CSSDimension(this.width)+" "+this.CSSDimension(this.height)+" 0px)"
+var $1="rect(0px "+this._w+" "+this._h+" 0px)"
+this.__LZdiv.style.clip=$1
if(this.quirks.fix_clickable){
-this.__LZclickdiv.style.clip="rect(0px "+this.CSSDimension(this.width)+" "+this.CSSDimension(this.height)+" 0px)"
+this.__LZclickdiv.style.clip=$1
}
}else{
if(this.__LZdiv.style.clip){
@@ -2534,22 +2957,15 @@
this.__ImgPool=null
this.destroyed=true
}
-LzSprite.prototype.getMouse=function($1){
-var $2=this.__getPos()
+LzSprite.prototype.getMouse=function(){
+var $1=this.__getPos()
if(this.isroot){
-if($1=="x"){
-return LzMouseKernel.__x-$2.x
+return {x:LzMouseKernel.__x-$1.x,y:LzMouseKernel.__y-$1.y}
}else{
-return LzMouseKernel.__y-$2.y
+var $2=LzSprite.__rootSprite.getMouse()
+return {x:$2.x-$1.x,y:$2.y-$1.y}
}
-}else{
-if($1=="x"){
-return LzSprite.__rootSprite.getMouse("x")-$2.x
-}else{
-return LzSprite.__rootSprite.getMouse("y")-$2.y
}
-}
-}
LzSprite.prototype.__poscache=null
LzSprite.prototype.__poscachedirty=true
LzSprite.prototype.__getPos=function(){
@@ -2569,10 +2985,14 @@
var $4=null
var $5={}
var $6
-if($3.getBoundingClientRect){
+if(Lz.__BrowserDetect.isIE){
$6=$3.getBoundingClientRect()
var $7=document.documentElement.scrollTop||document.body.scrollTop
var $8=document.documentElement.scrollLeft||document.body.scrollLeft
+if(this.quirks["ie_offset_position_by_2"]){
+$8-=2
+$7-=2
+}
return {x:$6.left+$8,y:$6.top+$7}
}else{
if(document.getBoxObjectFor){
@@ -2608,8 +3028,10 @@
}
}
var $2=this
-while($2!=this.__rootSprite){
+while($2&&$2!=this.__rootSprite){
+if($2.__parent){
$2.__poscachedirty=false
+}
$2=$2.__parent
}
this.__poscache=$5
@@ -2794,6 +3216,9 @@
LzSprite.prototype.setContextMenu=function($1){
this.__contextmenu=$1
}
+LzSprite.prototype.getContextMenu=function(){
+return this.__contextmenu
+}
if(LzSprite.prototype.quirks.ie_leak_prevention){
LzSprite.prototype.__sprites={}
function __cleanUpForIE(){
@@ -2822,6 +3247,42 @@
}
window.onbeforeunload=__cleanUpForIE
}
+var LzLibrary=Class.make("LzLibrary",LzNode,{construct:function($1,$2){
+this.stage=$2.stage;(arguments.callee.superclass?arguments.callee.superclass.prototype["construct"]:this.nextMethod(arguments.callee,"construct")).apply(this,arguments)
+this.sprite=LzSprite.make(this,false,$2)
+LzLibrary.libraries[$2.name]=this
+},init:function(){
+(arguments.callee.superclass?arguments.callee.superclass.prototype["init"]:this.nextMethod(arguments.callee,"init")).apply(this,arguments)
+if(this.stage=="late"){
+this.load()
+}
+},loaded:false,loading:false,toString:function(){
+return "Library "+this.href+" named "+this.name
+},load:function(){
+Lz.__dhtmlLoadLibrary(this.href)
+}},{tagname:"import",libraries:[],findLibrary:function($1){
+return LzLibrary.libraries[$1]
+},__LZsnippetLoaded:function($1){
+var $2=null
+var $3=LzLibrary.libraries
+for(var $4 in $3){
+if($3[$4].href==$1){
+$2=$3[$4].name
+break
+}
+}
+if($2==null){
+Debug.error("could not find library with href",$1)
+}
+LzInstantiateView({attrs:{libname:$2},name:"__libraryloadercomplete"},1)
+canvas.initDone()
+}});(function(){
+with(LzLibrary){
+with(LzLibrary.prototype){
+DeclareEvent(prototype,"onload")
+}
+}
+})()
var LzTextSprite=function($1){
if($1==null){
return
@@ -3029,6 +3490,7 @@
}else{
var $3="position: absolute"
$3+=";visibility: hidden"
+$3+=";top: 4000px"
$3+=";font-size: "+this._fontSize
$3+=";font-style: "+this._fontStyle
$3+=";font-weight: "+this._fontWeight
@@ -3158,23 +3620,28 @@
}
LzTextSprite.prototype.__setWidth=LzSprite.prototype.setWidth
LzTextSprite.prototype.setWidth=function($1){
-if($1>0){
-var $2=this.CSSDimension($1-this.__wpadding)
+if($1==null||$1<0||isNaN($1)||this.width==$1){
+return
+}
+var $2=this.CSSDimension($1>=this.__wpadding?$1-this.__wpadding:0)
this.__LZtextdiv.style.width=$2
-this.__LZtextdiv.style.clip="rect(0px "+$2+" "+this.CSSDimension(this.height-this.__hpadding)+" 0px)"
-}
+this.__LZtextdiv.style.clip="rect(0px "+$2+" "+this.CSSDimension(this.height>=this.__hpadding?this.height-this.__hpadding:0)+" 0px)"
this.__setWidth($1)
this._styledirty=true
}
LzTextSprite.prototype.__setHeight=LzSprite.prototype.setHeight
LzTextSprite.prototype.setHeight=function($1){
-if($1>0){
-var $2=this.CSSDimension($1-this.__hpadding)
+if($1==null||$1<0||isNaN($1)||this.height==$1){
+return
+}
+var $2=this.CSSDimension($1>=this.__hpadding?$1-this.__hpadding:0)
this.__LZtextdiv.style.height=$2
-this.__LZtextdiv.style.clip="rect(0px "+this.CSSDimension(this.width-this.__wpadding)+" "+$2+" 0px)"
-}
+this.__LZtextdiv.style.clip="rect(0px "+this.CSSDimension(this.width>=this.__wpadding?this.width-this.__wpadding:0)+" "+$2+" 0px)"
this.__setHeight($1)
+if(this.multiline){
+this._styledirty=true
}
+}
document.onselectstart=function(){
return false
}
@@ -3264,6 +3731,21 @@
LzInputTextSprite.prototype.__lastshown=this
this.__shown=true
this.__LzInputDiv=this.__LZdiv.removeChild(this.__LzInputDiv)
+if(this.quirks["inputtext_parents_cannot_contain_clip"]){
+var $1=this.__findParents("clip")
+var $2=$1.length
+if($2>1){
+if(this._shownclipvals==null){
+this._shownclipvals=[]
+this._shownclippedsprites=$1
+for(var $3=0;$3<$2;$3++){
+var $4=$1[$3]
+this._shownclipvals[$3]=$4.__LZclickdiv.style.clip
+$4.__LZclickdiv.style.clip="rect(auto auto auto auto)"
+}
+}
+}
+}
if(this.quirks.fix_ie_clickable){
this.__LZclickdiv.appendChild(this.__LzInputDiv)
this.__setCSSClassProperty(".lzclickdiv","display","none")
@@ -3285,6 +3767,16 @@
}
LzInputTextSprite.prototype.__lastshown=null
this.__shown=false
+if(this.quirks["inputtext_parents_cannot_contain_clip"]){
+if(this._shownclipvals!=null){
+for(var $1=0;$1<this._shownclipvals.length;$1++){
+var $2=this._shownclippedsprites[$1]
+$2.__LZclickdiv.style.clip=this._shownclipvals[$1]
+}
+this._shownclipvals=null
+this._shownclippedsprites=null
+}
+}
if(this.quirks.fix_ie_clickable){
this.__setCSSClassProperty(".lzclickdiv","display","")
this.__LzInputDiv=this.__LZclickdiv.removeChild(this.__LzInputDiv)
@@ -3382,8 +3874,15 @@
}
if(this.owner){
this.owner.inputtextevent($2,$3)
+if($2=="onkeydown"||$2=="onkeyup"){
+var $4=this.__LzInputDiv.value
+if($4!=this.text){
+this.text=$4
+this.owner.inputtextevent("onchange",$4)
}
}
+}
+}
LzInputTextSprite.prototype.setEnabled=function($1){
this.disabled=!$1
this.__LzInputDiv.disabled=this.disabled
@@ -3397,7 +3896,9 @@
LzInputTextSprite.prototype.select=function($1,$2){
this._cancelblur=true
this.__show()
-this.__LzInputDiv.select()
+this.__LzInputDiv.focus()
+LzInputTextSprite.__lastfocus=this
+setTimeout("LzInputTextSprite.__lastfocus.__LzInputDiv.select()",50)
if(window["LzKeyboardKernel"]){
LzKeyboardKernel.__cancelKeys=false
}
@@ -3446,6 +3947,9 @@
}
}
LzInputTextSprite.prototype.setWidth=function($1){
+if($1==null||$1<0||isNaN($1)||this.width==$1){
+return
+}
this.__setWidth($1-this.____wpadding)
if(this.quirks.fix_clickable){
var $1=this.CSSDimension(this.width)
@@ -3454,13 +3958,19 @@
}
}
LzInputTextSprite.prototype.setHeight=function($1){
+if($1==null||$1<0||isNaN($1)||this.height==$1){
+return
+}
this.__setHeight($1)
if(this.quirks.fix_clickable){
var $1=this.CSSDimension(this.height)
this.__LZclickdiv.style.height=$1
this.__LZinputclickdiv.style.height=$1
+if(this.multiline&&this.quirks.set_height_for_multiline_inputtext){
+this.__LzInputDiv.style.height=this.CSSDimension(this.height-this.____hpadding*2)
}
}
+}
LzInputTextSprite.prototype.setColor=function($1){
if(this.color==$1){
return
@@ -3541,61 +4051,74 @@
}
var LzXMLTranslator=(new Object)
LzXMLTranslator.copyXML=function($1,$2,$3){
-var $4=LzXMLTranslator.copyBrowserXML($1,true,$2)
+var $4=LzXMLTranslator.copyBrowserXML($1,true,$2,$3)
return $4
}
LzXMLTranslator.whitespacePat=(new RegExp("^[\t\n\r ]*$"))
LzXMLTranslator.stringTrimPat=(new RegExp("(^[\t\n\r ]*|[\t\n\r ]*$)","g"))
LzXMLTranslator.slashPat=(new RegExp("/","g"))
-LzXMLTranslator.copyBrowserXML=function($1,$2,$3){
+LzXMLTranslator.copyBrowserXML=function($1,$2,$3,$4){
if(!$1){
return $1
}
-var $4=$1.nodeValue
-var $5=null
+var $5=$1.nodeValue
+var $6=null
if($1.nodeType==3||$1.nodeType==4){
-if($2&&LzXMLTranslator.whitespacePat.test($4)){
+if($2&&LzXMLTranslator.whitespacePat.test($5)){
return null
}
if($3){
-var $6=$4
-$4=$4.replace(LzXMLTranslator.stringTrimPat,"")
+var $7=$5
+$5=$5.replace(LzXMLTranslator.stringTrimPat,"")
}
-$5=LzDataText.make($4)
-return $5
+$6=LzDataText.make($5)
+return $6
}else{
if($1.nodeType==1||$1.nodeType==9){
-var $7=$1.attributes
-var $8={}
-if($7){
-for(var $9=0;$9<$7.length;$9++){
-var $10=$7.item($9)
-if($10){
-var $11=$10.name
-var $12=$10.value
-$8[$11]=$12
+var $8=$1.attributes
+var $9={}
+if($8){
+for(var $10=0;$10<$8.length;$10++){
+var $11=$8.item($10)
+if($11){
+var $12=$11.name
+var $13=$11.value
+var $14=$12
+if(!$4){
+var $15=$12.indexOf(":")
+if($15>=0){
+$14=$12.substring($15+1)
}
}
+$9[$14]=$13
}
-$5=LzDataElement.make($1.nodeName,$8)
-var $13=$1.childNodes
-var $14=[]
-for(var $15=0;$15<$13.length;$15++){
-var $16=$13[$15]
-var $17=LzXMLTranslator.copyBrowserXML($16,$2,$3)
-if($17!=null){
-$14.push($17)
}
}
-$5.setChildNodes($14)
-return $5
+var $16=$1.nodeName
+if($16&&!$4){
+var $17=$16.indexOf(":")
+if($17>=0){
+$16=$16.substring($17+1)
+}
+}
+$6=LzDataElement.make($16,$9)
+var $18=$1.childNodes
+var $19=[]
+for(var $20=0;$20<$18.length;$20++){
+var $21=$18[$20]
+var $22=LzXMLTranslator.copyBrowserXML($21,$2,$3,$4)
+if($22!=null){
+$19.push($22)
+}
+}
+$6.setChildNodes($19)
+return $6
}else{
return null
}
}
}
-var LzHTTPLoader=function($1,$2,$3){
-this.dataset=$3
+var LzHTTPLoader=function($1,$2){
this.owner=$1
this.options={parsexml:true}
this.requestheaders={}
@@ -3643,7 +4166,7 @@
this.querystring=$1
}
LzHTTPLoader.prototype.setQueueing=function($1){
-
+this.setOption("queuing",$1)
}
LzHTTPLoader.prototype.getResponseHeader=function($1){
return this.req.getResponseHeader($1)
@@ -3659,7 +4182,7 @@
}
LzHTTPLoader.prototype.makeProxiedURL=function($1,$2,$3,$4){
var $5=LzBrowser.getBaseURL()
-var $6={lzt:$3!=null?$3:"xmldata",reqtype:$2,sendheaders:this.options.sendheaders,trimwhitespace:this.options.trimwhitespace,nsprefix:this.options.trimwhitespace,url:LzBrowser.toAbsoluteURL($1,this.secure),timeout:this.timeout,cache:this.options.cacheable,ccache:this.options.ccache}
+var $6={lzt:$3!=null?$3:"xmldata",reqtype:$2,sendheaders:this.options.sendheaders,trimwhitespace:this.options.trimwhitespace,nsprefix:this.options.nsprefix,url:LzBrowser.toAbsoluteURL($1,this.secure),timeout:this.timeout,cache:this.options.cacheable,ccache:this.options.ccache}
var $7
var $8=""
if($4!=null){
@@ -3678,7 +4201,7 @@
for(var $10 in $6){
var $11=$6[$10]
if(typeof $11=="string"){
-$11=escape($11)
+$11=encodeURIComponent($11)
$11=$11.replace(LzDataset.slashPat,"%2F")
}
$5+=$9+$10+"="+$11
@@ -3690,7 +4213,7 @@
this.loadXMLDoc(this.requestmethod,this.requesturl,this.requestheaders,$1,true,true)
}
LzHTTPLoader.activeRequests=[]
-LzHTTPLoader.prototype.timeout=30*1000
+LzHTTPLoader.prototype.timeout=Infinity
LzHTTPLoader.prototype.setTimeout=function($1){
this.timeout=$1
}
@@ -3827,7 +4350,9 @@
$1.setAttribute("style","display: none")
document.body.appendChild($1)
}
+if(this.onmenuopen.ready){
this.onmenuopen.sendEvent(this)
+}
var $2=""
for(var $3=0;$3<this.items.length;$3++){
var $4=this.items[$3].cmenuitem
@@ -3887,7 +4412,9 @@
},setDelegate:function($1){
this._delegate=$1
},__select:function(){
+if(this.onselect.ready){
this.onselect.sendEvent(this)
+}
if(this._delegate!=null){
if(this._delegate instanceof LzDelegate){
this._delegate.execute(this)
@@ -3914,8 +4441,8 @@
}
}
})()
-var LzView=Class.make("LzView",LzNode,{construct:function($1,$2){
-this.nextMethod(arguments.callee,"construct").call(this,$1?$1:canvas,$2)
+var LzView=Class.make("LzView",LzNode,{DOUBLE_CLICK_TIME:500,construct:function($1,$2){
+(arguments.callee.superclass?arguments.callee.superclass.prototype["construct"]:this.nextMethod(arguments.callee,"construct")).call(this,$1?$1:canvas,$2)
var $3=this.immediateparent
this.mask=$3.mask
this.__makeSprite($2)
@@ -3930,7 +4457,7 @@
var $4=null
if("resource" in $2&&$2["resource"]!=null){
$4=$2.resource
-$2.resource=this._ignoreAttribute
+$2.resource=LzNode._ignoreAttribute
}
if("clip" in $2&&$2["clip"]){
if(this.sprite){
@@ -3971,11 +4498,12 @@
if(this.__LZcheckheight){
this.__LZcheckheightFunction($1)
}
+if(this.onaddsubview.ready){
this.onaddsubview.sendEvent($1)
+}
},__LZinstantiationDone:function(){
-this.immediateparent.addSubview(this)
-this.nextMethod(arguments.callee,"__LZinstantiationDone").apply(this,arguments)
-},mask:null,focusable:false,focustrap:null,fontstyle:null,fontsize:null,sprite:null,visible:true,__LZvisibleSet:null,__LZvizO:true,__LZvizDat:true,__LZvizLoad:true,opacity:1,bgcolor:null,x:0,y:0,rotation:0,width:0,height:0,unstretchedwidth:0,unstretchedheight:0,subviews:[],__LZclickregion:"LzMouseEvents",xoffset:0,yoffset:0,__LZrsin:0,__LZrcos:1,__LZcaloffset:false,_xscale:1,_yscale:1,totalframes:0,frame:0,loadperc:0,framesloadratio:0,loadratio:0,hassetheight:false,hassetwidth:false,__LZisView:true,addedToParent:null,checkPlayStatusDel:null,masked:false,pixellock:null,setButtonSize:null,showhandcursor:null,updatePlayDel:null,resource:null,resourcewidth:null,resourceheight:null,__LZbgColorO:null,__LZbgRef:null,__LZbuttonRef:null,__LZcheckwidth:true,__LZcheckheight:true,__LZhasoffset:null,__LZisBackgrounded:null,__LZmaskClip:null,__LZmovieClipRef:null,__LZoutlieheight:null,__LZoutliewidth:null,__LZsubUniqueNum:null,setLayout:function($1){
+this.immediateparent.addSubview(this);(arguments.callee.superclass?arguments.callee.superclass.prototype["__LZinstantiationDone"]:this.nextMethod(arguments.callee,"__LZinstantiationDone")).apply(this,arguments)
+},mask:null,focusable:false,focustrap:null,fontstyle:null,fontsize:null,sprite:null,visible:true,visibility:"collapse",__LZvizO:true,__LZvizDat:true,__LZvizLoad:true,opacity:1,bgcolor:null,x:0,y:0,rotation:0,width:0,height:0,unstretchedwidth:0,unstretchedheight:0,subviews:[],__LZclickregion:"LzMouseEvents",xoffset:0,yoffset:0,__LZrsin:0,__LZrcos:1,__LZcaloffset:false,_xscale:1,_yscale:1,totalframes:0,frame:0,loadperc:0,framesloadratio:0,loadratio:0,hassetheight:false,hassetwidth:false,__LZisView:true,addedToParent:null,checkPlayStatusDel:null,masked:false,pixellock:null,setButtonSize:null,clickable:false,showhandcursor:null,updatePlayDel:null,resource:null,resourcewidth:null,resourceheight:null,__LZbgColorO:null,__LZbgRef:null,__LZbuttonRef:null,__LZcheckwidth:true,__LZcheckheight:true,__LZhasoffset:null,__LZisBackgrounded:null,__LZmaskClip:null,__LZmovieClipRef:null,__LZoutlieheight:null,__LZoutliewidth:null,__LZsubUniqueNum:null,setLayout:function($1){
if(!this.isinited){
this.__LZstoreAttr($1,"layout")
return
@@ -4023,14 +4551,6 @@
}
}
return null
-},searchParents:function($1){
-var $2=this
-do{
-$2=$2.immediateparent
-if($2[$1]!=null){
-return $2
-}
-}while($2!=canvas)
},searchimmediateparents:function($1){
return this.searchParents($1)
},layouts:null,releaseLayouts:function(){
@@ -4040,23 +4560,33 @@
}
}
},setResource:function($1){
+if($1==null||$1==this._resource){
+return
+}
if($1!="empty"){
this.sprite.setResource($1)
}
this.__LZhaser=$1=="empty"
this.resource=$1
+if(this.onresource.ready){
this.onresource.sendEvent($1)
+}
+this._resource=this.resource
return this.sprite.__LZmovieClipRef
},resourceload:function($1){
if("resource" in $1){
this.resource=$1.resource
+if(this.onresource.ready){
this.onresource.sendEvent($1.resource)
}
+}
if(this.resourcewidth!=$1.width){
if("width" in $1){
this.resourcewidth=$1.width
+if(this.onresourcewidth.ready){
this.onresourcewidth.sendEvent($1.width)
}
+}
if(!this.hassetwidth&&this.resourcewidth!=this.width||this._setrescwidth&&this.unstretchedwidth!=this.resourcewidth){
this.updateWidth(this.resourcewidth)
}
@@ -4064,30 +4594,52 @@
if(this.resourceheight!=$1.height){
if("height" in $1){
this.resourceheight=$1.height
+if(this.onresourceheight.ready){
this.onresourceheight.sendEvent($1.height)
}
+}
if(!this.hassetheight&&this.resourceheight!=this.height||this._setrescheight&&this.unstretchedheight!=this.resourceheight){
this.updateHeight(this.resourceheight)
}
}
if($1.skiponload!=true){
+if(this.onload.ready){
this.onload.sendEvent(this)
}
+}
},resourceloaderror:function(){
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()
+}
},resourceloadtimeout:function(){
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()
+}
},setTotalFrames:function($1){
if($1!=null&&this.totalframes!=$1){
this.totalframes=$1
+if(this.ontotalframes.ready){
this.ontotalframes.sendEvent(this.totalframes)
}
+}
},destroy:function($1){
if(this.__LZdeleted){
return
@@ -4105,15 +4657,14 @@
}
}
}
-}
-this.nextMethod(arguments.callee,"destroy").apply(this,arguments)
+};(arguments.callee.superclass?arguments.callee.superclass.prototype["destroy"]:this.nextMethod(arguments.callee,"destroy")).apply(this,arguments)
if($1==true){
return
}
if(this.sprite){
this.sprite.destroy($1)
}
-this.setVisible(false)
+this.setVisibility("hidden")
if(this.addedToParent){
if("__LZoutliewidth" in this.immediateparent&&this.immediateparent.__LZoutliewidth==this){
this.immediateparent.__LZoutliewidth=null
@@ -4122,19 +4673,46 @@
this.immediateparent.__LZoutlieheight=null
}
if("onremovesubview" in this.immediateparent){
+if(this.immediateparent.onremovesubview.ready){
this.immediateparent.onremovesubview.sendEvent(this)
}
}
+}
},deleteView:function($1){
this.destroy()
},setVisible:function($1){
-this.__LZvisibleSet=$1
+if(this._visible==$1){
+return
+}
+this._visible=$1
+if($1){
+var $2="visible"
+}else{
+if($1==null){
+var $2="collapse"
+}else{
+var $2="hidden"
+}
+}
+this.visibility=$2
+if(this.onvisibility.ready){
+this.onvisibility.sendEvent(this.visibility)
+}
this.__LZupdateShown()
+},setVisibility:function($1){
+if(this.visibility==$1){
+return
+}
+this.visibility=$1
+this.__LZupdateShown()
+if(this.onvisibility.ready){
+this.onvisibility.sendEvent($1)
+}
},__LZupdateShown:function(){
-if(this.__LZvisibleSet==null){
+if(this.visibility=="collapse"){
var $1=this.__LZvizO&&this.__LZvizDat&&this.__LZvizLoad
}else{
-var $1=this.__LZvisibleSet
+var $1=this.visibility=="visible"
}
if($1!=this.visible){
this.visible=$1
@@ -4148,9 +4726,13 @@
if($2&&$2.__LZcheckheight){
$2.__LZcheckheightFunction(this)
}
+if(this.onvisible.ready){
this.onvisible.sendEvent($1)
}
+}
},setWidth:function($1){
+if(this._width!=$1){
+this._width=$1
this.sprite.setWidth($1)
if($1==null){
this.hassetwidth=false
@@ -4176,8 +4758,13 @@
if(this.immediateparent.__LZcheckwidth){
this.immediateparent.__LZcheckwidthFunction(this)
}
+if(this.onwidth.ready){
this.onwidth.sendEvent($1)
+}
+}
},setHeight:function($1){
+if(this._height!=$1){
+this._height=$1
this.sprite.setHeight($1)
if($1==null){
this.hassetheight=false
@@ -4203,13 +4790,18 @@
if(this.immediateparent.__LZcheckheight){
this.immediateparent.__LZcheckheightFunction(this)
}
+if(this.onheight.ready){
this.onheight.sendEvent($1)
+}
+}
},setOpacity:function($1){
if(this.sprite.capabilities.opacity){
this.sprite.setOpacity($1)
}
this.opacity=$1
+if(this.onopacity.ready){
this.onopacity.sendEvent($1)
+}
var $2=this.__LZvizO
var $3=$1!=0
if($2!=$3){
@@ -4217,6 +4809,8 @@
this.__LZupdateShown()
}
},setX:function($1){
+if(this._x!=$1){
+this._x=$1
this.x=$1
if(this.__LZhasoffset){
if(this.sprite.capabilities.rotation){
@@ -4232,8 +4826,13 @@
if(this.immediateparent.__LZcheckwidth){
this.immediateparent.__LZcheckwidthFunction(this)
}
+if(this.onx.ready){
this.onx.sendEvent(this.x)
+}
+}
},setY:function($1){
+if(this._y!=$1){
+this._y=$1
this.y=$1
if(this.__LZhasoffset){
if(this.sprite.capabilities.rotation){
@@ -4249,7 +4848,10 @@
if(this.immediateparent.__LZcheckheight){
this.immediateparent.__LZcheckheightFunction(this)
}
+if(this.ony.ready){
this.ony.sendEvent(this.y)
+}
+}
},setRotation:function($1){
if(this.sprite.capabilities.rotation){
this.sprite.setRotation($1)
@@ -4258,7 +4860,9 @@
var $2=Math.PI/180*this.rotation
this.__LZrsin=Math.sin($2)
this.__LZrcos=Math.cos($2)
+if(this.onrotation.ready){
this.onrotation.sendEvent($1)
+}
if(this.__LZhasoffset){
this.setX(this.x)
this.setY(this.y)
@@ -4293,13 +4897,17 @@
this.xoffset=$1
this.setX(this.x)
this.setY(this.y)
+if(this.onxoffset.ready){
this.onxoffset.sendEvent($1)
+}
},setYOffset:function($1){
this.__LZhasoffset=$1!=0
this.yoffset=$1
this.setX(this.x)
this.setY(this.y)
+if(this.onyoffset.ready){
this.onyoffset.sendEvent($1)
+}
},getBounds:function(){
var $1=[-this.xoffset,-this.yoffset,this.width-this.xoffset,-this.yoffset,-this.xoffset,this.height-this.yoffset,this.width-this.xoffset,this.height-this.yoffset,this.rotation,this.x,this.y]
var $2=$1.length-1
@@ -4426,12 +5034,14 @@
var $2=this.width/$1
this._xscale=$2
}
+if(this.onunstretchedwidth.ready){
this.onunstretchedwidth.sendEvent($1)
}
+}
if(!this.hassetwidth){
this.width=$1
this.sprite.setWidth($1)
-if(this.isinited&&this.onwidth){
+if(this.onwidth.ready){
this.onwidth.sendEvent($1)
}
if(this.immediateparent.__LZcheckwidth){
@@ -4446,13 +5056,15 @@
this._yscale=$2
}
if(this.onunstretchedheight){
+if(this.onunstretchedheight.ready){
this.onunstretchedheight.sendEvent($1)
}
}
+}
if(!this.hassetheight){
this.height=$1
this.sprite.setHeight($1)
-if(this.isinited&&this.onheight){
+if(this.onheight.ready){
this.onheight.sendEvent($1)
}
if(this.immediateparent.__LZcheckheight){
@@ -4534,11 +5146,18 @@
}
return this.__LZviewLinks[$2]
},mouseevent:function($1){
-if(this[$1]){
+if(this[$1]&&this[$1].ready){
this[$1].sendEvent(this)
}
},getMouse:function($1){
-return this.sprite.getMouse($1)
+if(this.__movecounter!=LzGlobalMouse.__movecounter){
+this.__movecounter=LzGlobalMouse.__movecounter
+this.__mousecache=this.sprite.getMouse($1)
+}
+if($1==null){
+return this.__mousecache
+}
+return this.__mousecache[$1]
},containsPt:function($1,$2){
return this.getAttribute("height")>=$2&&$2>=0&&(this.getAttribute("width")>=$1&&$1>=0)
},bringToFront:function(){
@@ -4574,7 +5193,9 @@
this.__lzcheckframe=$1
this.frame=$1
this.stop($1)
+if(this.onframe.ready){
this.onframe.sendEvent($1)
+}
},stretchResource:function($1){
this.sprite.stretchResource($1)
if($1==null||$1=="x"||$1=="width"||$1=="both"){
@@ -4592,7 +5213,9 @@
if($1!=null){
this.bgcolor=Number($1)
}
+if(this.onbgcolor.ready){
this.onbgcolor.sendEvent($1)
+}
},setSource:function($1,$2,$3){
this.sprite.setSource($1,$2,$3)
},unload:function(){
@@ -4614,7 +5237,9 @@
},setClickable:function($1){
this.sprite.setClickable($1)
this.clickable=$1
+if(this.onclickable.ready){
this.onclickable.sendEvent($1)
+}
},setCursor:function($1){
this.sprite.setCursor($1)
},setPlay:function($1){
@@ -4708,11 +5333,10 @@
}
},shouldYieldFocus:function(){
return true
-},setContextMenu:function($1){
-this.contextMenu=$1
+},blurring:false,setContextMenu:function($1){
this.sprite.setContextMenu($1)
},getContextMenu:function(){
-return this.contextMenu
+return this.sprite.getContextMenu()
}},{tagname:"view",__LZproxypolicies:[],__LZcheckProxyPolicy:function($1){
var $2=LzView.__LZproxypolicies
for(var $3=$2.length-1;$3>=0;$3--){
@@ -4771,6 +5395,7 @@
DeclareEvent(prototype,"onunstretchedheight")
DeclareEvent(prototype,"onunstretchedwidth")
DeclareEvent(prototype,"onvisible")
+DeclareEvent(prototype,"onvisibility")
DeclareEvent(prototype,"onwidth")
DeclareEvent(prototype,"onx")
DeclareEvent(prototype,"onxoffset")
@@ -4784,6 +5409,7 @@
setters.opacity="setOpacity"
setters.alpha="setOpacity"
setters.visible="setVisible"
+setters.visibility="setVisibility"
setters.align="setAlign"
setters.valign="setValign"
setters.source="setSource"
@@ -4877,7 +5503,7 @@
return $7
}
prototype.getMouse.dependencies=function(){
-return [LzGlobalMouse,"mousemove"]
+return [LzIdle,"idle"]
}
prototype.getCurrentTime.dependencies=function($1,$2){
return [$2,"frame"]
@@ -4920,22 +5546,28 @@
var $2=1
var $3=0
var $4="_"+$1+"scale"
+if(this.uplinkArray){
var $5=this.uplinkArray.length
for(var $6=0;$6<$5;$6++){
var $7=this.uplinkArray[$6]
$2*=$7[$4]
$3+=$7[$1]/$2
}
+}
+if(this.downlinkArray){
for(var $6=this.downlinkArray.length-1;$6>=0;$6--){
var $7=this.downlinkArray[$6]
$3-=$7[$1]/$2
$2/=$7[$4]
}
+}
this.scale[$1]=$2
this.offset[$1]=$3
}},null)
-var LzText=Class.make("LzText",LzView,{scroll:0,maxscroll:0,hscroll:0,maxhscroll:0,multiline:null,resize:true,text:null,colorstring:"#000000",init:function(){
-this.nextMethod(arguments.callee,"init").apply(this,arguments)
+var LzText=Class.make("LzText",[LzFormatter,LzView],{scroll:0,maxscroll:0,hscroll:0,maxhscroll:0,getDefaultWidth:function(){
+return 0
+},multiline:null,resize:true,text:null,colorstring:"#000000",init:function(){
+(arguments.callee.superclass?arguments.callee.superclass.prototype["init"]:this.nextMethod(arguments.callee,"init")).apply(this,arguments)
if(this.sizeToHeight){
var $1=this.sprite.getTextfieldHeight()
if($1>0){
@@ -4944,8 +5576,7 @@
}
},construct:function($1,$2){
this.password="password" in $2&&$2.password?true:false
-this.multiline="multiline" in $2?$2.multiline:null
-this.nextMethod(arguments.callee,"construct").apply(this,arguments)
+this.multiline="multiline" in $2?$2.multiline:null;(arguments.callee.superclass?arguments.callee.superclass.prototype["construct"]:this.nextMethod(arguments.callee,"construct")).apply(this,arguments)
this.sizeToHeight=false
this.fontname="font" in $2?$2.font:this.searchParents("fontname").fontname
this.fontsize="fontsize" in $2?$2.fontsize:this.searchParents("fontsize").fontsize
@@ -4954,9 +5585,9 @@
$2.fontsize=this.fontsize
$2.fontstyle=this.fontstyle
this.sprite.__initTextProperties($2)
-$2.font=this._ignoreAttribute
-$2.fontsize=this._ignoreAttribute
-$2.fontstyle=this._ignoreAttribute
+$2.font=LzNode._ignoreAttribute
+$2.fontsize=LzNode._ignoreAttribute
+$2.fontstyle=LzNode._ignoreAttribute
this.yscroll=0
this.xscroll=0
this.resize="resize" in $2?$2.resize==true:this.resize
@@ -4965,16 +5596,19 @@
this.setMultiline(this.multiline)
this.sprite.setText(this.text)
if($2.width==null){
+if(this.multiline){
+$2.width=this.parent.width
+}else{
if(this.text!=null&&this.text!=""&&this.text.length>0){
$2.width=this.getTextWidth()
}else{
-$2.width=this.DEFAULT_WIDTH
+$2.width=this.getDefaultWidth()
}
}
-if($2.width==null){
-$2.width=100
+}else{
+this.setResize(false)
}
-if(!("height" in $2)||$2.height==null){
+if(!this.hassetheight){
this.sizeToHeight=true
}else{
this.setHeight($2.height)
@@ -4986,6 +5620,26 @@
if("pattern" in $2&&$2.pattern!=null){
this.setPattern($2.pattern)
}
+if("antiAliasType" in $2&&$2.antiAliasType!=null){
+this.setAntiAliasType($2.antiAliasType)
+}else{
+this.setAntiAliasType("normal")
+}
+if("gridFit" in $2&&$2.gridFit!=null){
+this.setGridFit($2.gridFit)
+}else{
+this.setGridFit("subpixel")
+}
+if("sharpness" in $2&&$2.sharpness!=null){
+this.setSharpness($2.sharpness)
+}else{
+this.setSharpness(0)
+}
+if("thickness" in $2&&$2.thickness!=null){
+this.setThickness($2.thickness)
+}else{
+this.setThickness(0)
+}
},__makeSprite:function($1){
this.sprite=LzTextSprite.make(this,$1)
},getMCRef:function(){
@@ -4994,8 +5648,7 @@
this.sprite.setResize($1)
this.resize=$1
},setWidth:function($1){
-this.sprite.setWidth($1)
-this.nextMethod(arguments.callee,"setWidth").apply(this,arguments)
+this.sprite.setWidth($1);(arguments.callee.superclass?arguments.callee.superclass.prototype["setWidth"]:this.nextMethod(arguments.callee,"setWidth")).apply(this,arguments)
if(this.sizeToHeight){
var $2=this.sprite.getTextfieldHeight()
if($2>0){
@@ -5012,14 +5665,18 @@
}
this.sprite.setMaxLength($1)
this.maxlength=$1
+if(this.onmaxlength.ready){
this.onmaxlength.sendEvent($1)
+}
},setPattern:function($1){
if($1==null||$1==""){
return
}
this.sprite.setPattern($1)
this.pattern=$1
+if(this.onpattern.ready){
this.onpattern.sendEvent($1)
+}
},getTextWidth:function(){
return this.sprite.getTextWidth()
},getTextHeight:function(){
@@ -5129,6 +5786,9 @@
return $4
},setText:function($1){
$1+=""
+if($1==this.text){
+return
+}
if(this.visible){
this.sprite.setVisible(this.visible)
}
@@ -5146,7 +5806,11 @@
this.setHeight($3)
}
}
+if(this.ontext.ready){
this.ontext.sendEvent($1)
+}
+},format:function($1,$2){
+this.setText(this.formatToString.apply(this,arguments))
},updateMaxLines:function(){
var $1=Math.floor(this.height/(this.font.height-1))
if($1!=this.maxlines){
@@ -5186,23 +5850,58 @@
this.sprite.setWordWrap($1)
},setEmbedFonts:function($1){
this.sprite.setEmbedFonts($1)
-},__updatefieldsize:function(){
-if(this.__control.scroll!=this.scroll){
-this.__control.scroll=this.scroll
-this.__control.onscroll.sendEvent(this.scroll)
+},setAntiAliasType:function($1){
+if(this.sprite.capabilities.advancedfonts){
+if($1=="normal"||$1=="advanced"){
+this.antiAliasType=$1
+this.sprite.setAntiAliasType($1)
+}else{
+
}
-if(this.__control.maxscroll!=this.maxscroll){
-this.__control.maxscroll=this.maxscroll
-this.__control.onmaxscroll.sendEvent(this.maxscroll)
}
-if(this.__control.hscroll!=this.hscroll){
-this.__control.hscroll=this.hscroll
-this.__control.onmaxscroll.sendEvent(this.hscroll)
+},getAntiAliasType:function(){
+if(this.sprite.capabilities.advancedfonts){
+return this.antiAliasType
}
-if(this.__control.maxhscroll!=this.maxhscroll){
-this.__control.maxhscroll=this.maxhscroll
-this.__control.onmaxscroll.sendEvent(this.maxhscroll)
+},setGridFit:function($1){
+if(this.sprite.capabilities.advancedfonts){
+if($1=="none"||$1=="pixel"||$1=="subpixel"){
+this.gridFit=$1
+this.sprite.setGridFit($1)
+}else{
+
}
+}
+},getGridFit:function(){
+if(this.sprite.capabilities.advancedfonts){
+return this.gridFit
+}
+},setSharpness:function($1){
+if(this.sprite.capabilities.advancedfonts){
+if($1>=-400&&$1<=400){
+this.sharpness=$1
+this.sprite.setSharpness($1)
+}else{
+
+}
+}
+},getSharpness:function(){
+if(this.sprite.capabilities.advancedfonts){
+return this.sharpness
+}
+},setThickness:function($1){
+if(this.sprite.capabilities.advancedfonts){
+if($1>=-200&&$1<=200){
+this.thickness=$1
+this.sprite.setThickness($1)
+}else{
+
+}
+}
+},getThickness:function(){
+if(this.sprite.capabilities.advancedfonts){
+return this.thickness
+}
},setScroll:function($1){
this.sprite.setScroll($1)
},setHScroll:function($1){
@@ -5213,7 +5912,7 @@
return this.sprite.getSelectionPosition()
},getSelectionSize:function(){
return this.sprite.getSelectionSize()
-}},{tagname:"text",DEFAULT_WIDTH:100,PAD_TEXTWIDTH:4,DEFAULT_SIZE:8,escapeChars:{">":">","<":"<"}});(function(){
+}},{tagname:"text",escapeChars:{">":">","<":"<"}});(function(){
with(LzText){
with(LzText.prototype){
DeclareEvent(prototype,"ontext")
@@ -5232,6 +5931,14 @@
setters.maxlength="setMaxLength"
setters.pattern="setPattern"
defaultattrs.clip=true
+setters.antiAliasType="setAntiAliasType"
+defaultattrs.antiAliasType="normal"
+setters.gridFit="setGridFit"
+defaultattrs.gridfit="subpixel"
+setters.sharpness="setSharpness"
+defaultattrs.sharpness=0
+setters.thickness="setThickness"
+defaultattrs.thickness=0
setters.font="setFontName"
setters.fontsize="setFontSize"
setters.fontstyle="setFontStyle"
@@ -5250,8 +5957,10 @@
}
}
})()
-var LzInputText=Class.make("LzInputText",LzText,{construct:function($1,$2){
-this.nextMethod(arguments.callee,"construct").apply(this,arguments)
+var LzInputText=Class.make("LzInputText",LzText,{getDefaultWidth:function(){
+return 100
+},construct:function($1,$2){
+(arguments.callee.superclass?arguments.callee.superclass.prototype["construct"]:this.nextMethod(arguments.callee,"construct")).apply(this,arguments)
this._onfocusDel=LzDelegate.make(this,"_gotFocusEvent",this,"onfocus")
this._onblurDel=LzDelegate.make(this,"_gotBlurEvent",this,"onblur")
},__makeSprite:function($1){
@@ -5271,30 +5980,46 @@
if(this.multiline&&this.sizeToHeight&&this.height!=this.sprite.getTextHeight()){
this.setHeight(this.sprite.getTextfieldHeight())
}
-this.ontext.sendEvent(this.getText())
+if(this.ontext.ready){
+this.ontext.sendEvent($2)
+}
return
}
}
+if(this[$1].ready){
this[$1].sendEvent($2)
+}
},focusable:true,updateData:function(){
return this.sprite.text
},setEnabled:function($1){
+this.setAttribute("focusable",$1)
+this.enabled=$1
this.sprite.setEnabled($1)
+if(this.onenabled.ready){
this.onenabled.sendEvent($1)
+}
},setHTML:function($1){
-this.__LZtextclip.html=$1
+if(this.sprite.capabilities["htmlinputtext"]){
+this.sprite.setHTML($1)
+}else{
+
+}
},setText:function($1){
$1+=""
this.sprite.setText($1)
this.text=$1
if(this.height<9||this.sizeToHeight){
this.height=this.sprite.getTextfieldHeight()
+if(this.onheight.ready){
this.onheight.sendEvent()
+}
if(this.height>0){
this.setHeight(this.height)
}
}
+if(this.ontext.ready){
this.ontext.sendEvent($1)
+}
},getText:function(){
return this.sprite.getText()
}},{tagname:"inputtext"});(function(){
@@ -5306,8 +6031,11 @@
defaultattrs.selectable=true
defaultattrs.enabled=true
setters.enabled="setEnabled"
+prototype.getText.dependencies=function($1,$2){
+return [$2,"text"]
}
}
+}
})()
var LzCanvas=Class.make("LzCanvas",LzView,{initialize:function($1){
this.hasdatapath=true
@@ -5390,11 +6118,17 @@
this.__LZmousemoveDel=LzDelegate.make(this,"__LZmousemove",LzGlobalMouse,"onmousemove")
LzPlatform.initCanvas(this)
},__LZmouseup:function(){
+if(this.onmouseup.ready){
this.onmouseup.sendEvent()
+}
},__LZmousemove:function(){
+if(this.onmousemove.ready){
this.onmousemove.sendEvent()
+}
},__LZmousedown:function(){
+if(this.onmousedown.ready){
this.onmousedown.sendEvent()
+}
},__makeSprite:function($1){
this.sprite=LzSprite.make(this,true,$1)
},initdelay:0,lpsversion:null,lpsrelease:null,version:null,__LZlfcversion:"0",nodeLevel:0,proxied:true,dataloadtimeout:30000,medialoadtimeout:30000,percentcreated:null,datasets:null,proxied:null,compareVersion:function($1,$2){
@@ -5442,7 +6176,9 @@
},__LZinstantiationDone:function(){
this.percentcreated=1
this.updatePercentCreated=null
+if(this.onpercentcreated.ready){
this.onpercentcreated.sendEvent(this.percentcreated)
+}
if(this.initdelay>0){
LzInstantiator.halt()
this.initokdel=LzDelegate.make(this,"okToInit")
@@ -5456,7 +6192,9 @@
},updatePercentCreated:function(){
this.percentcreated=Math.max(this.percentcreated,this.creatednodes/this.totalnodes)
this.percentcreated=Math.min(0.99,this.percentcreated)
+if(this.onpercentcreated.ready){
this.onpercentcreated.sendEvent(this.percentcreated)
+}
},initiatorAddNode:function($1,$2){
this.totalnodes+=$2
this._lzinitialsubviews.push($1)
@@ -5488,7 +6226,9 @@
}
this.init()
this.sprite.init(true)
+if(this.oninit.ready){
this.oninit.sendEvent(this)
+}
if(this.datapath&&this.datapath.__LZApplyDataOnInit){
this.datapath.__LZApplyDataOnInit()
}
@@ -5503,16 +6243,21 @@
},setY:function(){
},setDefaultContextMenu:function($1){
+this.setContextMenu($1)
this.sprite.setDefaultContextMenu($1)
},__windowResize:function($1){
if(this.__canvaswidthratio!=null){
this.width=Math.floor($1.width*this.__canvaswidthratio)
+if(this.onwidth.ready){
this.onwidth.sendEvent(this.width)
+}
this.sprite.setWidth(this.width)
}
if(this.__canvasheightratio!=null){
this.height=Math.floor($1.height*this.__canvasheightratio)
+if(this.onheight.ready){
this.onheight.sendEvent(this.height)
+}
this.sprite.setHeight(this.height)
}
}},{tagname:"canvas",versionInfoString:function(){
@@ -5561,11 +6306,11 @@
}
}
var LzScript=Class.make("LzScript",LzNode,{initialize:function($1,$2){
-this.nextMethod(arguments.callee,"initialize").apply(this,arguments)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["initialize"]:this.nextMethod(arguments.callee,"initialize")).apply(this,arguments)
$2.script()
}},{tagname:"script"})
var LzAnimatorGroup=Class.make("LzAnimatorGroup",LzNode,{attribute:null,start:true,from:null,to:null,duration:null,indirect:false,relative:false,motion:"easeboth",repeat:null,paused:false,started:null,target:null,process:"sequential",target:null,paused:null,animatorProps:{attribute:true,from:true,duration:true,to:true,relative:true,target:true},construct:function($1,$2){
-this.nextMethod(arguments.callee,"construct").apply(this,arguments)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["construct"]:this.nextMethod(arguments.callee,"construct")).apply(this,arguments)
if(this.immediateparent instanceof LzAnimatorGroup){
for(var $3 in this.animatorProps){
if($2[$3]==null){
@@ -5577,7 +6322,7 @@
}else{
this.immediateparent.animators.push(this)
}
-$2.start=this._ignoreAttribute
+$2.start=LzNode._ignoreAttribute
}else{
this.target=this.immediateparent
}
@@ -5590,8 +6335,7 @@
}
if(this.started){
this.doStart()
-}
-this.nextMethod(arguments.callee,"init").apply(this,arguments)
+};(arguments.callee.superclass?arguments.callee.superclass.prototype["init"]:this.nextMethod(arguments.callee,"init")).apply(this,arguments)
},setTarget:function($1){
this.target=$1
var $2=this.subnodes
@@ -5602,10 +6346,14 @@
}
}
}
+if(this.ontarget.ready){
this.ontarget.sendEvent($1)
+}
},setStart:function($1){
this.started=$1
+if(this.onstarted.ready){
this.onstarted.sendEvent($1)
+}
if(!this.isinited){
return
}
@@ -5618,7 +6366,9 @@
if(this.isactive){
return false
}
+if(this.onstart.ready){
this.onstart.sendEvent((new Date()).getTime())
+}
this.isactive=true
this.crepeat=this.repeat
this.prepareStart()
@@ -5637,13 +6387,17 @@
this.animators[$1].needsrestart=true
}
},update:function($1){
-var $2=this.process=="simultaneous"?this.actAnim.length-1:0
+var $2=this.actAnim.length-1
+if($2>0&&this.process=="sequential"){
+$2=0
+}
if(this.paused){
return
}
for(var $3=$2;$3>=0;$3--){
var $4=this.actAnim[$3]
if($4.notstarted){
+$4.isactive=true
$4.prepareStart()
$4.notstarted=false
}else{
@@ -5672,25 +6426,36 @@
}
}
this.paused=$1
+if(this.onpaused.ready){
this.onpaused.sendEvent($1)
+}
},__LZaddToStartTime:function($1){
this.startTime+=$1
for(var $2=0;$2<this.actAnim.length;$2++){
this.actAnim[$2].__LZaddToStartTime($1)
}
},stop:function(){
-var $1=this.process=="simultaneous"?this.actAnim.length-1:0
+if(this.actAnim){
+var $1=this.actAnim.length-1
+if($1>0&&this.process=="sequential"){
+$1=0
+}
for(var $2=$1;$2>=0;$2--){
this.actAnim[$2].stop()
}
+}
this.__LZhalt()
},__LZfinalizeAnim:function(){
this.__LZhalt()
},__LZhalt:function(){
this.isactive=false
this.updateDel.unregisterAll()
+if(this.onfinish.ready){
this.onfinish.sendEvent(this)
+}
+if(this.onstop.ready){
this.onstop.sendEvent((new Date()).getTime())
+}
},checkRepeat:function(){
if(this.crepeat==null||this.crepeat==1){
this.__LZfinalizeAnim()
@@ -5698,8 +6463,10 @@
}
if(this.crepeat>0){
this.crepeat--
+if(this.onrepeat.ready){
this.onrepeat.sendEvent((new Date()).getTime())
}
+}
this.resetAnimator()
},destroy:function(){
this.stop()
@@ -5719,8 +6486,7 @@
break
}
}
-}
-this.nextMethod(arguments.callee,"destroy").apply(this,arguments)
+};(arguments.callee.superclass?arguments.callee.superclass.prototype["destroy"]:this.nextMethod(arguments.callee,"destroy")).apply(this,arguments)
},toString:function(){
return "GroupAnimator length = "+this.animators.length
}},{tagname:"animatorgroup"});(function(){
@@ -5743,7 +6509,7 @@
}
})()
var LzAnimator=Class.make("LzAnimator",LzAnimatorGroup,{beginPoleDelta:0.25,endPoleDelta:0.25,attribute:null,construct:function($1,$2){
-this.nextMethod(arguments.callee,"construct").apply(this,arguments)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["construct"]:this.nextMethod(arguments.callee,"construct")).apply(this,arguments)
this.primary_K=1
},setMotion:function($1){
if($1=="linear"){
@@ -5815,7 +6581,9 @@
},beginAnimator:function($1){
this.startTime=$1
this.lastIterationTime=$1
+if(this.onstart.ready){
this.onstart.sendEvent($1)
+}
this.doBegin=false
},stop:function(){
if(!this.isactive){
@@ -5894,7 +6662,7 @@
}
})()
var LzLayout=Class.make("LzLayout",LzNode,{locked:2,subviews:null,updateDelegate:null,delegates:null,construct:function($1,$2){
-this.nextMethod(arguments.callee,"construct").apply(this,arguments)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["construct"]:this.nextMethod(arguments.callee,"construct")).apply(this,arguments)
this.subviews=(new Array)
if(this.immediateparent.layouts==null){
this.immediateparent.layouts=[this]
@@ -5917,8 +6685,7 @@
this.gotNewSubview(this.immediateparent.subviews[$3])
}
},destroy:function(){
-this.releaseLayout()
-this.nextMethod(arguments.callee,"destroy").apply(this,arguments)
+this.releaseLayout();(arguments.callee.superclass?arguments.callee.superclass.prototype["destroy"]:this.nextMethod(arguments.callee,"destroy")).apply(this,arguments)
},reset:function($1){
if(this.locked){
return
@@ -5973,14 +6740,18 @@
}
}
},releaseLayout:function(){
+if(this.delegates){
for(var $1=this.delegates.length-1;$1>=0;$1--){
this.delegates[$1].unregisterAll()
}
+}
+if(this.immediateparent&&this.immediateparent.layouts){
for(var $1=this.immediateparent.layouts.length-1;$1>=0;$1--){
if(this.immediateparent.layouts[$1]==this){
this.immediateparent.layouts.splice($1,1)
}
}
+}
},setLayoutOrder:function($1,$2){
for(var $3=this.subviews.length-1;$3>=0;$3--){
if(this.subviews[$3]==$2){
@@ -6036,7 +6807,7 @@
}
})()
var LzFont=Class.make("LzFont",null,{style:null,name:null,height:null,ascent:null,descent:null,advancetable:null,lsbtable:null,rsbtable:null,initialize:function($1,$2,$3){
-this.nextMethod(arguments.callee,"initialize").apply(this,arguments)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["initialize"]:this.nextMethod(arguments.callee,"initialize")).apply(this,arguments)
this.name=$1.name
this.style=$3
this.fontobject=$1
@@ -6054,7 +6825,7 @@
return "Font style "+this.style+" of name "+this.name
}},null)
var LzSelectionManager=Class.make("LzSelectionManager",LzNode,{sel:null,selectedHash:null,selected:null,construct:function($1,$2){
-this.nextMethod(arguments.callee,"construct").apply(this,arguments)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["construct"]:this.nextMethod(arguments.callee,"construct")).apply(this,arguments)
this.toggle=$2.toggle==true
this.sel=$2.selFuncName==null?"setSelected":$2.selFuncName
this.selected=(new Array)
@@ -6238,8 +7009,10 @@
LzKeys.callOnKeyCombo(this,$1)
},execute:function($1){
if(this.active){
+if(this.onselect.ready){
this.onselect.sendEvent($1)
}
+}
},keysToString:function(){
var $1={control:"Ctrl",shift:"Shift",alt:"Alt"}
var $2=""
@@ -6266,8 +7039,8 @@
}
}
})()
-var LzState=Class.make("LzState",LzNode,{staterefs:{apply:true},stateevents:{onremove:true,onapply:true},asyncnew:false,subh:null,pooling:false,construct:function($1,$2){
-this.nextMethod(arguments.callee,"construct").apply(this,arguments)
+var LzState=Class.make("LzState",LzNode,{asyncnew:false,subh:null,pooling:false,construct:function($1,$2){
+(arguments.callee.superclass?arguments.callee.superclass.prototype["construct"]:this.nextMethod(arguments.callee,"construct")).apply(this,arguments)
this.heldArgs={}
this.appliedChildren=[]
this.isapplied=false
@@ -6276,7 +7049,7 @@
this.__LZinstantiationDone()
},setApply:function($1){
if(typeof $1=="function"){
-this.apply=$1
+this.addProperty("apply",$1)
return
}
if($1){
@@ -6313,12 +7086,16 @@
this.parent.__LZresolveReferences()
this.__LZstatedelegates=this.parent.__LZdelegates
this.parent.__LZdelegates=$1
+if(this.onapply.ready){
this.onapply.sendEvent(this)
+}
},remove:function(){
if(!this.isapplied){
return
}
+if(this.onremove.ready){
this.onremove.sendEvent(this)
+}
this.isapplied=false
if(this.__LZstatedelegates){
for(var $1=0;$1<this.__LZstatedelegates.length;$1++){
@@ -6344,38 +7121,36 @@
this.appliedChildren=[]
},destroy:function(){
this.pooling=false
-this.remove()
-this.nextMethod(arguments.callee,"destroy").apply(this,arguments)
+this.remove();(arguments.callee.superclass?arguments.callee.superclass.prototype["destroy"]:this.nextMethod(arguments.callee,"destroy")).apply(this,arguments)
},__LZapplyArgs:function($1){
var $2=this.addProperty
this.addProperty=function($1,$2){
this.heldArgs[$1]=$2
-}
-this.nextMethod(arguments.callee,"__LZapplyArgs").call(this,$1)
+};(arguments.callee.superclass?arguments.callee.superclass.prototype["__LZapplyArgs"]:this.nextMethod(arguments.callee,"__LZapplyArgs")).call(this,$1)
this.addProperty=$2
-},checkRefs:function($1){
-var $2={}
+},__LZstoreRefs:function($1,$2){
var $3={}
-for(var $4 in $1){
-if(this.staterefs[$4]){
-$3[$4]=$1[$4]
-var $5=true
+var $4={}
+for(var $5 in $1){
+if(LzState.staterefs[$5]){
+$4[$5]=$1[$5]
+var $6=true
}else{
-$2[$4]=$1[$4]
-var $6=true
+$3[$5]=$1[$5]
+var $7=true
}
}
-if($5){
-this.__LZstoreRefs($3,"$refs")
-}
if($6){
-this.heldArgs.$refs=$2
+(arguments.callee.superclass?arguments.callee.superclass.prototype["__LZstoreRefs"]:this.nextMethod(arguments.callee,"__LZstoreRefs")).call(this,$4,$2)
}
-},checkDelegates:function($1){
+if($7){
+this.heldArgs[$2]=$3
+}
+},__LZstoreDelegates:function($1){
var $2=[]
var $3=[]
for(var $4=0;$4<$1.length;$4+=3){
-if(this.stateevents[$1[$4]]&&!$1[$4+2]){
+if(LzState.stateevents[$1[$4]]&&!$1[$4+2]){
var $5=$3
var $6=$1[$4+1]
if(this.heldArgs[$6]){
@@ -6389,30 +7164,26 @@
$5.push($1[$4],$1[$4+1],$1[$4+2])
}
if($3.length){
-this.__LZstoreAttr($3,"$delegates")
+(arguments.callee.superclass?arguments.callee.superclass.prototype["__LZstoreDelegates"]:this.nextMethod(arguments.callee,"__LZstoreDelegates")).call(this,$3)
}
if($2.length){
this.heldArgs.$delegates=$2
}
},__LZsetProperty:function($1,$2){
this[$2]=$1
-},__LZstoreDelegates:function($1){
-this.heldArgs.$delegates=$1
},__LZdetach:function($1){
$1.setVisible(false)
return $1
},__LZretach:function($1){
$1.setVisible(true)
return $1
-}},{tagname:"state"});(function(){
+}},{tagname:"state",staterefs:{apply:true},stateevents:{onremove:true,onapply:true}});(function(){
with(LzState){
with(LzState.prototype){
DeclareEvent(prototype,"onapply")
DeclareEvent(prototype,"onremove")
setters.apply="setApply"
setters.$setters=null
-setters.$refs="checkRefs"
-setters.$delegates="checkDelegates"
prototype.$isstate=true
setters.asyncnew="__LZsetProperty"
setters.pooling="__LZsetProperty"
@@ -6428,6 +7199,16 @@
this.parentNode.__LZupdateCO()
}
return this.parentNode.childNodes[this.__LZo-1]
+},getParent:function(){
+return this.parentNode
+},getOffset:function(){
+if(!this.parentNode){
+return 0
+}
+if(this.parentNode.__LZcoDirty){
+this.parentNode.__LZupdateCO()
+}
+return this.__LZo
},getNextSibling:function(){
if(!this.parentNode){
return null
@@ -6452,7 +7233,7 @@
this.childNodes[$2].setOwnerDocument($1)
}
}
-if(this.onownerDocument){
+if(this.onownerDocument&&this.onownerDocument.ready){
this.onownerDocument.sendEvent($1)
}
},__LZXMLescape:function($1){
@@ -6462,13 +7243,18 @@
var $2=$1.length
var $3=""
for(var $4=0;$4<$2;$4++){
-var $5=$1.charAt($4)
-if(LzDataNode.__LZescapechars[$5]!=null){
-$3+=LzDataNode.__LZescapechars[$5]
+var $5=$1.charCodeAt($4)
+if($5<32){
+$3+="&#x"+LzUtils.dectohex($5,0)+";"
}else{
-$3+=$5
+var $6=$1.charAt($4)
+if(LzDataNode.__LZescapechars[$6]!=null){
+$3+=LzDataNode.__LZescapechars[$6]
+}else{
+$3+=$6
}
}
+}
return $3
},__LZlockFromUpdate:function($1){
this.ownerDocument.__LZdoLock($1)
@@ -6523,8 +7309,12 @@
this.childNodes.splice($3,0,$1)
$1.setOwnerDocument(this.ownerDocument)
$1.parentNode=this
+if($1.onparentNode.ready){
$1.onparentNode.sendEvent(this)
+}
+if(this.onchildNodes.ready){
this.onchildNodes.sendEvent($1)
+}
this.ownerDocument.handleDocumentChange("insertBefore",this,0)
return $1
}
@@ -6537,8 +7327,12 @@
this.childNodes[$3]=$1
$1.setOwnerDocument(this.ownerDocument)
$1.parentNode=this
+if($1.onparentNode.ready){
$1.onparentNode.sendEvent(this)
+}
+if(this.onchildNodes.ready){
this.onchildNodes.sendEvent($1)
+}
this.ownerDocument.handleDocumentChange("childNodes",this,0,$1)
return $1
}
@@ -6550,7 +7344,9 @@
for(var $3=0;$3<this.childNodes.length;$3++){
if(this.childNodes[$3]==$1){
this.childNodes.splice($3,1)
+if(this.onchildNodes.ready){
this.onchildNodes.sendEvent($1)
+}
$2=$1
this.ownerDocument.handleDocumentChange("removeChild",this,0,$1)
}
@@ -6564,9 +7360,13 @@
}
$1.setOwnerDocument(this.ownerDocument)
$1.parentNode=this
+if($1.onparentNode.ready){
$1.onparentNode.sendEvent(this)
+}
$1.__LZo=this.childNodes.length-1
+if(this.onchildNodes.ready){
this.onchildNodes.sendEvent($1)
+}
this.ownerDocument.handleDocumentChange("appendChild",this,0,$1)
return $1
},hasChildNodes:function(){
@@ -6581,19 +7381,25 @@
}
return $2
},getAttr:function($1){
+if(this.attributes){
return this.attributes[$1]
+}
},setAttr:function($1,$2){
if(!this.attributes){
this.attributes={}
}
this.attributes[$1]=$2
+if(this.onattributes.ready){
this.onattributes.sendEvent($1)
+}
this.ownerDocument.handleDocumentChange("attributes",this,1,{name:$1,value:$2,type:"set"})
return $2
},removeAttr:function($1){
var $2=this.attributes[$1]
delete this.attributes[$1]
+if(this.onattributes.ready){
this.onattributes.sendEvent($1)
+}
this.ownerDocument.handleDocumentChange("attributes",this,1,{name:$1,value:$2,type:"remove"})
return $2
},hasAttr:function($1){
@@ -6607,21 +7413,15 @@
this.childNodes[$1].__LZo=$1
}
this.__LZcoDirty=false
-},getOffset:function(){
-if(!this.parentNode){
-return 0
-}
-if(this.parentNode.__LZcoDirty){
-this.parentNode.__LZupdateCO()
-}
-return this.__LZo
},setAttrs:function($1){
var $2={}
for(var $3 in $1){
$2[$3]=$1[$3]
}
this.attributes=$2
+if(this.onattributes.ready){
this.onattributes.sendEvent($2)
+}
if(this.ownerDocument){
this.ownerDocument.handleDocumentChange("attributes",this,1)
}
@@ -6632,22 +7432,32 @@
$3.setOwnerDocument(this.ownerDocument)
$3.parentNode=this
if($3.onparentNode){
+if($3.onparentNode.ready){
$3.onparentNode.sendEvent(this)
}
+}
$3.__LZo=$2
}
this.__LZcoDirty=false
if(this.onchildNodes){
+if(this.onchildNodes.ready){
this.onchildNodes.sendEvent($1)
}
+}
this.ownerDocument.handleDocumentChange("childNodes",this,0)
},setNodeName:function($1){
this.nodeName=$1
+if(this.onnodeName.ready){
this.onnodeName.sendEvent($1)
+}
if(this.parentNode){
+if(this.parentNode.onchildNodes.ready){
this.parentNode.onchildNodes.sendEvent(this)
+}
+if(this.parentNode.onchildNode.ready){
this.parentNode.onchildNode.sendEvent(this)
}
+}
this.ownerDocument.handleDocumentChange("childNodeName",this.parentNode,0)
this.ownerDocument.handleDocumentChange("nodeName",this,1)
},__LZgetText:function(){
@@ -6706,8 +7516,10 @@
if(this.__LZchangeQ){
this.__LZchangeQ.push($5)
}else{
+if(this.onDocumentChange.ready){
this.onDocumentChange.sendEvent($5)
}
+}
},toString:function(){
var $1=this.serialize()
return $1
@@ -6738,36 +7550,42 @@
}
}
}
+}},{initialize:function($1){
+if($1.hasOwnProperty("setters")){
+$1.setters.attributes="setAttrs"
+$1.setters.childNodes="setChildNodes"
+$1.setters.nodeName="setNodeName"
+$1.setters.ownerDocument="setOwnerDocument"
+}
},valueToElement:function($1){
-var $2=LzDataElement.make("element",{},this.__LZv2E($1))
+var $2=LzDataElement.make("element",{},LzDataElementTrait.__LZv2E($1))
return $2
},__LZv2E:function($1){
var $2=typeof $1
$2.toLowerCase()
var $3=[]
if($2=="object"){
-var $4=$1.constructor.prototype
-if($4==LzDataElement.prototype||$4==LzDataNode.prototype){
+if($1 instanceof LzDataElement||$1 instanceof LzDataText){
$3[0]=$1
}else{
-if($4==Date.prototype){
+if($1 instanceof Date){
$2="date"
}else{
-if($4==Array.prototype){
+if($1 instanceof Array){
$2="array"
-var $5=$1.__LZtag!=null?$1.__LZtag:"item"
-for(var $6=0;$6<$1.length;$6++){
-var $7=this.__LZv2E($1[$6])
-$3[$6]=LzDataElement.make($5,null,$7)
+var $4=$1.__LZtag!=null?$1.__LZtag:"item"
+for(var $5=0;$5<$1.length;$5++){
+var $6=this.__LZv2E($1[$5])
+$3[$5]=LzDataElement.make($4,null,$6)
}
}else{
$2="struct"
-var $6=0
-for(var $8 in $1){
-if($8.indexOf("__LZ")==0){
+var $5=0
+for(var $7 in $1){
+if($7.indexOf("__LZ")==0){
continue
}
-$3[$6++]=LzDataElement.make($8,null,this.__LZv2E($1[$8]))
+$3[$5++]=LzDataElement.make($7,null,this.__LZv2E($1[$7]))
}
}
}
@@ -6781,19 +7599,6 @@
$3=null
}
return $3
-},makeNodeList:function($1,$2){
-var $3=[]
-for(var $4=0;$4<$1;$4++){
-$3[$4]=LzDataElement.make($2,{},null)
-return $3
-}
-}},{initialize:function($1){
-if($1.hasOwnProperty("setters")){
-$1.setters.attributes="setAttrs"
-$1.setters.childNodes="setChildNodes"
-$1.setters.nodeName="setNodeName"
-$1.setters.ownerDocument="setOwnerDocument"
-}
}});(function(){
with(LzDataElementTrait){
with(LzDataElementTrait.prototype){
@@ -6824,7 +7629,7 @@
}
}})
var LzDataElement=Class.make("LzDataElement",[LzDataElementTrait,LzDataNode,LzMiniNode],{initialize:function($1,$2,$3){
-this.nextMethod(arguments.callee,"initialize").apply(this,arguments)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["initialize"]:this.nextMethod(arguments.callee,"initialize")).apply(this,arguments)
this.nodeName=$1
this.attributes=$2
this.ownerDocument=this
@@ -6833,13 +7638,19 @@
}else{
this.setChildNodes($3)
}
-},nodeName:null,nodeType:LzDataNode.ELEMENT_NODE,childNodes:null,attributes:null},null)
+},nodeName:null,nodeType:LzDataNode.ELEMENT_NODE,childNodes:null,attributes:null},{makeNodeList:function($1,$2){
+var $3=[]
+for(var $4=0;$4<$1;$4++){
+$3[$4]=LzDataElement.make($2,{},null)
+}
+return $3
+},valueToElement:LzDataElementTrait.valueToElement})
var LzDataText=Class.make("LzDataText",[LzDataNode,LzMiniNode],{initialize:function($1){
-this.nextMethod(arguments.callee,"initialize").apply(this,arguments)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["initialize"]:this.nextMethod(arguments.callee,"initialize")).apply(this,arguments)
this.data=$1
},nodeType:LzDataNode.TEXT_NODE,data:"",length:0,setData:function($1){
this.data=$1
-if(this.ondata){
+if(this.ondata&&this.ondata.ready){
this.ondata.sendEvent($1)
}
if(this.ownerDocument){
@@ -6865,21 +7676,182 @@
}
}
})()
-var LzDataset=Class.make("LzDataset",[LzDataElementTrait,LzDataNode,LzNode],{timeout:30000,acceptencodings:false,nsprefix:false,getresponseheaders:false,trimwhitespace:false,nodeType:LzDataNode.DOCUMENT_NODE,cacheable:false,autorequest:false,headers:null,proxied:null,responseheaders:null,construct:function($1,$2){
+var LzDataRequest=Class.make("LzDataRequest",LzNode,{requestor:null,src:null,timeout:Infinity,status:null,rawdata:null,error:null,initialize:function($1){
+(arguments.callee.superclass?arguments.callee.superclass.prototype["initialize"]:this.nextMethod(arguments.callee,"initialize")).apply(this,arguments)
+this.requestor=$1
+}},{tagname:"datarequest",SUCCESS:"success",TIMEOUT:"timeout",ERROR:"error",READY:"ready"});(function(){
+with(LzDataRequest){
+with(LzDataRequest.prototype){
+DeclareEvent(prototype,"onstatus")
+}
+}
+})()
+var LzDataProvider=Class.make("LzDataProvider",LzNode,{doRequest:function($1){
+
+}},{tagname:"dataprovider"})
+var LzHTTPDataProvider=Class.make("LzHTTPDataProvider",LzDataProvider,{makeLoader:function($1){
+var $2=$1.proxied
+var $3=LzHTTPLoader.make(this,$2)
+$1.loader=$3
+$3.loadSuccess=this.loadSuccess
+$3.loadError=this.loadError
+$3.loadTimeout=this.loadTimeout
+$3.setProxied($2)
+var $4="secure" in $1?$1.secure:null
+if($4==null){
+if($1.src.substring(0,5)=="https"){
+$4=true
+}
+}
+if($4){
+$3.baserequest=LzBrowser.getBaseURL($4,$1.secureport)
+}
+$3.secure=$4
+if($4){
+$3.secureport=$1.secureport
+}
+return $3
+},abortLoadForRequest:function($1){
+$1.loader.abort()
+},doRequest:function($1){
+var $2=$1.proxied
+var $3=$1.loader
+if($3==null||$1.multirequest==true||$1.queuerequests==true){
+$3=this.makeLoader($1)
+}
+$3.dataRequest=$1
+$3.setQueueing($1.queuerequests)
+$3.setTimeout($1.timeout)
+$3.setOption("cacheable",$1.cacheable==true)
+$3.setOption("timeout",$1.timeout)
+$3.setOption("trimwhitespace",$1.trimwhitespace==true)
+$3.setOption("nsprefix",$1.nsprefix==true)
+$3.setOption("sendheaders",$1.getresponseheaders==true)
+if($1.clientcacheable!=null){
+$3.setOption("ccache",$1.clientcacheable)
+}
+var $4={}
+var $5=$1.requestheaders
+if($5!=null){
+var $6=$5.getNames()
+for(var $7=0;$7<$6.length;$7++){
+var $8=$6[$7]
+var $9=$5.getValue($8)
+if($2){
+$4[$8]=$9
+}else{
+$3.setRequestHeader($8,$9)
+}
+}
+}
+var $10=$1.queryparams
+var $11=$1.querystring
+var $12=""
+var $13="?"
+var $14=$1.postbody
+if($10!=null){
+var $15=$10.getNames()
+for(var $7 in $15){
+var $16=$15[$7]
+if(!$2&&$16=="lzpostbody"){
+$14=$10.getValue($16)
+}else{
+$13+=$12+$16+"="+encodeURIComponent($10.getValue($16))
+$12="&"
+}
+}
+}
+if($11!=null&&$11.length>0){
+if($13.length>0){
+$13+=$12+$11
+}else{
+$13=$11
+}
+}
+var $17=$1.src
+if($13=="?"){
+
+}else{
+if($17.indexOf("?")>=0){
+$17=$17+"&"+$13
+}else{
+$17=$17+$13
+}
+}
+if($2){
+$17=$3.makeProxiedURL($17,$1.method,"xmldata",$4)
+}else{
+if(!$1.clientcacheable){
+var $18="__lzbc__="+(new Date()).getTime()
+if($17.indexOf("?")>=0){
+$17=$17+"&"+$18
+}else{
+$17=$17+"?"+$18
+}
+}
+}
+$1.status="loading"
+$3.open($2?"POST":$1.method,$17,null,null)
+$3.send($14)
+},loadSuccess:function($1,$2){
+var $3=$1.dataRequest
+$3.status="success"
+$1.owner.loadResponse($3,$2)
+},loadError:function($1,$2){
+var $3=$1.dataRequest
+$3.status="error"
+$1.owner.loadResponse($3,$2)
+},loadTimeout:function($1,$2){
+var $3=$1.dataRequest
+$3.status="timeout"
+$1.owner.loadResponse($3,$2)
+},setRequestError:function($1,$2){
+$1.error=$2
+$1.status=$1.ERROR
+},loadResponse:function($1,$2){
+var $3=LzParam.make()
+var $4=null
+if($2==null){
+this.setRequestError($1,"client could not parse XML from server")
+$1.onstatus.sendEvent($1)
+return
+}
+var $5=$1.proxied
+if($2.childNodes[0].nodeName=="error"){
+this.setRequestError($1,$2.childNodes[0].attributes["msg"])
+$1.onstatus.sendEvent($1)
+return
+}
+if($5){
+var $6="childNodes" in $2.childNodes[1]?$2.childNodes[1].childNodes:null
+if($6!=null){
+for(var $7=0;$7<$6.length;$7++){
+var $8=$6[$7]
+if($8.attributes){
+$3.addValue($8.attributes.name,$8.attributes.value)
+}
+}
+}
+if($2.childNodes[0].childNodes){
+$4=$2.childNodes[0].childNodes[0]
+}
+}else{
+$4=$2
+}
+$1.xmldata=$4
+$1.responseheaders=$3
+$1.rawdata=$1.loader.getResponse()
+$1.onstatus.sendEvent($1)
+}},null)
+var LzHTTPDataRequest=Class.make("LzHTTPDataRequest",LzDataRequest,{method:"GET",postbody:null,proxied:null,multirequest:false,queuerequests:false,queryparams:null,querystring:"",requestheaders:null,getresponsheaders:false,responseheaders:null,cacheable:false,clientcacheable:null,trimwhitespace:false,nsprefix:false,xmldata:null,loadtime:0,secure:false,secureport:null,loader:null},null)
+var httpdataprovider=LzHTTPDataProvider.make()
+var defaultdataprovider=httpdataprovider
+var LzDataset=Class.make("LzDataset",[LzDataElementTrait,LzDataNode,LzNode],{dataprovider:defaultdataprovider,multirequest:false,dataRequest:null,dataRequestClass:LzHTTPDataRequest,timeout:60000,postbody:null,acceptencodings:false,params:null,nsprefix:false,getresponseheaders:false,querytype:"GET",trimwhitespace:false,nodeType:LzDataNode.DOCUMENT_NODE,cacheable:false,querystring:null,autorequest:false,headers:null,proxied:null,responseheaders:null,construct:function($1,$2){
this.queuerequests=false
-this._createdParent=null
-if(!($1 instanceof LzDatasource)){
this.oncanvas=$1==canvas||$1==null
-this._dsrc=LzHTTPDatasource.make(canvas,{name:"anonHTTPDS"+LzDataset.anonDatasourceNum++})
-this._dsrc.repset=true
-this._createdParent=this._dsrc
if(this._instanceAttrs["name"]==null){
this._instanceAttrs["name"]="localdata"
}
-}else{
-this._dsrc=$1
-this.oncanvas=true
-}
if("port" in $2&&$2.port&&!("secureport" in $2&&$2.secureport)){
$2.secureport=$2.port
}
@@ -6889,17 +7861,16 @@
if("src" in $2&&$2.src){
this.src=$2.src
}else{
-this.src="src" in this._dsrc?this._dsrc.src:null
+this.src=null
}
this.ownerDocument=this
if("timeout" in $2&&$2.timeout){
this.timeout=$2.timeout
}else{
this.timeout=canvas.dataloadtimeout
-}
-this.nextMethod(arguments.callee,"construct").apply(this,arguments)
+};(arguments.callee.superclass?arguments.callee.superclass.prototype["construct"]:this.nextMethod(arguments.callee,"construct")).apply(this,arguments)
},setName:function($1){
-this.nextMethod(arguments.callee,"setName").apply(this,arguments)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["setName"]:this.nextMethod(arguments.callee,"setName")).apply(this,arguments)
this.nodeName=$1
if(!("datasets" in canvas)||null==canvas.datasets){
canvas.datasets={}
@@ -6928,13 +7899,7 @@
}
if(canvas.datasets[$2]===this){
delete canvas.datasets[$2]
-}
-var $3=this.getOption("dsloader")
-$3.destroy()
-this.nextMethod(arguments.callee,"destroy").apply(this,arguments)
-if(this._createdParent){
-this._createdParent.destroy($1)
-}
+};(arguments.callee.superclass?arguments.callee.superclass.prototype["destroy"]:this.nextMethod(arguments.callee,"destroy")).apply(this,arguments)
},getSrc:function(){
return this.src
},getQueryString:function(){
@@ -6944,14 +7909,12 @@
return this.querystring
}
},getParams:function(){
-if(typeof this.params=="undefined"){
+if(this.params==null){
LzParam.make(this,{name:"params"})
}
return this.params
},getStatusCode:function(){
return 200
-},gotRawData:function($1){
-this._dsrc.processRawData(this,$1)
},setData:function($1,$2){
if($1==null){
return
@@ -6966,12 +7929,18 @@
this.responseheaders.destroy()
}
this.responseheaders=$2
+if(this.ondata.ready){
this.ondata.sendEvent(this)
+}
},gotError:function($1){
this.errorstring=$1
+if(this.onerror.ready){
this.onerror.sendEvent(this)
+}
},gotTimeout:function(){
+if(this.ontimeout.ready){
this.ontimeout.sendEvent(this)
+}
},getContext:function(){
return this
},getDataset:function(){
@@ -6981,6 +7950,7 @@
$1.p=this.getContext()
return $1
},setQueryString:function($1){
+this.params=null
if(typeof $1=="object"){
if($1 instanceof LzParam){
this.querystring=$1.toString()
@@ -6999,13 +7969,13 @@
this.doRequest()
}
},setSrc:function($1){
-this.src=$1
-this._dsrc.setAttribute("src",$1)
+var $2=LzURL.make($1)
+this.querystring=$2.query
+$2.query=null
+this.src=$2.toString()
if(this.autorequest){
this.doRequest()
}
-},setURL:function($1){
-this.setSrc($1)
},setProxyRequests:function($1){
if(typeof $1!="string"){
@@ -7020,8 +7990,9 @@
this.reqOnInitDel=LzDelegate.make(this,"doRequest",this,"oninit")
}
},getLoadTime:function(){
-return this._dsrc.getLoadTimeForDataset(this)
+
},setQueryParam:function($1,$2){
+this.querystring=null
if(!this.params){
LzParam.make(this,{name:"params"})
}
@@ -7030,6 +8001,7 @@
this.doRequest()
}
},setQueryParams:function($1){
+this.querystring=null
if(!this.params){
this.params=LzParam.make(this,{name:"params"})
}
@@ -7043,8 +8015,56 @@
if($1&&this.autorequest){
this.doRequest()
}
+},isProxied:function(){
+var $1=canvas.proxied
+if(this.proxied!=null&&this.proxied!="inherit"){
+$1=this.proxied=="true"
+}
+if(this.proxied!=null&&this.proxied!="inherit"){
+$1=this.proxied=="true"
+}
+return $1
},doRequest:function(){
-this._dsrc.doRequest(this)
+if(this.multirequest||this.dataRequest==null){
+this.dataRequest=this.dataRequestClass.make(this)
+}
+var $1=this.dataRequest
+$1.src=this.src
+$1.timeout=this.timeout
+$1.status=$1.READY
+$1.method=this.querytype
+var $2=null
+if(this.params){
+$2=this.params.getValue("lzpostbody")
+}
+if($2!=null){
+$1.postbody=$2
+}
+$1.proxied=this.isProxied()
+$1.queuerequests=this.queuerequests
+$1.queryparams=this.params
+$1.querystring=this.querystring
+$1.requestheaders=this.headers
+$1.getresponseheaders=this.getresponseheaders
+$1.secureport=this.secureport
+$1.cacheable=this.cacheable
+$1.clientcacheable=this.clientcacheable
+$1.trimwhitespace=this.trimwhitespace
+$1.nsprefix=this.nsprefix
+this.dsloadDel=LzDelegate.make(this,"handleDataResponse",$1,"onstatus")
+this.dataprovider.doRequest($1)
+},handleDataResponse:function($1){
+if($1.status==LzDataRequest.SUCCESS){
+this.setData($1.xmldata,$1.responseheaders)
+}else{
+if($1.status==LzDataRequest.ERROR){
+this.gotError($1.error)
+}else{
+if($1.status==LzDataRequest.TIMEOUT){
+this.gotTimeout()
+}
+}
+}
},setAutorequest:function($1){
this.autorequest=$1
this.setRequest($1)
@@ -7057,11 +8077,13 @@
this.headers.remove()
}
},getResponseHeader:function($1){
-return this.responseheaders.getValueNoCase($1)
+return this.dataRequest.responseheaders[$1]
},setQueryType:function($1){
-this._dsrc.setQueryType($1.toUpperCase())
+this.querytype=$1.toUpperCase()
+},setPostBody:function($1){
+this.postbody=$1
},abort:function(){
-this._dsrc.abortLoadForDataset(this)
+this.dataprovider.abortLoadForRequest(this.dataRequest)
},getAllResponseHeaders:function(){
return this.responseheaders
},setHeader:function($1,$2){
@@ -7070,14 +8092,13 @@
}
this.headers.setValue($1,$2)
},setInitialData:function($1){
-this.initialdata=$1
if($1!=null){
var $2=LzDataNode.stringToLzData($1,this.trimwhitespace,this.nsprefix)
this.setData($2.childNodes)
}
},toString:function(){
return "LzDataset "+":"+this.name
-}},{tagname:"dataset",anonDatasourceNum:0});(function(){
+}},{tagname:"dataset"});(function(){
with(LzDataset){
with(LzDataset.prototype){
DeclareEvent(prototype,"ondata")
@@ -7134,9 +8155,13 @@
$2=$2.$p
}while($2&&$2.$n<=this.p.$n)
},gotError:function($1){
+if(this.onerror.ready){
this.onerror.sendEvent($1)
+}
},gotTimeout:function($1){
+if(this.ontimeout.ready){
this.ontimeout.sendEvent($1)
+}
},getXPath:function($1){
var $2=this.xpathQuery($1)
var $3
@@ -7292,8 +8317,10 @@
this.__LZoldOndataWarn=true
}
this.p=this.context
+if(this.ondata.ready){
this.ondata.sendEvent(this.p)
}
+}
return
}
this.__LZsendUpdate()
@@ -7342,14 +8369,20 @@
return false
}
if(this.__LZdchanged){
+if(this.ondata.ready){
this.ondata.sendEvent(this.data)
+}
this.__LZdchanged=false
}
if(this.__LZpchanged){
+if(this.onp.ready){
this.onp.sendEvent(this.p)
+}
this.__LZpchanged=false
+if(this.onDocumentChange.ready){
this.onDocumentChange.sendEvent({who:this.p,type:2,what:"context"})
}
+}
return true
},isValid:function(){
return this.p!=null
@@ -7362,6 +8395,9 @@
}
this.__LZsendUpdate($2)
},ppcache:{},parsePath:function($1){
+if($1 instanceof LzDatapath){
+$1=$1.xpath
+}
var $2=this.ppcache[$1]
if($2){
var $3=$2["islocaldata"]
@@ -7421,7 +8457,6 @@
}
}
}
-continue
}else{
if(!$9){
$4=this.nodeByName($8,$11,$2)
@@ -7486,7 +8521,7 @@
$2=$4[0]
}
}
-if($2==null){
+if(!$2){
return false
}
}
@@ -7500,7 +8535,7 @@
if(!$3){
var $3=this.p
if(!this.p){
-return
+return null
}
}
if($3.childNodes){
@@ -7519,62 +8554,32 @@
return $4
},__LZsetRerunXPath:function($1){
this.rerunxpath=$1
+if(this.onrerunxpath.ready){
this.onrerunxpath.sendEvent($1)
+}
},dupePointer:function(){
var $1=LzDatapointer.make()
$1.setFromPointer(this)
return $1
-},selectNext:function($1){
-$1=$1?$1:1
-var $2=this.p
-while($1--){
-if(!$2){
-return false
+},__LZdoSelect:function($1,$2){
+$2=$2?$2:1
+var $3=this.p
+for(;$3!=null&&$2>0;$2--){
+$3=$3[$1]()
}
-$2=$2.getNextSibling()
+if($3!=null){
+this.setPointer($3)
+return true
}
-if($2==null){
return false
-}else{
-this.setPointer($2)
-return true
-}
+},selectNext:function($1){
+return this.__LZdoSelect("getNextSibling",$1)
},selectPrev:function($1){
-$1=$1?$1:1
-var $2=this.p
-while($1--){
-$2=$2.getPreviousSibling()
-}
-if($2==null){
-return false
-}else{
-this.setPointer($2)
-return true
-}
+return this.__LZdoSelect("getPreviousSibling",$1)
},selectChild:function($1){
-$1=$1?$1:1
-var $2=this.p
-while($1--){
-$2=$2.getFirstChild()
-}
-if($2==null){
-return false
-}else{
-this.setPointer($2)
-return true
-}
+return this.__LZdoSelect("getFirstChild",$1)
},selectParent:function($1){
-$1=$1?$1:1
-var $2=this.p
-while($1--){
-$2=$2.parentNode
-}
-if($2==null){
-return false
-}else{
-this.setPointer($2)
-return true
-}
+return this.__LZdoSelect("getParent",$1)
},selectNextParent:function(){
var $1=this.p
if(this.selectParent()&&this.selectNext()){
@@ -7650,7 +8655,7 @@
}
},getNodeCount:function(){
if(!this.p){
-return
+return 0
}
return this.p.childNodes.length||0
},addNode:function($1,$2,$3){
@@ -7698,7 +8703,12 @@
if($2.operatorArgs!=null){
return $1[$2.operator]($2.operatorArgs)
}
-var $4=$2.operator.split(".")
+var $4
+if($2.operator.indexOf("attributes.")==0){
+$4=["attributes",$2.operator.substr(11)]
+}else{
+$4=$2.operator.split(".")
+}
var $5=$1
for(var $6=0;$6<$4.length;$6++){
var $7=$4[$6]
@@ -7797,7 +8807,7 @@
}
$4=$4.parentNode
}while($4&&$4!=$2.ownerDocument)
-if($3){
+if($3&&this.ondata.ready){
this.ondata.sendEvent(this.data)
}
return $3
@@ -7824,8 +8834,7 @@
delete this.data
delete this.__LZlastdotdot
delete this.context
-delete this.__LZtracking
-this.nextMethod(arguments.callee,"destroy").apply(this,arguments)
+delete this.__LZtracking;(arguments.callee.superclass?arguments.callee.superclass.prototype["destroy"]:this.nextMethod(arguments.callee,"destroy")).apply(this,arguments)
},__LZsetTracking:function($1,$2){
var $3=this.__LZtracking
var $4=this.__LZtrackDel
@@ -7866,23 +8875,20 @@
DeclareEvent(prototype,"onerror")
DeclareEvent(prototype,"ontimeout")
DeclareEvent(prototype,"onrerunxpath")
-getXPath.dependencies=function($1,$2,$3){
-var $4=this.parsePath($3)
-return [$4.hasDotDot?$2.context.getContext().ownerDocument:$2,"DocumentChange"]
-}
xpathQuery.dependencies=function($1,$2,$3){
if(this.parsePath){
var $4=this.parsePath($3)
return [$4.hasDotDot?$2.context.getContext().ownerDocument:$2,"DocumentChange"]
}else{
-return null
+return [$2,"DocumentChange"]
}
}
+getXPath.dependencies=xpathQuery.dependencies
}
}
})()
var LzParam=Class.make("LzParam",LzNode,{construct:function($1,$2){
-this.nextMethod(arguments.callee,"construct").apply(this,arguments)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["construct"]:this.nextMethod(arguments.callee,"construct")).apply(this,arguments)
this.d={}
},parseQueryString:function($1){
var $2=$1.split("&")
@@ -7923,7 +8929,7 @@
}
},setValue:function($1,$2,$3){
if($3){
-$2=escape($2)
+$2=encodeURIComponent($2)
}
var $4=this.d[$1]
if($4==null){
@@ -7938,7 +8944,7 @@
}
},addValue:function($1,$2,$3){
if($3){
-$2=escape($2)
+$2=encodeURIComponent($2)
}
var $4=this.d[$1]
if($4==null){
@@ -8007,7 +9013,7 @@
$5+=$4
}
$5+=$8[$9]+$1
-$5+=$3?escape($8[$9+1]):$8[$9+1]
+$5+=$3?encodeURIComponent($8[$9+1]):$8[$9+1]
$6=true
}
}
@@ -8208,7 +9214,7 @@
return $1
},noncontext:true},null)
var LzDatapath=Class.make("LzDatapath",LzDatapointer,{datacontrolsvisibility:true,__LZtakeDPSlot:true,pooling:null,replication:null,sortpath:null,sortorder:null,construct:function($1,$2){
-this.nextMethod(arguments.callee,"construct").apply(this,arguments)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["construct"]:this.nextMethod(arguments.callee,"construct")).apply(this,arguments)
if(!("data" in this.immediateparent)){
this.immediateparent.data=null
}
@@ -8268,7 +9274,7 @@
}
},__LZsendUpdate:function($1,$2){
var $3=this.__LZpchanged
-if(!this.nextMethod(arguments.callee,"__LZsendUpdate").apply(this,arguments)){
+if(!(arguments.callee.superclass?arguments.callee.superclass.prototype["__LZsendUpdate"]:this.nextMethod(arguments.callee,"__LZsendUpdate")).apply(this,arguments)){
return false
}
if(this.immediateparent.isinited){
@@ -8293,7 +9299,7 @@
var $3=$1||$2.data!=this.data||this.parsedPath&&this.parsedPath.operator=="attributes"
this.data=this.data==null?null:this.data
$2.data=this.data
-if($3){
+if($3&&$2.ondata.ready){
$2.ondata.sendEvent(this.data)
}
if(this.parsedPath&&(this.parsedPath.operator!=null||this.parsedPath.aggOperator!=null)&&$3){
@@ -8328,8 +9334,7 @@
}
}
}
-}
-this.nextMethod(arguments.callee,"setDataContext").call(this,$1)
+};(arguments.callee.superclass?arguments.callee.superclass.prototype["setDataContext"]:this.nextMethod(arguments.callee,"setDataContext")).call(this,$1)
},destroy:function($1){
this.setName=null
this.__LZupdateLocked=true
@@ -8345,7 +9350,7 @@
}
}
if(!this.immediateparent.__LZdeleted){
-if(this.__LZdepChildren.length){
+if(this.__LZdepChildren!=null&&this.__LZdepChildren.length){
var $4=this.immediateparent.searchParents("datapath").datapath
for(var $3=0;$3<this.__LZdepChildren.length;$3++){
this.__LZdepChildren[$3].setDataContext($4,true)
@@ -8354,8 +9359,7 @@
}
if(this.immediateparent.datapath==this){
delete this.immediateparent.datapath
-}
-this.nextMethod(arguments.callee,"destroy").apply(this,arguments)
+};(arguments.callee.superclass?arguments.callee.superclass.prototype["destroy"]:this.nextMethod(arguments.callee,"destroy")).apply(this,arguments)
},updateData:function(){
if(!arguments[0]&&this.p){
this.p.__LZlockFromUpdate(this)
@@ -8388,15 +9392,19 @@
},retrieveData:function(){
return this.updateData()
},__LZHandleDocChange:function($1){
-if(this.nextMethod(arguments.callee,"__LZHandleDocChange").apply(this,arguments)){
+if((arguments.callee.superclass?arguments.callee.superclass.prototype["__LZHandleDocChange"]:this.nextMethod(arguments.callee,"__LZHandleDocChange")).apply(this,arguments)){
+if(this.immediateparent.ondata.ready){
this.immediateparent.ondata.sendEvent(this.data)
+}
+if(this.onDocumentChange.ready){
this.onDocumentChange.sendEvent($1)
}
+}
},toString:function(){
return "Datapath for "+this.immediateparent
},_dpevents:["ondata","onerror","ontimeout"],__LZcheckChange:function($1){
-if(!this.nextMethod(arguments.callee,"__LZcheckChange").apply(this,arguments)){
-if($1.who.childOf(this.p,true)){
+if(!(arguments.callee.superclass?arguments.callee.superclass.prototype["__LZcheckChange"]:this.nextMethod(arguments.callee,"__LZcheckChange")).apply(this,arguments)){
+if($1.who.childOf(this.p,true)&&this.onDocumentChange.ready){
this.onDocumentChange.sendEvent($1)
}
}
@@ -8404,7 +9412,7 @@
var $4
var $5
if(!$1||!$2){
-return this.nextMethod(arguments.callee,"__LZsetTracking").call(this,$1,true)
+return(arguments.callee.superclass?arguments.callee.superclass.prototype["__LZsetTracking"]:this.nextMethod(arguments.callee,"__LZsetTracking")).call(this,$1,true)
}
$4=this.__LZtracking
$5=this.__LZtrackDel
@@ -8495,7 +9503,7 @@
if(global[$5] instanceof LzNode){
global[$5]=null
}
-$2.xpath=this._ignoreAttribute
+$2.xpath=LzNode._ignoreAttribute
if($1.sortpath!=null){
$2.sortpath=$1.sortpath
}
@@ -8509,8 +9517,7 @@
$1.__LZdotdotCheckDel.unregisterAll()
}
delete $1.__LZspecialDotDot
-}
-this.nextMethod(arguments.callee,"construct").call(this,$3.parent,$2)
+};(arguments.callee.superclass?arguments.callee.superclass.prototype["construct"]:this.nextMethod(arguments.callee,"construct")).call(this,$3.parent,$2)
if($3.parent!=$3.immediateparent){
$3.immediateparent[$2.name]=this
}
@@ -8519,15 +9526,15 @@
this.cloneClass=$3.constructor
this.cloneParent=$3.parent
this.cloneAttrs=LzInheritedHash.make($3._instanceAttrs)
-this.cloneAttrs.datapath=this._ignoreAttribute
+this.cloneAttrs.datapath=LzNode._ignoreAttribute
this.cloneAttrs.$datapath={name:"datapath"}
this.cloneAttrs.$datapath.attrs={datacontrolsvisibility:$1.datacontrolsvisibility,__LZmanager:this}
-this.cloneAttrs.id=this._ignoreAttribute
-this.cloneAttrs.name=this._ignoreAttribute
+this.cloneAttrs.id=LzNode._ignoreAttribute
+this.cloneAttrs.name=LzNode._ignoreAttribute
var $6=false
if($3._instanceAttrs.$refs&&$3._instanceAttrs.$refs.datapath){
this.cloneAttrs.$refs=LzInheritedHash.make(this.cloneAttrs.$refs)
-this.cloneAttrs.$refs.datapath=this._ignoreAttribute
+this.cloneAttrs.$refs.datapath=LzNode._ignoreAttribute
var $7=$3._instanceAttrs.$refs.datapath
this._t=$7.dependencies
$6=true
@@ -8552,7 +9559,7 @@
}else{
this.cloneChildren=[]
}
-this.visible=$1.datacontrolsvisibility||$3.visible
+this.visible=$1.datacontrolsvisibility||(!$3.isinited&&"visible" in $3._instanceAttrs?$3._instanceAttrs.visible:$3.visible)
if($2.pooling!=null){
this.pooling=$2.pooling
}
@@ -8578,9 +9585,10 @@
}
},getNodeOffset:function($1){
if(this.nodes!=null){
-for(var $2=0;$2<this.nodes.length;$2++){
-if($1==this.nodes[$2]){
-return $2
+var $2=this.nodes.length
+for(var $3=0;$3<$2;$3++){
+if($1==this.nodes[$3]){
+return $3
}
}
}
@@ -8630,27 +9638,41 @@
}
return $7
},__LZHandleMultiNodes:function($1){
+var $2=this.parent&&this.parent.layouts?this.parent.layouts:[]
+for(var $3 in $2){
+$2[$3].lock()
+}
this.hasdata=true
-var $2=this.nodes
+var $4=this.nodes
this.nodes=$1
+if(this.onnodes.ready){
this.onnodes.sendEvent(this.nodes)
+}
if(this.__LZspecialDotDot){
this.__LZsetupDotDot($1[0])
}
if(this.orderpath!=null){
this.nodes=this.mergesort(this.nodes,0,this.nodes.length-1)
}
-this.__LZadjustVisibleClones($2,true)
-for(var $3=0;$3<this.clones.length;$3++){
-var $4=this.clones[$3]
-var $5=$3+this.__LZdataoffset
-$4.clonenumber=$5
+this.__LZadjustVisibleClones($4,true)
+var $5=this.clones.length
+for(var $3=0;$3<$5;$3++){
+var $6=this.clones[$3]
+var $7=$3+this.__LZdataoffset
+$6.clonenumber=$7
if(this.nodes){
-$4.datapath.setClonePointer(this.nodes[$5])
+$6.datapath.setClonePointer(this.nodes[$7])
}
-$4.onclonenumber.sendEvent($5)
+if($6.onclonenumber.ready){
+$6.onclonenumber.sendEvent($7)
}
+}
+if(this.onclones.ready){
this.onclones.sendEvent(this.clones)
+}
+for(var $3 in $2){
+$2[$3].unlock()
+}
},__LZadjustVisibleClones:function($1,$2){
var $3=this.__LZdiffArrays($1,this.nodes)
if(!this.pooling){
@@ -8661,7 +9683,7 @@
}
LzInstantiator.enableDataReplicationQueuing()
while(this.nodes.length>this.clones.length){
-this.clones[this.clones.length]=this.getNewClone()
+this.clones.push(this.getNewClone())
}
LzInstantiator.clearDataReplicationQueue()
while(this.nodes.length<this.clones.length){
@@ -8734,8 +9756,7 @@
},setXPath:function($1){
if(this.__LZpreventXPathUpdate){
return
-}
-this.nextMethod(arguments.callee,"setXPath").apply(this,arguments)
+};(arguments.callee.superclass?arguments.callee.superclass.prototype["setXPath"]:this.nextMethod(arguments.callee,"setXPath")).apply(this,arguments)
},handleDeletedNode:function($1){
var $2=this.clones[$1]
if(this.pooling){
@@ -8747,39 +9768,45 @@
this.nodes.splice($1,1)
this.clones.splice($1,1)
},getCloneForNode:function($1){
-for(var $2=0;$2<this.clones.length;$2++){
-if(this.clones[$2].datapath.p==$1){
-return this.clones[$2]
+var $2=this.clones.length
+for(var $3=0;$3<$2;$3++){
+if(this.clones[$3].datapath.p==$1){
+return this.clones[$3]
}
}
},toString:function(){
return "ReplicationManager in "+this.immediateparent
},setVisible:function($1){
this.visible=$1
-for(var $2=0;$2<this.clones.length;$2++){
-this.clones[$2].setVisible($1)
+var $2=this.clones.length
+for(var $3=0;$3<$2;$3++){
+this.clones[$3].setVisible($1)
}
+if(this.onvisible.ready){
this.onvisible.sendEvent($1)
+}
},__LZHandleDocChange:function($1){
-this.p=this.context.getContext()
-this.nextMethod(arguments.callee,"__LZHandleDocChange").apply(this,arguments)
+this.p=this.context.getContext();(arguments.callee.superclass?arguments.callee.superclass.prototype["__LZHandleDocChange"]:this.nextMethod(arguments.callee,"__LZHandleDocChange")).apply(this,arguments)
delete this.p
},__LZcheckChange:function($1){
this.p=this.nodes[0]
-var $2=this.nextMethod(arguments.callee,"__LZcheckChange").apply(this,arguments)
+var $2=(arguments.callee.superclass?arguments.callee.superclass.prototype["__LZcheckChange"]:this.nextMethod(arguments.callee,"__LZcheckChange")).apply(this,arguments)
delete this.p
if(!$2){
var $3=$1.who
-for(var $4=0;$4<this.clones.length;$4++){
-var $5=this.clones[$4]
-if($5.datapath.__LZneedsOpUpdate($1)){
-$5.datapath.__LZsetData()
+var $4=this.clones.length
+for(var $5=0;$5<$4;$5++){
+var $6=this.clones[$5]
+if($6.datapath.__LZneedsOpUpdate($1)){
+$6.datapath.__LZsetData()
}
-if($3.childOf($5.datapath.p,true)){
-$5.datapath.onDocumentChange.sendEvent($1)
+if($3.childOf($6.datapath.p,true)){
+if($6.datapath.onDocumentChange.ready){
+$6.datapath.onDocumentChange.sendEvent($1)
}
}
}
+}
},__LZneedsOpUpdate:function(){
return false
},getContext:function($1){
@@ -8798,7 +9825,9 @@
}
}
$1.datapath.__LZtrackDel.unregisterAll()
+if($1.immediateparent.onremovesubview.ready){
$1.immediateparent.onremovesubview.sendEvent($1)
+}
$1.isdetatchedclone=true
$1.p=null
},reattachClone:function($1){
@@ -8821,8 +9850,9 @@
}
return $3
},updateData:function($1,$2){
-for(var $3=0;$3<this.clones.length;$3++){
-this.clones[$3].datapath.updateData()
+var $3=this.clones.length
+for(var $4=0;$4<$3;$4++){
+this.clones[$4].datapath.updateData()
}
}},{__LZemptyFuntion:function(){
return
@@ -8849,6 +9879,7 @@
if(!$3){
$3=LzHTTPLoader.make(this,$2,$1)
$1.setOption("dsloader",$3)
+$3.setQueueing($1.queuerequests)
$3.loadSuccess=this.loadSuccess
$3.loadError=this.loadError
$3.loadTimeout=this.loadTimeout
@@ -8924,11 +9955,11 @@
if(!$2&&$16=="lzpostbody"){
$14=$10.getValue($16)
}else{
-$13+=$12+$16+"="+escape($10.getValue($16))
+$13+=$12+$16+"="+encodeURIComponent($10.getValue($16))
$12="&"
}
}
-if($11.length>0){
+if($11!=null&&$11.length>0){
if($13.length>0){
$13+=$12+$11
}else{
@@ -9005,7 +10036,7 @@
}
},$pathbinding:true,__LZsendUpdate:function($1,$2){
var $3=this.__LZpchanged
-if(!this.nextMethod(arguments.callee,"__LZsendUpdate").apply(this,arguments)){
+if(!(arguments.callee.superclass?arguments.callee.superclass.prototype["__LZsendUpdate"]:this.nextMethod(arguments.callee,"__LZsendUpdate")).apply(this,arguments)){
return
}
if($3||this.node[this.setAttr]!=this.data||this.parsedPath.operator=="attributes"){
@@ -9023,7 +10054,7 @@
}
this.destroy()
},setDataContext:function($1){
-this.nextMethod(arguments.callee,"setDataContext").call(this,$1||this.pathparent)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["setDataContext"]:this.nextMethod(arguments.callee,"setDataContext")).call(this,$1||this.pathparent)
},updateData:function(){
var $1=this.node[this.setAttr]
if(this.data==$1){
@@ -9061,8 +10092,7 @@
if($2.axis!=null){
this.axis=$2.axis
}
-this.sizeAxis=this.axis=="x"?"width":"height"
-this.nextMethod(arguments.callee,"construct").apply(this,arguments)
+this.sizeAxis=this.axis=="x"?"width":"height";(arguments.callee.superclass?arguments.callee.superclass.prototype["construct"]:this.nextMethod(arguments.callee,"construct")).apply(this,arguments)
this.mask=$1.immediateparent.immediateparent.mask
var $3={ignorelayout:true}
if(this.cloneAttrs.options!=null){
@@ -9166,7 +10196,9 @@
if(this.nodes){
$12.datapath.setClonePointer(this.nodes[$4+$11])
}
+if($12.onclonenumber.ready){
$12.onclonenumber.sendEvent($11)
+}
}else{
this.clones[$11]=$10[$11+$7]
}
@@ -9186,7 +10218,7 @@
},toString:function(){
return "Lazy clone manager in "+this.cloneimmediateparent
},getCloneForNode:function($1,$2){
-var $3=this.nextMethod(arguments.callee,"getCloneForNode").call(this,$1)||null
+var $3=(arguments.callee.superclass?arguments.callee.superclass.prototype["getCloneForNode"]:this.nextMethod(arguments.callee,"getCloneForNode")).call(this,$1)||null
if(!$3&&!$2){
$3=this.getNewClone()
$3.datapath.setClonePointer($1)
@@ -9204,10 +10236,10 @@
}
})()
var LzResizeReplicationManager=Class.make("LzResizeReplicationManager",LzLazyReplicationManager,{construct:function($1,$2){
-this.nextMethod(arguments.callee,"construct").apply(this,arguments)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["construct"]:this.nextMethod(arguments.callee,"construct")).apply(this,arguments)
this.datasizevar="$"+this.getUID()+"track"
},__LZsetCloneAttrs:function(){
-this.nextMethod(arguments.callee,"__LZsetCloneAttrs").apply(this,arguments)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["__LZsetCloneAttrs"]:this.nextMethod(arguments.callee,"__LZsetCloneAttrs")).apply(this,arguments)
this.cloneAttrs.setHeight=LzResizeReplicationManager.__LZResizeSetSize
},getPositionByNode:function($1){
var $2=-this.spacing
@@ -9306,7 +10338,9 @@
$23=this.getNewClone()
$23.clonenumber=$14+$6
$23.datapath.setClonePointer($15)
+if($23.onclonenumber.ready){
$23.onclonenumber.sendEvent($14+$6)
+}
this.clones[$14]=$23
}
this.clones[$14]=$23
@@ -9332,7 +10366,7 @@
with(LzResizeReplicationManager.prototype){
prototype.pooling=false
LzResizeReplicationManager.__LZResizeSetSize=function($1,$2){
-this.nextMethod(arguments.callee,"setHeight").call(this,$1)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["setHeight"]:this.nextMethod(arguments.callee,"setHeight")).call(this,$1)
if($2!=true){
this.cloneManager.__LZHandleCloneResize(this,$1)
}
@@ -9507,11 +10541,15 @@
DeclareEvent(LzGlobalMouse,"onmousemove")
DeclareEvent(LzGlobalMouse,"onmouseup")
DeclareEvent(LzGlobalMouse,"onmousedown")
-LzGlobalMouse.__mouseEvent=function($1){
-if(LzGlobalMouse[$1]){
-LzGlobalMouse[$1].sendEvent()
+LzGlobalMouse.__movecounter=0
+LzGlobalMouse.__mouseEvent=function($1,$2){
+if($1=="onmousemove"){
+LzGlobalMouse.__movecounter++
}
+if(LzGlobalMouse[$1]&&LzGlobalMouse[$1].ready){
+LzGlobalMouse[$1].sendEvent($2)
}
+}
var LzModeManager=(new Object())
DeclareEvent(LzModeManager,"onmode")
LzModeManager.onmode=null
@@ -9524,7 +10562,9 @@
}
LzModeManager.makeModal=function($1){
this.modeArray.push($1)
+if(this.onmode.ready){
this.onmode.sendEvent($1)
+}
var $2=LzFocus.getFocus()
if($2&&!$2.childOf($1)){
LzFocus.clearFocus()
@@ -9535,7 +10575,9 @@
if(this.modeArray[$2]==$1){
this.modeArray.splice($2,this.modeArray.length-$2)
var $3=this.modeArray[$2-1]
+if(this.onmode.ready){
this.onmode.sendEvent($3||null)
+}
var $4=LzFocus.getFocus()
if($3&&$4&&!$4.childOf($3)){
LzFocus.clearFocus()
@@ -9546,21 +10588,23 @@
}
LzModeManager.releaseAll=function(){
this.modeArray=(new Array())
+if(this.onmode.ready){
this.onmode.sendEvent(null)
}
+}
LzModeManager.handleMouseEvent=function($1,$2){
if($2=="onmouseup"){
LzTrack.__LZmouseup()
}
-LzGlobalMouse.__mouseEvent($2)
-if(this.eventsLocked==true){
-return
-}
var $3=true
var $4=false
if($1==null){
$1=this.__findInputtextSelection()
}
+LzGlobalMouse.__mouseEvent($2,$1)
+if(this.eventsLocked==true){
+return
+}
var $5=this.modeArray.length-1
while($3&&$5>=0){
var $6=this.modeArray[$5--]
@@ -9619,6 +10663,144 @@
LzCursor.lock=LzMouseKernel.lock
LzCursor.unlock=LzMouseKernel.unlock
LzCursor.restoreCursor=LzMouseKernel.restoreCursor
+function LzURL($1){
+this.protocol=null
+this.host=null
+this.port=null
+this.path=null
+this.file=null
+this.query=null
+this.fragment=null
+if($1!=null){
+this.parseURL($1)
+}
+}
+LzURL.prototype.parseURL=function($1){
+if(this._parsed==$1){
+return
+}
+this._parsed=$1
+var $2=0
+var $3=$1.indexOf(":")
+var $4=$1.indexOf("?",$2)
+var $5=$1.indexOf("#",$2)
+var $6=$1.length
+if($5!=-1){
+$6=$5
+}
+if($4!=-1){
+$6=$4
+}
+if($3!=-1){
+this.protocol=$1.substring($2,$3)
+if($1.substring($3+1,$3+3)=="//"){
+$2=$3+3
+$3=$1.indexOf("/",$2)
+if($3==-1){
+$3=$6
+}
+var $7=$1.substring($2,$3)
+var $8=$7.indexOf(":")
+if($8==-1){
+this.host=$7
+this.port=null
+}else{
+this.host=$7.substring(0,$8)
+this.port=$7.substring($8+1)
+}
+}else{
+$3++
+}
+$2=$3
+}
+$3=$6
+this._splitPath($1.substring($2,$3))
+if($5!=-1){
+this.fragment=$1.substring($5+1,$1.length)
+}else{
+$5=$1.length
+}
+if($4!=-1){
+this.query=$1.substring($4+1,$5)
+}
+}
+LzURL.prototype._splitPath=function($1){
+if($1==""){
+return
+}
+var $2=$1.lastIndexOf("/")
+if($2!=-1){
+this.path=$1.substring(0,$2+1)
+this.file=$1.substring($2+1,$1.length)
+if(this.file==""){
+this.file=null
+}
+return
+}
+this.path=null
+this.file=$1
+}
+LzURL.prototype.dupe=function(){
+var $1=LzURL.make()
+$1.protocol=this.protocol
+$1.host=this.host
+$1.port=this.port
+$1.path=this.path
+$1.file=this.file
+$1.query=this.query
+$1.fragment=this.fragment
+return $1
+}
+LzURL.prototype.toString=function(){
+var $1=""
+if(this.protocol!=null){
+$1+=this.protocol+":"
+if(this.host!=null){
+$1+="//"+this.host
+if(null!=this.port&&LzBrowser.defaultPortNums[this.protocol]!=this.port){
+$1+=":"+this.port
+}
+}
+}
+if(this.path!=null){
+$1+=this.path
+}
+if(null!=this.file){
+$1+=this.file
+}
+if(null!=this.query){
+$1+="?"+this.query
+}
+if(null!=this.fragment){
+$1+="#"+this.fragment
+}
+return $1
+}
+LzURL.merge=function($1,$2){
+var $3=$1.dupe()
+if($1.protocol==null){
+$3.protocol=$2.protocol
+}
+if($1.host==null){
+$3.host=$2.host
+}
+if($1.port==null){
+$3.port=$2.port
+}
+if($1.path==null){
+$3.path=$2.path
+}
+if($1.file==null){
+$3.file=$2.file
+}
+if($1.query==null){
+$3.query=$2.query
+}
+if($1.fragment==null){
+$3.fragment=$2.fragment
+}
+return $3
+}
LzModeManager.rawMouseEvent=function($1){
this.handleMouseEvent(null,$1)
}
@@ -9626,8 +10808,10 @@
this.handleMouseEvent($1,$2)
}
LzModeManager.__findInputtextSelection=function(){
-return LzInputTextSprite.prototype.__focusedView
+if(LzInputTextSprite.prototype.__focusedSprite&&LzInputTextSprite.prototype.__focusedSprite.owner){
+return LzInputTextSprite.prototype.__focusedSprite.owner
}
+}
var LzBrowser=(new Object)
LzBrowser.postToLps=true
LzBrowser.loadURL=function($1,$2,$3){
@@ -9678,21 +10862,8 @@
}
}
LzBrowser.getInitArg=function($1){
-var $2=this.getLoadURLAsLzURL()
-var $3=$2.query
-if($3&&$3.length){
-var $4=$3.split("&")
-for(var $5=0;$5<$4.length;$5++){
-var $6=$4[$5]
-var $7=$6.indexOf($1+"=")
-if($7>-1){
-$7=$6.indexOf("=")
-return $6.substring($7+1)
+return global[$1]
}
-}
-}
-return null
-}
LzBrowser.defaultPortNums={http:80,https:443}
LzBrowser.getBaseURL=function($1,$2){
var $3=this.getLoadURLAsLzURL()
@@ -9760,78 +10931,6 @@
LzBrowser.urlUnescape=function($1){
return unescape($1)
}
-function LzURL($1){
-if($1!=null){
-this.parseURL($1)
-}
-}
-LzURL.prototype.parseURL=function($1){
-if(this._parsed==$1){
-return
-}
-this._parsed=$1
-var $2=0
-var $3=$1.indexOf("://")
-if($3==-1){
-return
-}
-this.protocol=$1.substring($2,$3)
-$2=$3+3
-$3=$1.indexOf("/",$2)
-if($3==-1){
-return
-}
-var $4=$1.substring($2,$3)
-var $5=$4.indexOf(":")
-if($5==-1){
-this.host=$4
-this.port=LzBrowser.defaultPortNums[this.protocol]
-}else{
-this.host=$4.substring(0,$5)
-this.port=$4.substring($5+1)
-}
-$2=$3
-$3=$1.lastIndexOf("/")+1
-if($3==0){
-this.path=$1.substring($2)
-}else{
-this.path=$1.substring($2,$3)
-}
-$2=$3
-$3=$1.indexOf("?",$2)
-if($3==-1){
-this.file=$1.substring($2)
-return
-}else{
-this.file=$1.substring($2,$3)
-}
-$2=$3+1
-this.query=$1.substring($2)
-}
-LzURL.prototype.dupe=function(){
-var $1=LzURL.make()
-$1.protocol=this.protocol
-$1.host=this.host
-$1.port=this.port
-$1.path=this.path
-$1.file=this.file
-$1.query=this.query
-return $1
-}
-LzURL.prototype.toString=function(){
-var $1=this.protocol+"://"+this.host
-if(null!=this.port&&LzBrowser.defaultPortNums[this.protocol]!=this.port){
-$1+=":"+this.port
-}
-$1+=this.path
-if(null!=this.file){
-$1+=this.file
-}
-if(null!=this.query){
-$1+="?"+this.query
-}
-return $1
-}
LzBrowser.usePost=function(){
return this.postToLps&&this.supportsPost()
}
@@ -9860,17 +10959,23 @@
LzKeys.downKeysHash[$3]=$4
if($2){
if($4){
+if(LzKeys.onkeydown.ready){
LzKeys.onkeydown.sendEvent($2)
+}
}else{
+if(LzKeys.onkeyup.ready){
LzKeys.onkeyup.sendEvent($2)
}
}
}
}
+}
LzKeys.__mousewheelEvent=function($1){
LzKeys.mousewheeldelta=$1
+if(LzKeys.onmousewheeldelta.ready){
LzKeys.onmousewheeldelta.sendEvent($1)
}
+}
LzKeys.isKeyDown=function($1){
$1=$1.toLowerCase()
return LzKeys.downKeysHash[$1]==true
@@ -9925,13 +11030,562 @@
LzKeys.keyCodes['"']=222
LzKeys.keyCodes["'"]=222
LzKeys.keyCodes["IME"]=229
-var LzTrack=(new Object)
-LzTrack.__LZreg=(new Object)
-LzTrack.__LZactivegroups=null
-LzTrack.__LZtrackDel=LzDelegate.make(LzTrack,"__LZtrack")
-LzTrack.__LZoptimizeforaxis="x"
-LzTrack.__LZmouseupDel=LzDelegate.make(LzTrack,"__LZmouseup",LzGlobalMouse,"onmouseup")
-LzTrack.register=function($1,$2){
+var LzHistory=(new Object)
+LzHistory.isReady=true
+LzHistory.setHistory=function($1){
+Lz._setHash($1)
+this.__lzloading=true
+}
+LzHistory.getPersist=function($1){
+
+}
+LzHistory.offset=0
+LzHistory.__lzdirty=false
+LzHistory.__lzhistq=[]
+LzHistory.__lzcurrstate={}
+LzHistory.__lzloading=false
+LzHistory.__lzloadcache={}
+LzHistory.__loadcacheused=false
+DeclareEvent(LzHistory,"onoffset")
+LzHistory.receiveHistory=function($1){
+$1*=1
+if(!$1){
+$1=0
+}
+if($1>this.__lzhistq.length-1){
+$1=this.__lzhistq.length
+}
+this.offset=$1
+if(this.onoffset.ready){
+this.onoffset.sendEvent($1)
+}
+var $2=this.__lzhistq[$1]
+for(var $3 in $2){
+var $1=$2[$3]
+global[$1.c].setAttribute($1.n,$1.v)
+}
+if(this.__loadcacheused){
+var $4=this.__lzhistq[this.offset]
+if($4==null){
+$4={}
+}
+var $3
+for($3 in this.__lzloadcache){
+$4[$3]=this.__lzloadcache[$3]
+}
+this.__lzhistq[this.offset]=$4
+this.__lzloadcache={}
+this.__loadcacheused=false
+}
+this.__lzloading=false
+}
+LzHistory.receiveEvent=function($1,$2){
+canvas[$1]=$2
+if(canvas["on"+$1].ready){
+canvas["on"+$1].sendEvent($2)
+}
+}
+LzHistory.getCanvasAttribute=function($1){
+return canvas[$1]
+}
+LzHistory.setCanvasAttribute=LzHistory.receiveEvent
+LzHistory.callMethod=function($1){
+return eval($1)
+}
+LzHistory.save=function($1,$2,$3){
+if($3==null){
+$3=global[$1][$2]
+}
+if(this.__lzloading){
+this.__lzloadcache[$1]={c:$1,n:$2,v:$3}
+this.__loadcacheused=true
+}else{
+this.__lzcurrstate[$1]={c:$1,n:$2,v:$3}
+this.__lzdirty=true
+}
+}
+LzHistory.commit=function(){
+if(!this.__lzdirty){
+return
+}
+this.__lzhistq[this.offset]=this.__lzcurrstate
+this.__lzhistq.length=this.offset+1
+this.__lzcurrstate={}
+this.__lzdirty=false
+}
+LzHistory.move=function($1){
+this.commit()
+if(!$1){
+$1=1
+}
+var $2=this.offset+$1
+if(0>=$2){
+$2=0
+}
+if(this.__lzhistq.length>=$2){
+this.setHistory($2)
+}
+}
+LzHistory.next=function(){
+this.move(1)
+}
+LzHistory.prev=function(){
+this.move(-1)
+}
+LzHistory.clear=function(){
+this.__lzhistq=[]
+this.offset=0
+if(this.onoffset.ready){
+this.onoffset.sendEvent(0)
+}
+}
+LzHistory.setPersist=function(){
+
+}
+Lz.__dhtmlhistoryready=true
+function LzCSSStyleRule(){
+
+}
+LzCSSStyleRule.prototype.properties=null
+LzCSSStyleRule.prototype.selector=null
+LzCSSStyleRule.prototype.specificity=0
+LzCSSStyleRule.prototype.getSpecificity=function(){
+if(!this.specificity){
+if(this.parsed.type==LzCSSStyle._sel_compound){
+for(var $1=0;$1<this.parsed.length;$1++){
+this.specificity+=LzCSSStyle.getSelectorSpecificity(this.parsed[$1])
+}
+}else{
+this.specificity=LzCSSStyle.getSelectorSpecificity(this.parsed)
+}
+}
+return this.specificity
+}
+LzCSSStyleRule._getSimpleSelectorSpecificity=function($1,$2){
+var $3=$1[$2]
+if($2=="simpleselector"){
+return 1
+}
+if($3.indexOf("#")>=0){
+return 100
+}
+if($3.indexOf("[")>=0){
+return 10
+}
+return 1
+}
+var LzCSSStyle={}
+LzCSSStyle.getComputedStyle=function($1){
+var $2=LzCSSStyleDeclaration.make()
+$2.setNode($1)
+return $2
+}
+LzCSSStyle.__LZRuleCache={}
+LzCSSStyle.__LZPropertyCache={}
+LzCSSStyle.getPropertyValueFor=function($1,$2){
+if(!$1||!$2){
+return
+}
+var $3=$1
+while($3!=canvas){
+var $4=$3.__LZUID
+var $5=this.__LZPropertyCache[$4+$2]
+if($5!=null){
+return $5
+}
+var $6=this.__LZRuleCache[$4]
+if(!$6){
+$6=(new Array())
+var $7
+for(var $8=this._rules.length-1;$8>=0;$8--){
+$7=this._rules[$8]
+var $9=$7.parsed
+if($9.type==this._sel_compound){
+var $10=$3
+var $11=$9.length-1
+var $12=true
+var $13=false
+while($10!=canvas){
+var $14=$9[$11]
+t=$14.type
+if(t==this._sel_star||t==this._sel_id&&$14.id==$10.id||t==this._sel_tag&&($14.classname in lz&&$10 instanceof lz[$14.classname]||$14.classname in global&&$10 instanceof global[$14.classname])||t==this._sel_attribute&&$10[$14.attrname]==$14.attrvalue||t==this._sel_tagAndAttr&&$10[$14.attrname]==$14.attrvalue&&($14.classname in lz&&$10 instanceof lz[$14.classname]||$14.classname in global&&$10 instanceof global[$14.classname])||t==this._sel_compound&&this._compoundSelectorApplies($14,$10,true)){
+if($11--==0){
+$13=true
+break
+}
+}else{
+if($12){
+$13=false
+break
+}
+}
+$10=$10.parent
+$12=false
+}
+if($13){
+$6.push($7)
+}
+}else{
+if($9.type==this._sel_star||$9.type==this._sel_id&&$9.id==$3.id||$9.type==this._sel_tag&&($9.classname in lz&&$3 instanceof lz[$9.classname]||$9.classname in global&&$3 instanceof global[$9.classname])||$9.type==this._sel_attribute&&$3[$9.attrname]==$9.attrvalue||$9.type==this._sel_tagAndAttr&&$3[$9.attrname]==$9.attrvalue&&($9.classname in lz&&$3 instanceof lz[$9.classname]||$9.classname in global&&$3 instanceof global[$9.classname])){
+$6.push($7)
+}
+}
+}
+var $15=$3.name!=null?this._nameRules[$3.name]:null
+if($15){
+for(var $8=$15.length-1;$8>=0;$8--){
+$7=$15[$8]
+var $9=$7.parsed
+if($9.type==this._sel_compound){
+var $10=$3
+var $11=$9.length-1
+var $12=true
+var $13=false
+while($10!=canvas){
+var $14=$9[$11]
+t=$14.type
+if(t==this._sel_star||t==this._sel_id&&$14.id==$10.id||t==this._sel_tag&&($14.classname in lz&&$10 instanceof lz[$14.classname]||$14.classname in global&&$10 instanceof global[$14.classname])||t==this._sel_attribute&&$10[$14.attrname]==$14.attrvalue||t==this._sel_tagAndAttr&&$10[$14.attrname]==$14.attrvalue&&($14.classname in lz&&$10 instanceof lz[$14.classname]||$14.classname in global&&$10 instanceof global[$14.classname])||t==this._sel_compound&&this._compoundSelectorApplies($14,$10,true)){
+if($11--==0){
+$13=true
+break
+}
+}else{
+if($12){
+$13=false
+break
+}
+}
+$10=$10.parent
+$12=false
+}
+if($13){
+$6.push($7)
+}
+}else{
+if($9.type==this._sel_star||$9.type==this._sel_id&&$9.id==$3.id||$9.type==this._sel_tag&&($9.classname in lz&&$3 instanceof lz[$9.classname]||$9.classname in global&&$3 instanceof global[$9.classname])||$9.type==this._sel_attribute&&$3[$9.attrname]==$9.attrvalue||$9.type==this._sel_tagAndAttr&&$3[$9.attrname]==$9.attrvalue&&($9.classname in lz&&$3 instanceof lz[$9.classname]||$9.classname in global&&$3 instanceof global[$9.classname])){
+$6.push($7)
+}
+}
+}
+}
+$6.sort(this.__compareSpecificity)
+this.__LZRuleCache[$4]=$6
+}
+var $16=$6.length
+var $8=0
+while($8<$16){
+var $17=$6[$8++].properties
+if($2 in $17){
+$5=$17[$2]
+this.__LZPropertyCache[$4+$2]=$5
+break
+}
+}
+if($5!=null){
+return $5
+}
+$3=$3.immediateparent
+}
+}
+LzCSSStyle.getSelectorSpecificity=function($1){
+switch($1.type){
+case this._sel_tag:
+case this._sel_star:
+return 1
+case this._sel_id:
+return 100
+case this._sel_attribute:
+return 10
+case this._sel_tagAndAttr:
+return 11
+
+}
+}
+LzCSSStyle.__compareSpecificity=function($1,$2){
+if(!$1.specificity){
+if(!$1.specificity){
+if($1.parsed.type==LzCSSStyle._sel_compound){
+for(var $3=0;$3<$1.parsed.length;$3++){
+switch($1.parsed[$3].type){
+case LzCSSStyle._sel_tag:
+case LzCSSStyle._sel_star:
+$1.specificity+=1
+break
+case LzCSSStyle._sel_id:
+$1.specificity+=100
+break
+case LzCSSStyle._sel_attribute:
+$1.specificity+=10
+break
+case LzCSSStyle._sel_tagAndAttr:
+$1.specificity+=11
+break
+
+}
+}
+}else{
+switch($1.parsed.type){
+case LzCSSStyle._sel_tag:
+case LzCSSStyle._sel_star:
+$1.specificity=1
+break
+case LzCSSStyle._sel_id:
+$1.specificity=100
+break
+case LzCSSStyle._sel_attribute:
+$1.specificity=10
+break
+case LzCSSStyle._sel_tagAndAttr:
+$1.specificity=11
+break
+
+}
+}
+}
+}
+if(!$2.specificity){
+if(!$2.specificity){
+if($2.parsed.type==LzCSSStyle._sel_compound){
+for(var $3=0;$3<$2.parsed.length;$3++){
+switch($2.parsed[$3].type){
+case LzCSSStyle._sel_tag:
+case LzCSSStyle._sel_star:
+$2.specificity+=1
+break
+case LzCSSStyle._sel_id:
+$2.specificity+=100
+break
+case LzCSSStyle._sel_attribute:
+$2.specificity+=10
+break
+case LzCSSStyle._sel_tagAndAttr:
+$2.specificity+=11
+break
+
+}
+}
+}else{
+switch($2.parsed.type){
+case LzCSSStyle._sel_tag:
+case LzCSSStyle._sel_star:
+$2.specificity=1
+break
+case LzCSSStyle._sel_id:
+$2.specificity=100
+break
+case LzCSSStyle._sel_attribute:
+$2.specificity=10
+break
+case LzCSSStyle._sel_tagAndAttr:
+$2.specificity=11
+break
+
+}
+}
+}
+}
+var $4=$1.specificity
+var $5=$2.specificity
+if($4==$5){
+if($1.parsed.type==LzCSSStyle._sel_compound&&$2.parsed.type==LzCSSStyle._sel_compound){
+for(var $3=0;$3<$1.parsed.length;$3++){
+if(!$1.parsed[$3]||!$2.parsed[$3]){
+break
+}
+if(!$1.parsed[$3].classname||!$2.parsed[$3].classname||$1.parsed[$3].classname==$2.parsed[$3].classname){
+continue
+}
+var $6=lz[$1.parsed[$3].classname]
+var $7=lz[$2.parsed[$3].classname]
+return $6&&$7&&"prototype" in $6&&$6.prototype instanceof $7?-1:1
+}
+}
+if($1.parsed.classname&&$2.parsed.classname&&$1.parsed.classname!=$2.parsed.classname){
+var $6=lz[$1.parsed.classname]
+var $7=lz[$2.parsed.classname]
+return $6&&$7&&"prototype" in $6&&$6.prototype instanceof $7?-1:1
+}else{
+return $1._lexorder<$2._lexorder?1:-1
+}
+}
+return $4<$5?1:-1
+}
+LzCSSStyle._printRuleArray=function($1){
+for(var $2=0;$2<$1.length;$2++){
+Debug.write($2,$1[$2])
+}
+}
+LzCSSStyle._compoundSelectorApplies=function($1,$2){
+var $3=$2
+var $4=$1.length-1
+var $5=true
+var $6=false
+while($3!=canvas){
+var $7=$1[$4]
+var $8=$7.type
+if($8==this._sel_star||$8==this._sel_id&&$7.id==$3.id||$8==this._sel_tag&&($7.classname in lz&&$3 instanceof lz[$7.classname]||$7.classname in global&&$3 instanceof global[$7.classname])||$8==this._sel_attribute&&$3[$7.attrname]==$7.attrvalue||$8==this._sel_tagAndAttr&&$3[$7.attrname]==$7.attrvalue&&($7.classname in lz&&$3 instanceof lz[$7.classname]||$7.classname in global&&$3 instanceof global[$7.classname])||$8==this._sel_compound&&this._compoundSelectorApplies($7,$3,true)){
+if($4--==0){
+$6=true
+break
+}
+}else{
+if($5){
+$6=false
+break
+}
+}
+$3=$3.parent
+$5=false
+}
+return $6
+}
+LzCSSStyle._sel_unknown=0
+LzCSSStyle._sel_star=1
+LzCSSStyle._sel_id=2
+LzCSSStyle._sel_tag=3
+LzCSSStyle._sel_compound=4
+LzCSSStyle._sel_attribute=5
+LzCSSStyle._sel_tagAndAttr=6
+LzCSSStyle._rules=(new Array())
+LzCSSStyle._nameRules={}
+LzCSSStyle._rulenum=0
+LzCSSStyle._addRule=function($1){
+$1._lexorder=this._rulenum++
+var $2=$1.selector
+$1.parsed=null
+var $3
+if($2 instanceof Array){
+$1.parsed=[]
+$1.parsed.type=this._sel_compound
+for(var $4=0;$4<$2.length;$4++){
+$1.parsed.push(this._parseSelector($2[$4]))
+}
+$3=$1.parsed[$1.parsed.length-1]
+}else{
+$1.parsed=this._parseSelector($2)
+$3=$1.parsed
+}
+if(($3.type==this._sel_attribute||$3.type==this._sel_tagAndAttr)&&$3.attrname=="name"){
+var $5=$3.attrvalue
+if(!this._nameRules[$5]){
+this._nameRules[$5]=[]
+}
+this._nameRules[$5].push($1)
+}else{
+this._rules.push($1)
+}
+}
+LzCSSStyle._parseSelector=function($1){
+switch(typeof $1){
+case "object":
+if($1.simpleselector){
+$1.type=this._sel_tagAndAttr
+$1.classname=this._normalizeClassname($1.simpleselector)
+}else{
+$1.type=this._sel_attribute
+}
+return $1
+break
+case "string":
+return this._parseStringSelector($1)
+break
+
+}
+}
+LzCSSStyle._parseStringSelector=function($1){
+var $2={}
+if($1=="*"){
+$2.type=this._sel_star
+}else{
+var $3=$1.indexOf("#")
+if($3>=0){
+$2.id=$1.substring($3+1)
+$2.type=this._sel_id
+}else{
+$2.type=this._sel_tag
+$2.classname=this._normalizeClassname($1)
+}
+}
+return $2
+}
+LzCSSStyle._normalizeClassname=function($1){
+switch($1){
+case "view":
+return "LzView"
+case "animator":
+return "LzAnimator"
+case "animatorgroup":
+return "LzAnimatorGroup"
+case "canvas":
+return "LzCanvas"
+case "drawview":
+return "LzDrawView"
+case "inputtext":
+return "LzInputText"
+case "layout":
+return "LzLayout"
+case "node":
+return "LzNode"
+case "state":
+return "LzState"
+case "text":
+return "LzText"
+default:
+return $1
+
+}
+}
+function LzCSSStyleDeclaration(){
+
+}
+LzCSSStyleDeclaration.prototype._node=null
+LzCSSStyleDeclaration.prototype.getPropertyValue=function($1){
+return LzCSSStyle.getPropertyValueFor(this._node,$1)
+}
+LzCSSStyleDeclaration.prototype.setNode=function($1){
+this._node=$1
+}
+function LzStyleSheet($1,$2,$3,$4){
+this.type=$4
+this.disabled=false
+this.ownerNode=null
+this.parentStyleSheet=null
+this.href=$2
+this.title=$1
+this.media=$3
+}
+function LzCSSStyleSheet($1,$2,$3,$4,$5,$6){
+this.type=$4
+this.disabled=false
+this.ownerNode=null
+this.parentStyleSheet=null
+this.href=$2
+this.title=$1
+this.media=$3
+this.ownerRule=$5
+this.cssRules=$6
+}
+LzCSSStyleSheet.prototype.insertRule=function($1,$2){
+if(!this.cssRules){
+this.cssRules=[]
+}
+if($2<0){
+return null
+}
+if($2<this.cssRules.length){
+this.cssRules.splice($2,0,$1)
+return $2
+}
+if($2==this.cssRules.length){
+return this.cssRules.push($1)-1
+}
+return null
+}
+var LzTrackClass=Class.make("LzTrackClass",null,{__LZreg:(new Object),__LZactivegroups:null,__LZtrackDel:null,__LZoptimizeforaxis:"x",__LZmouseupDel:null,initialize:function(){
+(arguments.callee.superclass?arguments.callee.superclass.prototype["initialize"]:this.nextMethod(arguments.callee,"initialize")).apply(this,arguments)
+this.__LZtrackDel=LzDelegate.make(this,"__LZtrack")
+this.__LZmouseupDel=LzDelegate.make(this,"__LZmouseup",LzGlobalMouse,"onmouseup")
+},register:function($1,$2){
if($1==null||$2==null){
return
}
@@ -9944,8 +11598,7 @@
this.__LZdestroydel=LzDelegate.make(this,"__LZdestroyitem")
}
this.__LZdestroydel.register($1,"ondestroy")
-}
-LzTrack.unregister=function($1,$2){
+},unregister:function($1,$2){
if($1==null||$2==null){
return
}
@@ -9961,13 +11614,11 @@
}
}
this.__LZdestroydel.unregisterFrom($1.ondestroy)
-}
-LzTrack.__LZdestroyitem=function($1){
+},__LZdestroyitem:function($1){
for(var $2 in this.__LZreg){
this.unregister($1,$2)
}
-}
-LzTrack.activate=function($1){
+},activate:function($1){
if(this.__LZactivegroups==null){
this.__LZactivegroups=[]
this.__LZtrackDel.register(LzIdle,"onidle")
@@ -9981,8 +11632,7 @@
if(!$2){
this.__LZactivegroups.push(this.__LZreg[$1])
}
-}
-LzTrack.deactivate=function($1){
+},deactivate:function($1){
for(var $2 in this.__LZactivegroups){
if(this.__LZactivegroups[$2]==this.__LZreg[$1]){
this.__LZactivegroups.splice($2,1)
@@ -9994,8 +11644,7 @@
if(typeof this.__LZreg[$1]!="undefined"){
this.__LZreg[$1].__LZlasthit=0
}
-}
-LzTrack.__LZtopview=function($1,$2){
+},__LZtopview:function($1,$2){
var $3=$2
var $4=$1
while($4.nodeLevel<$3.nodeLevel){
@@ -10019,15 +11668,13 @@
}else{
return $2
}
-}
-LzTrack.__LZfindTopmost=function($1){
+},__LZfindTopmost:function($1){
var $2=$1[0]
for(var $3=1;$3<$1.length;$3++){
$2=this.__LZtopview($2,$1[$3])
}
return $2
-}
-LzTrack.__LZtrackgroup=function($1,$2){
+},__LZtrackgroup:function($1,$2){
for(var $3=0;$3<$1.length;$3++){
var $4=$1[$3]
if($4.visible){
@@ -10040,8 +11687,7 @@
}
}
}
-}
-LzTrack.__LZtrack=function(){
+},__LZtrack:function(){
var $1=false
var $2=[]
for(var $3 in this.__LZactivegroups){
@@ -10051,14 +11697,14 @@
this.__LZtrackgroup($5,$4)
}
if(!$4.length&&$5&&$5.__LZlasthit){
-if($5.__LZlasthit.onmousetrackout){
+if($5.__LZlasthit.onmousetrackout&&$5.__LZlasthit.onmousetrackout.ready){
$5.__LZlasthit.onmousetrackout.sendEvent($5.__LZlasthit)
}
$5.__LZlasthit=0
}else{
var $6=this.__LZfindTopmost($4)
if($6&&$6!=$5.__LZlasthit){
-if($5.__LZlasthit.onmousetrackout){
+if($5.__LZlasthit.onmousetrackout&&$5.__LZlasthit.onmousetrackout.ready){
$5.__LZlasthit.onmousetrackout.sendEvent($5.__LZlasthit)
}
$1=true
@@ -10069,121 +11715,21 @@
}
if($1){
for(var $3=0;$3<$2.length;$3++){
-$2[$3].onmousetrackover.sendEvent($2[$3])
+var $7=$2[$3]
+if($7.onmousetrackover.ready){
+$7.onmousetrackover.sendEvent($7)
}
}
}
-LzTrack.__LZmouseup=function(){
+},__LZmouseup:function(){
for(var $1 in this.__LZactivegroups){
var $2=this.__LZactivegroups[$1]
-if($2&&$2.__LZlasthit.onmousetrackup){
+if($2&&$2.__LZlasthit.onmousetrackup&&$2.__LZlasthit.onmousetrackup.ready){
$2.__LZlasthit.onmousetrackup.sendEvent(this.__LZlasthit)
}
}
-}
-var LzHistory=(new Object)
-LzHistory.setHistory=function($1){
-Lz._setHash($1)
-this.__lzloading=true
-}
-LzHistory.getPersist=function($1){
-
-}
-LzHistory.offset=0
-LzHistory.__lzdirty=false
-LzHistory.__lzhistq=[]
-LzHistory.__lzcurrstate={}
-LzHistory.__lzloading=false
-LzHistory.__lzloadcache={}
-LzHistory.__loadcacheused=false
-DeclareEvent(LzHistory,"onoffset")
-LzHistory.receiveHistory=function($1){
-$1*=1
-if(!$1){
-$1=0
-}
-if($1>this.__lzhistq.length-1){
-$1=this.__lzhistq.length
-}
-this.offset=$1
-this.onoffset.sendEvent($1)
-var $2=this.__lzhistq[$1]
-for(var $3 in $2){
-var $1=$2[$3]
-global[$1.c].setAttribute($1.n,$1.v)
-}
-if(this.__loadcacheused){
-var $4=this.__lzhistq[this.offset]
-if($4==null){
-$4={}
-}
-var $3
-for($3 in this.__lzloadcache){
-$4[$3]=this.__lzloadcache[$3]
-}
-this.__lzhistq[this.offset]=$4
-this.__lzloadcache={}
-this.__loadcacheused=false
-}
-this.__lzloading=false
-}
-LzHistory.receiveEvent=function($1,$2){
-canvas[$1]=$2
-canvas["on"+$1].sendEvent($2)
-}
-LzHistory.getCanvasAttribute=function($1){
-return canvas[$1]
-}
-LzHistory.setCanvasAttribute=LzHistory.receiveEvent
-LzHistory.callMethod=function($1){
-return eval($1)
-}
-LzHistory.save=function($1,$2,$3){
-if($3==null){
-$3=global[$1][$2]
-}
-if(this.__lzloading){
-this.__lzloadcache[$1]={c:$1,n:$2,v:$3}
-this.__loadcacheused=true
-}else{
-this.__lzcurrstate[$1]={c:$1,n:$2,v:$3}
-this.__lzdirty=true
-}
-}
-LzHistory.commit=function(){
-if(!this.__lzdirty){
-return
-}
-this.__lzhistq[this.offset]=this.__lzcurrstate
-this.__lzhistq.length=this.offset+1
-this.__lzcurrstate={}
-this.__lzdirty=false
-}
-LzHistory.move=function($1){
-this.commit()
-if(!$1){
-$1=1
-}
-var $2=this.offset+$1
-if(0>=$2){
-$2=0
-}
-if(this.__lzhistq.length>=$2){
-this.setHistory($2)
-}
-}
-LzHistory.next=function(){
-this.move(1)
-}
-LzHistory.prev=function(){
-this.move(-1)
-}
-LzHistory.clear=function(){
-this.__lzhistq=[]
-this.offset=0
-this.onoffset.sendEvent(0)
-}
-Lz.__dhtmlhistoryready=true
+}},null)
+var LzTrack=LzTrackClass.make()
var LzFocus=(new Object())
DeclareEvent(LzFocus,"onfocus")
LzFocus.lastfocus=null
@@ -10195,12 +11741,12 @@
LzFocus.__LZsfnextfocus=-1
LzFocus.__LZsfrunning=false
LzFocus.gotKeyUp=function($1){
-if(this.csel){
+if(this.csel&&this.csel.onkeyup.ready){
this.csel.onkeyup.sendEvent($1)
}
}
LzFocus.gotKeyDown=function($1){
-if(this.csel){
+if(this.csel&&this.csel.onkeydown.ready){
this.csel.onkeydown.sendEvent($1)
}
if($1==LzKeys.keyCodes.tab){
@@ -10233,6 +11779,10 @@
if(this.csel&&this.csel.shouldYieldFocus&&!this.csel.shouldYieldFocus()){
return
}
+var $2=this.csel
+if($2){
+$2.blurring=true
+}
this.__LZsfnextfocus=-1
this.__LZsfrunning=true
if($1&&!$1.focusable){
@@ -10244,7 +11794,7 @@
}
if(!this.__LZskipblur){
this.__LZskipblur=true
-if(this.csel){
+if(this.csel&&this.csel.onblur.ready){
this.csel.onblur.sendEvent($1)
}
if(this.__LZsfnextfocus!=-1){
@@ -10256,7 +11806,7 @@
this.lastfocus=this.csel
this.csel=$1
this.__LZskipblur=false
-if($1){
+if($1&&$1.onfocus.ready){
$1.onfocus.sendEvent($1)
}
if(this.__LZsfnextfocus!=-1){
@@ -10264,13 +11814,18 @@
this.setFocus(this.__LZsfnextfocus)
return
}
+if(this.onfocus.ready){
this.onfocus.sendEvent($1)
+}
this.__LZsfrunning=false
if(this.__LZsfnextfocus!=-1){
this.setFocus(this.__LZsfnextfocus)
return
}
+if($2){
+$2.blurring=false
}
+}
LzFocus.clearFocus=function(){
this.setFocus(null)
}
@@ -10379,7 +11934,7 @@
var LzIdle=LzIdleClass.make()
function __idleupdate(){
var $1=LzIdle.onidle
-if($1.delegateList&&$1.delegateList.length){
+if($1.ready){
$1.sendEvent(getTimer())
}
}
@@ -10453,46 +12008,25 @@
LzTrait.make($1)
return
}
-LzFixTags($1)
if(typeof $2=="undefined"){
$2=1
}
canvas.initiatorAddNode($1,$2)
}
-function LzFixTags($1){
-if("id" in $1&&$1.id!=null){
-$1.attrs.id=$1.id
-}
-var $2=0
-if("children" in $1&&$1.children){
-while($2<$1.children.length){
-var $3=$1.children[$2]
-if($3.name=="datapath"){
-if(!$1.attrs){
-$1.attrs={}
-}
-$1.attrs.$datapath=$3
-$1.children.splice($2,1)
-continue
-}
-LzFixTags($1.children[$2++])
-}
-}
-}
function lzAddLocalData($1,$2,$3){
return LzDataset.make(canvas,{name:$1,initialdata:$2,trimwhitespace:$3})
}
-// END LFC
+var $backtrace=false
var $dhtml=true
var $as3=false
var $js1=true
-var $swf9=false
var $swf7=false
-var $profile=false
var $swf8=false
-var $runtime="dhtml"
var $svg=false
var $as2=false
+var $swf9=false
+var $profile=false
+var $runtime="dhtml"
var $debug=false
var $j2me=false
canvas=LzCanvas.make({__LZproxied:"true",bgcolor:9737389,debugApp:function(){
@@ -10520,49 +12054,51 @@
app_fullpath=$1
this.reloadApp()
}
-},height:70,lpsbuild:"4733 /Users/maxcarlson/openlaszlo/legals-clean",lpsbuilddate:"2007-04-16T16:16:21-0700",lpsrelease:"Latest",lpsversion:"4.0.x",proxied:false,reloadApp:function($1){
+},height:70,lpsbuild:"6099 C:\\users\\hqm\\openlaszlo\\wafflecone2",lpsbuilddate:"2007-08-17T12:44:04-0400",lpsrelease:"Latest",lpsversion:"4.0.x",proxied:false,reloadApp:function($1){
with(this){
var $2=rg_runtime.value
var $3=cb_debug.value
-var $4=cb_remotedebug.value
-var $5=LzParam.make(this)
-var $6=LzParam.prototype.parseQueryString(app_query)
-$6["debug"]=$3
-$6["lzr"]=$2
-if($4){
-$6["lzconsoledebug"]=true
-$6["debug"]=true
+var $4=cb_backtrace.value
+var $5=cb_remotedebug.value
+var $6=LzParam.make(this)
+var $7=LzParam.prototype.parseQueryString(app_query)
+$7["debug"]=$3
+$7["lzbacktrace"]=$4
+$7["lzr"]=$2
+if($5){
+$7["lzconsoledebug"]=true
+$7["debug"]=true
}else{
-delete $6.lzconsoledebug
-delete $6.remotedebug
+delete $7.lzconsoledebug
+delete $7.remotedebug
}
if(app_lzt!=null){
-$6["lzt"]=app_lzt
+$7["lzt"]=app_lzt
}
-if($6.lzr=="dhtml"){
-if($6.debug+""=="false"){
-delete $6["debug"]
+if($7.lzr=="dhtml"){
+if($7.debug+""=="false"){
+delete $7["debug"]
}else{
-$6.debug="true"
+$7.debug="true"
}
}
-var $7={}
-for(var $8 in $6){
-if($8==""){
+var $8={}
+for(var $9 in $7){
+if($9==""){
continue
}
-if($8.indexOf("#38;")!=-1){
-var $9=$8.indexOf("#38;")
-$8=$8.substring($9+4,$8.length)
+if($9.indexOf("#38;")!=-1){
+var $10=$9.indexOf("#38;")
+$9=$9.substring($10+4,$9.length)
}
-if($7[$8]){
+if($8[$9]){
continue
}
-$5.setValue($8,$6[$8])
-$7[$8]=true
+$6.setValue($9,$7[$9])
+$8[$9]=true
}
-var $10=app_fullpath+"?"+$5.serialize()
-LzBrowser.loadURL($10)
+var $11=app_fullpath+"?"+$6.serialize()
+LzBrowser.loadURL($11)
}
},remoteEval:function($1){
with(this){
@@ -10605,7 +12141,7 @@
app_lzt="deployment"
canvas.reloadApp()
}
-},width:500})
+},width:"100%"})
LzInstantiateView({name:"script",attrs:{script:function(){
_root.offwhite=void 0
_root.gray10=void 0
@@ -10690,13 +12226,13 @@
LzResourceLibrary.lzfocusbracket_bottomleft_shdw_rsrc={ptype:"sr",frames:["lps/components/lz/resources/focus/focus_bot_lft_shdw.png"],width:9,height:9}
LzResourceLibrary.lzfocusbracket_bottomright_rsrc={ptype:"sr",frames:["lps/components/lz/resources/focus/focus_bot_rt.png"],width:7,height:7}
LzResourceLibrary.lzfocusbracket_bottomright_shdw={ptype:"sr",frames:["lps/components/lz/resources/focus/focus_bot_rt_shdw.png"],width:9,height:9}
-LzInstantiateView({name:"class",attrs:{parent:"view",initobj:{attrs:{$delegates:["onstop","stopanim",null,"onfocus","$m2",function($1){
+LzInstantiateView({name:"class",attrs:{parent:"view",initobj:{attrs:{$delegates:["onstop","stopanim",null,"onfocus","$m2_$base$2Fbasefocusview$2Elzx_250_62_reference",function($1){
with(this){
return LzFocus
}
-}],$events:["onactive","ontarget"],$m1:function(){
+}],$events:["ontarget","onactive"],$m1_$base$2Fbasefocusview$2Elzx_152_51_reference:function(){
-},$m2:function($1){
+},$m2_$base$2Fbasefocusview$2Elzx_250_62_reference:function($1){
with(this){
this.setActive(LzFocus.focuswithkey)
if($1){
@@ -10750,7 +12286,11 @@
this.animate("y",$4,duration)
this.animate("width",$5,duration)
this.animate("height",$6,duration)
+if(this.sprite&&this.sprite["quirks"]&&this.sprite.quirks["minimize_opacity_changes"]){
+this.setVisible(true)
+}else{
this.animate("opacity",1,500)
+}
if(!this._onstopdel){
this._onstopdel=LzDelegate.make(this,"stopanim")
}
@@ -10786,8 +12326,12 @@
},duration:400,fadeout:function(){
with(this){
if(_dofadeout){
+if(this.sprite&&this.sprite["quirks"]&&this.sprite.quirks["minimize_opacity_changes"]){
+this.setVisible(false)
+}else{
this.animate("opacity",0,500)
}
+}
this._delayfadeoutDL.unregisterAll()
}
},followHeight:function(){
@@ -10891,7 +12435,7 @@
}
},doFocus:function($1){
with(this){
-this.nextMethod(arguments.callee,"doFocus").call(this,$1)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["doFocus"]:this.nextMethod(arguments.callee,"doFocus")).call(this,$1)
if(visible){
this.bounce()
}
@@ -11001,13 +12545,13 @@
with(this){
return LzFocus
}
-},"onmode","$m4",function($1){
+},"onmode","$m4_$base$2Fcomponentmanager$2Elzx_195_69_reference",function($1){
with(this){
return LzModeManager
}
-}],$events:["ondefaultstyle"],$m3:function(){
+}],$events:["ondefaultstyle"],$m3_$base$2Fcomponentmanager$2Elzx_166_76_reference:function(){
-},$m4:function($1){
+},$m4_$base$2Fcomponentmanager$2Elzx_195_69_reference:function($1){
with(this){
if(LzFocus.getFocus()==null){
this.checkDefault(null)
@@ -11128,9 +12672,8 @@
if($1!=null){
canvas.__focus=global[$1].make(canvas)
canvas.__focus.reset()
+};(arguments.callee.superclass?arguments.callee.superclass.prototype["init"]:this.nextMethod(arguments.callee,"init")).call(this)
}
-this.nextMethod(arguments.callee,"init").call(this)
-}
},keyhandlers:null,lastedown:null,lastsdown:null,makeDefault:function($1){
with(this){
if(!this.defaults){
@@ -11316,7 +12859,7 @@
_componentmanager.service=_componentmanager.make(canvas,null,null,true)
}}},1)
LzInstantiateView({name:"class",attrs:{parent:"text",initobj:{attrs:{"extends":"text"},name:"statictext"}}},1)
-LzInstantiateView({name:"class",attrs:{parent:"view",initobj:{attrs:{$events:["on_enabled","onfocusable","onisdefault","onstyle"],$refs:{_enabled:(function(){
+LzInstantiateView({name:"class",attrs:{parent:"view",initobj:{attrs:{$events:["onfocusable","onisdefault","onstyle","on_enabled"],$refs:{_enabled:(function(){
var $lzsc$f=function(){
this.setAttribute("_enabled",this.enabled&&(this._parentcomponent?this._parentcomponent._enabled:true))
}
@@ -11422,7 +12965,7 @@
this.setAttribute("text",$1)
},construct:function($1,$2){
with(this){
-this.nextMethod(arguments.callee,"construct").call(this,$1,$2)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["construct"]:this.nextMethod(arguments.callee,"construct")).call(this,$1,$2)
var $3=this.immediateparent
while($3!=canvas){
if($3 instanceof basecomponent){
@@ -11441,9 +12984,8 @@
if(this._styledel){
this._styledel.unregisterAll()
delete this._styledel
+};(arguments.callee.superclass?arguments.callee.superclass.prototype["destroy"]:this.nextMethod(arguments.callee,"destroy")).call(this)
}
-this.nextMethod(arguments.callee,"destroy").call(this)
-}
},doEnterDown:function(){
return false
},doEnterUp:function(){
@@ -11454,7 +12996,7 @@
return false
},doesenter:false,enabled:true,focusable:true,hasdefault:false,init:function(){
with(this){
-this.nextMethod(arguments.callee,"init").call(this)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["init"]:this.nextMethod(arguments.callee,"init")).call(this)
this._initcomplete=true
this._mousedownDel=LzDelegate.make(this,"_doMousedown",this,"onmousedown")
if(this.styleable){
@@ -11542,31 +13084,31 @@
_componentmanager.service.checkDefault(LzFocus.getFocus())
}
}},name:"basecomponent"}}},1)
-LzInstantiateView({name:"class",attrs:{parent:"basecomponent",initobj:{attrs:{$delegates:["onmode","$m5",function($1){
+LzInstantiateView({name:"class",attrs:{parent:"basecomponent",initobj:{attrs:{$delegates:["onmode","$m5_$base$2Fbasebutton$2Elzx_90_67_reference",function($1){
with(this){
return LzModeManager
}
-},"ontotalframes","$m6",null,"onmouseover","$m7",null,"onmouseout","$m8",null,"onmousedown","$m9",null,"onmouseup","$m10",null],$events:["onclick","onresourceviewcount"],$m10:function(){
+},"ontotalframes","$m6_$base$2Fbasebutton$2Elzx_151_39_reference",null,"onmouseover","$m7_$base$2Fbasebutton$2Elzx_166_37_reference",null,"onmouseout","$m8_$base$2Fbasebutton$2Elzx_171_36_reference",null,"onmousedown","$m9_$base$2Fbasebutton$2Elzx_176_37_reference",null,"onmouseup","$m10_$base$2Fbasebutton$2Elzx_181_35_reference",null],$events:["onresourceviewcount","onclick"],$m10_$base$2Fbasebutton$2Elzx_181_35_reference:function(){
this.setAttribute("_msdown",false)
this._callShow()
-},$m5:function($1){
+},$m5_$base$2Fbasebutton$2Elzx_90_67_reference:function($1){
if($1&&(this._msdown||this._msin)&&!this.childOf($1)){
this._msdown=false
this._msin=false
this._callShow()
}
-},$m6:function(){
+},$m6_$base$2Fbasebutton$2Elzx_151_39_reference:function(){
if(this.isinited){
this.maxframes=this.totalframes
this._callShow()
}
-},$m7:function(){
+},$m7_$base$2Fbasebutton$2Elzx_166_37_reference:function(){
this.setAttribute("_msin",true)
this._callShow()
-},$m8:function(){
+},$m8_$base$2Fbasebutton$2Elzx_171_36_reference:function(){
this.setAttribute("_msin",false)
this._callShow()
-},$m9:function(){
+},$m9_$base$2Fbasebutton$2Elzx_176_37_reference:function(){
this.setAttribute("_msdown",true)
this._callShow()
},$refs:{maxframes:function(){
@@ -11620,7 +13162,7 @@
}
},downResourceNumber:3,"extends":"basecomponent",focusable:false,init:function(){
with(this){
-this.nextMethod(arguments.callee,"init").call(this)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["init"]:this.nextMethod(arguments.callee,"init")).call(this)
this.setResourceViewCount(this.resourceviewcount)
this._callShow()
}
@@ -11631,7 +13173,7 @@
this.subviews[$2].setResourceNumber($1)
}
}else{
-this.nextMethod(arguments.callee,"setResourceNumber").call(this,$1)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["setResourceNumber"]:this.nextMethod(arguments.callee,"setResourceNumber")).call(this,$1)
}
}
},setResourceViewCount:function($1){
@@ -11668,7 +13210,7 @@
this.setColor($1)
}},color:16777215,construct:function($1,$2){
with(this){
-this.nextMethod(arguments.callee,"construct").call(this,$1,$2)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["construct"]:this.nextMethod(arguments.callee,"construct")).call(this,$1,$2)
if($2["width"]==null){
$2["width"]=this.immediateparent.getAttribute("width")
}
@@ -11693,9 +13235,8 @@
$4=$4*ctransform["ba"]/100+ctransform["bb"]
$4=Math.min($4,255)
$1=$4+($3<<8)+($2<<16)
+};(arguments.callee.superclass?arguments.callee.superclass.prototype["setBGColor"]:this.nextMethod(arguments.callee,"setBGColor")).call(this,$1)
}
-this.nextMethod(arguments.callee,"setBGColor").call(this,$1)
-}
},setColor:function($1){
this.setBGColor($1)
},setColorTransform:function($1){
@@ -11706,7 +13247,7 @@
LzResourceLibrary.lzbutton_face_rsc={ptype:"sr",frames:["lps/components/lz/resources/button/simpleface_up.png","lps/components/lz/resources/button/simpleface_mo.png","lps/components/lz/resources/button/simpleface_dn.png","lps/components/lz/resources/button/autoPng/simpleface_dsbl.png"],width:2,height:18}
LzResourceLibrary.lzbutton_bezel_inner_rsc={ptype:"sr",frames:["lps/components/lz/resources/autoPng/bezel_inner_up.png","lps/components/lz/resources/autoPng/bezel_inner_up.png","lps/components/lz/resources/autoPng/bezel_inner_dn.png","lps/components/lz/resources/autoPng/outline_dsbl.png"],width:500,height:500}
LzResourceLibrary.lzbutton_bezel_outer_rsc={ptype:"sr",frames:["lps/components/lz/resources/autoPng/bezel_outer_up.png","lps/components/lz/resources/autoPng/bezel_outer_up.png","lps/components/lz/resources/autoPng/bezel_outer_dn.png","lps/components/lz/resources/autoPng/transparent.png","lps/components/lz/resources/autoPng/default_outline.png"],width:500,height:500}
-LzInstantiateView({name:"class",attrs:{parent:"basebutton",initobj:{attrs:{$delegates:["onhasdefault","$m11",null],$m11:function(){
+LzInstantiateView({name:"class",attrs:{parent:"basebutton",initobj:{attrs:{$delegates:["onhasdefault","$m11_$lz$2Fbutton$2Elzx_127_34_reference",null],$m11_$lz$2Fbutton$2Elzx_127_34_reference:function(){
with(this){
if(this._initcomplete){
if(this.buttonstate==1){
@@ -12037,7 +13578,7 @@
LzInstantiateView({name:"class",attrs:{parent:"basecomponent",initobj:{attrs:{"extends":"basecomponent",getValue:function(){
return this.value==null?this.text:this.value
},value:null},name:"basevaluecomponent"}}},1)
-LzInstantiateView({name:"class",attrs:{parent:"basevaluecomponent",initobj:{attrs:{$delegates:["oninit","$m12",null],$events:["onchanged","onvalue"],$m12:function(){
+LzInstantiateView({name:"class",attrs:{parent:"basevaluecomponent",initobj:{attrs:{$delegates:["oninit","$m12_$base$2Fbaseformitem$2Elzx_57_32_reference",null],$events:["onchanged","onvalue"],$m12_$base$2Fbaseformitem$2Elzx_57_32_reference:function(){
var $1=this.findForm()
if($1!=null){
$1.addFormItem(this)
@@ -12088,9 +13629,8 @@
}
if(this.submitname==""){
return
+};(arguments.callee.superclass?arguments.callee.superclass.prototype["init"]:this.nextMethod(arguments.callee,"init")).call(this)
}
-this.nextMethod(arguments.callee,"init").call(this)
-}
},rollback:function(){
if(this.rollbackvalue!=this["value"]){
this.setAttribute("value",this.rollbackvalue)
@@ -12114,14 +13654,19 @@
this._parentform.setChanged($1)
}
}
+if(!$2&&!this.changed&&!ignoreform){
+if(this["_parentform"]&&this._parentform["changed"]!=undefined&&this._parentform.changed){
+this._parentform.setChanged($1,true)
}
+}
+}
},setValue:function($1,$2){
var $3=this.value!=$1
this.value=$1
if($2||!this._initcomplete){
this.rollbackvalue=$1
}
-this.setChanged($3&&!$2)
+this.setChanged($3&&!$2&&this.rollbackvalue!=$1)
if(this["onvalue"]){
this.onvalue.sendEvent($1)
}
@@ -12195,7 +13740,7 @@
}
},statelength:3,statenum:0},name:"multistatebutton"}}},1)
LzResourceLibrary.lzcheckbox_rsrc={ptype:"sr",frames:["lps/components/lz/resources/checkbox/autoPng/checkbox_off.png","lps/components/lz/resources/checkbox/autoPng/checkbox_off_mo.png","lps/components/lz/resources/checkbox/autoPng/checkbox_on.png","lps/components/lz/resources/checkbox/autoPng/checkbox_disable_off.png","lps/components/lz/resources/checkbox/autoPng/checkbox_on.png","lps/components/lz/resources/checkbox/autoPng/checkbox_on_mo.png","lps/components/lz/resources/checkbox/autoPng/checkbox_off.png","lps/components/lz/resources/checkbox/autoPng/checkbox_disable_on.png"],width:15,height:14}
-LzInstantiateView({name:"class",attrs:{parent:"baseformitem",initobj:{attrs:{$delegates:["onclick","$m13",null],$m13:function(){
+LzInstantiateView({name:"class",attrs:{parent:"baseformitem",initobj:{attrs:{$delegates:["onclick","$m13_$lz$2Fcheckbox$2Elzx_47_33_reference",null],$m13_$lz$2Fcheckbox$2Elzx_47_33_reference:function(){
if(this._enabled){
this.setAttribute("value",!this.value)
}
@@ -12232,7 +13777,7 @@
if(this._enabled){
this.setAttribute("value",!this.value)
}
-},"extends":"baseformitem",pixellock:true,setValue:function($1){
+},"extends":"baseformitem",pixellock:true,setValue:function($1,$2){
with(this){
if($1=="false"){
$1=false
@@ -12242,50 +13787,49 @@
}else{
$1=!(!$1)
}
+};(arguments.callee.superclass?arguments.callee.superclass.prototype["setValue"]:this.nextMethod(arguments.callee,"setValue")).call(this,$1,$2)
}
-this.nextMethod(arguments.callee,"setValue").call(this,$1)
-}
-},value:false},children:[{attrs:{$refs:{reference:function(){
-with(this){
-this.setAttribute("reference",parent)
-}
-},statenum:(function(){
+},value:false},children:[{attrs:{$refs:{text:(function(){
var $lzsc$f=function(){
with(this){
-this.setAttribute("statenum",parent.value?1:0)
+this.setAttribute("text",parent.text)
}
}
$lzsc$f.dependencies=function(){
with(this){
-return [parent,"value"]
+return [parent,"text"]
}
}
return $lzsc$f
-})()},maxstate:1,name:"cb",resource:"lzcheckbox_rsrc",statelength:4,text:""},name:"multistatebutton"},{attrs:{$refs:{text:(function(){
+})(),y:(function(){
var $lzsc$f=function(){
with(this){
-this.setAttribute("text",parent.text)
+this.setAttribute("y",classroot.text_y)
}
}
$lzsc$f.dependencies=function(){
with(this){
-return [parent,"text"]
+return [classroot,"text_y"]
}
}
return $lzsc$f
-})(),y:(function(){
+})()},name:"_title",resize:true,x:16},name:"text"},{attrs:{$refs:{reference:function(){
+with(this){
+this.setAttribute("reference",parent)
+}
+},statenum:(function(){
var $lzsc$f=function(){
with(this){
-this.setAttribute("y",classroot.text_y)
+this.setAttribute("statenum",parent.value?1:0)
}
}
$lzsc$f.dependencies=function(){
with(this){
-return [classroot,"text_y"]
+return [parent,"value"]
}
}
return $lzsc$f
-})()},name:"_title",resize:true,x:16},name:"text"}],name:"checkbox"}}},1)
+})()},maxstate:1,name:"cb",resource:"lzcheckbox_rsrc",statelength:4,text:""},name:"multistatebutton"}],name:"checkbox"}}},1)
LzInstantiateView({name:"class",attrs:{parent:"selectionmanager",initobj:{attrs:{_forcemulti:false,_updatefromscrolling:false,allowhilite:function($1){
if(this._updatefromscrolling){
if($1!=null){
@@ -12396,7 +13940,7 @@
$2=true
}else{
if(multiselect){
-$2=this.nextMethod(arguments.callee,"isMultiSelect").call(this,$1)
+$2=(arguments.callee.superclass?arguments.callee.superclass.prototype["isMultiSelect"]:this.nextMethod(arguments.callee,"isMultiSelect")).call(this,$1)
}
}
return $2
@@ -12405,7 +13949,7 @@
with(this){
var $2=false
if(multiselect){
-$2=this.nextMethod(arguments.callee,"isRangeSelect").call(this,$1)
+$2=(arguments.callee.superclass?arguments.callee.superclass.prototype["isRangeSelect"]:this.nextMethod(arguments.callee,"isRangeSelect")).call(this,$1)
}
return $2
}
@@ -12414,11 +13958,11 @@
if($1["length"]&&multiselect){
this._forcemulti=true
for(var $2=0;$2<$1.length;$2++){
-this.nextMethod(arguments.callee,"select").call(this,$1[$2])
+(arguments.callee.superclass?arguments.callee.superclass.prototype["select"]:this.nextMethod(arguments.callee,"select")).call(this,$1[$2])
}
this._forcemulti=false
}else{
-this.nextMethod(arguments.callee,"select").call(this,$1)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["select"]:this.nextMethod(arguments.callee,"select")).call(this,$1)
}
}
}},name:"listselector"}}},1)
@@ -12632,7 +14176,7 @@
$2=true
}else{
if(multiselect){
-$2=this.nextMethod(arguments.callee,"isMultiSelect").call(this,$1)
+$2=(arguments.callee.superclass?arguments.callee.superclass.prototype["isMultiSelect"]:this.nextMethod(arguments.callee,"isMultiSelect")).call(this,$1)
}
}
return $2
@@ -12641,7 +14185,7 @@
with(this){
var $2=false
if(multiselect){
-$2=this.nextMethod(arguments.callee,"isRangeSelect").call(this,$1)
+$2=(arguments.callee.superclass?arguments.callee.superclass.prototype["isRangeSelect"]:this.nextMethod(arguments.callee,"isRangeSelect")).call(this,$1)
}
return $2
}
@@ -12650,21 +14194,21 @@
if($1["length"]&&multiselect){
this._forcemulti=true
for(var $2=0;$2<$1.length;$2++){
-this.nextMethod(arguments.callee,"select").call(this,$1[$2])
+(arguments.callee.superclass?arguments.callee.superclass.prototype["select"]:this.nextMethod(arguments.callee,"select")).call(this,$1[$2])
}
this._forcemulti=false
}else{
-this.nextMethod(arguments.callee,"select").call(this,$1)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["select"]:this.nextMethod(arguments.callee,"select")).call(this,$1)
}
}
}},name:"datalistselector"}}},1)
LzInstantiateView({name:"class",attrs:{parent:"baseformitem",initobj:{attrs:{$delegates:["onfocus","_doFocus",null,"onblur","_doblur",null,"onkeydown","_dokeydown",null],$events:["onselect"],_contentview:null,_doFocus:function(){
-if(this._selector){
+if(this["_selector"]){
var $1=this._selector.getSelection()
-}
if($1&&$1.length>0){
this._hiliteview=$1[0]
}
+}
},_doblur:function(){
if(this._hiliteview&&this._hiliteview.setHilite){
this._hiliteview["setHilite"](false)
@@ -12783,7 +14327,7 @@
}
},init:function(){
with(this){
-this.nextMethod(arguments.callee,"init").call(this)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["init"]:this.nextMethod(arguments.callee,"init")).call(this)
if(this._contentview==null){
if(this.defaultplacement!=null){
this._contentview=this.searchSubnodes("name",this.defaultplacement)
@@ -12904,7 +14448,7 @@
this._setSelected($1)
}},_doMousedown:function(){
with(this){
-this.nextMethod(arguments.callee,"_doMousedown").call(this)
+(arguments.callee.superclass?arguments.callee.superclass.prototype["_doMousedown"]:this.nextMethod(arguments.callee,"_doMousedown")).call(this)
if(!this.focusable&&this._parentcomponent&&this._parentcomponent.focusable){
LzFocus.setFocus(this._parentcomponent,false)
}
@@ -12926,9 +14470,8 @@
this._valuedatapath=$2
}
}
+};(arguments.callee.superclass?arguments.callee.superclass.prototype["dataBindAttribute"]:this.nextMethod(arguments.callee,"dataBindAttribute")).call(this,$1,$2)
}
-this.nextMethod(arguments.callee,"dataBindAttribute").call(this,$1,$2)
-}
},doClick:function(){
if(this._parentcomponent){
this._parentcomponent.select(this)
@@ -12991,9 +14534,8 @@
var $2=this.subviews[this.subviews.length-1]
var $3=$2[this.axis]+$2[this.sizeAxis]+this.spacing
$1.setAttribute(this.axis,$3)
+};(arguments.callee.superclass?arguments.callee.superclass.prototype["addSubview"]:this.nextMethod(arguments.callee,"addSubview")).call(this,$1)
}
-this.nextMethod(arguments.callee,"addSubview").call(this,$1)
-}
},axis:"y","extends":"layout",inset:0,setAxis:function($1){
if(this["axis"]==null||this.axis!=$1){
this.axis=$1
@@ -13051,7 +14593,7 @@
},applyData:function($1){
this._setvalue($1)
},defaultselection:0,"extends":"baselist",itemclassname:"radiobutton",layout:{axis:"y","class":"simplelayout",spacing:5},value:null},name:"radiogroup"}}},1)
-LzInstantiateView({name:"class",attrs:{parent:"baselistitem",initobj:{attrs:{$delegates:["onclick","$m14",null],$m14:function(){
+LzInstantiateView({name:"class",attrs:{parent:"baselistitem",initobj:{attrs:{$delegates:["onclick","$m14_$lz$2Fradio$2Elzx_159_33_reference",null],$m14_$lz$2Fradio$2Elzx_159_33_reference:function(){
with(this){
if(!this.selected){
parent.select(this)
@@ -13139,10 +14681,11 @@
return XML.make().createTextNode($1).toString()
}
}}},1)
-lzAddLocalData("appdata","<datacontent />",false)
+lzAddLocalData("appdata","<data />",false)
LzInstantiateView({name:"script",attrs:{script:function(){
_root.app_runtime=void 0
_root.app_debug=void 0
+_root.app_backtrace=void 0
_root.app_console_debug=void 0
_root.app_floating_window=void 0
_root.app_fullpath=void 0
@@ -13160,6 +14703,7 @@
app_runtime=appdata.getPointer().xpathQuery("/request/param[@name = 'lzr']/@value")
}
app_debug=appdata.getPointer().xpathQuery("/request/param[@name = 'debug']/@value")
+app_backtrace=appdata.getPointer().xpathQuery("/request/param[@name = 'lzbacktrace']/@value")
if(app_debug=="y"){
app_debug="true"
}
@@ -13201,7 +14745,27 @@
}
}
return $lzsc$f
-})()},bgcolor:5000268,name:"logo",resource:"footer_logo"},name:"view"},{attrs:{name:"controls",x:70},children:[{attrs:{name:"firstrow",y:4},children:[{attrs:{font:"Verdana,Vera,sans-serif",fontsize:11,fontstyle:"plain",text:"<b>Compile Options:</b>",x:8,y:7},name:"text"},{attrs:{bgcolor:0,height:32,width:319,x:125},children:[{attrs:{bgcolor:9737389,height:30,width:317,x:1,y:1},name:"view"}],name:"view"},{attrs:{name:"compilecontrols",x:125},children:[{attrs:{layout:{axis:"x","class":"simplelayout",spacing:4},x:6,y:8.75},children:[{attrs:{$refs:{selected:(function(){
+})()},bgcolor:5000268,name:"logo",resource:"footer_logo"},name:"view"},{attrs:{name:"controls",x:70},children:[{attrs:{name:"firstrow",y:4},children:[{attrs:{font:"Verdana,Vera,sans-serif",fontsize:11,fontstyle:"plain",text:"<b>Compile Options:</b>",x:8,y:7},name:"text"},{attrs:{bgcolor:0,height:32,width:412,x:125},children:[{attrs:{bgcolor:9737389,height:30,width:410,x:1,y:1},name:"view"}],name:"view"},{attrs:{$delegates:["onvalue","$m16_$dev$2Dconsole$2Elzx_160_66_reference",function(){
+with(this){
+return cb_backtrace
+}
+},"onvalue","$m17_$dev$2Dconsole$2Elzx_165_62_reference",function(){
+with(this){
+return cb_debug
+}
+}],$m16_$dev$2Dconsole$2Elzx_160_66_reference:function(){
+with(this){
+if(cb_backtrace.value){
+cb_debug.setAttribute("value",true)
+}
+}
+},$m17_$dev$2Dconsole$2Elzx_165_62_reference:function(){
+with(this){
+if(cb_debug.value==false){
+cb_backtrace.setAttribute("value",false)
+}
+}
+},name:"compilecontrols",x:125},children:[{attrs:{id:"rg_runtime",layout:{axis:"x","class":"simplelayout",spacing:4},x:6,y:8.75},children:[{attrs:{$refs:{selected:(function(){
var $lzsc$f=function(){
with(this){
this.setAttribute("selected",app_runtime=="swf7")
@@ -13213,7 +14777,7 @@
}
}
return $lzsc$f
-})()},text:"swf7",value:"swf7"},id:"rb7",name:"radiobutton"},{attrs:{$refs:{selected:(function(){
+})()},id:"rb7",text:"swf7",value:"swf7"},id:"rb7",name:"radiobutton"},{attrs:{$refs:{selected:(function(){
var $lzsc$f=function(){
with(this){
this.setAttribute("selected",app_runtime=="swf8")
@@ -13225,7 +14789,7 @@
}
}
return $lzsc$f
-})()},text:"swf8",value:"swf8"},id:"rb8",name:"radiobutton"},{attrs:{$refs:{selected:(function(){
+})()},id:"rb8",text:"swf8",value:"swf8"},id:"rb8",name:"radiobutton"},{attrs:{$refs:{selected:(function(){
var $lzsc$f=function(){
with(this){
this.setAttribute("selected",app_runtime=="dhtml")
@@ -13237,10 +14801,10 @@
}
}
return $lzsc$f
-})()},text:"DHTML",value:"dhtml"},id:"rbdhtml",name:"radiobutton"}],id:"rg_runtime",name:"radiogroup"},{attrs:{bgcolor:0,height:14,width:1,x:173,y:9.5},name:"view"},{attrs:{$refs:{value:(function(){
+})()},id:"rbdhtml",text:"DHTML",value:"dhtml"},id:"rbdhtml",name:"radiobutton"}],id:"rg_runtime",name:"radiogroup"},{attrs:{bgcolor:0,height:14,width:1,x:173,y:9.5},name:"view"},{attrs:{$refs:{value:(function(){
var $lzsc$f=function(){
with(this){
-this.setAttribute("value",app_debug)
+this.setAttribute("value",app_debug=="true")
}
}
$lzsc$f.dependencies=function(){
@@ -13249,15 +14813,27 @@
}
}
return $lzsc$f
-})()},text:"Debug",x:181,y:8.25},id:"cb_debug",name:"checkbox"},{attrs:{$delegates:["onclick","$m15",null],$m15:function(){
+})()},id:"cb_debug",text:"Debug",x:181,y:8.25},id:"cb_debug",name:"checkbox"},{attrs:{$refs:{value:(function(){
+var $lzsc$f=function(){
with(this){
+this.setAttribute("value",app_backtrace=="true")
+}
+}
+$lzsc$f.dependencies=function(){
+with(this){
+return [this,"app_backtrace"]
+}
+}
+return $lzsc$f
+})()},id:"cb_backtrace",text:"Backtrace",x:250,y:8.25},id:"cb_backtrace",name:"checkbox"},{attrs:{$delegates:["onclick","$m15",null],$m15:function(){
+with(this){
canvas.gotoApp()
}
-},clickable:true,text:"Compile",x:244,y:4},name:"button"}],name:"view"},{attrs:{width:22,x:450},name:"view"},{attrs:{$delegates:["onclick","$m16",null],$m16:function(){
+},clickable:true,text:"Compile",x:334,y:4},name:"button"}],name:"view"},{attrs:{width:22,x:450},name:"view"},{attrs:{$delegates:["onclick","$m18",null],$m18:function(){
with(this){
canvas.viewSource()
}
-},clickable:true,text:"View Source",x:540,y:3},name:"button"}],name:"view"},{attrs:{$refs:{width:(function(){
+},clickable:true,text:"View Source",x:580,y:3},name:"button"}],name:"view"},{attrs:{$refs:{width:(function(){
var $lzsc$f=function(){
with(this){
this.setAttribute("width",canvas.width-70)
@@ -13281,23 +14857,23 @@
}
}
return $lzsc$f
-})()},y:43},children:[{attrs:{font:"Verdana,Vera,sans-serif",fontsize:11,fontstyle:"plain",text:"<b>Deploy:</b>",x:8,y:4},name:"text"},{attrs:{$delegates:["onclick","$m17",null],$m17:function(){
+})()},y:43},children:[{attrs:{font:"Verdana,Vera,sans-serif",fontsize:11,fontstyle:"plain",text:"<b>Deploy:</b>",x:8,y:4},name:"text"},{attrs:{$delegates:["onclick","$m19",null],$m19:function(){
with(this){
canvas.viewWrapper()
}
-},clickable:true,text:"Server",x:65},name:"button"},{attrs:{$delegates:["onclick","$m18",null],$m18:function(){
+},clickable:true,text:"Server",x:65},name:"button"},{attrs:{$delegates:["onclick","$m20",null],$m20:function(){
with(this){
canvas.deploySOLO()
}
-},clickable:true,text:"SOLO",x:134},name:"button"},{attrs:{align:"right",fgcolor:1381787,options:{ignorelayout:true},y:3},children:[{attrs:{$delegates:["onclick","$m19",null],$m19:function(){
+},clickable:true,text:"SOLO",x:134},name:"button"},{attrs:{align:"right",fgcolor:1381787,options:{ignorelayout:true},y:3},children:[{attrs:{$delegates:["onclick","$m21",null],$m21:function(){
with(this){
canvas.viewDocs()
}
-},clickable:true,font:"Verdana,Vera,sans-serif",fontsize:11,fontstyle:"plain",text:"<u>Documentation</u>"},name:"text"},{attrs:{$delegates:["onclick","$m20",null],$m20:function(){
+},clickable:true,font:"Verdana,Vera,sans-serif",fontsize:11,fontstyle:"plain",text:"<u>Documentation</u>"},name:"text"},{attrs:{$delegates:["onclick","$m22",null],$m22:function(){
with(this){
canvas.viewDev()
}
-},clickable:true,font:"Verdana,Vera,sans-serif",fontsize:11,fontstyle:"plain",text:"<u>Developer Network</u>",x:92},name:"text"},{attrs:{$delegates:["onclick","$m21",null],$m21:function(){
+},clickable:true,font:"Verdana,Vera,sans-serif",fontsize:11,fontstyle:"plain",text:"<u>Developer Network</u>",x:92},name:"text"},{attrs:{$delegates:["onclick","$m23",null],$m23:function(){
with(this){
canvas.viewForums()
}
@@ -13325,7 +14901,7 @@
}
}
return $lzsc$f
-})()},text:"Console Remote Debug",x:700,y:10},id:"cb_remotedebug",name:"checkbox"}],name:"view"}],name:"view"},27)
+})()},id:"cb_remotedebug",text:"Console Remote Debug",x:740,y:10},id:"cb_remotedebug",name:"checkbox"}],name:"view"}],name:"view"},28)
LzInstantiateView({name:"script",attrs:{script:function(){
_root.receivingLC=void 0
_root.sendingLC=void 0
Modified: openlaszlo/branches/legals/lps/admin/dev-console.lzx.swf
===================================================================
(Binary files differ)
Modified: openlaszlo/branches/legals/lps/components/base/basecomponent.lzx
===================================================================
--- openlaszlo/branches/legals/lps/components/base/basecomponent.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/components/base/basecomponent.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -300,6 +300,7 @@
will lighten or darken everything that is colorized -->
<method name="setTint" args="v, color, brightness">
<![CDATA[
+ if (v.capabilities.colortransform) {
if (color != "" && color != null){
if (brightness == null) { brightness = 0; }
var rgb = color;
@@ -316,8 +317,9 @@
blue = blue/255*100;
v.setColorTransform( { ra : red, ga : green, ba : blue,
- rb : brightness, gb : brightness,
- bb : brightness } );
+ rb : brightness, gb : brightness,
+ bb : brightness } );
+ }
}
]]>
</method>
Modified: openlaszlo/branches/legals/lps/components/base/basescrollbar.lzx
===================================================================
--- openlaszlo/branches/legals/lps/components/base/basescrollbar.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/components/base/basescrollbar.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -211,6 +211,50 @@
]]>
</method>
+ <!--- @keywords private -->
+ <method name="destroy" ><![CDATA[
+ if ('_mwActivateDel' in this) {
+ this._mwActivateDel.unregisterAll();
+ delete this._mwActivateDel;
+ }
+
+ if ('_mwDeactivateDel' in this) {
+ this._mwDeactivateDel.unregisterAll();
+ delete this._mwDeactivateDel;
+ }
+
+ if ('_mwUpdateDel' in this) {
+ this._mwUpdateDel.unregisterAll();
+ delete this._mwUpdateDel;
+ }
+
+ if ('clipSizeDel' in this) {
+ this.clipSizeDel.unregisterAll();
+ delete this.clipSizeDel;
+ }
+
+ if ('targetHeightDel' in this) {
+ this.targetHeightDel.unregisterAll();
+ delete this.targetHeightDel;
+ }
+
+ if ('targetPosDel' in this) {
+ this.targetPosDel.unregisterAll();
+ delete this.targetPosDel;
+ }
+
+ if ('heightDel' in this) {
+ this.heightDel.unregisterAll();
+ delete this.heightDel;
+ }
+
+ delete this.scrolltarget;
+ delete this.focusview;
+ delete this.othersb;
+
+ super.destroy.apply(this, arguments);
+ ]]></method>
+
<!--- @keywords private -->
<method name="activateMouseWheel"> <![CDATA[
this.setAttribute('mousewheelactive', true);
@@ -475,7 +519,15 @@
<handler name="oninit">
classroot.thumb = this;
</handler>
-
+
+ <!--- @keywords private -->
+ <method name="destroy" ><![CDATA[
+ delete this.classroot.thumb;
+ delete this.target;
+
+ super.destroy.apply(this, arguments);
+ ]]></method>
+
<state name="ythumbdrag">
<attribute name="doffset" value="this.getMouse( 'y' )" when="once" />
<attribute name="y"
Modified: openlaszlo/branches/legals/lps/components/base/basetabelement.lzx
===================================================================
--- openlaszlo/branches/legals/lps/components/base/basetabelement.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/components/base/basetabelement.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -131,6 +131,12 @@
<method name="openned">
if ( onopenstop ) this.onopenstop.sendEvent();
this.isopening -= 1;
+ if (this.isopening == 0) {
+ //now we can savely call unregisterAll
+ if (this.dlo) {
+ this.dlo.unregisterAll();
+ }
+ }
</method>
<!--- Called when the tabelement is completely closed. -->
@@ -151,6 +157,22 @@
this.updateDefault();
}
]]></method>
+
+ <!--- @keywords private -->
+ <method name="destroy" ><![CDATA[
+ if (dlo in this) {
+ this.dlo.unregisterAll();
+ delete this.dlo;
+ }
+
+ if (dlc in this) {
+ this.dlc.unregisterAll();
+ delete this.dlc;
+ }
+
+ super.destroy.apply(this, arguments);
+ ]]></method>
+
<doc>
<tag name="shortdesc"><text>Base class for the contents of a basetabslider.</text></tag>
<text>
Modified: openlaszlo/branches/legals/lps/components/base/basetrackgroup.lzx
===================================================================
--- openlaszlo/branches/legals/lps/components/base/basetrackgroup.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/components/base/basetrackgroup.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -54,15 +54,57 @@
<event name="onmousetrackoutleft" />
<!--- @keywords private -->
- <handler name="onconstruct">
+ <method name="construct">
+ super.construct.apply(this, arguments);
+
this._activateDL = new LzDelegate(this,'activateTrackgroup');
this._deactivateDL = new LzDelegate(this,'deactivateTrackgroup');
this._repeattrackDL = new LzDelegate(this,'trackingout');
this._destroyDL = new LzDelegate(this,'destroyitem');
this._trackgroup = "tg" + this.getUID();
this._boundstrackgroup = "btg" + this.getUID();
- </handler>
+ </method>
+
+ <!--- @keywords private -->
+ <method name="init" >
+ super.init.apply(this, arguments);
+
+ LzTrack.register( this.boundsref, this._boundstrackgroup );
+ </method>
+
+ <!--- @keywords private -->
+ <method name="destroy" ><![CDATA[
+ this.setTracking(false);
+ //LzTrack.unregisterAll(this._trackgroup);//LPP-4429: we would call this if it was implemented
+ LzTrack.unregister(this.boundsref, this._boundstrackgroup);
+
+ if (_destroyDL in this) {
+ this._destroyDL.unregisterAll();
+ delete this._destroyDL;
+ }
+
+ if (_activateDL in this) {
+ this._activateDL.unregisterAll();
+ delete this._activateDL;
+ }
+
+ if (_deactivateDL in this) {
+ this._deactivateDL.unregisterAll();
+ delete this._deactivateDL;
+ }
+
+ if (_repeattrackDL in this) {
+ this._repeattrackDL.unregisterAll();
+ delete this._repeattrackDL;
+ }
+
+ delete this.activateevents;//improvement for "onremovesubview"
+ delete this.deactivateevents;//improvement for "onremovesubview"
+
+ super.destroy.apply(this, arguments);
+ ]]></method>
+
<!--- sets the view that will act as the bounds for this trackgroup -->
<method name="setBoundsRef" args="ref" >
this.boundsref = ref;
@@ -130,11 +172,6 @@
]]>
</handler>
- <!--- @keywords private -->
- <handler name="oninit" >
- LzTrack.register( this.boundsref, this._boundstrackgroup );
- </handler>
-
<!--- Called when the mouse is down and tracked
outside the bounding rect defined by boundsref. this method
generates the onmousetrackoutleft, onmousetrackoutright,
Modified: openlaszlo/branches/legals/lps/components/base/datalistselector.lzx
===================================================================
--- openlaszlo/branches/legals/lps/components/base/datalistselector.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/components/base/datalistselector.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -149,8 +149,8 @@
}
if ( ! immediateparent.subviews[0].cloneManager ) {
- return (immediateparent.subviews[0] == target_element ? 0 : -1);
- }
+ return (immediateparent.subviews[0] == s ? 0 : -1);
+ }
var nodelist = immediateparent.subviews[0].cloneManager.nodes;
var found_index = -1;
@@ -223,25 +223,27 @@
<method name="getItemByData" args="data">
<![CDATA[
- return getItemByIndex( this.getItemIndexByData( data ) );
+ return data ? getItemByIndex( this.getItemIndexByData( data ) ) : null;
]]>
</method>
<method name="getItemIndexByData" args="data">
<![CDATA[
- var svs = immediateparent.subviews;
- if (svs[0].cloneManager) {
- var nodes = svs[0].cloneManager['nodes'];
- if( nodes != null ) {
- for ( var i = 0; i< nodes.length; i++ ){
- if ( nodes[ i ] == data ){
- return i;
- }
- }
+ if (data) {
+ var svs = immediateparent.subviews;
+ if (svs[0].cloneManager) {
+ var nodes = svs[0].cloneManager['nodes'];
+ if( nodes != null ) {
+ for ( var i = 0; i< nodes.length; i++ ){
+ if ( nodes[ i ] == data ){
+ return i;
+ }
+ }
+ }
+ } else if( svs[0].datapath.p == data ) {
+ return 0;
}
}
- else if( svs[0].datapath.p == data )
- return 0;
return null;
]]>
</method>
Modified: openlaszlo/branches/legals/lps/components/extensions/drawview.lzx
===================================================================
--- openlaszlo/branches/legals/lps/components/extensions/drawview.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/components/extensions/drawview.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -734,7 +734,7 @@
m.curveTo(op[1], op[2], op[3], op[4]);
}
}
- this.context._visible = true;
+ this.context._visible = this.visible;
}
function clip () {
Modified: openlaszlo/branches/legals/lps/components/incubator/rich-text/formatfontcolor.lzx
===================================================================
--- openlaszlo/branches/legals/lps/components/incubator/rich-text/formatfontcolor.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/components/incubator/rich-text/formatfontcolor.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -34,7 +34,7 @@
itemclassname="colorswatch" itemdatapath="fontcolors:/clr"
focusable="false" listwidth="${this.bkgnd.mid.width}">
- <attribute name="editor" value="$once{this.parent.editor}" />
+ <attribute name="editor" />
<attribute name="toolbar" value="$once{this.parent}" />
<tooltip>Choose font color</tooltip>
@@ -45,9 +45,18 @@
<method name="init">
super.init();
toolbar.registerTool(this,"color");
+ </method>
+
+ <!-- When we get an editor to hook up to, make this menu's value
+ match up to the default color of the editor.
+ Fixes LPP-4461: In rich text editor, font color combo box does
+ not update when cursor moves to different colored text
+ [bshine 08.09.2007] -->
+ <method event="oneditor" args="e">
this.setValue(this.editor.defaultfontcolor, true);
- this.csq.setColor(this.editor.defaultfontcolor);
+ this.csq.setColor(this.editor.defaultfontcolor);
</method>
+
<!--- @keywords private
apply state for late instantiation of local data -->
<method name="construct" args="parent, args">
Modified: openlaszlo/branches/legals/lps/components/incubator/rich-text/richtexteditarea.lzx
===================================================================
--- openlaszlo/branches/legals/lps/components/incubator/rich-text/richtexteditarea.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/components/incubator/rich-text/richtexteditarea.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -4,7 +4,54 @@
-->
<library>
<include href="scrollrichedittext.lzx"/>
-
+
+
+
+ <!--
+ This is a fix for EM-1129 and LPP-4396: clicking bold moves the insertion
+ point. We need to store the selection before losing the selection to
+ another view. [bshine 2007.08.13]
+ -->
+ <script><![CDATA[
+ LzModeManager.rawMouseEvent = function ( eName ) {
+ //Debug.warn("rawmouseevent %w", eName);
+ //assume this happens before handleMouseEvent though order is
+ //not guaranteed
+
+ // Store the selection in the currently focused text editor
+ // (if any). Useful for restoring a text field's selection
+ // after a click event.
+ var focus = Selection.getFocus();
+ if (focus) {
+ // Debug.info("got focus: %w", focus);
+ // focus is a path string - we have to eval() it to get
+ // an actual movieclip
+ var textclip = eval(focus); // apologies - dstowell
+ // [NB dstowell] __LZrte is a field I created to
+ // store a reference to a rich text editor view
+ // in the textclip itself. This field is _not_ part
+ // of the LFC.
+ if ("__LZrte" in textclip) {
+ // if we get here, it means that the focus is
+ // currently the rich text editor. Before
+ // we handle the mouse event, store the selection.
+ var beginIndex = Selection.getBeginIndex();
+ var endIndex = Selection.getEndIndex();
+ if (-1 != beginIndex && -1 != endIndex) {
+ // Debug.warn("rawMouseEvent is changing the ssel and esel to %d-%d", beginIndex, endIndex);
+ textclip.__LZrte._ssel = beginIndex;
+ textclip.__LZrte._esel = endIndex;
+ }
+ }
+ }
+
+ this.clickStream.push( this.clstDict[ eName ] );
+ //call the cleanup delegate
+
+ this.callNext();
+ }
+ ]]></script>
+
<!---
A view which contains the text area for a rich text editor. Combine with a
richtexttoolbar to make an actual editor.
@@ -202,21 +249,7 @@
}
}
]]></method>
-
- <!--- Forget the selection if we lose focus to a focusable widget, but
- keep the selection if we lose focus to a non-focusable widget, like
- the toolbar buttons.
- @param view s: the view which is gaining the selection
- -->
- <method event="onblur" args="s">
- var start = this._field.getSelectionPosition();
- var size = this._field.getSelectionSize();
- this._ssel = start;
- this._esel = start + size;
- this._fieldhasfocus = false;
- </method>
-
<!--- If the mouse down is over me or any of my children, remember that,
so we can listen for an onmouseup anywhere. A mouseup after a mousedown
indicates that the selection has changed.
@@ -225,14 +258,15 @@
<method event="onmousedown" reference="LzGlobalMouse" args="who"><![CDATA[
if ((who != null) && (this._containsView(who))) {
// the mouse went down on a child of me
- // Debug.write("mousedown on child of me");
+ // Debug.info("mousedown on child of me, this is %w, who is %#w", this, who);
this._mousedownorigin = who;
} else if ((who == null) && (inp.containsPt(this.getMouse("x"), this.getMouse("y")))) {
// the mouse went down on me
// Debug.write("mousedown on me");
this._mousedownorigin = this;
} else {
- // the mouse went down on someone other than me; i'm not interested.
+ // the mouse went down on someone other than me,
+ // Debug.info("mousedown on someone else: %w", who);
this._mousedownorigin = null;
}
]]>
@@ -258,6 +292,7 @@
// 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"))) {
+ // Debug.info("mouse click starts and ends on RTE");
this._caretmove();
} else {
// Debug.write("handleLostMouseDown");
@@ -268,7 +303,6 @@
} 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 {
@@ -286,7 +320,7 @@
<!--- Save selected region. -->
<method name="saveSelectionRegion"><![CDATA[
- if (LzFocus.getFocus() == this._field) {
+ if (LzFocus.getFocus() == this._field) {
var selpos = this._field.getSelectionPosition();
var selsize = this._field.getSelectionSize();
if( selpos >= 0 && selsize >= 0){
@@ -355,7 +389,7 @@
var ssel = this._ssel;
var esel = this._esel;
-
+ // Debug.write("setFormatAttribute, sel is %d to %d", ssel, esel);
this.currentformat[attr] = val;
this.isHTML = true;
Modified: openlaszlo/branches/legals/lps/components/incubator/rich-text/scrollrichedittext.lzx
===================================================================
--- openlaszlo/branches/legals/lps/components/incubator/rich-text/scrollrichedittext.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/components/incubator/rich-text/scrollrichedittext.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -86,6 +86,16 @@
<event name="onpos" />
<attribute name="pos" value="0" setter="this.setPos(pos)"/>
+
+ <method name="init">
+ super.init();
+ // Store a link to the enclosing rich text edit area deep in this
+ // swf sprite, so that we can do a clever fix for LPP-4396,
+ // "clicking bold moves insertion point."
+ // See the LzModeManager.rawMouseEvent handler defined in
+ // richtexteditarea.lzx to see how we use this breadcrumb.
+ this.sprite.__LZtextclip.__LZrte = this.parent;
+ </method>
<!--- Set the scroll position and update the scrollbar to match
@param Number p: position-->
<method name="setPos" args="p">
Modified: openlaszlo/branches/legals/lps/components/incubator/rich-text/test/formatfontsize.lzx
===================================================================
--- openlaszlo/branches/legals/lps/components/incubator/rich-text/test/formatfontsize.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/components/incubator/rich-text/test/formatfontsize.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -20,7 +20,6 @@
the state delays instantiation until the RTE is used. -->
- <state name="fontSizeData">
<dataset name="fontsizes">
@@ -40,7 +39,6 @@
</dataset>
- </state>
@@ -50,7 +48,7 @@
- <attribute name="editor" value="$once{this.parent.editor}" />
+ <attribute name="editor" />
<attribute name="toolbar" value="$once{this.parent}" />
@@ -72,8 +70,6 @@
toolbar.registerTool(this,"size");
- this.setValue(this.editor.defaultfontsize, true);
-
</method>
<!--- @keywords private
@@ -84,8 +80,6 @@
super.construct(parent, args);
- fontSizeData.apply();
-
</method>
@@ -93,7 +87,7 @@
<!--- @keywords private -->
<method event="onselect"><![CDATA[
-
+ this.setChanged(true);
//------------------------------------------------------------
// make sure that we call into editor if this combobox has
@@ -103,18 +97,23 @@
//------------------------------------------------------------
if (this.changed && this.toolbar._passthruchanges) {
+ if ("editor" in this) {
+ this.editor.setFormatAttribute("size", this.getValue());
+ this.editor.delegateRestoreSelection();
+ }
- this.editor.setFormatAttribute("size", this.getValue());
-
- this.editor.delegateRestoreSelection();
-
- }
-
+ }
]]>
</method>
+ <!-- When we get an editor to hook up to, make this menu's value
+ match up to the default font of the editor. -->
+ <method event="oneditor" args="e">
+ this.setValue(this.editor.defaultfontsize, true);
+ </method>
+
<!--- method broadcast out by the toolbar for clearing tool's state -->
@@ -155,7 +154,7 @@
<!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2005-2006 Laszlo Systems, Inc. All Rights Reserved. *
+* Copyright 2005-2007 Laszlo Systems, Inc. All Rights Reserved. *
* Use is subject to license terms. *
* X_LZ_COPYRIGHT_END ****************************************************** -->
<!-- @LZX_VERSION@ -->
Modified: openlaszlo/branches/legals/lps/components/incubator/rich-text/test/richtexteditarea-test.lzx
===================================================================
--- openlaszlo/branches/legals/lps/components/incubator/rich-text/test/richtexteditarea-test.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/components/incubator/rich-text/test/richtexteditarea-test.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -26,9 +26,9 @@
<formatbtn name="boldbtn" id="gBoldBtn" format="bold" iconname="bold" icony="4" />
<formatbtn name="underlinebtn" id="gUnderlineBtn" format="underline" iconname="underline" />
<formatbtn name="italicbtn" id="gItalicBtn" format="italic" iconname="italic" icony="4" />
- <formatfontface name="fontfacecb" y="${(parent.height-this.height)/2}"/>
- <formatfontcolor name="fontcolorcb" y="${(parent.height-this.height)/2}"/>
- <formatfontsize name="fontsizecb" y="${Math.round((parent.height-this.height)/2)}"/>
+ <formatfontface name="fontfacecb" id="gFontFaceCB" y="${(parent.height-this.height)/2}"/>
+ <formatfontcolor name="fontcolorcb" id="gFontColorCB" y="${(parent.height-this.height)/2}"/>
+ <formatfontsize name="fontsizecb" id="gFontSizeCB" y="${Math.round((parent.height-this.height)/2)}"/>
</richtexttoolbar>
@@ -42,6 +42,16 @@
defaultfontcolor="0x336699"
border="10" text="For reasons which many persons thought ridiculous, Mrs. Lightfoot Lee decided to pass the winter in Washington. She was in excellent health, but she said that the climate would do her good. In New York she had troops of friends, but she suddenly became eager to see again the very small number of those who lived on the Potomac. It was only to her closest intimates that she honestly acknowledged herself to be tortured by ennui. Since her husband's death, five years before, she had lost her taste for New York society; she had felt no interest in the price of stocks, and very little in the men who dealt in them; she had become serious. What was it all worth, this wilderness of men and women as monotonous as the brown stone houses they lived in? In her despair she had resorted to desperate measures. She had read philosophy in the original German, and the more she read, the more she was disheartened that so much culture should lead to nothing... nothing.">
+ <method name="init">
+ super.init();
+ gBoldBtn.setAttribute("editor", this);
+ gUnderlineBtn.setAttribute("editor", this);
+ gItalicBtn.setAttribute("editor", this);
+ gFontFaceCB.setAttribute("editor", this);
+ gFontSizeCB.setAttribute("editor", this);
+ gFontColorCB.setAttribute("editor", this);
+ </method>
+
</richtexteditarea>
</view>
</view>
Modified: openlaszlo/branches/legals/lps/components/lz/list.lzx
===================================================================
--- openlaszlo/branches/legals/lps/components/lz/list.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/components/lz/list.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -313,6 +313,16 @@
if (this._bgcolor == null) interior.setBGColor(s.bgcolor);
}
</method>
+
+ <!--- @keywords private -->
+ <method name="destroy" ><![CDATA[
+ if (this.autoscrollbar)
+ this.setAttribute("autoscrollbar", false);
+ if (this.shownitems != -1)
+ this.setAttribute("shownitems", -1);
+
+ super.destroy.apply(this, arguments);
+ ]]></method>
<doc>
<tag name="shortdesc"><text>
contains listitems and provides selection capabilities.
Modified: openlaszlo/branches/legals/lps/components/lz/radio.lzx
===================================================================
--- openlaszlo/branches/legals/lps/components/lz/radio.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/components/lz/radio.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -33,6 +33,12 @@
<method name="applyData" args="d">
//try to find the relevant radio button, or clear selection if none
this._setvalue( d );
+ var item = null;
+ if (d != null) {
+ item = this.getItem( d );
+ }
+ if ( item ) this.select( item );
+ else this.clearSelection();
</method>
<!--- @keywords private -->
@@ -44,8 +50,6 @@
item = this.getItem( val );
}
this.value = val;
- if ( item ) this.select( item );
- else this.clearSelection();
} else {
this.value = val;
}
@@ -156,13 +160,6 @@
</method>
<!--- @keywords private -->
- <handler name="onclick">
- if (!this.selected) {
- parent.select(this);
- }
- </handler>
-
- <!--- @keywords private -->
<method name="setHilite" args="dohilite">
_title.setAttribute('fgcolor',
dohilite ? style.texthilitecolor : style.textcolor);
Modified: openlaszlo/branches/legals/lps/components/lz/tree.lzx
===================================================================
--- openlaszlo/branches/legals/lps/components/lz/tree.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/components/lz/tree.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -20,8 +20,8 @@
<!--- Folder/file icon resource:
frame 1 (open folder), frame 2 (closed folder), frame 3 (file) -->
<resource name="lztree_folder_rsc">
- <frame src="resources/tree/folder_closed.swf"/>
- <frame src="resources/tree/folder_opened.swf"/>
+ <frame src="resources/tree/folder_closed.png"/>
+ <frame src="resources/tree/folder_opened.png"/>
<frame src="resources/tree/document.swf"/>
</resource>
Modified: openlaszlo/branches/legals/lps/components/rpc/library/dhtml/rpc.js
===================================================================
--- openlaszlo/branches/legals/lps/components/rpc/library/dhtml/rpc.js 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/components/rpc/library/dhtml/rpc.js 2007-09-13 23:38:53 UTC (rev 6473)
@@ -139,11 +139,11 @@
if (delegate['dataobject'] != null) {
if ( delegate.dataobject instanceof LzDataset ) {
- var element = LzDataElement.prototype.valueToElement(data);
+ var element = LzDataElement.valueToElement(data);
// the child nodes of element will be placed in datasets childNodes
delegate.dataobject.setData( element.childNodes );
} else if ( delegate.dataobject instanceof LzDataElement ) {
- var element = LzDataElement.prototype.valueToElement(data);
+ var element = LzDataElement.valueToElement(data);
// xpath: element/value
delegate.dataobject.appendChild( element );
} else {
Modified: openlaszlo/branches/legals/lps/components/utils/replicator/lazyreplicator.lzx
===================================================================
--- openlaszlo/branches/legals/lps/components/utils/replicator/lazyreplicator.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/components/utils/replicator/lazyreplicator.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -35,8 +35,6 @@
super.construct( p, a );
this.__emptyArray = [];
this.clonedel = new LzDelegate( this, '__adjustVisibleClones');
- this.mask = this.parent.parent;
- this.container = this.parent;
}
// @keywords private
Modified: openlaszlo/branches/legals/lps/components/utils/replicator/replicator.lzx
===================================================================
--- openlaszlo/branches/legals/lps/components/utils/replicator/replicator.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/components/utils/replicator/replicator.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -25,6 +25,12 @@
<!--- A pixel amount to use between each replicated view -->
<attribute name="spacing" value="0" />
+ <!--- The view that will contain the replicated nodes. Defaults to the immediateparent of the replicator. -->
+ <attribute name="container" />
+
+ <!--- The view that will clip the replicated nodes. Defaults to the immediateparent of the container -->
+ <attribute name="mask" />
+
<!--- The list of elements controlled by this repliator -->
<attribute name="clones" />
@@ -105,6 +111,9 @@
// Spacing between replications
var spacing = 0;
+ var dataset = null;
+ var xpath = null;
+
// The list of elements controlled by this replicator
var clones = null;
var nodes = null;
@@ -119,13 +128,13 @@
this._cloneprops = [];
this._clonepool = [];
super.construct.apply(this, arguments);
+ this.container = this.immediateparent;
+ this.mask = this.container.immediateparent;
}
// @keywords private
function init() {
super.init.apply(this, arguments);
- // Set the layout in the view that will hold the replicated views
-// this.immediateparent.setAttribute('layout', {axis: this.axis, spacing: this.spacing});
if (this.dataset && this.xpath) {
this.setNodes(this.dataset.getPointer().xpathQuery(this.xpath))
}
@@ -138,7 +147,7 @@
//Debug.write( 'replicated', replicated );
if ( c.length ) {
Debug.warn("%s: only a single child view is replicated", this);
- this.immediateparent.createChildren( c );
+ this.container.createChildren( c );
} else {
this.__LZinstantiationDone();
}
@@ -160,7 +169,7 @@
this.setAttribute("replicatedsize", this.clones.length == 0
? 0
: this.clones[this.clones.length-1][this._sizes[this.axis]]);
- this.onnodes.sendEvent();
+ if (this.onnodes.ready) { this.onnodes.sendEvent(); }
}
// Insert a node in existing list of elements.
@@ -228,7 +237,7 @@
var v;
if ( this._clonepool.length ) {
v = this._clonepool.pop();
- v.setVisible( true );
+ if (v.visible != true) v.setVisible( true );
} else {
v = this._makeClone();
}
@@ -237,7 +246,7 @@
// @keywords private
function _makeClone () {
- var v = this.immediateparent.makeChild( this.replicated );
+ var v = this.container.makeChild( this.replicated );
v.setAttribute( "clonenumber", null );
return v;
}
@@ -245,7 +254,7 @@
// @keywords private
function poolClone (c) {
if ( c.clonenumber ) this.unbind( c );
- c.setVisible( false );
+ if (c.visible != false) c.setVisible( false );
this._clonepool.push( c );
}
@@ -262,20 +271,30 @@
// @param n: The node to which it is being set.
function setData (v, n) {
- v.setData( this.nodes[ n ] );
- v.applyData(this.nodes[n]);
+ if (v) {
+ v.setData( this.nodes[ n ] );
+ if (v['applyData']) v.applyData(this.nodes[n]);
+ }
}
// @keywords private
function __adjustVisibleClones () {
+ var p = this.parent;
+ for (var l in p.layouts) {
+ p.layouts[l].lock();
+ }
while( this.clones.length ) this.poolClone( this.clones.pop() );
- if (this.nodes != null) {
- for( var i = 0;i < this.nodes.length; i++ ){
+ if (this['nodes'] != null) {
+ var l = this.nodes.length;
+ for( var i = 0;i < l; i++ ){
var cl = this.getClone( );
this.bind( cl, i );
this.clones[ i ] = cl;
}
}
+ for (var l in p.layouts) {
+ p.layouts[l].unlock();
+ }
}
// Gets the clone for the given offset, scrolling it into view first
Modified: openlaszlo/branches/legals/lps/components/utils/replicator/replicatorselectionmanager.lzx
===================================================================
--- openlaszlo/branches/legals/lps/components/utils/replicator/replicatorselectionmanager.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/components/utils/replicator/replicatorselectionmanager.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -11,7 +11,7 @@
super.init.apply(this, arguments);
// If replicator is not specified, search siblings for a replicator
if (! this.replicator) {
- var s = parent.subnodes;
+ var s = immediateparent.subnodes;
if (s == null) return;
for (var i = s.length-1; i >= 0; i-- ) {
var si = s[ i ];
Modified: openlaszlo/branches/legals/lps/includes/source/embednew.js
===================================================================
--- openlaszlo/branches/legals/lps/includes/source/embednew.js 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/includes/source/embednew.js 2007-09-13 23:38:53 UTC (rev 6473)
@@ -247,7 +247,7 @@
// add lps vars to query string
if (i == 'lzr' || i == 'lzt'
- || i == 'krank' || i == 'debug' || i == 'profile'
+ || i == 'krank' || i == 'debug' || i == 'profile' || i == 'lzbacktrace'
|| i == 'lzdebug' || i == 'lzkrank' || i == 'lzprofile'
|| i == 'fb' || i == 'sourcelocators' || i == '_canvas_debug') {
query += i + '=' + v + '&';
@@ -503,6 +503,12 @@
subString: "Firefox",
identity: "Firefox"
},
+ {
+ string: navigator.userAgent,
+ subString: "Iceweasel",
+ versionSearch: "Iceweasel",
+ identity: "Firefox"
+ },
{ // for newer Netscapes (6+)
string: navigator.userAgent,
subString: "Netscape",
Modified: openlaszlo/branches/legals/lps/utils/viewer/viewer.jsp
===================================================================
--- openlaszlo/branches/legals/lps/utils/viewer/viewer.jsp 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/lps/utils/viewer/viewer.jsp 2007-09-13 23:38:53 UTC (rev 6473)
@@ -56,7 +56,7 @@
try {
String p = getServletContext().getRealPath(fname);
if (p != null && !new File(p).exists()) {
- String resolved = FileResolver.DEFAULT_FILE_RESOLVER.resolve(fname, base).toString();
+ String resolved = FileResolver.DEFAULT_FILE_RESOLVER.resolve(fname, base, false).toString();
if (resolved.startsWith(getServletContext().getRealPath(""))) {
fname = resolved.substring(getServletContext().getRealPath("").length());
found = true;
@@ -178,6 +178,6 @@
writer.close();
%>
<!-- * 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 ****************************************************** -->
Modified: openlaszlo/branches/legals/test/components/base/lzunit-basedatacombobox.lzx
===================================================================
--- openlaszlo/branches/legals/test/components/base/lzunit-basedatacombobox.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/test/components/base/lzunit-basedatacombobox.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -1,13 +1,15 @@
<canvas debug="true" title="lzunit-basedatacombobox.lzx" >
<include href="lzunit" />
<include href="base/basedatacombobox.lzx"/>
+ <include href="lz/plainfloatinglist.lzx" />
<!--
covers-tags: basedatacombobox smoketest
-->
- <class name="simplecombobox" extends="basedatacombobox" width="100">
+ <class name="simplecombobox" extends="basedatacombobox" width="100"
+ menuclassname="plainfloatinglist">
<attribute name="_cbtext" value="$once{this._text}"/>
<view width="100%" height="20" focusable="false" bgcolor="#CCCCCC">
<handler name="onclick">
@@ -36,11 +38,36 @@
<item value="3" text="C"/>
</dataset>
- <simplecombobox itemdatapath="ds1:/"/>
+ <simplecombobox x="100" id="scbox" itemdatapath="ds1:/item"/>
<TestSuite>
<TestCase>
+ <method name="testSimpleSetGet">
+ scbox.setValue(3);
+ assertEquals(3, scbox.getValue() );
+ </method>
+ <method name="testBadSelectionIndex">
+ scbox.setValue(2);
+ assertEquals( 2, scbox.getValue() );
+ scbox._updateSelectionByIndex( -1, false, false);
+ // Changing the selection to -1 should make the value become undefined, or null,
+ // but it shouldn't just keep the same value as before.
+ assertFalse( 2 == scbox.getValue() );
+ </method>
+
+ <method name="testSelectItemAt">
+ scbox.setValue(3);
+ scbox.selectItemAt(1);
+ assertEquals(2, scbox.getValue());
+ </method>
+
+ <method name="testBadSelectItemAt">
+ scbox.setValue(3);
+ scbox.selectItemAt(-1);
+ assertEquals('', scbox.getValue() );
+ </method>
+
</TestCase>
@@ -49,7 +76,7 @@
</canvas>
<!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2006 Laszlo Systems, Inc. All Rights Reserved. *
+* Copyright 2006-2007 Laszlo Systems, Inc. All Rights Reserved. *
* Use is subject to license terms. *
* X_LZ_COPYRIGHT_END ****************************************************** -->
<!-- @LZX_VERSION@ -->
Modified: openlaszlo/branches/legals/test/explicit-replicators/lazy-replicator.lzx
===================================================================
--- openlaszlo/branches/legals/test/explicit-replicators/lazy-replicator.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/test/explicit-replicators/lazy-replicator.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -1,5 +1,5 @@
<canvas debug="true" proxied="false">
- <debug x="200" y="0" height="100%" fontsize="16"/>
+ <debug x="50%" y="5%" height="90%" />
<dataset name="mydata">
<product name="vanilla" color="1 white"/>
Modified: openlaszlo/branches/legals/test/explicit-replicators/replicator.lzx
===================================================================
--- openlaszlo/branches/legals/test/explicit-replicators/replicator.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/test/explicit-replicators/replicator.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -9,8 +9,8 @@
</dataset>
<view name="bar">
+ <simplelayout axis="y" spacing="2" />
<replicator name="foo"
- axis="y" spacing="2"
dataset="mydata"
xpath="'/product/'">
<view bgcolor="red" height="23">
Modified: openlaszlo/branches/legals/test/explicit-replicators/test-replicator.lzx
===================================================================
--- openlaszlo/branches/legals/test/explicit-replicators/test-replicator.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/test/explicit-replicators/test-replicator.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -1,65 +1,143 @@
<!-- Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved. -->
-<canvas>
+<canvas debug="true" proxied="false">
+ <debug height="90%" width="40%" x="55%" y="5%" />
- <window width="200" height="200" name="repltest"
- resizable="true" title="lazy replicator">
- <lazyreplicator id="lr">
- <replicatorselectionmanager id="foo" name="selman"/>
- <handler name="oninit">
- this.setNodes( [ 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 ,
- 89 , 144 , 233 , 377 , 610 , 987 ,
- 1597 , 2584 , 4181 , 6765 , 10946 ,
- 17711 , 28657 , 46368 , 75025 , 121393 ,
- 196418 , 317811 , 514229 ] );
- </handler>
- <text width="1000">
- <attribute name="selected" value="false"/>
- <attribute name="bgcolor"
- value="${selected ? 0xCCDDEE : null }"/>
+ <dataset name="testdata">
+ <fibs>
+ <fib value="2" />
+ <fib value="3" />
+ <fib value="5" />
+ <fib value="8" />
+ <fib value="13" />
+ <fib value="21" />
+ <fib value="34" />
+ <fib value="55" />
+ <fib value="89" />
+ <fib value="144" />
+ <fib value="233" />
+ <fib value="377" />
+ <fib value="610" />
+ <fib value="987" />
+ <fib value="1597" />
+ <fib value="2584" />
+ <fib value="4181" />
+ <fib value="6765" />
+ <fib value="10946" />
+ <fib value="17711" />
+ <fib value="28657" />
+ <fib value="46368" />
+ <fib value="75025" />
+ <fib value="121393" />
+ <fib value="196418" />
+ <fib value="317811" />
+ <fib value="514229" />
+ </fibs>
+ </dataset>
- <method name="update" args="data , n">
- this.setText( n + " : " + data );
- </method>
- <handler name="onclick">
- parent.selman.select( this );
- </handler>
- </text>
- </lazyreplicator>
- <scrollbar id="sb"/>
- </window>
+ <text>
+ Compare explicit and implicit replicator behavior
+ </text>
- <window width="200" height="200" x="250"
- resizable="true" title="replicator">
- <replicator>
- <selectionmanager name="selman"/>
- <handler name="oninit">
- this.setNodes( [ 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 ,
- 89 , 144 , 233 , 377 , 610 , 987 ,
- 1597 , 2584 , 4181 , 6765 , 10946 ,
- 17711 , 28657 , 46368 , 75025 , 121393 ,
- 196418 , 317811 , 514229 ] );
- </handler>
- <simplelayout/>
- <text width="1000">
- <attribute name="selected" value="false"/>
- <attribute name="bgcolor"
- value="${selected ? 0xCCDDEE : null }"/>
+ <window width="20%" height="20%" x="5%" y="5%" name="explicitlazyrepltest"
+ resizable="true" title="explicit lazy replicator">
+ <list width="${immediateparent.width}" height="${immediateparent.height}">
+ <replicatorselectionmanager name="selman" />
+ <lazyreplicator id="elr" dataset="testdata" xpath="'fibs/fib'">
+ <text width="100">
+ <attribute name="selected" value="false"/>
+ <attribute name="bgcolor"
+ value="${selected ? 0xCCDDEE : null }"/>
+ <attribute name="index" value="$path{'position()'}" />
+ <attribute name="value" value="$path{'@value'}" />
+ <method name="applyData">
+ this.format('%s: %d', this.index, this.value);
+ </method>
+ <handler name="onclick">
+ Debug.write(parent.selman.isSelected( this ), parent.selman.toggle);
+ parent.selman.select( this );
+ </handler>
+ </text>
+ </lazyreplicator>
+ <!-- FIXME: [2007-08-10 ptw] (LPP-4484) -->
+ <!-- NOT WORKING scrollbar id="lsb" scrolltarget="immediateparent" -->
+ </list>
+ </window>
- <method name="setSelected" args="isSel">
- parent.setCloneProperty( this, "selected", isSel );
- </method>
+ <window width="20%" height="20%" x="30%" y="5%" name="implicitlazyrepltest"
+ resizable="true" title="implicit lazy replicator">
+ <list width="${immediateparent.width}" height="${immediateparent.height}" >
+ <selectionmanager name="selman" />
+ <text width="100" id="ilr">
+ <datapath xpath="testdata:/fibs/fib" replication="lazy" />
+ <attribute name="selected" value="false"/>
+ <attribute name="bgcolor"
+ value="${('selected' in this && this.selected) ? 0xCCDDEE : null }"/>
+ <attribute name="index" value="$path{'position()'}" />
+ <attribute name="value" value="$path{'@value'}" />
+ <handler name="ondata">
+ this.format('%s: %d', this.index, this.value);
+ </handler>
+ <handler name="onclick">
+ Debug.write(parent.selman.isSelected( this ), parent.selman.toggle);
+ parent.selman.select( this );
+ </handler>
+ <method name="setSelected" args="value">
+ this.selected = value;
+ this.onselected.sendEvent(value);
+ </method>
+ </text>
+ </list>
+ </window>
- <method name="update" args="data , n">
- this.setText( n + " : " + data );
- </method>
- <handler name="onclick">
- Debug.write( parent.selman.isSelected( this ) ,
- parent.selman.toggle );
- parent.selman.select( this );
- </handler>
- </text>
- </replicator>
- <scrollbar/>
- </window>
+ <window width="20%" height="20%" x="5%" y="50%" name="explicitsimplerepltest"
+ resizable="true" title="explicit replicator">
+ <list width="${immediateparent.width}" height="${immediateparent.height}">
+ <replicatorselectionmanager name="selman" />
+ <simplelayout axis="y" spacing="0" />
+ <replicator id="esr" dataset="testdata" xpath="'/fibs/fib'">
+ <text width="100">
+ <attribute name="selected" value="false"/>
+ <attribute name="bgcolor"
+ value="${selected ? 0xCCDDEE : null }"/>
+ <attribute name="index" value="$path{'position()'}" />
+ <attribute name="value" value="$path{'@value'}" />
+ <method name="applyData">
+ this.format('%s: %d', this.index, this.value);
+ </method>
+ <handler name="onclick">
+ Debug.write(parent.selman.isSelected( this ), parent.selman.toggle);
+ parent.selman.select( this );
+ </handler>
+ </text>
+ </replicator>
+ </list>
+ </window>
+ <window width="20%" height="20%" x="30%" y="50%" name="implicitsimplerepltest"
+ resizable="true" title="implicit replicator">
+ <list width="${immediateparent.width}" height="${immediateparent.height}">
+ <selectionmanager name="selman" />
+ <simplelayout axis="y" spacing="0" />
+ <text width="100" id="isr" datapath="testdata:/fibs/fib">
+ <attribute name="selected" value="false" setter="setSelected" />
+ <attribute name="bgcolor"
+ value="${('selected' in this && this.selected) ? 0xCCDDEE : null }"/>
+ <attribute name="index" value="$path{'position()'}" />
+ <attribute name="value" value="$path{'@value'}" />
+ <handler name="ondata">
+ this.format('%s: %d', this.index, this.value);
+ </handler>
+ <handler name="onclick">
+ Debug.write(parent.selman.isSelected( this ), parent.selman.toggle);
+ parent.selman.select( this );
+ </handler>
+ <method name="setSelected" args="value">
+ this.selected = value;
+ this.onselected.sendEvent(value);
+ </method>
+ </text>
+ </list>
+ </window>
+
</canvas>
+<!-- Copyright 2007 Laszlo Systems, Inc. All Rights Reserved. -->
Modified: openlaszlo/branches/legals/test/lfc/lztrack/depthbug.lzx
===================================================================
--- openlaszlo/branches/legals/test/lfc/lztrack/depthbug.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/test/lfc/lztrack/depthbug.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -1,17 +1,17 @@
-<!-- Copyright 2001-2006 Laszlo Systems, Inc. All Rights Reserved. -->
+<!-- Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved. -->
<canvas debug="true">
<!-- Can't put bgcolor on the view b/c LzTrack doesn't work if there's
no __LZmovieClipRef ;) LPP-1582 -->
<view name="a">
<handler name="onmousetrackover">
- Debug.write( this );
+ Debug.write( 'red' );
</handler>
<view bgcolor="red" width="100" height="100"/>
</view>
<view name="b" x="50" y="50">
<handler name="onmousetrackover">
- Debug.write( this );
+ Debug.write( 'blue' );
</handler>
<view bgcolor="blue" width="100" height="100"/>
</view>
Modified: openlaszlo/branches/legals/test/lfc/lztrack/trackgroups.lzx
===================================================================
--- openlaszlo/branches/legals/test/lfc/lztrack/trackgroups.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/test/lfc/lztrack/trackgroups.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -8,19 +8,19 @@
<attribute name="trackgroup" type="string" value="${parent.trackgroup}"/>
<attribute name="mycolor" value="0x000099"/>
<method event="oninit">
- debug.write("LzTrack.register(" + this, this.trackgroup + ")");
+ Debug.write("LzTrack.register(" + this, this.trackgroup + ")");
LzTrack.register(this, this.trackgroup);
</method>
<method event="onmousetrackover">
setAttribute('bgcolor', 0x00dd00);
- debug.write("onmousetrackover", this);
+ Debug.write("onmousetrackover", this);
</method>
<method event="onmousetrackout">
setAttribute('bgcolor', this.mycolor);
- debug.write("onmousetrackout", this);
+ Debug.write("onmousetrackout", this);
</method>
<method event="onmousetrackup">
- debug.write("onmousetrackup", this);
+ Debug.write("onmousetrackup", this);
</method>
</class>
@@ -40,10 +40,10 @@
<checkbox text="${'group: ' + parent.trackgroup}">
<method event="onvalue" args="v">
if (v) {
- debug.write('activate: '+parent.trackgroup);
+ Debug.write('activate: '+parent.trackgroup);
LzTrack.activate(parent.trackgroup);
} else {
- debug.write('deactivate: '+parent.trackgroup);
+ Debug.write('deactivate: '+parent.trackgroup);
LzTrack.deactivate(parent.trackgroup);
}
</method>
@@ -61,11 +61,11 @@
<checkbox text="${'groups: twoA and twoB'}">
<method event="onvalue" args="v">
if (v) {
- debug.write('activate: twoA and twoB');
+ Debug.write('activate: twoA and twoB');
LzTrack.activate("twoA");
LzTrack.activate("twoB");
} else {
- debug.write('deactivate: twoA and twoB');
+ Debug.write('deactivate: twoA and twoB');
LzTrack.deactivate("twoA");
LzTrack.deactivate("twoB");
}
@@ -74,19 +74,19 @@
<view bgcolor="0xddddff" name="container" width="84">
<attribute name="trackgroup" value="twoA" type="string"/>
<method event="oninit">
- debug.write("LzTrack.register(" + this, this.trackgroup + ")");
+ Debug.write("LzTrack.register(" + this, this.trackgroup + ")");
LzTrack.register(this, this.trackgroup);
</method>
<method event="onmousetrackover">
setAttribute('bgcolor', 0xdddd00);
- debug.write("onmousetrackover", this);
+ Debug.write("onmousetrackover", this);
</method>
<method event="onmousetrackout">
setAttribute('bgcolor', 0xddddff);
- debug.write("onmousetrackout", this);
+ Debug.write("onmousetrackout", this);
</method>
<method event="onmousetrackup">
- debug.write("onmousetrackup", this);
+ Debug.write("onmousetrackup", this);
</method>
@@ -106,7 +106,7 @@
</view>
<!-- * 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 ****************************************************** -->
</canvas>
Modified: openlaszlo/branches/legals/test/style/simple/simple.lzx
===================================================================
--- openlaszlo/branches/legals/test/style/simple/simple.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/test/style/simple/simple.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -39,10 +39,11 @@
<class name="SimpleTestCase" extends="TestCase">
<method name="testBasics">
assertEquals(50, gSoy.width); // KNOWN TO FAIL by bshine as of 08.01.2007
+ Debug.warn('expected 50 got 279 is a known failure in simple.lzx');
assertEquals(75, gAngelica.width);
</method>
<method name="testColors">
assertEquals(0x6ab5e6, gTravis.innercolor);
</method>
</class>
-</library>
\ No newline at end of file
+</library>
Modified: openlaszlo/branches/legals/test/style/simple/undefineds.lzx
===================================================================
--- openlaszlo/branches/legals/test/style/simple/undefineds.lzx 2007-09-13 23:15:46 UTC (rev 6472)
+++ openlaszlo/branches/legals/test/style/simple/undefineds.lzx 2007-09-13 23:38:53 UTC (rev 6473)
@@ -21,15 +21,15 @@
<simplelayout />
</class>
- <box id="t" />
+ <box id="fazzleblarb" />
<!-- See LPP-4182 undefined CSS values used to be null. now they're undefined. -->
<class name="UndefinedsTestCase" extends="TestCase">
<method name="testUndefinedIsUndefined">
- assertUndefined(t.getAttribute("foobles"));
+ assertUndefined(fazzleblarb.getAttribute("foobles"));
</method>
<method name="testUnspecifiedIsUndefined">
- assertUndefined(t.getAttribute("undef"));
+ assertUndefined(fazzleblarb.getAttribute("undef"));
</method>
</class>
@@ -37,4 +37,4 @@
Debug.info("there should be a warning about a reference to an undefined property 'undef'");
</script>
</library>
-<!-- Copyright 2007 Laszlo Systems, Inc. All Rights Reserved. -->
\ No newline at end of file
+<!-- Copyright 2007 Laszlo Systems, Inc. All Rights Reserved. -->
More information about the Laszlo-checkins
mailing list