| 1 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> |
| 2 |
<!-- * X_LZ_COPYRIGHT_BEGIN *************************************************** |
| 3 |
* Copyright 2001-2005 Laszlo Systems, Inc. All Rights Reserved. * |
| 4 |
* Use is subject to license terms. * |
| 5 |
* X_LZ_COPYRIGHT_END ****************************************************** --> |
| 6 |
<html> |
| 7 |
<head> |
| 8 |
<title>OpenLaszlo 3.1 Change Log</title> |
| 9 |
<meta http-equiv="Content-Type" |
| 10 |
content="text/html; charset=iso-8859-1"> |
| 11 |
<link rel="stylesheet" href="../lps/includes/explore.css" type="text/css"> |
| 12 |
<link rel="SHORTCUT ICON" |
| 13 |
href="http://www.laszlosystems.com/images/laszlo.ico"> |
| 14 |
</head> |
| 15 |
<body class="release-notes"> |
| 16 |
<h1><b> |
| 17 |
Change Log for OpenLaszlo 3.1</b> </h1> |
| 18 |
<p class="bodytext"> |
| 19 |
This document describes the past version changes in the OpenLaszlo Server (or Laszlo Presentation Server, "LPS"). Please see the <a href="release-notes.html">release notes</a> for information regarding the current release.</p> |
| 20 |
<ul> |
| 21 |
<li>Changes in: |
| 22 |
<ul> |
| 23 |
<li><a href="#Changes3.1">3.1</a></li> |
| 24 |
<li><a href="#Changes3.0.1">3.0.2</a></li> |
| 25 |
<li><a href="#Changes3.0">3.0.1</a></li> |
| 26 |
<li><a href="#Changes2.2.1">3.0</a></li> |
| 27 |
<li><a href="#Changes2.2">2.2.1</a></li> |
| 28 |
<li><a href="#Changes2.1.3">2.2</a></li> |
| 29 |
<li><a href="#Changes2.1.2">2.1.3</a></li> |
| 30 |
<li><a href="#Changes2.1.1">2.1.2</a></li> |
| 31 |
<li><a href="#Changes2.1">2.1.1</a></li> |
| 32 |
<li><a href="#Changes2.0">2.1</a></li> |
| 33 |
<li><a href="#Changes2.0B2">2.0 Preview</a></li> |
| 34 |
<li><a href="#Changes2.0B1">2.0 Beta2</a></li> |
| 35 |
<li><a href="#Changes1.0.3">2.0 Beta1</a></li> |
| 36 |
<li><a href="#Changes1.0.2">1.0.3</a></li> |
| 37 |
<li><a href="#Changes1.0.1">1.0.2</a></li> |
| 38 |
<li><a href="#Changes">1.0.1</a></li> |
| 39 |
</ul> |
| 40 |
</li> |
| 41 |
<li>Defects fixed in: |
| 42 |
<ul> |
| 43 |
<li><a href="#Defects3.1">3.1</a></li> |
| 44 |
<li><a href="#Defects3.0.1">3.0.2</a></li> |
| 45 |
<li><a href="#Defects3.0">3.0.1</a></li> |
| 46 |
<li><a href="#Defects2.2.1">3.0</a></li> |
| 47 |
<li><a href="#Defects2.2">2.2.1</a></li> |
| 48 |
<li><a href="#Defects2.1.3">2.2</a></li> |
| 49 |
<li><a href="#Defects2.1.2">2.1.3</a></li> |
| 50 |
<li><a href="#Defects2.1.1">2.1.2</a></li> |
| 51 |
<li><a href="#Defects2.1">2.1.1</a></li> |
| 52 |
<li><a href="#Defects2.0">2.1</a></li> |
| 53 |
<li><a href="#Defects1.0.3">2.0</a></li> |
| 54 |
<li><a href="#Defects1.0.2">1.0.3</a></li> |
| 55 |
<li><a href="#Defects1.0.1">1.0.2</a></li> |
| 56 |
<li><a href="#Defects">1.0.1</a></li> |
| 57 |
</ul> |
| 58 |
</li> |
| 59 |
</ul> |
| 60 |
<h1><a name="Changes3.1">Changes in 3.1<br> |
| 61 |
</a></h1> |
| 62 |
<a name="key-features">New Features since OpenLaszlo 3.0.2</a></h1> |
| 63 |
<ul> |
| 64 |
<li>Charting and Graphing Components</li> |
| 65 |
<li>Flash 8 file generation</li> |
| 66 |
<li>XMLHttpRequest ("ajax") API</li> |
| 67 |
<li>Rich Text Class</li> |
| 68 |
<li>New components: hbox, vbox, and image</li> |
| 69 |
<li>Local datasets</li> |
| 70 |
<li>Applications default to window size</li> |
| 71 |
<li>"View source" menu item</li> |
| 72 |
<li>Browser history integration: the default HTML wrappers now include support for browser history and setcanvasAttribute()</li> |
| 73 |
<li>setcanvasAttribute() Javascript function can optionally add browser history events</li> |
| 74 |
<li>Tutorial introduction to Drawview</li> |
| 75 |
<li>Version detection</li> |
| 76 |
<li>Developer console enhancements</li> |
| 77 |
<li>Global "hand cursor" parameter</li> |
| 78 |
<li>Backtrace facility in the debugger</li> |
| 79 |
<li>Other debugger improvements</li> |
| 80 |
<li>Splash screen takes percentages</li> |
| 81 |
<li>New goodies in the incubator</li> |
| 82 |
</ul> |
| 83 |
|
| 84 |
<h1><a name="Changes3.0.1">Changes in 3.0.2<br> |
| 85 |
</a></h1> |
| 86 |
<ul> |
| 87 |
<li>OpenLaszlo 3.0.2 is a maintenance release only. See <a href="#Defects3.0.1">Fixed Defects</a> section for details.</li> |
| 88 |
</ul> |
| 89 |
|
| 90 |
<h1><a name="Changes3.0">Changes in 3.0.1<br> |
| 91 |
</a></h1> |
| 92 |
<ul> |
| 93 |
<li>OpenLaszlo 3.0.1 is a maintenance release only. See <a href="#Defects3.0">Fixed Defects</a> section for details.</li> |
| 94 |
</ul> |
| 95 |
|
| 96 |
<h1><a name="Changes2.2.1">Changes in 3.0<br> |
| 97 |
</a></h1> |
| 98 |
<ul> |
| 99 |
|
| 100 |
<h1><a name="key-features">Key New Features</a></h1> |
| 101 |
<p>LPS 3.0 introduces several new features:</p> |
| 102 |
|
| 103 |
<ul> |
| 104 |
<li>SOLO deployment</li> |
| 105 |
<li>Smaller file sizes (using internal gzip compression)</li> |
| 106 |
<li>Dynamic libraries</li> |
| 107 |
<li>Unicode support</li> |
| 108 |
<li>Optimized for Flash Player versions 6 and 7</li> |
| 109 |
<li>Settable timeouts</li> |
| 110 |
<li>Drawing API</li> |
| 111 |
<li>Client fonts</li> |
| 112 |
<li>Resizeable canvas</li> |
| 113 |
<li>Integration with browser JavaScript</li> |
| 114 |
<li>Support for browser back button</li> |
| 115 |
<li>Support for ("right click") context menu</li> |
| 116 |
<li>Support for mouse wheel</li> |
| 117 |
<li>Text maxlength and restriction</li> |
| 118 |
<li>Debugging improvements</li> |
| 119 |
<li>Performance enhancements</li> |
| 120 |
<li>Separate Designer and Deployer guides</li> |
| 121 |
<li>The name of the product is now "OpenLaszlo"</li> |
| 122 |
</ul> |
| 123 |
<p> |
| 124 |
Most of the new features are described in the product documentation. For others (timeouts, fonts) these notes constitute the primary documentation. |
| 125 |
</p> |
| 126 |
|
| 127 |
|
| 128 |
<h2>SOLO Deployment</h2> |
| 129 |
<p> |
| 130 |
Laszlo applications can be made available on the web, or <i>deployed</i> in either of two ways: |
| 131 |
</p> |
| 132 |
<p> |
| 133 |
<ol> |
| 134 |
<li>Deploy SOLO (Standalone OpenLaszlo Output) from any HTTP Web server</li> |
| 135 |
<li>Deploy with OpenLaszlo Server</li> |
| 136 |
</ol> |
| 137 |
<p> |
| 138 |
With SOLO deployment, the LZX source is pre-compiled into a stand-alone SWF |
| 139 |
file that can be placed within the HTML docs directory of a common HTTP Web |
| 140 |
Server (such as Apache or IIS). SOLO deployments are simple to manage, and |
| 141 |
supported by nearly any Web hosting service. </p> |
| 142 |
<p> |
| 143 |
With SOLO deployment, the OpenLaszlo Server is not required for operation of the application (although the Server is |
| 144 |
required for developing the application). |
| 145 |
</p> |
| 146 |
<p> |
| 147 |
With OpenLaszlo Server deployment, the LZX source is placed within the |
| 148 |
Web-apps directory of the OpenLaszlo Server, and is dynamically compiled. |
| 149 |
OpenLaszlo Server deployment requires a Java Application Server or servlet |
| 150 |
container. It provides additional capabilities dependent on the server, |
| 151 |
including support for SOAP, XML-RPC, Java-RPC and persistent connections. |
| 152 |
The OpenLaszlo Server is also required for applications that use some media formats that are not |
| 153 |
natively supported by the Flash player. The OpenLaszlo sever transcodes these media files "on the fly" |
| 154 |
into formats supported by the Flash player. |
| 155 |
</p> |
| 156 |
<p> |
| 157 |
See the "Proxied and Solo Applications" chapter of the Developer's Guide for more information. |
| 158 |
</p> |
| 159 |
<h2>Internal compression</h2> |
| 160 |
<p> |
| 161 |
The compiler now employs internal gzip compression. This results in substantially smaller object file sizes. |
| 162 |
</p> |
| 163 |
<h2>Dynamic Libraries</h2> |
| 164 |
|
| 165 |
<p> |
| 166 |
A dynamic library is a portion of a program that can be loaded after the main application execution file has loaded. The goal for dynamic |
| 167 |
libraries is to reduce the initial download size of a Laszlo application. This is important because initial download size (including all |
| 168 |
requests that precede initial user interaction) is used to evaluate web applications. Reducing the initial download size has |
| 169 |
the additional benefits of reducing the time to first interaction (although there are other ways of doing this), and of reducing |
| 170 |
bandwidth costs in the case where an optional feature of the application is not used. |
| 171 |
</p> |
| 172 |
<p> |
| 173 |
See the Program Structure chapter of the Software Developer's Guide for details. |
| 174 |
</p> |
| 175 |
<h2>Unicode</h2> |
| 176 |
|
| 177 |
<p>Unicode fonts such as CJK fonts are now supported in <code><text></code> and <code><inputtext></code> fields. Unicode is supported:</p> |
| 178 |
<ul> |
| 179 |
<li>In Laszlo source files. The text in a <code><text></code> and <code><inputtext></code> tag and within string literals in JavaScript code may be unicode</li> |
| 180 |
<li>In the user interface. Text and Inputtext views can display unicode text, and take unicode input.</li> |
| 181 |
<li>In the data compiler. XML data that is compiled into an application, or request at runtime, may contain unicode text, if the XML source file uses the <code>encoding</code> attribute to the XML processing directive (below).</li> |
| 182 |
</ul> |
| 183 |
|
| 184 |
<p>The Laszlo components, such as <code><button></code>, do not work with unicode fonts. (They are fixed-height, and the default height is incorrect for most fonts.) Only the core classes, <code><text></code> and <code><inputtext></code>, are automatically sized for unicode fonts.</p> |
| 185 |
|
| 186 |
<h3>Encoding</h3> |
| 187 |
<p>By default, LZX now expects text to be UTF-8. You can specify a different |
| 188 |
encoding within an <code><?xml?></code> processing directive at the beginning of an application source file or an XML data file:</p> |
| 189 |
<pre> |
| 190 |
<?xml encoding="UTF-16"?> |
| 191 |
<canvas>…</canvas> |
| 192 |
</pre> |
| 193 |
|
| 194 |
<pre> |
| 195 |
<?xml encoding="ISO-8859-1"?> |
| 196 |
<data>…</data> |
| 197 |
</pre> |
| 198 |
<h2>Swf6 and Swf7 support</h2> |
| 199 |
<p> |
| 200 |
The compiler now outputs, and has been optimized for, swf6 and swf7 binaries. Swf6 is the default;the swf7 target is available as an option. |
| 201 |
Swf5 format is no longer supported. |
| 202 |
</p> |
| 203 |
|
| 204 |
<h2>Settable Timeouts</h2> |
| 205 |
<p> |
| 206 |
Settable Timeouts is a mechanism for setting the timeout of a request. There are global settings for data request and media request |
| 207 |
timeouts, and per-dataset requests. |
| 208 |
</p> |
| 209 |
<h3>API</h3> |
| 210 |
<p> |
| 211 |
New canvas attributes: |
| 212 |
</p> |
| 213 |
<table summary="Canvas Attributes"> |
| 214 |
<tr><th>name</th><th>type</th><th>default</th><th>description</th></tr> |
| 215 |
<tr> |
| 216 |
<td><code>dataloadtimeout</code></td> |
| 217 |
<td>number</td> |
| 218 |
<td>30000 (30s)</td> |
| 219 |
<td>timeout time in milliseconds for data requests</td> |
| 220 |
</tr> |
| 221 |
<tr> |
| 222 |
<td><code>medialoadtimeout</code></td> |
| 223 |
<td>number</td> |
| 224 |
<td>30000 (30s)</td> |
| 225 |
<td>timeout time in milliseconds for media requests</td> |
| 226 |
</tr> |
| 227 |
|
| 228 |
</table> |
| 229 |
|
| 230 |
<p> |
| 231 |
|
| 232 |
<code>dataloadtimeout</code> is the defaults for newly created datasets. |
| 233 |
Changing it doesn't have an effect on dataasets that already exist. |
| 234 |
</p> |
| 235 |
<p> |
| 236 |
New dataset attribute: |
| 237 |
</p> |
| 238 |
<table summary="Canvas Attributes"> |
| 239 |
<tr><th>name</th><th>type</th><th>default</th><th>description</th></tr> |
| 240 |
<tr> |
| 241 |
<td><code>dataloadtimeout</code></td> |
| 242 |
<td>number</td> |
| 243 |
<td>30000 (30s)</td> |
| 244 |
<td>timeout time in milliseconds for this dataset</td> |
| 245 |
</tr> |
| 246 |
|
| 247 |
</table> |
| 248 |
|
| 249 |
<p> |
| 250 |
The timeout time can be changed at runtime, and that will affect any subsequent requests made on behalf of the dataset. |
| 251 |
</p> |
| 252 |
<p> |
| 253 |
</p> |
| 254 |
|
| 255 |
|
| 256 |
<h2>Drawing API</h2> |
| 257 |
<p> |
| 258 |
LZX now includes a subset of the <a href="http://www.whatwg.org/specs/web-apps/current-work/#graphics">WHAT-WG graphics API .</a> |
| 259 |
</p> |
| 260 |
<p> |
| 261 |
A new class DrawView extends <code>LzView.</code> See the LZX Reference Manual for description of this class. |
| 262 |
</p> |
| 263 |
|
| 264 |
|
| 265 |
|
| 266 |
<h2>Client fonts</h2> |
| 267 |
<p> |
| 268 |
A client font is a font that is located on the client machine. Text that uses client fonts is faster, and avoids the size penalty of an embedded |
| 269 |
font (a font that is compiled into the application). This is particularly important with CJK fonts, which are many megabytes.</p> |
| 270 |
|
| 271 |
<p>Previous versions of OpenLaszlo could only use embedded fonts. This release can also use client fonts:</p> |
| 272 |
|
| 273 |
<p>The value of the font attribute is the name of a font. This may be the name of an embedded font |
| 274 |
(one that has been declared with the <font> tag), or a client font (one that is available on the client operating system).</p> |
| 275 |
|
| 276 |
<p> |
| 277 |
There are three always-defined client fonts, which can be accessed by special names. (These names will probably change prior to the final release.)</p> |
| 278 |
<ul> |
| 279 |
<li><code>sans-serif</code></li> |
| 280 |
<li><code>serif</code></li> |
| 281 |
<li><code>monospace</code></li> |
| 282 |
</ul> |
| 283 |
<!--j |
| 284 |
<p> |
| 285 |
See the Developer's Guide, <a href="./guide/fonts.html">Fonts,</a> for details. |
| 286 |
</p> |
| 287 |
--> |
| 288 |
<p>There are also two Japanese fonts, the |
| 289 |
equivalent of <code>_sans</code> and <code>_serif</code>, whose names can |
| 290 |
only be written in Unicode. |
| 291 |
</p> |
| 292 |
<h2>Resizable Canvas</h2> |
| 293 |
<p> |
| 294 |
The canvas width and height can be specified as a percentage (e.g. <code><canvas width="50%"></code>). |
| 295 |
When the canvas dimension are a percentage value, the application is scaled according to the size of the HTML page. |
| 296 |
In this, <code>onheight</code> and <code>onwidth</code> events on the canvas are generated when embedding HTML page is resized. |
| 297 |
</p> |
| 298 |
|
| 299 |
<h2>Communication with browser JavaScript</h2> |
| 300 |
<p> |
| 301 |
A new service LzHistory(), and a new JavaScript function LzSetCanvasAttribute(), allow two-way communication between the a Laszlo |
| 302 |
application and the browser's Javascript engine. |
| 303 |
</p> |
| 304 |
You can access the javascript engine in the browser using the loadJS method on LzBrowser: |
| 305 |
</p> |
| 306 |
<code> |
| 307 |
LzBrowser.loadJS(<var>js</var>, <var>target</var>) |
| 308 |
</code> |
| 309 |
<p> |
| 310 |
</p> |
| 311 |
|
| 312 |
<table summary="Table title"> |
| 313 |
<tr><th>argument</th><th>value</th></tr> |
| 314 |
<tr> |
| 315 |
<td><code><var>js</var></code></td> |
| 316 |
<td>JavaScript string to execute</td> |
| 317 |
</tr> |
| 318 |
<tr> |
| 319 |
<td><code><var>target</var></code></td> |
| 320 |
<td>Optionally specifies a named frame in which to execute the JavaScript expression.</td> |
| 321 |
</tr> |
| 322 |
|
| 323 |
</table> |
| 324 |
<p> |
| 325 |
</p> |
| 326 |
|
| 327 |
<p> |
| 328 |
By default, the JavasSript expression specified in <code><var>js</var></code> is executed in the current browser frame. |
| 329 |
</p> |
| 330 |
<p> |
| 331 |
See the Browser Integration chapter of the Software Developer's Guide for more information and examples. |
| 332 |
</p> |
| 333 |
<h2>Browser Back Button support</h2> |
| 334 |
<p> |
| 335 |
The LzHistory mechanism makes it possible for Laslzo applications to capture program states and move among them using the browswer's "back" button. |
| 336 |
See the "Browser Integration" chapter of the Developer's Guide for details. |
| 337 |
|
| 338 |
</p> |
| 339 |
|
| 340 |
<h2>Performance Improvements</h2> |
| 341 |
<p>Several architectural changes have been made to improve performance:</p> |
| 342 |
|
| 343 |
<dl> |
| 344 |
<dt>Register allocation</dt> |
| 345 |
<dd>The compiler now uses registers. The user-visible effect of this is a significant speed-up in the generated code.</dd> |
| 346 |
<dt>Clipped views are faster</dt> |
| 347 |
<dd>Clipping uses swf6 primitives. The user-visible effect is better performance for clipped views.</dd> |
| 348 |
<dt>Faster compiler</dt> |
| 349 |
<dd>Assembler now implemented in Java rather than Python. The user-visible effect is that Laszlo apps compile faster.</dd> |
| 350 |
<dt>Internal file compression</dt> |
| 351 |
<dd>Application files are compressed internally, regardless of http encoding. |
| 352 |
This results in smaller transfer sizes on clients that don't accept the gzip encoding, as well as a smaller application size |
| 353 |
in the browser cache.</dd> |
| 354 |
<dt>Client fonts</dt> |
| 355 |
<dd>Text fields that use client fonts are significantly faster than those that use embedded fonts.</dd> |
| 356 |
<dt>Inlined classes.</dt> |
| 357 |
<dd>An inlined class is a class that is applied to an instance when an application is compiled, rather than when the application is instantiated. An inlined class has the same semantics as a regular class, except that the class cannot be instantiated or otherwise referred to by name in script code. |
| 358 |
An inlined class is similar to an inline function, or a macro, in other languages.</dd> |
| 359 |
</dl> |
| 360 |
<h2>Text maxlength and restrictions</h2> |
| 361 |
<p> |
| 362 |
Text fields have new attributes |
| 363 |
<p> |
| 364 |
<pre> |
| 365 |
<em>maxlength:</em> max number of chars you can add to an text field |
| 366 |
<em>pattern:</em> whitelist or blacklist of chars that can be added to a text field |
| 367 |
</pre> |
| 368 |
<p> |
| 369 |
which follow the same semantics as the Flash TextField object fields of the same names |
| 370 |
</p> |
| 371 |
<h2>Debugging improvements</h2> |
| 372 |
<p> Inspecting objects is more robust and readable. |
| 373 |
The size of a string or array is now included as part of its type. This can be useful when deciding whether |
| 374 |
to inspect a string or array that has been abbreviated (i.e., if you inspect a gigantic string, the debugger |
| 375 |
will print the full string, which may take a long time.) |
| 376 |
</p> |
| 377 |
|
| 378 |
<h2>ECMAScript changes</h2> |
| 379 |
<p> |
| 380 |
When it can, the compiler will warn about mis-matched case for JavaScript tokens. This is in anticipation of full ECMAScript compatibility |
| 381 |
which enforces case-sensitivity.</p> |
| 382 |
|
| 383 |
<h2>Support for ("right click") context menu</h2> |
| 384 |
<p> |
| 385 |
The right click "context" menu is now supported. Documentation forthcoming in the next release. Here is a sample |
| 386 |
program that demonstrates the API: |
| 387 |
</p> |
| 388 |
<pre> |
| 389 |
<canvas debug="true" width="1800" height="800"> |
| 390 |
<method event="oninit"> |
| 391 |
Debug.showInternalProperties = true; |
| 392 |
</method> |
| 393 |
|
| 394 |
<debug x="200" fontsize="14" width="600" height="400"/> |
| 395 |
<script> |
| 396 |
|
| 397 |
function rightclick_handler (obj, menuobj) { |
| 398 |
Debug.write("rightclick context menu", obj, menuobj); |
| 399 |
} |
| 400 |
|
| 401 |
function my_itemhandler(obj, item) { |
| 402 |
Debug.write("menu item selected", obj, item); |
| 403 |
} |
| 404 |
|
| 405 |
var cm1 = new ContextMenu(rightclick_handler); |
| 406 |
cm1.hideBuiltInItems(); |
| 407 |
cm1.addItem(new ContextMenuItem("LZX Canvas Custom Item!", my_itemhandler)); |
| 408 |
canvas.setContextMenu(cm1); |
| 409 |
|
| 410 |
var cm2 = new ContextMenu(rightclick_handler); |
| 411 |
cm2.hideBuiltInItems(); |
| 412 |
cm2.addItem(new ContextMenuItem("View Custom Item 1", my_itemhandler)); |
| 413 |
cm2.addItem(new ContextMenuItem("View Custom Item 2", my_itemhandler)); |
| 414 |
cm2.addItem(new ContextMenuItem("View Custom Item 3", my_itemhandler)); |
| 415 |
|
| 416 |
|
| 417 |
var cm3 = new ContextMenu(rightclick_handler); |
| 418 |
cm3.hideBuiltInItems(); |
| 419 |
cm3.addItem(new ContextMenuItem("Text Custom Item 1", my_itemhandler)); |
| 420 |
cm3.addItem(new ContextMenuItem("Text Custom Item 2", my_itemhandler)); |
| 421 |
|
| 422 |
</script> |
| 423 |
<simplelayout/> |
| 424 |
<text id="foo" fontsize="26" |
| 425 |
oninit="setContextMenu(cm3)">FOOBAR</text> |
| 426 |
<view id="pp" |
| 427 |
width="200" height="200" bgcolor="blue" |
| 428 |
oninit="setContextMenu(cm2)"/> |
| 429 |
</canvas> |
| 430 |
|
| 431 |
</pre> |
| 432 |
|
| 433 |
|
| 434 |
<h2>Mouse wheel Support</h2> |
| 435 |
<p> |
| 436 |
OL 3.0 has an event called LzKeys.onmousewheeldelta. See the Reference Manual. |
| 437 |
</p> |
| 438 |
<h2>Documentation restructuring</h2> |
| 439 |
<p> |
| 440 |
The Developer's Guide ("Guide to Designing, Developing and Deploying Laszlo Applications") has been trifurcated into Developer's, Designer's and Deployer's Guides |
| 441 |
in order to |
| 442 |
tailor information to different audiences. |
| 443 |
</p> |
| 444 |
<h2>Name Change: Goodbye "Laszlo Presentation Server", hello "OpenLaszlo Server"</h2> |
| 445 |
<p> |
| 446 |
With this release the Laszlo Presentation Server ("LPS") has been renamed the OpenLaszlo Server. Accordingly the |
| 447 |
"Start Laszlo Presentation Server" menu item and alias has been renamed to "Start OpenLaszlo Server", and similarly for "Stop". |
| 448 |
The Laszlo Explorer and documentation have been edited to reflect this change, although their are many places where the old |
| 449 |
nomenclature persists. Over time the documentation and user-visible artifacts will be transitioned to OpenLaszlo, although |
| 450 |
in the code the LPS terminology is likely to persist indefinitely (for example, in directory names).</p> |
| 451 |
<h2>Significant Bug Fixes since LPS 2.2</h2> |
| 452 |
<p> |
| 453 |
Since 2.2 many bugs have been remedied. Among the more significant: |
| 454 |
<ul> |
| 455 |
<li>XML Data from non-English locales no longer generate "unparseable date" errors.</li> |
| 456 |
<li>Drawing API LzDrawview (added in 3.0b2) is now in the LZX Reference.</li> |
| 457 |
</ul> |
| 458 |
<p> |
| 459 |
See below for a cumulative list. |
| 460 |
</p> |
| 461 |
|
| 462 |
<h1><a name="incompatible">Backwards-incompatible Changes in 3.0</a></h1> |
| 463 |
<p> |
| 464 |
New functionality in OpenLaszlo 3.0 has necessitated a few backwards-incompatible changes from prior releases. |
| 465 |
</p> |
| 466 |
<ul> |
| 467 |
<li>Default font is client font, not embedded font |
| 468 |
<ul> |
| 469 |
<li>The default font is now the client font "verdana". Client fonts cannot be rotated and their opacity cannot be |
| 470 |
varied. You can change the default by using a <font> on the canvas. |
| 471 |
</li> |
| 472 |
</ul> |
| 473 |
</li> |
| 474 |
<li>Change in behavior of <font> tag<ul> |
| 475 |
<li> You cannot mix embedded fonts and device fonts in the same text object. It must be one or the other. This fact subtly changes the behavior of the |
| 476 |
<font> tag. |
| 477 |
For example the following program works correctly in earlier releases, but does not in 3.0: |
| 478 |
<pre> |
| 479 |
<canvas height="70"> |
| 480 |
<font name="helmet" src="helmetr.ttf"/> |
| 481 |
<font name="arioso" src="ariosor.ttf"/> |
| 482 |
<text fontsize="20"> |
| 483 |
<font face="helmet">helmet</font> |
| 484 |
<font face="arioso">arioso</font> |
| 485 |
</text> |
| 486 |
</canvas> |
| 487 |
</pre> |
| 488 |
<p> |
| 489 |
|
| 490 |
The "embedfonts" argument to a textfield will specify whether it uses embedded fonts or not. |
| 491 |
It will also be calculated automatically based on the font in effect on the text object, so for example |
| 492 |
</p> |
| 493 |
<pre> |
| 494 |
<text fontsize="20" font="helmet"> |
| 495 |
<font face="helmet">helmet</font> |
| 496 |
<font face="arioso">arioso</font> |
| 497 |
</text> |
| 498 |
</pre> |
| 499 |
<p> |
| 500 |
Would work because it would set set the embed flag implicitly.</p> |
| 501 |
<p>In the original example, the text clip thinks it is using a device font, because that is what is the "current font" is when it is instantiated. |
| 502 |
It doesn't look inside and see the embedded fonts used in the HTML, and even if it did, you cannot mix device and embedded fonts in the same text object. |
| 503 |
</p> |
| 504 |
<p> |
| 505 |
To get the expected (2.2) behavior, use |
| 506 |
</p> |
| 507 |
<pre> |
| 508 |
|
| 509 |
<text embedfonts="true"> . |
| 510 |
</pre>.. |
| 511 |
|
| 512 |
</li> |
| 513 |
</ul> |
| 514 |
<li>Case Sensitivity <ul> |
| 515 |
<li>In earlier versions of LZX, case didn't matter, and now it does. |
| 516 |
In particular, the normative case for many properties has changed; |
| 517 |
for example, childNodes -> childnodes, releaseToLayout -> releasetolayout. |
| 518 |
<p> |
| 519 |
This has been done for forwards compatability with swf7. |
| 520 |
</p> |
| 521 |
<p> |
| 522 |
Here are some other instances: |
| 523 |
</p> |
| 524 |
|
| 525 |
<ul> |
| 526 |
<li> LzUrl -> LzURL </li> |
| 527 |
<li> getLoadUrlAsLzUrl -> getLoadURLAsLzURL </li> |
| 528 |
<li> immediateParent -> immediateparent </li> |
| 529 |
<li> setXscroll -> setXScroll</li> |
| 530 |
</ul> |
| 531 |
</ul> |
| 532 |
</li> |
| 533 |
<p></p> |
| 534 |
<li>Arrays that had been null are now empty<ul> |
| 535 |
<li><p>When a view is built, <code>subviews[] </code>is initialized to an empty array. In releases before OpenLaszlo 3.0 it was null. If your program |
| 536 |
depended on testing for null, you will need to modify it --for example, by testing for subviews.length == 0. |
| 537 |
</li> |
| 538 |
</ul> |
| 539 |
|
| 540 |
|
| 541 |
</ul> |
| 542 |
|
| 543 |
<h1><a name="Changes2.2">Changes in 2.2.1<br> |
| 544 |
</a></h1> |
| 545 |
<ul> |
| 546 |
<li>LPS-2.2.1 is a maintenance release only. See <a href="#Defects2.2">Fixed Defects</a> section for details.</li> |
| 547 |
</ul> |
| 548 |
|
| 549 |
<h1><a name="Changes2.1.3">Changes in 2.2<br> |
| 550 |
</a></h1> |
| 551 |
<ul> |
| 552 |
<li><b>LPS no longer supports 1.3 JREs/JDKs.</b></li> |
| 553 |
<li>LPS requires container support for the 2.3 (or later) version of the servlet specification</li> |
| 554 |
<li>The provided fonts and components were moved from $LPS_HOME/WEB-INF/lps/{fonts,components} to $LPS_HOME/lps/{fonts,components}. |
| 555 |
(The default include directories for the compiler were changed to match)</li> |
| 556 |
<li>The provided includes and assets were moved from $LPS_HOME/{assets,includes} to $LPS_HOME/lps/{assets,includes}.</li> |
| 557 |
<li>The provided administrator console moved to $LPS_HOME/lps/admin/console.lzx.</li> |
| 558 |
<li>The default location of the LPS caches and logs moved to $LPS_HOME/WEB-INF/lps/work</li> |
| 559 |
<li>The <code>?lzrecompile=true</code> can be used to force a recompile when the lps.properties compMgrDependencyOption is set |
| 560 |
to <code>never</code>.</li> |
| 561 |
<li>The LPS server statistics now display maximum request times for the 1, 5, and 15 minute periods.</li> |
| 562 |
<li>The default location of the LPS cache directories is now underneath the web application's WEB-INF directory.</li> |
| 563 |
<li>There are now separate hscrollbar and vscrollbar components that |
| 564 |
can be used to minimize application size.</li> |
| 565 |
<li>Setting width (or height) to null unsets the width (or height).</li> |
| 566 |
<li>There is a new defaultRequestType lps configuration property (in |
| 567 |
lps.properties) for controlling the what the LPS does with |
| 568 |
urls that end in .lzx that don't have an lzt query string.</li> |
| 569 |
<li>There is a sample deployment configuration provided at WEB-INF/lps/config-deploy.</li> |
| 570 |
|
| 571 |
</ul> |
| 572 |
<h1><a name="Changes2.1.2">Changes in 2.1.3<br> |
| 573 |
</a></h1> |
| 574 |
<ul> |
| 575 |
<li>The LPS server statistics now display maximum request times for the 1, 5, and 15 minute periods.</li> |
| 576 |
</ul> |
| 577 |
<h1><a name="Changes2.1.1">Changes in 2.1.2<br> |
| 578 |
</a></h1> |
| 579 |
<ul> |
| 580 |
<li>Updated lzx.dtd verified for use with Eclipse</li> |
| 581 |
<li>LPS-2.1.2 is a maintenance release. See <a href="#Defects2.1.1">Fixed Defects</a> section for details.</li> |
| 582 |
</ul> |
| 583 |
|
| 584 |
<h1><a name="Changes2.1">Changes in 2.1.1<br> |
| 585 |
</a></h1> |
| 586 |
<ul> |
| 587 |
<li>LPS-2.1.1 is a maintenance release only. See <a href="#Defects2.1">Fixed Defects</a> section for details.</li> |
| 588 |
</ul> |
| 589 |
|
| 590 |
<h1><a name="Changes2.0">Changes in 2.1<br> |
| 591 |
</a></h1> |
| 592 |
<ul> |
| 593 |
<li>New component: <code>grid</code></li> |
| 594 |
<li>New license key format. Existing 2.0 license keys must be upgraded to 2.1 keys in |
| 595 |
order for them to work with 2.1. Please contact |
| 596 |
<a href="mailto:sales@laszlosystems.com">sales@laszlosystems.com</a>.</li> |
| 597 |
</ul> |
| 598 |
|
| 599 |
<h1><a name="Changes2.0P">Changes in 2.0<br> |
| 600 |
</a></h1> |
| 601 |
<ul> |
| 602 |
<li>New components: <code>tree</code> and <code>slider</code> </li> |
| 603 |
<li>New animation tutorial.</li> |
| 604 |
<li>Faster initial compile of applications that use components.</li> |
| 605 |
<li>The baseline and some character advances were modified in the |
| 606 |
default (verity) fonts. |
| 607 |
If you are porting an application from 2.0p to 2.0 that was laid out |
| 608 |
pixel-accurately by hand, |
| 609 |
you may need to re-make adjustments.</li> |
| 610 |
<li>The compilation cache is now optimized to avoid recompiles when |
| 611 |
all that is needed is a re-encode (from gzip to uncompressed |
| 612 |
or vice-versa).</li> |
| 613 |
</ul> |
| 614 |
|
| 615 |
<h1><a name="Changes2.0B2">Changes in 2.0 Preview<br> |
| 616 |
</a></h1> |
| 617 |
<ul> |
| 618 |
<li>Developer packages now only include gzip encoded versions of LZX |
| 619 |
files in the pre-populated cache. This will cause browsers which do not |
| 620 |
support gzip encoding to compile sample code and will result in slower |
| 621 |
startup times for the welcome application and other samples.</li> |
| 622 |
</ul> |
| 623 |
|
| 624 |
<h1><a name="Changes2.0B1">Changes in 2.0 Beta2<br> |
| 625 |
</a></h1> |
| 626 |
<p class="bodytext"> |
| 627 |
The LPS 2.0 Beta2 release also has a limited number of changes that are |
| 628 |
incompatible |
| 629 |
with the Beta1 release.</p> |
| 630 |
<ul> |
| 631 |
<li>Some components that were released in 2.0 Beta1 have been |
| 632 |
renamed: |
| 633 |
<pre> inputtextbox -> edittext<br> baselistcomponent -> baselist<br> baseformcomponent -> baseformitem<br> basedatacomponent -> basevaluecomponent</pre> |
| 634 |
</li> |
| 635 |
<li>The "valuedatapath" and "textdatapath" attributes introduced in |
| 636 |
Beta1 have been removed; simply use "$path" if you want to specify a |
| 637 |
different datapath for a component's value. For example: |
| 638 |
<pre> <list><br> <textlistitem datapath="mydata:/list/item" text="$path{ 'text()' }" value="$path{ '@value' }"/><br> </list><br></pre> |
| 639 |
</li> |
| 640 |
<li>There is a new "dataoption" attribute on baselist. You can optimize |
| 641 |
list or combobox, but setting dataoption="lazy" for lazy replication of |
| 642 |
list items, or dataoption="pooling" for pooling.</li> |
| 643 |
<li>The sections below describing changes in 2.0 and bugs fixed since |
| 644 |
2.0B1 are now complete and accurate.</li> |
| 645 |
<li>See also the list of <a href="#Defects1.0.3">defects fixed since |
| 646 |
1.0.3</a>.</li> |
| 647 |
</ul> |
| 648 |
|
| 649 |
<h1><a name="Changes1.0.3">Changes in 2.0 Beta1<br> |
| 650 |
</a></h1> |
| 651 |
<p class="bodytext">Laszlo Presentation Server 2.0 Beta 1 introduces |
| 652 |
numerous new features, LZX language changes, and |
| 653 |
LFC API changes. A limited number of these changes are incompatible |
| 654 |
with previous releases. </p> |
| 655 |
<ul> |
| 656 |
<li>New features: |
| 657 |
<p> </p> |
| 658 |
<ul> |
| 659 |
<li> The Laszlo Component Set <br> |
| 660 |
Laszlo Presentation Server 2.0 introduces the Laszlo (lz) component |
| 661 |
set: <code>combobox, edittext, scrollbar, menu, menuitem, tabs, |
| 662 |
tabslider, radiobutton, radiogroup, checkbox, window, modaldialog, |
| 663 |
alert, button, form, submit, style</code>, and base classes. To get a |
| 664 |
feel for what the components do and how to use them, click on the new |
| 665 |
"Components" tab on the <a href="../../lz-utils/welcome.html">"Welcome"</a> |
| 666 |
page. These components support keyboard navigation. You can tab between |
| 667 |
components, and use arrow keys within the components (e.g. within items |
| 668 |
in a radio group or a list). There are visual focus brackets that shows |
| 669 |
you where the focus is. <b>Note</b>: The Laszlo (lz) component set is |
| 670 |
now the default component set. To get the redmond components, insert <code><include |
| 671 |
href="redmond"/></code> into your application source. |
| 672 |
<p> </p> |
| 673 |
</li> |
| 674 |
<li>Krank Optimization |
| 675 |
<p>Laszlo Presentation Server 2.0 introduces a new feature, |
| 676 |
called <i>Krank</i>, for optimizing the startup time of an |
| 677 |
application. Krank allows you, without changing the source code, to |
| 678 |
construct an application that doesn't need to run any initialization |
| 679 |
code when it starts. <i>Kranking</i> an application thus can often |
| 680 |
result in a dramatic improvement in user-perceived startup time.</p> |
| 681 |
<p>Read more about the Krank feature <a |
| 682 |
href="guide/krank.html">here</a>.</p> |
| 683 |
<p> </p> |
| 684 |
</li> |
| 685 |
<li>LFC LzTrack service (see reference guide for documentation) |
| 686 |
<p></p> |
| 687 |
</li> |
| 688 |
</ul> |
| 689 |
</li> |
| 690 |
|
| 691 |
<li>LFC Data API features: |
| 692 |
<ul> |
| 693 |
<li>Support for http POST.</li> |
| 694 |
<li>XPath attribute predicates [@foo] and <code>[@foo='bar'].</code></li> |
| 695 |
<li>XPath position() and last() operators.</li> |
| 696 |
<li>Selection of multiple intermediate nodes (e.g. <code>*/*/*</code> |
| 697 |
)</li> |
| 698 |
<li><code>$path</code> bindings for datapath. A node |
| 699 |
attribute can be bound directly to a data attribute using this syntax:<br> |
| 700 |
<pre> <attribute name="myattr" value="$path{ somexpath }"></pre> |
| 701 |
where somexpath can be a literal xpath or the value of a variable to |
| 702 |
resolved at init time. This is a two-way binding between the attribute |
| 703 |
and the data. Setting the attribute by other means will update the |
| 704 |
data. </li> |
| 705 |
<li>New LFC classes for runtime XML data access: 3 new |
| 706 |
classes: LzDataNode (abstract), LzDataElement and LzDataText<br> |
| 707 |
The APIs for these classes are currently undocumented, but here are the |
| 708 |
most useful parts of that API: |
| 709 |
<pre> LzDataNode.ownerDocument <br> LzDataNode.parentNode <br> LzDataNode.getPreviousSibling <br> LzDataNode.getNextSibling <br> LzDataText.setData <br> LzDataText.data <br> LzDataElement.childNodes <br> LzDataElement.insertBefore <br> LzDataElement.replaceChild <br> LzDataElement.removeChild <br> LzDataElement.appendChild <br> LzDataElement.cloneNode <br> LzDataElement.getAttr <br> LzDataElement.setAttr <br> LzDataElement.setChildNodes <br> </pre> |
| 710 |
A datapointer's .p slot points to an LzDataNode, or a subclass thereof, |
| 711 |
and that attribute can be set directly as well. </li> |
| 712 |
</ul> |
| 713 |
</li> |
| 714 |
|
| 715 |
<li>User-defined text tags |
| 716 |
<p>The <code>attribute</code> element can be used to <a |
| 717 |
href="reference/index.html?class.html#text-classes">define tags</a> |
| 718 |
that contain text or XHTML. (Tags that extend <code><a |
| 719 |
href="reference/index.html?text.html">text</a></code> and <code><a |
| 720 |
href="reference/index.html?inputtext.html">inputtext</a></code> |
| 721 |
continue to accept XHTML and plain text, respectively.)</p> |
| 722 |
</li> |
| 723 |
|
| 724 |
<li>Optimized inputtext views |
| 725 |
<p><a |
| 726 |
href="reference/index.html?inputtext.html#fixedsize-optimization">Optimized |
| 727 |
<code>inputtext</code> views</a> are more responsive to keyboard |
| 728 |
input at large sizes and on slow machines.</p> |
| 729 |
</li> |
| 730 |
|
| 731 |
<li>Documentation |
| 732 |
<p>This release includes the beginning of the <a |
| 733 |
href="guide">Laszlo Developer's Guide</a>. Check the <a |
| 734 |
href="http://www.laszlosystems.com/developers/">Developer Zone</a> of |
| 735 |
the Laszlo web site for updates and forthcoming chapters.</p> |
| 736 |
<p>There are shiny new examples for:</p> |
| 737 |
<ul> |
| 738 |
<li>LzModeManager </li> |
| 739 |
<li>XML Data (nee httpdata.lzx)</li> |
| 740 |
</ul> |
| 741 |
</li> |
| 742 |
|
| 743 |
<li>Server administration (linked from the welcome page): |
| 744 |
|
| 745 |
<ul> |
| 746 |
<li>There is a new LPS administrative console application (see |
| 747 |
the welcome application <i>Administration</i> section).</li> |
| 748 |
<li><code>?lzt=cacheinfo&details=1</code> server cache |
| 749 |
statistics</li> |
| 750 |
<li>Improved <code>?lzt=stat</code> server load statistics</li> |
| 751 |
</ul> |
| 752 |
</li> |
| 753 |
|
| 754 |
|
| 755 |
<li>LZX language changes: |
| 756 |
<ul> |
| 757 |
<li><code>x, y, width, height</code> now expect <code>${...}</code> |
| 758 |
syntax for expressions, old syntax is deprecated and warnings are given</li> |
| 759 |
<li>the recommended way to test for undefined attributes is to |
| 760 |
declare them in your class with an initial value of null. For example, <br> |
| 761 |
<code><attribute |
| 762 |
name="foo" value="null |
| 763 |
/></code><br> |
| 764 |
then later you can write:<br> |
| 765 |
<code>if (this.foo) ....</code><br> |
| 766 |
This is faster and easier to read than: <code>if (typeof(this.foo) == |
| 767 |
"undefined") |
| 768 |
...</code></li> |
| 769 |
</ul> |
| 770 |
</li> |
| 771 |
<li>LFC changes: |
| 772 |
<ul> |
| 773 |
<li>Inputtext: new APIs |
| 774 |
are documented in the reference |
| 775 |
<ul> |
| 776 |
<li>getSelectionPosition()</li> |
| 777 |
<li> getSelectionSize()</li> |
| 778 |
<li>setSelection() </li> |
| 779 |
</ul> |
| 780 |
</li> |
| 781 |
<li>Node |
| 782 |
<ul> |
| 783 |
<li>initialize -> construct (there will be a warning for this, |
| 784 |
but it may not be in yet)</li> |
| 785 |
<li>thaw -> createChildren</li> |
| 786 |
<li>deleteNode -> destroy<br> |
| 787 |
deleteNode is deprecated</li> |
| 788 |
<li>searchimmediateParents ->searchParents<br> |
| 789 |
searchimmediateParents deprecated</li> |
| 790 |
<li>setProp has been officially deprecated<br> |
| 791 |
use setAttribute instead</li> |
| 792 |
<li>retrieveData -> updateData (retrieveData deprecated), also |
| 793 |
renamed on datapath</li> |
| 794 |
<li>getXPath is deprecated, use XpathQuery instead</li> |
| 795 |
</ul> |
| 796 |
</li> |
| 797 |
<li>Services |
| 798 |
<ul> |
| 799 |
<li>The LzAudio service is deprecated. Use the audio APIs on |
| 800 |
LzView instead.</li> |
| 801 |
</ul> |
| 802 |
</li> |
| 803 |
<li>View |
| 804 |
<ul> |
| 805 |
<li>LzView now sports two shiny new attributes "xoffset" and |
| 806 |
"yoffset", and a method called getBounds which returns the bounds of |
| 807 |
the view when it has been rotated. There's also a couple of |
| 808 |
bounds-based layouts in components/utils/layouts. getBounds() can be |
| 809 |
used in constraints. </li> |
| 810 |
<li>layout attribute: now has JavaScript support for setting at |
| 811 |
run-time. Also classes may override all or part of the attribute. (You |
| 812 |
can make the layout go away with class:none) <br> |
| 813 |
Tag syntax:<br> |
| 814 |
<view |
| 815 |
layout="axis:x; spacing:20"><br> |
| 816 |
|
| 817 |
<view bgcolor="red" |
| 818 |
width="20" height="20"/><br> |
| 819 |
|
| 820 |
<view bgcolor="red" |
| 821 |
width="20" height="20"/><br> |
| 822 |
|
| 823 |
<view bgcolor="red" |
| 824 |
width="20" height="20" /><br> |
| 825 |
</view> <br> |
| 826 |
JavaScript syntax:<br> |
| 827 |
myview.setLayout( |
| 828 |
{class: 'wrappinglayout, axis: 'y' } )<br> |
| 829 |
myview.setAttribute( |
| 830 |
"layout" , {class: 'wrappinglayout, axis: 'y' } );</li> |
| 831 |
<li>new methods: sendbehind, sendinfront (documented in refrence)</li> |
| 832 |
<li>new property: framesloadratio (documented in refrence)</li> |
| 833 |
<li>loadperc, renamed loadratio</li> |
| 834 |
<li>new updateResourceSize method <br> |
| 835 |
Since views which use a multi-frame resource base their size on the |
| 836 |
size of the resource's first frame, the LFC may incorrectly measure the |
| 837 |
intended size of a resource. This method can be called at any time to |
| 838 |
recalcuate the resource size.</li> |
| 839 |
<li>New behavior for views with a constraint on their size<br> |
| 840 |
In previous releases, a view that had a constraint on its size would be |
| 841 |
sized to its contents until the constraint was applied. Now, the view |
| 842 |
will not have any size until the constraint is applied. This changes |
| 843 |
the behavior of some apps -- mostly due to erroneous code that worked |
| 844 |
in previous releases.</li> |
| 845 |
<li>Different time for data application<br> |
| 846 |
In previous releases, a view would receive its data whenever that data |
| 847 |
was present. This meant that data could be received by a view before |
| 848 |
init time, as early as construct time. Now a view will not receive its |
| 849 |
data until <i>after</i> it inits.</li> |
| 850 |
</ul> |
| 851 |
</li> |
| 852 |
<li>ModeManager plays better with LzFocus</li> |
| 853 |
</ul> |
| 854 |
<li>Components changes: |
| 855 |
<ul> |
| 856 |
<li>Layouts |
| 857 |
<ul> |
| 858 |
<li>simplelayout and wrapping layout now have "inset" param, |
| 859 |
to create left or top margin</li> |
| 860 |
<li>wrappinglayout was included in the build, but not |
| 861 |
documented. Now it is. <br> |
| 862 |
Changed "animated" parameter -> "duration" (default is 0, which |
| 863 |
causes it to not animate) horiz_spacing and vert_spacing changed to x |
| 864 |
and yspacing. It also works better now.<br> |
| 865 |
</li> |
| 866 |
</ul> |
| 867 |
</li> |
| 868 |
<li>The Laszlo component set doesn't use the <code>label</code> |
| 869 |
attribute for text content. Use the <code>text</code> attribute |
| 870 |
instead. </li> |
| 871 |
<li>The LZ component set name for a radio button is <code><radiobutton></code> |
| 872 |
instead of <code><radio></code>.</li> |
| 873 |
<li>The default font has changed. The old default font can be |
| 874 |
included by using <code><font name="yourfont" |
| 875 |
src="lztahoe8.ttf"/></code> If you want your entire application to |
| 876 |
use this font, you can redefine the canvas's font like <canvas |
| 877 |
font="yourfont"> at the top of your LZX program.</li> |
| 878 |
<li>Each included font takes roughly 30% more space in an compiled |
| 879 |
binary</li> |
| 880 |
</ul> |
| 881 |
</li> |
| 882 |
<li>Deprecated APIs |
| 883 |
<ul> |
| 884 |
<li>LzNode |
| 885 |
<ul> |
| 886 |
<li>initialize</li> |
| 887 |
<li>thaw</li> |
| 888 |
<li>deleteNode</li> |
| 889 |
<li>searchimmediateParents</li> |
| 890 |
<li>setProp</li> |
| 891 |
<li>retrieveData</li> |
| 892 |
<li>getXPath</li> |
| 893 |
</ul> |
| 894 |
</li> |
| 895 |
<li>LzText |
| 896 |
<ul> |
| 897 |
<li>label</li> |
| 898 |
</ul> |
| 899 |
</li> |
| 900 |
<li>LzAnimatorGroup |
| 901 |
<ul> |
| 902 |
<li>start</li> |
| 903 |
</ul> |
| 904 |
</li> |
| 905 |
<li>LzDatapointer |
| 906 |
<ul> |
| 907 |
<li>getXPath</li> |
| 908 |
<li>getNodeOffset</li> |
| 909 |
</ul> |
| 910 |
</li> |
| 911 |
<li>LzDataset |
| 912 |
<ul> |
| 913 |
<li>getStatusCode</li> |
| 914 |
<li>lockFromUpdate</li> |
| 915 |
<li>unlockFromUpdate</li> |
| 916 |
<li>setURL</li> |
| 917 |
</ul> |
| 918 |
</li> |
| 919 |
<li>global |
| 920 |
<ul> |
| 921 |
<li>inspect</li> |
| 922 |
</ul> |
| 923 |
</li> |
| 924 |
</ul> |
| 925 |
</ul> |
| 926 |
|
| 927 |
|
| 928 |
<h1><a name="Changes1.0.2">Changes in 1.0.3<br> |
| 929 |
</a></h1> |
| 930 |
<ul> |
| 931 |
<li>1.0.3 was a bug fix release. See <a href="#Defects1.0.2">defects |
| 932 |
fixed in 1.0.3</a>.</li> |
| 933 |
</ul> |
| 934 |
|
| 935 |
<h1><a name="Changes1.0.1">Changes in 1.0.2<br> |
| 936 |
</a></h1> |
| 937 |
<ul> |
| 938 |
<li>There are individual properties for specifying http back-end |
| 939 |
timeouts. See lps.properties.</li> |
| 940 |
<li>The default timeout for back end http requests is now 5 seconds. |
| 941 |
(In previous releases the default timeout was infinite.)</li> |
| 942 |
<li>LPS statistics collection can be controlled via values in the |
| 943 |
lps.properties file.</li> |
| 944 |
<li>LPS statistics collection of unique urls now strips the query |
| 945 |
string from the url.</li> |
| 946 |
</ul> |
| 947 |
|
| 948 |
<h1> <a name="Changes">Changes in 1.0.1</a><br/> |
| 949 |
</h1> |
| 950 |
<ul> |
| 951 |
<li>LZX source for redmond components refactored and made more |
| 952 |
readable.</li> |
| 953 |
<li>New Redmond horizontal scroll bar<br> |
| 954 |
</li> |
| 955 |
<li>Server statistics request</li> |
| 956 |
</ul> |
| 957 |
<hr/> |
| 958 |
<h1><a name="Defects3.1">Defects fixed in 3.1</a></h1> |
| 959 |
<p> |
| 960 |
More than a hundred bugs have been fixed since the 3.0.2 release. Consult <a href="http://www.openlaszlo.org/jira/ ">JIRA</a> for complete information. Among the more significant fixes are the following: |
| 961 |
</p> |
| 962 |
<ul> |
| 963 |
<li>mp3 files now correctly work in SOLO mode. <a href="http://www.openlaszlo.org/jira/browse/LPP-487">LPP-487</a></li> |
| 964 |
|
| 965 |
<li>The font in the LZX reference is now embedded—looks good in all browsers. <a href="http://www.openlaszlo.org/jira/browse/LPP-335">LPP-335</a></li> |
| 966 |
<li>Increased memory consumption reported in some nightly builds has been fixed. <a href="http://www.openlaszlo.org/jira/browse/LPP-714">LPP-714</a></li> |
| 967 |
<li>Debugger issues with swf6 have been cleaned up. <a href="http://www.openlaszlo.org/jira/browse/LPP-753">LPP-753</a></li> |
| 968 |
<li>Javascript issues with Internet Explorer have been cleaned up. <a href="http://www.openlaszlo.org/jira/browse/LPP-657">LPP-657</a></li> |
| 969 |
<li>All international character sets work correctly with XML-RPC. <a href="http://www.openlaszlo.org/jira/browse/LPP-716">LPP-716</a></li> |
| 970 |
<li>Various errors in Laszlo Explorer have been fixed. <a href="http://www.openlaszlo.org/jira/browse/LPP-513">LPP-513</a></li> |
| 971 |
<li>"onlastframe" events now work correctly in mac browsers. <a href="http://www.openlaszlo.org/jira/browse/LPP-715">LPP-715</a></li> |
| 972 |
<li>Setting <code>appendChild()</code> directly on a dataset no longer breaks replication. <a href="http://www.openlaszlo.org/jira/browse/LPP-692">LPP-692</a></li> |
| 973 |
</ul> |
| 974 |
|
| 975 |
<h1><a name="Defects3.0.1">Defects fixed in 3.0.2</a></h1> |
| 976 |
<ul> |
| 977 |
<li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-234'>LPP-234</a>] - SOAP schema forward base type references cause exception</li> |
| 978 |
<li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-283'>LPP-283</a>] - Can't pass array of xsd:strings in SOAP rpc call</li> |
| 979 |
<li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-300'>LPP-300</a>] - SOAP only parses first service and port</li> |
| 980 |
<li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-408'>LPP-408</a>] - persistent connection agent stacktrace when sending messages</li> |
| 981 |
<li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-424'>LPP-424</a>] - SOAP simple types not XML escaped when serialized to server</li> |
| 982 |
<li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-432'>LPP-432</a>] - remove "file:" type for data and media requests, replace with http</li> |
| 983 |
<li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-441'>LPP-441</a>] - Type of arrayitem is sometimes set incorrectly in SOAP</li> |
| 984 |
<li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-456'>LPP-456</a>] - amazon-soap gets warning in compiler</li> |
| 985 |
<li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-457'>LPP-457</a>] - WSDL stopped working in 3.0.2cr1</li> |
| 986 |
<li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-425'>LPP-425</a>] - rpc.invoke() should return sequence # in return object</li> |
| 987 |
|
| 988 |
</ul> |
| 989 |
<h1><a name="Defects3.0">Defects fixed in 3.0.1</a></h1> |
| 990 |
<ul> |
| 991 |
<li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-227'>LPP-227</a>] - Fix source location bug "missing some sourceLocations"</li> |
| 992 |
<li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-231'>LPP-231</a>] - Error messages aren't sent to remote debugger</li> |
| 993 |
<li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-86'>LPP-86</a>] - Embed source location</li> |
| 994 |
<li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-228'>LPP-228</a>] - Compiler/runtime support for distinguishing instance and class contents</li> |
| 995 |
<li>[<a href='http://www.openlaszlo.org/jira/browse/LPP-229'>LPP-229</a>] - Autoinclude support file</li> |
| 996 |
|
| 997 |
</ul> |
| 998 |
<h1><a name="Defects2.2.1">Defects fixed in 3.0</a></h1> |
| 999 |
<ul> |
| 1000 |
|
| 1001 |
<li>Error message no longer thrown for TTF fonts missing TTF name table.</li> |
| 1002 |
<li>Compiler now correctly recognizes LZX files named with numbers as their first |
| 1003 |
character in the filename.</li> |
| 1004 |
<li>LPS Error log now includes WARN messages if cache directories are not writable.</li> |
| 1005 |
<li>Windows installer includes more information when it fails to detect an installed |
| 1006 |
JDK</li> |
| 1007 |
<li>LPS is now compatible with ATG Dynamo</li> |
| 1008 |
|
| 1009 |
<li>LZX Reference now includes grid, basegrid, and related components.</li> |
| 1010 |
<li>Two defects in lzo serving were fixed. The first could cause lzo serving to use |
| 1011 |
unnecessary server cpu. The second was a race condition that could cause the |
| 1012 |
server to introduce corruption into the lzo file.</li> |
| 1013 |
|
| 1014 |
|
| 1015 |
<li>Denied requests are now logged.</li> |
| 1016 |
<li>LPS no longer holds an HTTP socket open when the backend uses http-keepalive and |
| 1017 |
the response was an error condition.</li> |
| 1018 |
<li>LPS no longer requires that the xalan jar be in Java's endorsed directory list. |
| 1019 |
LPS installation and initialization issues with Java 1.4.2 and/or Tomcat 5.0 |
| 1020 |
are repaired.</li> |
| 1021 |
|
| 1022 |
<li>http.maxUsers property in lps.properties works correctly.</li> |
| 1023 |
|
| 1024 |
|
| 1025 |
|
| 1026 |
<li>Visible gets set to false when opacity is set to 0 if visibility hasn't been |
| 1027 |
explicitly declared. This may cause some unexpected behavior with regards to |
| 1028 |
layouts and constraints.</li> |
| 1029 |
<li>Setting the visible property on a view which has a datapath may have |
| 1030 |
unpredictable results, since the datapath uses setVisible to control whether the |
| 1031 |
view is visible due to the presence or absence of mapped data. To work around, |
| 1032 |
either be sure to set the visible after the ondata event or wrap the data-mapped |
| 1033 |
view in an extra view.</li> |
| 1034 |
<li>lps now has the ability to force compilation when compmgrdependencyoption = never</li> |
| 1035 |
<li>LPS now includes a sample deployment configuration with recommended parameters |
| 1036 |
set for live deployment. See $LPS_HOME/WEB-INF/lps/config-deploy.</li> |
| 1037 |
|
| 1038 |
<li>comboboxes and menus can be closed by pressing the 'ESC' key</li> |
| 1039 |
<li>In order to see the logging done by the httpclient library on behalf of the |
| 1040 |
LPS running inside Tomcat 5, you need to copy |
| 1041 |
<pre> |
| 1042 |
$LPS_HOME/WEB-INF/lib/commons-logging.jar and |
| 1043 |
$LPS_HOME/WEB-INF/lib/log4j.jar |
| 1044 |
|
| 1045 |
to $TOMCAT_HOME/common/lib |
| 1046 |
</pre> |
| 1047 |
and restart tomcat5. The copy of Tomcat5 that comes with LPS already contains |
| 1048 |
these jars installed in the correct location.</li> |
| 1049 |
<li>Disabled editext now displays its contents |
| 1050 |
<pre> |
| 1051 |
<edittext width="100" name="txt" text="foobar" enabled="false"/> |
| 1052 |
</pre> |
| 1053 |
works as expected</li> |
| 1054 |
|
| 1055 |
<li>javadatasource has been completely deprecated and removed</li> |
| 1056 |
<li>WSDLs are now correctly fetched over HTTPs</li> |
| 1057 |
|
| 1058 |
<li>Attributes used as an 'lvalue' (the target of an assignment) in a |
| 1059 |
method body may now be referred to as simply <attribute>. Explicitly using |
| 1060 |
this.<attribute> or this["<attribute>"] is no longer required.</li> |
| 1061 |
|
| 1062 |
|
| 1063 |
<li>^M in CDATA no longer results in blank text.</li> |
| 1064 |
<li>The Tree component now works with scrollbar when built with remote data.</li> |
| 1065 |
<li>Resizable canvas: the canvas width and height may now be expressed as a |
| 1066 |
proportion of the browser window dimensions. The canvas will send onwidth and |
| 1067 |
onheight events. Views may be constrained to the width and height of the canvas. |
| 1068 |
For example: |
| 1069 |
<pre> |
| 1070 |
<canvas width="100%" height="100%"> |
| 1071 |
<view width="${parent.width}" height="${parent.height/4}" ... |
| 1072 |
</pre></li> |
| 1073 |
<li>The API for specifying Client Fonts has been finalized.</li> |
| 1074 |
|
| 1075 |
<li>This release adds a dialog box that allows the developer to set debugger |
| 1076 |
options. This dialog box is available under both the swf5 and swf6 targets, |
| 1077 |
but most of the options only have an effect in a swf6 target.</li> |
| 1078 |
<li>The size profiler and the size summary at the bottom of the app console has been |
| 1079 |
updated to properly support swf6 and the internal compression.</li> |
| 1080 |
<li>This release creates applications that require version 6.0r79 or greater of the |
| 1081 |
Flash Player. The HTML |
| 1082 |
pages that the server generates force an update from Flash Player 5. This |
| 1083 |
means that if you view the |
| 1084 |
default HTML pages on a browser with Flash Player 5 installed, the application |
| 1085 |
will generate an update dialog. This is currently only implemented for Internet |
| 1086 |
Explorer on Windows</li> |
| 1087 |
<li>Applications no longer display unexplained compiler warnings.</li> |
| 1088 |
<li>In previous releases, the default font was an embedded font called "Verity". in |
| 1089 |
this release the default font is a client font whose appearance is dependant on |
| 1090 |
the installed font in your environment. The default font is currently "Verdana". |
| 1091 |
Some systems do not include this font and may have an undesirable appearance. |
| 1092 |
This will change in a future release.</li> |
| 1093 |
|
| 1094 |
<li>In previous releases, the default font was an embedded font called "Verity". in |
| 1095 |
this release the default font is a client font whose appearance is dependant on |
| 1096 |
the installed font in your environment. The default font is currently "Verdana". |
| 1097 |
Some systems do not include this font and may have an undesirable appearance. A |
| 1098 |
font fallback mechanism is in place which attempts to select the best font |
| 1099 |
available.</li> |
| 1100 |
<li>Multiline text no longer has a default width of 0.</li> |
| 1101 |
|
| 1102 |
|
| 1103 |
|
| 1104 |
<li>The KRANK feature is now implemented for the swf6 target. Kranked swf6 |
| 1105 |
applications are fully functional.</li> |
| 1106 |
|
| 1107 |
|
| 1108 |
|
| 1109 |
</ul> |
| 1110 |
|
| 1111 |
<h1><a name="Defects2.2">Defects fixed in 2.2.1</a></h1> |
| 1112 |
|
| 1113 |
<li>You can now pass datasets for request headers and document style calls instead |
| 1114 |
of XML strings. Note that datasets aren't namespace aware so, for the time |
| 1115 |
being, using datasets is not reccomended. |
| 1116 |
You can now access response headers by setting a local dataset in the SOAP object. |
| 1117 |
|
| 1118 |
For example: |
| 1119 |
<pre> |
| 1120 |
<soap requestheaders="dset1" responseheaders="dset2"> |
| 1121 |
<remotecall funcname="docstylefunc"> |
| 1122 |
<param value="dset3" /> |
| 1123 |
</remotecall> |
| 1124 |
</soap> |
| 1125 |
|
| 1126 |
</pre></li> |
| 1127 |
<li>The SOAP scalability issues have been addressed.</li> |
| 1128 |
<h1><a name="Defects2.1.3">Defects fixed in 2.2 (since 2.1.3)</a></h1> |
| 1129 |
<ul> |
| 1130 |
|
| 1131 |
<li>Visible gets set to false when opacity is set to 0 if visibility hasn't been |
| 1132 |
explicitly declared. This may cause some unexpected behavior with regards to |
| 1133 |
layouts and constraints.</li> |
| 1134 |
<li>Setting the visible property on a view which has a datapath may have |
| 1135 |
unpredictable results, since the datapath uses setVisible to control whether the |
| 1136 |
view is visible due to the presence or absence of mapped data. To workaround, |
| 1137 |
either be sure to set the visible after the ondata event or wrap the data-mapped |
| 1138 |
view in an extra view.</li> |
| 1139 |
<li>lps now has the ability to force compilation when compmgrdependencyoption = never</li> |
| 1140 |
<li>LPS now includes a sample deployment configuration with reccomended parameters |
| 1141 |
set for live deployment. See $LPS_HOME/WEB-INF/lps/config-deploy.</li> |
| 1142 |
<li>comboboxes and menus can be closed by pressing the 'ESC' key</li> |
| 1143 |
<li>In order to see the logging done by the httpclient library on behalf of the |
| 1144 |
LPS running inside Tomcat 5, you need to copy |
| 1145 |
<pre> |
| 1146 |
$LPS_HOME/WEB-INF/lib/commons-logging.jar and |
| 1147 |
$LPS_HOME/WEB-INF/lib/log4j.jar |
| 1148 |
|
| 1149 |
to $TOMCAT_HOME/common/lib |
| 1150 |
</pre> |
| 1151 |
and restart tomcat5. The copy of Tomcat5 that comes with LPS already contains |
| 1152 |
these jars installed in the correct location.</li> |
| 1153 |
|
| 1154 |
<li>Disabled editext now displays its contents |
| 1155 |
<pre> |
| 1156 |
<edittext width="100" name="txt" text="foobar" enabled="false"/> |
| 1157 |
</pre> |
| 1158 |
works as expected</li> |
| 1159 |
<li>Verified fixed in lps-2.2 (lps-components), closing.</li> |
| 1160 |
<li>javadatasource has been completely deprecated and removed</li> |
| 1161 |
|
| 1162 |
|
| 1163 |
</ul> |
| 1164 |
<h1><a name="Defects2.1.2">Defects fixed in 2.1.3 (since 2.1.2) |
| 1165 |
</a></h1> |
| 1166 |
<ul> |
| 1167 |
<li>Under load, single long back-end requests no longer lock the entire media or data cache.</li> |
| 1168 |
</ul> |
| 1169 |
|
| 1170 |
<h1><a name="Defects2.1.1">Defects fixed in 2.1.2 (since 2.1.1) |
| 1171 |
</a></h1> |
| 1172 |
<ul> |
| 1173 |
<li>LPS no longer requires that the xalan jar be in Java's endorsed directory list. LPS installation and initialization issues with Java 1.4.2 and/or Tomcat 5.0 are repaired.</li> |
| 1174 |
<li>The compiler uses the correct font when "default" font is redefined and canvas |
| 1175 |
font is *not* redefined. |
| 1176 |
<pre> |
| 1177 |
<canvas> |
| 1178 |
<font src="helmetr.ttf" name="default" /> |
| 1179 |
|
| 1180 |
<text>helmet</text> |
| 1181 |
</canvas> |
| 1182 |
</pre> |
| 1183 |
Works as expected.</li> |
| 1184 |
<li>Denied requests are now logged.</li> |
| 1185 |
<li>LPS no longer holds an HTTP socket open when the backend uses http-keepalive and |
| 1186 |
the response was an error condition.</li> |
| 1187 |
<li>http.maxUsers property in lps.properties works correctly.</li> |
| 1188 |
<li>combobox sends keycode with key events correctly.</li> |
| 1189 |
<li>The <code>javadatasource</code> is deprecated and will be replaced in a future release.</li> |
| 1190 |
</ul> |
| 1191 |
|
| 1192 |
<h1><a name="Defects2.1">Defects fixed in 2.1.1 (since 2.1) |
| 1193 |
</a></h1> |
| 1194 |
<ul> |
| 1195 |
<li>LZX Reference now includes grid, basegrid, and related components.</li> |
| 1196 |
<li>Two defects in lzo serving were fixed. The first could cause lzo serving to use unnecessary server cpu. The second was a race condition that could cause the server to introduce corruption into the lzo file.</li> |
| 1197 |
</ul> |
| 1198 |
|
| 1199 |
<h1><a name="Defects2.0">Defects fixed in 2.1 (since 2.0) |
| 1200 |
</a></h1> |
| 1201 |
<ul> |
| 1202 |
<li>Error message no longer thrown for TTF fonts missing TTF name table.</li> |
| 1203 |
<li>Compiler now correctly recognizes LZX files named with numbers as their first |
| 1204 |
character in the filename.</li> |
| 1205 |
<li>LPS Error log now includes WARN messages if cache directories are not writable.</li> |
| 1206 |
<li>Windows installer includes more information when it fails do detect an installed |
| 1207 |
JDK</li> |
| 1208 |
|
| 1209 |
<li>LPS is now compatible with ATG Dynamo</li> |
| 1210 |
</ul> |
| 1211 |
<h1><a name="Defects1.0.3">Defects fixed in 2.0 (since 1.0.3) |
| 1212 |
</a></h1> |
| 1213 |
<ul><li>A resource whose name begins with a number, such as <resource name="2c" src="..."/>, cannot be referenced. An attempt to refer to it, such as <view resource="2c"/>, will instead attempt to import the file named "2c".</li> |
| 1214 |
<li>When the compiler issues warnings for missing file and resource errors, they |
| 1215 |
may display the absolute pathname of the file on disk, rather than pathnames |
| 1216 |
relative to the base application URL, as other compiler warnings do.</li> |
| 1217 |
|
| 1218 |
<li>A minor optimization was made to the way in which constraints are |
| 1219 |
resolved that has changed the order in which they are applied. This normally |
| 1220 |
shouldn't matter, but in some edge cases (especially deeply circular |
| 1221 |
constraints and program errors).</li> |
| 1222 |
<li>The LFC's xpath parser does not properly interpret whitespace |
| 1223 |
between /'s and []'s.</li> |
| 1224 |
<li> |
| 1225 |
>If you set a font is set as an attribute of the canvas and any of the redmond |
| 1226 |
components are used, the following compiler error will be generated: |
| 1227 |
<pre> |
| 1228 |
Error: ../WEB-INF/lps/components/redmond/redmondcombobox.lzx:119:55: Can't find font nicefont ; compilation aborted |
| 1229 |
</pre> |
| 1230 |
Workaround: set the font attribute on all of the top-level views or explicitly |
| 1231 |
include the redmond component or the whole library, for example: |
| 1232 |
<pre> |
| 1233 |
<include href="/redmond/library.lzx"/> |
| 1234 |
or |
| 1235 |
<include href="/redmond/redmondbutton.lzx"/></pre></li> |
| 1236 |
<li>Multi-line string literals (or an unclosed string literal) are errors |
| 1237 |
but the compiler does not generate a warning for them and may generate incorrect |
| 1238 |
error locations as a result.</li> |
| 1239 |
<li>Fixed that thing that was busted last time.</li> |
| 1240 |
<li>A view with pixellock="true" will stop updating its size to the size |
| 1241 |
of its contents, even if it doesn't have an explicit width and height.</li> |
| 1242 |
<li>Long animators (with a duration of about eight seconds ) may not end at the |
| 1243 |
coorect value.</li> |
| 1244 |
<li>The reference lists 'resizable' as a view attribute, but this attribute is unused.</li> |
| 1245 |
<li> |
| 1246 |
If you are deploying the LPS inside Tomcat (or other servlet |
| 1247 |
containers) running against j2sdk (or j2re) 1.4.2, you will need to |
| 1248 |
make sure the LPS version of xalan.jar is used. For Tomcat you |
| 1249 |
can copy $LPS_HOME/WEB-INF/lib/xalan.jar to $TOMCAT_HOME/common/endorsed. |
| 1250 |
See you servlet container documentation specific details here. |
| 1251 |
</li> |
| 1252 |
<li>A mistake with the capitalization of attribute or event names may lead to compiler errors which are hard to pinpoint. XML is casensitive, be sure to check the proper se-case of attribute names (they will all be lowercase in the library lzx components).</li> |
| 1253 |
<li> |
| 1254 |
Error messages of the form: |
| 1255 |
<pre> |
| 1256 |
contactslib.lzx:320:44: element "tagname" from namespace "http://www.laszlosystems.com/2003/05/lzx" not allowed in this context |
| 1257 |
</pre> |
| 1258 |
mean simply that that "tagname" is not a known tag name. The bits about the |
| 1259 |
namespace and "in this context" can be ignored.</li> |
| 1260 |
<li>No compiler warning given when a resource is undefined. So for example |
| 1261 |
this code will not warn that the resource identifier "fake" is undeclared. |
| 1262 |
<pre> |
| 1263 |
<view resource="fake"/></pre></li> |
| 1264 |
<li>Testing for undefined properties using 'typeof(o.p) == "undefined"' will |
| 1265 |
generate a warning in the debugger. The warning can be avoided if necessary by |
| 1266 |
using 'typeof(o[""+(p)]) == "undefined"'. If 'p' is known at compile time, the |
| 1267 |
string conversion forced by '""+' can be omitted. Best practice is to tolerate |
| 1268 |
the warning, which will not occur in a future release, rather than obfuscate |
| 1269 |
your code in this fashion.</li> |
| 1270 |
<li>lztabslider panels display "clickable" cursor when the area is not designated as clickable</li> |
| 1271 |
<li>Warnings about tag 0x19 are harmless and can be ignored.</li> |
| 1272 |
<li>The font "italic lztahoe8" is not compiled into the application swf file by |
| 1273 |
default. This |
| 1274 |
means that if you try to use italic style text in Javascript code, it will be |
| 1275 |
invisible. Workaround is to manually include the font using a <font> tag in |
| 1276 |
the app, or to include static text in the XML which uses italic style.</li> |
| 1277 |
|
| 1278 |
<li>Changing motion attribute on an animatorgroup has no effect.</li> |
| 1279 |
<li>Constraining an attribute to one or more values which are themselves |
| 1280 |
constraints may produce debugger warnings about undefined references, even |
| 1281 |
though this is perfectly valid. Ignore these warnings.</li> |
| 1282 |
<li>There may be cases where calls to Debug.write don't result in debugger |
| 1283 |
output, even though the method is being called. This is known to happen for the |
| 1284 |
onaddsubview event and the addSubview methods when they are called by a |
| 1285 |
replicated node that is a class which has children.</li> |
| 1286 |
<li>Too many consecutive fonts will cause the compiler to emit bad code. As a |
| 1287 |
workkaround, use fewer fonts or intersperse an innocuous '<script>' block.</li> |
| 1288 |
<li>Laszlo applications may misrender a PNG with an alpha channel.</li> |
| 1289 |
<li>subviews containing subviews which are added to a class which has defaultplacement attribute set do not trigger onaddsubview or addsubview to get called</li> |
| 1290 |
<li>Can't restart an animator onstop</li> |
| 1291 |
<li>Calling stop() on an animator which isn't running will cause problems. The animator destroy() method calls stop, so animators in states may not work correctly.</li> |
| 1292 |
<li>Layouts, constraints, and LzView.setAttributeRelative don't currently |
| 1293 |
work properly with views that are rotated.</li> |
| 1294 |
<li>When data is imported the runtime, only xml element nodes are treated |
| 1295 |
as children of a given data node. All text nodes are coalesced through |
| 1296 |
concatenation and can be referred to as the text() property of the node. When |
| 1297 |
the node is serialized, all of the text will be written as the last (text) |
| 1298 |
element of the node.</li> |
| 1299 |
<li>For compatibility with the DR release, http headers come back with |
| 1300 |
every data response by default. This allows for the client to introspect header |
| 1301 |
information. Given that this is usually not necessary, the default results in |
| 1302 |
extra data traffic between the client and the LPS. The response headers can be |
| 1303 |
turned off by using the dataset attribute getresponseheaders="false"</li> |
| 1304 |
|
| 1305 |
<li>Remaking a request of a dataset which is mapped to a view replication |
| 1306 |
which does not use pooling results in a brief display problem where the views |
| 1307 |
from both the old request and the new request are visible at the same time. Use |
| 1308 |
the pooling option to work around this if possible, or hide the replicated |
| 1309 |
views when resubmitting the request.</li> |
| 1310 |
<li>>Datapaths which match multiple nodes can only do so on the last node |
| 1311 |
in their xpath. Always map the multiple match to the view which replicates.</li> |
| 1312 |
<li>selectParent will select bogus nodes that are not inside the dataset |
| 1313 |
which a datapointer is pointing to, and it will return true (indiciating that |
| 1314 |
it successfully selected a parent node) in this case.</li> |
| 1315 |
<li>Although calling setFromPointer() on a datapath will work when the |
| 1316 |
call is made, the datapath may not properly process further changes to the |
| 1317 |
underlying data after the call is made. If the datapath needs to update as the |
| 1318 |
data changes, compose an xpath that points to the new data and call the |
| 1319 |
datapath's setXPath routine with that value.</li> |
| 1320 |
<li>Once applied, a $path constraint inside a state will not be removed when the state is removed.</li> |
| 1321 |
<li>Calling super.otherMethod() from inside thisMethod won't work as |
| 1322 |
expected. This generally isn't best practice, but it is spec'ed to work in the |
| 1323 |
ECMAScript standard. Because of this bug, super should only be used when |
| 1324 |
calling the superclass version of the same method.</li> |
| 1325 |
<li>The getVolume call doesn't work properly</li> |
| 1326 |
<li>The LFC doesn't properly interpret the width and height of rotated |
| 1327 |
views -- transformations to their width and height happen in their parents (non- |
| 1328 |
rotated) coordinate system. To manipulate the width and height of a rotated |
| 1329 |
view, create an extra layer of hierarchy and embed the resizing view inside the |
| 1330 |
rotated one.</li> |
| 1331 |
<li>The deleteNode() method of LzNode (and the overrides by the subclasses |
| 1332 |
of LzNode, such as LzView) are incomplete and do not free all the memory used |
| 1333 |
by the node. When possible, reuse is preferable to delete/new because of this |
| 1334 |
problem and because node instantiation is slow.</li> |
| 1335 |
<li>Saving an XML file from NotePad or Visual Studio .NET with UTF-8 encoding may |
| 1336 |
insert a "byte order mark" at the beginning of the text. LPS will |
| 1337 |
report this error: |
| 1338 |
<pre> |
| 1339 |
Error: broken.lzx:1:1: Content is not allowed in prolog.</pre></li> |
| 1340 |
</ul> |
| 1341 |
|
| 1342 |
<h1><a name="Defects1.0.2">Defects fixed in 1.0.3<br> |
| 1343 |
</a></h1> |
| 1344 |
<ul> |
| 1345 |
<li>In previous releases running against Sun JVM 1.4 or greater, |
| 1346 |
because of a JVM bug, the server can throw a StackOverFlow Exception |
| 1347 |
when validating the LZX code for certain applications. When this |
| 1348 |
occurs, in 1.0.3, the server will generate a compiler warning, disable |
| 1349 |
validation for the compilation, and continue to compile the |
| 1350 |
application. </li> |
| 1351 |
</ul> |
| 1352 |
|
| 1353 |
<h1><a name="Defects1.0.1">Defects fixed in 1.0.2<br> |
| 1354 |
</a></h1> |
| 1355 |
<ul> |
| 1356 |
<li>The LPS now properly flushes http requests to the back-end. This |
| 1357 |
will result in fewer warnings in the detailed lps log about |
| 1358 |
RecoverableHttpExceptions. </li> |
| 1359 |
<li>Numerous typographical errors in the comments in the default |
| 1360 |
lps.properties were fixed.</li> |
| 1361 |
<li>Individual back-end requests can no longer hang the server cache.</li> |
| 1362 |
<li>The request toggles in lps.properties now work correctly.</li> |
| 1363 |
</ul> |
| 1364 |
|
| 1365 |
<h1><a name="Defects">Defects fixed in 1.0.1<br> |
| 1366 |
</a></h1> |
| 1367 |
<ul> |
| 1368 |
<li>Improved client performance<br> |
| 1369 |
</li> |
| 1370 |
<li>Bloch got married.</li> |
| 1371 |
<li>iPaq compatibility restored.<br> |
| 1372 |
</li> |
| 1373 |
<li>Redmond window has visible non-focus state.</li> |
| 1374 |
<li>Combobox and menus can now be used in clipped views.</li> |
| 1375 |
<li>Checkbox can be used in constraints. <br> |
| 1376 |
</li> |
| 1377 |
</ul> |
| 1378 |
<p class="bodytext">© Copyright 2002-2005 <a |
| 1379 |
href="http://www.laszlosystems.com/">Laszlo Systems, Inc.</a> All rights reserved. Unauthorized use, duplication or distribution is strictly prohibited.</p> |
| 1380 |
</body> |
| 1381 |
</html> |