Author: dda Date: 2008-01-16 12:58:33 -0800 (Wed, 16 Jan 2008) New Revision: 7841
Added: openlaszlo/branches/devildog/docs/src/developers/images/datarequest.png Modified: openlaszlo/branches/devildog/ openlaszlo/branches/devildog/3rd-party/index.html openlaszlo/branches/devildog/WEB-INF/lps/lfc/debugger/LzTrace.lzs openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/dhtml/LzInputTextSprite.js openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzLibraryLoader.lzs openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzLoader.lzs openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzSprite.as openlaszlo/branches/devildog/WEB-INF/lps/lfc/services/platform/dhtml/LzBrowser.js openlaszlo/branches/devildog/WEB-INF/lps/lfc/views/LzInputText.lzs openlaszlo/branches/devildog/WEB-INF/lps/lfc/views/LzText.lzs openlaszlo/branches/devildog/WEB-INF/lps/server/sc/src/org/openlaszlo/sc/Parser.jjt openlaszlo/branches/devildog/WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/ASTIdentifier.java openlaszlo/branches/devildog/WEB-INF/lps/server/src/org/openlaszlo/compiler/NodeModel.java openlaszlo/branches/devildog/docs/src/build.xml openlaszlo/branches/devildog/docs/src/developers/constraints.dbk openlaszlo/branches/devildog/docs/src/developers/doc-toolchain.dbk openlaszlo/branches/devildog/docs/src/developers/programs/databinding-$9.lzx openlaszlo/branches/devildog/examples/components/style_example.html openlaszlo/branches/devildog/laszlo-explorer/coverpages/welcome/index.html openlaszlo/branches/devildog/lps/components/utils/layouts/simplelayout.lzx openlaszlo/branches/devildog/test/typevar.lzx Log: Merged revisions 7769-7840 via svnmerge from http://svn.openlaszlo.org/openlaszlo/trunk ....... r7775 | hqm | 2008-01-08 19:14:09 -0500 (Tue, 08 Jan 2008) | 28 lines Change 20080108-hqm-6 by [EMAIL PROTECTED] on 2008-01-08 17:21:21 EST in /cygdrive/c/users/hqm/openlaszlo/trunk/WEB-INF/lps/lfc for http://svn.openlaszlo.org/openlaszlo/trunk/WEB-INF/lps/lfc Summary: fix for null-setter warning in lzloadlibrary New Features: Bugs Fixed: LPP-5189 Technical Reviewer: andre QA Reviewer: ptw Doc Reviewer: Documentation: Release Notes: Details: remove calls which used to apply to LzLibrary when it subclassed LzView Tests: see bug report ....... r7776 | max | 2008-01-08 21:59:23 -0500 (Tue, 08 Jan 2008) | 24 lines Change 20080106-maxcarlson-I by [EMAIL PROTECTED] on 2008-01-06 22:14:21 PST in /Users/maxcarlson/openlaszlo/trunk for http://svn.openlaszlo.org/openlaszlo/trunk Summary: Fix URI-unescaping in DHTML to convert + to spaces New Features: Bugs Fixed: LPP-5277 - LzBrowser.urlUnescape does not unescape + chars on DHTML environment Technical Reviewer: ptw QA Reviewer: promanik Doc Reviewer: (pending) Documentation: Release Notes: Details: Convert + to ' ' before unescaping strings. Tests: See LPP-5277 ....... r7781 | lou | 2008-01-09 07:30:11 -0500 (Wed, 09 Jan 2008) | 15 lines Change 20080109-lou-3 by [EMAIL PROTECTED] on 2008-01-09 08:24:57 AST in /Users/lou/src/svn/openlaszlo/trunk for http://svn.openlaszlo.org/openlaszlo/trunk Summary: update welcome screen to 4.1 New Features: Bugs Fixed: LPP-5334 Technical Reviewer: (pending) QA Reviewer: Mayme Kratt Doc Reviewer: (pending) ....... r7783 | lou | 2008-01-09 11:18:34 -0500 (Wed, 09 Jan 2008) | 15 lines Change 20080109-lou-h by [EMAIL PROTECTED] on 2008-01-09 12:11:35 AST in /Users/lou/src/svn/openlaszlo/trunk for http://svn.openlaszlo.org/openlaszlo/trunk Summary: fix broken links in the dguide that were showing up as ???. Bugs Fixed: LPP-5342 Technical Reviewer: (pending) QA Reviewer: (pending) Doc Reviewer: (pending) Tests: tested links ....... r7785 | lou | 2008-01-09 11:36:47 -0500 (Wed, 09 Jan 2008) | 12 lines Change 20080109-lou-o by [EMAIL PROTECTED] on 2008-01-09 12:29:11 AST in /Users/lou/src/svn/openlaszlo/trunk for http://svn.openlaszlo.org/openlaszlo/trunk Summary: add image for data provider chapter Technical Reviewer: (pending) QA Reviewer: (pending) Doc Reviewer: (pending) ....... r7786 | ptw | 2008-01-09 12:22:19 -0500 (Wed, 09 Jan 2008) | 21 lines Change 20080109-ptw-G by [EMAIL PROTECTED] on 2008-01-09 12:11:23 EST in /Users/ptw/OpenLaszlo/ringding-clean for http://svn.openlaszlo.org/openlaszlo/trunk Summary: Fixing a hole where the rain gets in Bugs Fixed: LPP-5337 'Multiframe resource assigned via $style within a view that is init stage late runs a bit and gets orphaned in onidle' Technical Reviewer: max (message://<[EMAIL PROTECTED]>) QA Reviewer: mdemmon (pending) Details: Consider the case where tracking is stopped before checkPlayStatus gets to run: Instead of using callOnIdle, which cannot be cancelled, register on onidle, so you can be cancelled. Tests: Test case from bug no longer leaves delegates on idle queue ....... r7788 | lou | 2008-01-09 14:19:48 -0500 (Wed, 09 Jan 2008) | 24 lines Change 20080109-lou-G by [EMAIL PROTECTED] on 2008-01-09 15:13:52 AST in /Users/lou/src/svn/openlaszlo/trunk for http://svn.openlaszlo.org/openlaszlo/trunk Summary: fix problem where the tutorials were not loading glyphs New Features: Bugs Fixed: LPP-5216 Technical Reviewer: (pending) QA Reviewer: (pending) Doc Reviewer: (pending) Details: because the tutorials are one directory level down from the dguide, the glyphs for conditionals such as DHTML, warning, etc. were not found. Modify build.xml to copy the glyphs directory (/includes) to the dguide where the tutorials can find them. Tests: verify visually ....... r7791 | hqm | 2008-01-09 16:02:32 -0500 (Wed, 09 Jan 2008) | 26 lines Change 20080109-hqm-6 by [EMAIL PROTECTED] on 2008-01-09 16:00:58 EST in /cygdrive/c/users/hqm/openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf for http://svn.openlaszlo.org/openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf Summary: fix for debugging info from lzloader New Features: Bugs Fixed: LPP-5314 Technical Reviewer: andre (pending) QA Reviewer: ptw Doc Reviewer: Documentation: Release Notes: Details: get the url from the correct place when debug string is generated Tests: ....... r7793 | bargull | 2008-01-09 17:02:01 -0500 (Wed, 09 Jan 2008) | 35 lines Change 20080106-bargull-2 by [EMAIL PROTECTED] on 2008-01-06 17:19:46 in /home/Admin/src/svn/openlaszlo/trunk for http://svn.openlaszlo.org/openlaszlo/trunk Summary: Adding maxlength for multiline-inputtext (DHTML) New Features: Bugs Fixed: LPP-4747 - "Edittext maxlength does not work" Technical Reviewer: max QA Reviewer: promanik Doc Reviewer: (pending) Documentation: Release Notes: Details: The HTML-<textarea> object does not support maxlength natively, so we need to implement a js-solution for DHTML. To get the best visual experience, I'm using the "onkeypress"-event, this way we can easily interrupt any user-input as soon as the maxlength for the inputtext has been reached. As keyboard-events are handled quite differently across all supported browsers, I needed to add a couple of new quirks to LzSprite, but most of them should be self-explanatory (also see http://www.quirksmode.org/js/keys.html). Pasting text into an inputtext is special-handled to match Flash's behaviour as much as possible: - for IE/Safari, I'm simply using the "onbeforepaste"-event - for Firefox/Opera, I need to detect paste manually because these browsers do not support "onbeforepaste" Flash-behaviour: you can only paste that much chars, as you have still available in the inputtext. Changes in LzText and LzInputText fixes two "stale-data" bugs: you cannot use LzInputText#text to retrieve the current text-value, because this property does not get updated when the user types in any text. Instead of that, you must use LzInputText#getText(). Tests: see bug-description ....... r7794 | bargull | 2008-01-09 18:43:03 -0500 (Wed, 09 Jan 2008) | 25 lines Change 20080106-bargull-0 by [EMAIL PROTECTED] on 2008-01-06 00:25:06 in /home/Admin/src/svn/openlaszlo/trunk for http://svn.openlaszlo.org/openlaszlo/trunk Summary: Fix simplelayout optimization-bug New Features: Bugs Fixed: LPP-3812 - "simplelayout does not correctly position views that are programmatically created" Technical Reviewer: promanik QA Reviewer: frisco Doc Reviewer: (pending) Documentation: Release Notes: Details: You need to take last visible subview to compute new layout-position. Just taking the last subview leads to a bug when this view is non-visible. Also fixed another bug, so now new layout-position correctly respects inset-property. Tests: ....... r7802 | ptw | 2008-01-10 14:26:48 -0500 (Thu, 10 Jan 2008) | 27 lines Change 20080109-ptw-h by [EMAIL PROTECTED] on 2008-01-09 19:27:19 EST in /Users/ptw/OpenLaszlo/ringding-clean for http://svn.openlaszlo.org/openlaszlo/trunk Summary: Remove deprecation of datacontrolsvisibility Bugs Fixed: LPP-5066 '"datacontrolsvisibility" warning is out of date' Technical Reviewer: [EMAIL PROTECTED] (verbal) QA Reviewer: [EMAIL PROTECTED] (pending) Doc Reviewer: [EMAIL PROTECTED] (pending) Documentation: datacontrolsvisibility attribute of datapaths has been deprecated for 2 major releases and now is uhsupported, it should be removed from the documentation. Details: Henry already removed it from the schema and warns that it is bad, so I just removed the (now redundant) deprecation. Tests: The test case now yields the following compiler warning: lpp-5066.lzx:3:57: found an unknown attribute named "datacontrolsvisibility" on element datapath, check the spelling of this attribute name ....... r7806 | dda | 2008-01-10 14:45:34 -0500 (Thu, 10 Jan 2008) | 38 lines Change 20080109-dda-l by [EMAIL PROTECTED] on 2008-01-09 16:00:35 EST in /Users/dda/laszlo/src/svn/openlaszlo/trunk for http://svn.openlaszlo.org/openlaszlo/trunk Summary: Script compiler: Backported :* typing from devildog to trunk; added typing in 'for var in' statements. New Features: Any variable can be declared with :* (in addition to :typename as before). Bugs Fixed: LPP-5059 Technical Reviewer: ptw (pending) QA Reviewer: hminsky (pending) Doc Reviewer: (pending) Documentation: Conforms with ECMAScript-4 draft standard. Release Notes: Details: One part of this change (:* types) is backported from devildog - the change was small and relatively independent and should have been made in trunk/RingDing before. The other part of this change is a small grammar change to allow typing in 'for var in' statements, like so: for (var:typename in xxx) or for (var:* in xxx) etc. Tests: smoketest Updated test/typevar.lzx to have a couple tests for 'for var in' and :*, which were not there before. ....... r7822 | lou | 2008-01-14 10:59:50 -0500 (Mon, 14 Jan 2008) | 23 lines Change 20080114-lou-Z by [EMAIL PROTECTED] on 2008-01-14 11:52:34 AST in /Users/lou/src/svn/openlaszlo/trunk for http://svn.openlaszlo.org/openlaszlo/trunk Summary: text was wrapping around example window badly. Bugs Fixed: LPP-5079 Technical Reviewer: (pending) QA Reviewer: (pending) Doc Reviewer: (pending) Details: This is not really a bug, but a function of how wide the browser window is. If you make the browser window wide enough, the complete text appears to the right of the example window as designed. I did reduce the space between the example window and the text, so this is less likely to happen. Tests: visual check ....... r7828 | lou | 2008-01-14 14:21:33 -0500 (Mon, 14 Jan 2008) | 20 lines Change 20080114-lou-m by [EMAIL PROTECTED] on 2008-01-14 15:17:18 AST in /Users/lou/src/svn/openlaszlo/trunk/docs/src for http://svn.openlaszlo.org/openlaszlo/trunk/docs/src Summary: fixed example 37.7, manipulating datapointers, in the dguide New Features: Bugs Fixed: LPP-5293 Technical Reviewer: (pending) QA Reviewer: (pending) Doc Reviewer: (pending) Details: revert to the 3.4 version of the example Tests: visual check ....... r7833 | ptw | 2008-01-15 09:40:47 -0500 (Tue, 15 Jan 2008) | 19 lines Change 20080115-ptw-k by [EMAIL PROTECTED] on 2008-01-15 09:35:11 EST in /Users/ptw/OpenLaszlo/ringding-clean for http://svn.openlaszlo.org/openlaszlo/trunk Summary: Make Debug.trace work with 'traditional' Javascript objects Bugs Fixed: LPP-5359 'Debug.trace does not work for 'traditional' Javascript objects' Technical Reviewer: [EMAIL PROTECTED] (pending) Details: Only use addProperty if the object is an instance of Instance, otherwise do it manually. Tests: IWFM ....... r7836 | mkratt | 2008-01-15 15:04:26 -0500 (Tue, 15 Jan 2008) | 1 line skip-pre-commit-checks Change Copyright from 2006 Laszlo Systems to 2005-2006, The Dojo Foundation, bypass because cannot have 2 copyrights ....... Property changes on: openlaszlo/branches/devildog ___________________________________________________________________ Name: svnmerge-integrated - /openlaszlo/branches/wafflecone:1-5746,5818-6068,6070-6205,6207-6213,6216-6265,6267-6368,6370-6431,6433-6450,6497 /openlaszlo/trunk:1-7768 + /openlaszlo/branches/wafflecone:1-5746,5818-6068,6070-6205,6207-6213,6216-6265,6267-6368,6370-6431,6433-6450,6497 /openlaszlo/trunk:1-7840 Modified: openlaszlo/branches/devildog/3rd-party/index.html =================================================================== --- openlaszlo/branches/devildog/3rd-party/index.html 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/3rd-party/index.html 2008-01-16 20:58:33 UTC (rev 7841) @@ -3,5 +3,5 @@ <li>custom rhino jar from dojotoolkit.org. Rhino comes from <a href="http://www.mozilla.org/rhino">Mozilla</a> </li> </ul> -<p>Copyright 2006 Laszlo Systems</p> +<p>Copyright (c) 2005-2006, The Dojo Foundation</p> </html> Modified: openlaszlo/branches/devildog/WEB-INF/lps/lfc/debugger/LzTrace.lzs =================================================================== --- openlaszlo/branches/devildog/WEB-INF/lps/lfc/debugger/LzTrace.lzs 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/WEB-INF/lps/lfc/debugger/LzTrace.lzs 2008-01-16 20:58:33 UTC (rev 7841) @@ -3,7 +3,7 @@ /** * Support for tracing function calls in the debugger * - * @copyright Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved. + * @copyright Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved. * Use is subject to license terms. * * @access public @@ -79,10 +79,17 @@ return r; }; m._dbg_previous_definition = f; - who.addProperty(what, m); + // Use addProperty for our classes, otherwise just jam it in + if (who is Instance) { + who.addProperty(what, m); + } else { + who[what] = m; + } + return who[what] === m; } else { Debug.error('%w.%s is not a function', who, what); } + return false; } /** @@ -105,12 +112,19 @@ } // If that didn't work, apply previous if (who[what] !== p) { - who.addProperty(what, p); + // Use addProperty for our classes, otherwise just jam it in + if (who is Instance) { + who.addProperty(what, p); + } else { + who[what] = p; + } } + return who[what] === p; } else { Debug.error('%w.%s is not being traced', who, what); } } else { Debug.error('%w.%s is not a function', who, what); } + return false; } Modified: openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/dhtml/LzInputTextSprite.js =================================================================== --- openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/dhtml/LzInputTextSprite.js 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/dhtml/LzInputTextSprite.js 2008-01-16 20:58:33 UTC (rev 7841) @@ -34,6 +34,7 @@ // Should reflect CSS defaults in LzSprite.js LzInputTextSprite.prototype.____hpadding = 2; LzInputTextSprite.prototype.____wpadding = 2; +LzInputTextSprite.prototype.____crregexp = new RegExp('\\r\\n', 'g'); LzInputTextSprite.prototype.__createInputText = function(t) { if (this.__LzInputDiv) return; @@ -216,8 +217,12 @@ this.__LzInputDiv.onclick = function (e) { this.owner.__textEvent(e, 'onclick') } this.__LzInputDiv.onkeyup = function (e) { this.owner.__textEvent(e, 'onkeyup') } this.__LzInputDiv.onkeydown = function (e) { this.owner.__textEvent(e, 'onkeydown') } + this.__LzInputDiv.onkeypress = function (e) { this.owner.__textEvent(e, 'onkeypress') } this.__LzInputDiv.onselect = function (e) { this.owner.__textEvent(e, 'onselect') } this.__LzInputDiv.onchange = function (e) { this.owner.__textEvent(e, 'onchange') } + if (this.quirks.ie_paste_event || this.quirks.safari_paste_event) { + this.__LzInputDiv.onpaste = function (e) { this.owner.__pasteHandlerEx(e) } + } } else { this.__LzInputDiv.onblur = null; this.__LzInputDiv.onmousedown = null; @@ -225,11 +230,108 @@ this.__LzInputDiv.onclick = null; this.__LzInputDiv.onkeyup = null; this.__LzInputDiv.onkeydown = null; + this.__LzInputDiv.onkeypress = null; this.__LzInputDiv.onselect = null; this.__LzInputDiv.onchange = null; + if (this.quirks.ie_paste_event || this.quirks.safari_paste_event) { + this.__LzInputDiv.onpaste = null; + } } } +LzInputTextSprite.prototype.__pasteHandlerEx = function (evt) { + if (this.multiline && this.owner.maxlength > 0) { + evt = evt ? evt : window.event; + + if (this.quirks.safari_paste_event) { + var clipboardTxt = evt.clipboardData.getData("text/plain"); + } else { + var clipboardTxt = window.clipboardData.getData("TEXT"); + clipboardTxt = clipboardTxt.replace(this.____crregexp, '\n'); + } + + if (this.quirks.text_ie_carriagereturn) { + var len = this.__LzInputDiv.value.replace(this.____crregexp, '\n').length; + } else { + var len = this.__LzInputDiv.value.length; + } + + var selsize = this.getSelectionSize(); + if (selsize < 0) selsize = 0;//[TODO anba 2008-01-06] remove after LPP-5330 + var max = this.owner.maxlength + selsize; + var stopPaste = false; + + var maxchars = max - len; + if (maxchars > 0) { + var txt = clipboardTxt; + var txtLen = txt.length; + + if (txtLen > maxchars) { + txt = txt.substring(0, maxchars); + stopPaste = true; + } + } else { + var txt = ""; + stopPaste = true; + } + + if (stopPaste) { + evt.returnValue = false; + if (evt.preventDefault) { + evt.preventDefault(); + } + + if (txt.length > 0) { + if (this.quirks.safari_paste_event) { + var val = this.__LzInputDiv.value; + var selpos = this.getSelectionPosition(); + + //update value + this.__LzInputDiv.value = val.substring(0, selpos) + txt + val.substring(selpos + selsize); + + //fix selection + this.__LzInputDiv.setSelectionRange(selpos + txt.length, selpos + txt.length); + } else { + var range = document.selection.createRange(); + //this updates value and ensures right selection + range.text = txt; + } + } + } + } +} + +LzInputTextSprite.prototype.__pasteHandler = function () { + var selpos = this.getSelectionPosition(); + var selsize = this.getSelectionSize(); + var val = this.__LzInputDiv.value; + var that = this; + + //use 1ms timeout to give UI enough time for updating + setTimeout(function() { + var newval = that.__LzInputDiv.value; + var newlen = newval.length; + var max = that.owner.maxlength; + + if (newlen > max) { + var len = val.length; + var maxchars = max + selsize - len; + + //this was pasted + var newc = newval.substr(selpos, newlen - len + selsize); + //but we can only take at max that many chars + newc = newc.substring(0, maxchars); + + //update value + that.__LzInputDiv.value = val.substring(0, selpos) + newc + val.substring(selpos + selsize); + + //fix selection + //note: we're in Firefox/Opera, so we can savely call "setSelectionRange" + that.__LzInputDiv.setSelectionRange(selpos + newc.length, selpos + newc.length); + } + }, 1); +} + LzInputTextSprite.prototype.__textEvent = function ( e, eventname ){ if (this.__LZdeleted == true) return; var keycode = e ? e.keyCode : event.keyCode; @@ -258,6 +360,70 @@ this.__setglobalclickable(true); } + if (this.multiline && this.owner.maxlength > 0) { + if (eventname == 'onkeypress') { + var evt = e ? e : event; + var charcode = this.quirks.text_event_charcode ? evt.charCode : evt.keyCode; + + /* BUG: + * env: Safari - Win + * -> last char is \n, delete per backspace, notice Safari-UI did update, + * but __LzInputDiv.value still holds the \n! + * blur inputtext, focus again -> \n is again there, also in UI! + * what about Safari - Mac? + */ + + //Debug.write("charCode = %s, keyCode = %s, ctrlKey = %s, altKey = %s, shiftKey = %s", charcode, keycode, evt.ctrlKey, evt.altKey, evt.shiftKey); + + if (!(evt.ctrlKey || evt.altKey) && (charcode || keycode == 13) && keycode != 8) { + var selsize = this.getSelectionSize(); + //[TODO anba 2008-01-06] use selsize==0 when LPP-5330 is fixed + if (selsize <= 0) { + if (this.quirks.text_ie_carriagereturn) { + var val = this.__LzInputDiv.value.replace(this.____crregexp, '\n'); + } else { + var val = this.__LzInputDiv.value; + } + + var len = val.length, max = this.owner.maxlength; + if (len >= max) { + evt.returnValue = false; + if (evt.preventDefault) { + evt.preventDefault(); + } + } + } + } else { + /* IE and Safari do not send 'onkeypress' for function-keys, */ + /* but Firefox and Opera! */ + if (this.quirks.keypress_function_keys) { + if (evt.ctrlKey && !evt.altKey && !evt.shiftKey) { + var c = String.fromCharCode(charcode); + /* 'v' for Firefox and 'V' for Opera */ + if (c == 'v' || c == 'V') { + //pasting per ctrl + v + //[TODO anba 2008-01-06] how to detect paste per context-menu? + var len = this.__LzInputDiv.value.length, max = this.owner.maxlength; + if (len < max || this.getSelectionSize() > 0) { + this.__pasteHandler(); + } else { + evt.returnValue = false; + if (evt.preventDefault) { + evt.preventDefault(); + } + } + } + } + } + } + } + } + + if (eventname == 'onkeypress') { + /* we need to leave here, else LzInputText.inputtextevent(..) will freak out */ + return; + } + //Debug.info('__textEvent', eventname, keycode); if (this.owner) { // Generate the event. onkeyup/onkeydown sent by LzKeys.js @@ -623,7 +789,11 @@ } LzInputTextSprite.prototype.getText = function () { - return this.__LzInputDiv.value; + if (this.multiline && this.quirks.text_ie_carriagereturn) { + return this.__LzInputDiv.value.replace(this.____crregexp, '\n'); + } else { + return this.__LzInputDiv.value; + } } LzInputTextSprite.prototype.getTextfieldHeight = function () { Modified: openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js =================================================================== --- openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js 2008-01-16 20:58:33 UTC (rev 7841) @@ -229,6 +229,11 @@ ,text_measurement_use_insertadjacenthtml: false ,text_selection_use_range: false ,document_size_use_offsetheight: false + ,text_ie_carriagereturn: false + ,ie_paste_event: false + ,safari_paste_event: false + ,text_event_charcode: true + ,keypress_function_keys: true } LzSprite.prototype.capabilities = { @@ -292,6 +297,16 @@ // text size measurement uses insertAdjacentHTML() quirks['text_measurement_use_insertadjacenthtml'] = true; quirks['text_selection_use_range'] = true; + + // IE uses "\r\n" for newlines, which gives different text-lengths compared to SWF and + // to other browsers + quirks['text_ie_carriagereturn'] = true; + // IE has got a special event for pasting + quirks['ie_paste_event'] = true; + // IE does not send onkeypress for function keys + quirks['keypress_function_keys'] = false; + // IE does not use charCode for onkeypress + quirks['text_event_charcode'] = false; } else if (Lz.__BrowserDetect.isSafari) { // Fix bug in where if any parent of an image is hidden the size is 0 // TODO: Tucker claims this is fixed in the latest version of webkit @@ -313,6 +328,11 @@ if (Lz.__BrowserDetect.version > 523.10) { this.capabilities['rotation'] = true; } + + // Safari has got a special event for pasting + quirks['safari_paste_event'] = true; + // Safari does not send onkeypress for function keys + quirks['keypress_function_keys'] = false; } else if (Lz.__BrowserDetect.isOpera) { // Fix bug in where if any parent of an image is hidden the size is 0 quirks['invisible_parent_image_sizing_fix'] = true; @@ -320,6 +340,8 @@ quirks['absolute_position_accounts_for_offset'] = true; quirks['canvas_div_cannot_be_clipped'] = true; quirks['document_size_use_offsetheight'] = true; + // Opera does not use charCode for onkeypress + quirks['text_event_charcode'] = false; } else if (Lz.__BrowserDetect.isFirefox && Lz.__BrowserDetect.version < 2) { // see http://groups.google.ca/group/netscape.public.mozilla.dom/browse_thread/thread/821271ca11a1bdbf/46c87b49c026246f?lnk=st&q=+focus+nsIAutoCompletePopup+selectedIndex&rnum=1 quirks['firefox_autocomplete_bug'] = true; Modified: openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzLibraryLoader.lzs =================================================================== --- openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzLibraryLoader.lzs 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzLibraryLoader.lzs 2008-01-16 20:58:33 UTC (rev 7841) @@ -33,8 +33,6 @@ //Debug.write("LzLibraryLoader.request() this.proxied=", this.proxied); var o = { libpath: req, url: req , lzt: "lib", proxied: this.proxied}; super.request( o ); - this.owner.setAttribute( "framesloadratio" , 0 ); - this.owner.setAttribute( "loadratio" , 0 ); } /** Modified: openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzLoader.lzs =================================================================== --- openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzLoader.lzs 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzLoader.lzs 2008-01-16 20:58:33 UTC (rev 7841) @@ -675,8 +675,8 @@ if (timedout) { state = "timedout"; } // TODO: [2005-08-11 ptw] LzURL should be able to // parse a relative URL - var url = (new LzURL(this.reqobj.url)).file; - if (! url) { url = this.reqobj.url; } + var url = (new LzURL(this.url)).file; + if (! url) { url = this.url; } return Debug.formatToString("%s (%s)", url, state); } }; Modified: openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzSprite.as =================================================================== --- openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzSprite.as 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/WEB-INF/lps/lfc/kernel/swf/LzSprite.as 2008-01-16 20:58:33 UTC (rev 7841) @@ -1309,6 +1309,7 @@ this.updatePlayStatus(); this.__LZtracking = false; this.updatePlayDel.unregisterAll(); + this.checkPlayStatusDel.unregisterAll(); } @@ -1364,7 +1365,7 @@ if (('isaudio' in this.getMCRef()) && (this.getMCRef().isaudio == true)) this.__lzskipplaychecklimit = LzSprite.prototype.__lzskipplaychecklimitmax; //Debug.warn('checkPlayStatus %w %w %w %w', this.__lzcheckframe, this.frame, this.totalframes, this.__lzskipplaychecklimit); - LzIdle.callOnIdle( this.checkPlayStatusDel ); + this.checkPlayStatusDel.register( LzIdle, "onidle" ); } /** @@ -1377,11 +1378,10 @@ this.updatePlayStatus(); this.__lzskipplaycheck++; if (this.__lzskipplaycheck < this.__lzskipplaychecklimit) { - LzIdle.callOnIdle( this.checkPlayStatusDel ); return; } + this.checkPlayStatusDel.unregisterAll(); - if ( this.frame != this.__lzcheckframe || this.totalframes != this.__lzchecktotalframes){ //Debug.write('checkPlayStatus2 tracking', this.frame, this.__lzcheckframe); this.trackPlay(); Modified: openlaszlo/branches/devildog/WEB-INF/lps/lfc/services/platform/dhtml/LzBrowser.js =================================================================== --- openlaszlo/branches/devildog/WEB-INF/lps/lfc/services/platform/dhtml/LzBrowser.js 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/WEB-INF/lps/lfc/services/platform/dhtml/LzBrowser.js 2008-01-16 20:58:33 UTC (rev 7841) @@ -1,6 +1,6 @@ /** * - * @copyright Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved. + * @copyright Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved. * Use is subject to license terms. * * @affects lzbrowser @@ -264,7 +264,7 @@ * @return: An URL decoded string */ LzBrowser.urlUnescape = function (str) { - return unescape( str ); + return unescape( str.split('+').join(' ') ); } Modified: openlaszlo/branches/devildog/WEB-INF/lps/lfc/views/LzInputText.lzs =================================================================== --- openlaszlo/branches/devildog/WEB-INF/lps/lfc/views/LzInputText.lzs 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/WEB-INF/lps/lfc/views/LzInputText.lzs 2008-01-16 20:58:33 UTC (rev 7841) @@ -1,6 +1,6 @@ /** * - * @copyright Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved. + * @copyright Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved. * Use is subject to license terms. * * @access public @@ -171,7 +171,7 @@ * @access protected */ function updateData (){ - return this.sprite.text; + return this.sprite.getText(); } Modified: openlaszlo/branches/devildog/WEB-INF/lps/lfc/views/LzText.lzs =================================================================== --- openlaszlo/branches/devildog/WEB-INF/lps/lfc/views/LzText.lzs 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/WEB-INF/lps/lfc/views/LzText.lzs 2008-01-16 20:58:33 UTC (rev 7841) @@ -1,6 +1,6 @@ /** * - * @copyright Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved. + * @copyright Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved. * Use is subject to license terms. * * @access public @@ -459,8 +459,9 @@ this.maxlength = val; if (this.onmaxlength.ready) this.onmaxlength.sendEvent(val); - if(this.text && this.text.length > this.maxlength){ - this.setText (this.text, true); + var t = this.getText(); + if(t && t.length > this.maxlength){ + this.setText (t, true); } } Modified: openlaszlo/branches/devildog/WEB-INF/lps/server/sc/src/org/openlaszlo/sc/Parser.jjt =================================================================== --- openlaszlo/branches/devildog/WEB-INF/lps/server/sc/src/org/openlaszlo/sc/Parser.jjt 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/WEB-INF/lps/server/sc/src/org/openlaszlo/sc/Parser.jjt 2008-01-16 20:58:33 UTC (rev 7841) @@ -851,9 +851,16 @@ "for" "(" { setAllowIn(false); } Expression() { setAllowIn(true); } "in" Expression() ")" Statement() } -void ForVarInStatement() #ForVarInStatement : {} +void ForVarInStatement() #ForVarInStatement : {ASTIdentifier id; ASTIdentifier.Type type;} { - "for" "(" "var" Identifier() ({ setAllowIn(false); } [Initializer()] { setAllowIn(true); }) #EmptyExpression(jjtree.nodeArity()==0) "in" Expression() ")" Statement() + "for" "(" "var" id = Identifier() + ( + [ ":" type = TypeIdentifier() { id.setType(type); } ] + { setAllowIn(false); } + [Initializer()] + { setAllowIn(true); } + ) #EmptyExpression(jjtree.nodeArity()==0) + "in" Expression() ")" Statement() } void ContinueStatement() #ContinueStatement : {} Modified: openlaszlo/branches/devildog/WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/ASTIdentifier.java =================================================================== --- openlaszlo/branches/devildog/WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/ASTIdentifier.java 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/ASTIdentifier.java 2008-01-16 20:58:33 UTC (rev 7841) @@ -3,7 +3,7 @@ * ****************************************************************************/ /* J_LZ_COPYRIGHT_BEGIN ******************************************************* -* Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved. * +* Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved. * * Use is subject to license terms. * * J_LZ_COPYRIGHT_END *********************************************************/ Modified: openlaszlo/branches/devildog/WEB-INF/lps/server/src/org/openlaszlo/compiler/NodeModel.java =================================================================== --- openlaszlo/branches/devildog/WEB-INF/lps/server/src/org/openlaszlo/compiler/NodeModel.java 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/WEB-INF/lps/server/src/org/openlaszlo/compiler/NodeModel.java 2008-01-16 20:58:33 UTC (rev 7841) @@ -3,7 +3,7 @@ * ***************************************************************************/ /* J_LZ_COPYRIGHT_BEGIN ******************************************************* -* Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved. * +* Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved. * * Use is subject to license terms. * * J_LZ_COPYRIGHT_END *********************************************************/ @@ -535,17 +535,6 @@ value = FontInfo.normalizeStyleString(value, false); } - if (name.toLowerCase().equals("datacontrolsvisibility")) { - env.warn( -/* (non-Javadoc) - * @i18n.test - * @org-mes="The attribute \"datacontrolsvisibility\" is deprecated. " + "Use visible=\"null\" instead. " + "For future compatibility you should make this change to your source code." - */ - org.openlaszlo.i18n.LaszloMessages.getMessage( - NodeModel.class.getName(),"051018-497") - ,element); - } - if (name.toLowerCase().equals("defaultplacement")) { if (value != null && value.matches("\\s*['\"]\\S*['\"]\\s*")) { String oldValue = value; Modified: openlaszlo/branches/devildog/docs/src/build.xml =================================================================== --- openlaszlo/branches/devildog/docs/src/build.xml 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/docs/src/build.xml 2008-01-16 20:58:33 UTC (rev 7841) @@ -329,6 +329,11 @@ <copy todir="${local.output.dir}/resources" failonerror="false"> <fileset dir="${local.build.dir}/resources"/> </copy> + + <mkdir dir="${developers.output.dir}/includes"/> + <copy todir="${developers.output.dir}/includes" failonerror="false"> + <fileset dir="${docs.output.dir}/includes"/> + </copy> <copy todir="${local.output.dir}"> <fileset dir="${local.input.dir}" excludes="*.html,*.dbk,schemas.xml"/> Modified: openlaszlo/branches/devildog/docs/src/developers/constraints.dbk =================================================================== --- openlaszlo/branches/devildog/docs/src/developers/constraints.dbk 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/docs/src/developers/constraints.dbk 2008-01-16 20:58:33 UTC (rev 7841) @@ -149,7 +149,7 @@ canvas, the blue square will move as the mouse moves, floating relative to the position of the mouse. In this case, the constraint expression includes a method call, but it works in the same way as the -simple attribute expression in <xref linkend="ex.constraints.1"/>.</para> +simple attribute expression in the previous example.</para> <example role="live-example"> <title>Constrain to mouse position</title> @@ -159,7 +159,7 @@ </example> <para>The constraint expression may be almost any Javascript expression. For -example, you could change the y value in example <xref linkend="ex.constraints.1"/> to +example, you could change the y value in the previous example to <literal>y="${immediateparent.getMouse('y')+10}"</literal> and cause the blue square to float below the mouse. If you centered the blue square at the mouse position by setting the y value with Modified: openlaszlo/branches/devildog/docs/src/developers/doc-toolchain.dbk =================================================================== --- openlaszlo/branches/devildog/docs/src/developers/doc-toolchain.dbk 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/docs/src/developers/doc-toolchain.dbk 2008-01-16 20:58:33 UTC (rev 7841) @@ -115,7 +115,7 @@ </para> <para>This part of the toolchain unifies the various source material into js2doc format, then joins them together into a massive XML file, <literal>LaszloLibrary-verbose.js2doc</literal>. - To understand those processes, please review <xref id="js2doc-schema"/> to grasp the kinds of + To understand those processes, please review <xref linkend="js2doc-schema"/> to grasp the kinds of information that js2doc is trying to represent. The next three sections will walk through each of the three paths in the diagram above: from langref.xml, from javascript code, and from lzx source code, all to the js2doc intermediate format.</para> Copied: openlaszlo/branches/devildog/docs/src/developers/images/datarequest.png (from rev 7836, openlaszlo/trunk/docs/src/developers/images/datarequest.png) Modified: openlaszlo/branches/devildog/docs/src/developers/programs/databinding-$9.lzx =================================================================== --- openlaszlo/branches/devildog/docs/src/developers/programs/databinding-$9.lzx 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/docs/src/developers/programs/databinding-$9.lzx 2008-01-16 20:58:33 UTC (rev 7841) @@ -4,7 +4,7 @@ <datapointer xpath="myData:/" ondata="processData()"> <method name="processData"> - this.selectChild(1); + this.selectChild(2); do { if (this.xpathQuery( '@show' ) == 'south park') { Debug.write(this.xpathQuery('lastName/text()')); Modified: openlaszlo/branches/devildog/examples/components/style_example.html =================================================================== --- openlaszlo/branches/devildog/examples/components/style_example.html 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/examples/components/style_example.html 2008-01-16 20:58:33 UTC (rev 7841) @@ -2,7 +2,7 @@ <!-- explanation page for vacation survey --> <!-- --> <!-- * X_LZ_COPYRIGHT_BEGIN *************************************************** -* Copyright 2001-2006 Laszlo Systems, Inc. All Rights Reserved. * +* Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved. * * Use is subject to license terms. * * X_LZ_COPYRIGHT_END ****************************************************** --> <!--=======================================================================--> @@ -16,7 +16,7 @@ <script src="../../lps/includes/utils.js" type="text/javascript"></script> <title>Components Sampler</title> <style type="text/css"> - .smallapp {margin-right: 100px;} + .smallapp {margin-right: 10px;} </style> </head> Modified: openlaszlo/branches/devildog/laszlo-explorer/coverpages/welcome/index.html =================================================================== --- openlaszlo/branches/devildog/laszlo-explorer/coverpages/welcome/index.html 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/laszlo-explorer/coverpages/welcome/index.html 2008-01-16 20:58:33 UTC (rev 7841) @@ -2,7 +2,7 @@ <!-- welcome/index.html --> <!-- --> <!-- * X_LZ_COPYRIGHT_BEGIN *************************************************** -* Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved. * +* Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved. * * Use is subject to license terms. * * X_LZ_COPYRIGHT_END ****************************************************** --> <!--=======================================================================--> @@ -32,7 +32,7 @@ </head> <body> <h2> -Welcome to OpenLaszlo 4.0.5 +Welcome to OpenLaszlo 4.1 </h2> <h1 style="margin-top: 2px"> The open source platform for building rich internet applications @@ -58,9 +58,9 @@ <div id="left"> <div class="column-in"> <h3> -OpenLaszlo 4.0.5 is the recommended platform for .swf development +OpenLaszlo 4.1 is the recommended platform for .swf development </h3> -With OpenLaszlo 4.0.5, there is no longer any reason to continue application development using OpenLaszlo 3.4. Support for DHTML applications 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. +With OpenLaszlo 4.1, there is no longer any reason to continue application development using OpenLaszlo 3.4. Support for DHTML applications 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/devildog/lps/components/utils/layouts/simplelayout.lzx =================================================================== --- openlaszlo/branches/devildog/lps/components/utils/layouts/simplelayout.lzx 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/lps/components/utils/layouts/simplelayout.lzx 2008-01-16 20:58:33 UTC (rev 7841) @@ -28,18 +28,31 @@ </method> <!--- @keywords private --> - <method name="addSubview" args="newsub"> + <method name="addSubview" args="newsub"><![CDATA[ this.updateDelegate.register( newsub, "on" + this.sizeAxis); this.updateDelegate.register( newsub, "onvisible" ); //this is an optimization to avoid calling update in the simple case //where a single subview was just added - if ( ! this.locked && this.subviews.length ){ - var s= this.subviews[ this.subviews.length-1 ]; - var p = s[ this.axis ] + s[ this.sizeAxis ] + this.spacing; - newsub.setAttribute( this.axis , p ) ; + if (!this.locked) { + var rv = null; + var sv = this.subviews; + for (var i = sv.length-1; i >= 0; --i) { + if (sv[i].visible) { + rv = sv[i]; + break; + } + } + + if (rv) { + var p = rv[ this.axis ] + rv[ this.sizeAxis ] + this.spacing; + } else { + var p = this.inset; + } + + newsub.setAttribute(this.axis, p); } super.addSubview( newsub ); - </method> + ]]></method> <!--- This method is usually called automatically when any of the views controlled by the layout change their size in the layout axis, or @@ -64,7 +77,7 @@ </class> </library> <!-- * X_LZ_COPYRIGHT_BEGIN *************************************************** -* Copyright 2001-2006 Laszlo Systems, Inc. All Rights Reserved. * +* Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved. * * Use is subject to license terms. * * X_LZ_COPYRIGHT_END ****************************************************** --> <!-- @LZX_VERSION@ --> Modified: openlaszlo/branches/devildog/test/typevar.lzx =================================================================== --- openlaszlo/branches/devildog/test/typevar.lzx 2008-01-16 20:01:23 UTC (rev 7840) +++ openlaszlo/branches/devildog/test/typevar.lzx 2008-01-16 20:58:33 UTC (rev 7841) @@ -16,6 +16,7 @@ var v_typed_init:int = val * 2; var v_typed_q:int? = 123; var v_typed_ex:int! = 234; + var v_star:* = 345; // These must be set before use v_plain = 99; @@ -71,6 +72,27 @@ estatus.setText("FAIL 7"); } + if (v_star == 345) { + Debug.write("test8 passed"); + } else { + Debug.write("FAIL: test8"); + estatus.setText("FAIL 8"); + } + + var arr = [0,1,2]; + var s = ""; + for (var fv_star:* in arr) { + s += fv_star; + } + + // There is no guarantee about the ordering of for var in + if (s == "012" || s == "021" || s == "102" || s == "120" || s == "201" || s == "210") { + Debug.write("test9 passed"); + } else { + Debug.write("FAIL: test9"); + estatus.setText("FAIL 9, got: " + s); + } + </method> </view> @@ -84,6 +106,6 @@ </canvas> <!-- * X_LZ_COPYRIGHT_BEGIN *************************************************** -* Copyright 2001-2007 Laszlo Systems, Inc. All Rights Reserved. * +* Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved. * * Use is subject to license terms. * * X_LZ_COPYRIGHT_END ****************************************************** --> _______________________________________________ Laszlo-checkins mailing list [email protected] http://www.openlaszlo.org/mailman/listinfo/laszlo-checkins
