[Updated CSSHandler to functions, reals, and percentages. `rgb(10%,
25%, 30%)` works now.]
Change 20070102-ptw-s by [EMAIL PROTECTED] on 2007-01-02
10:14:51 EST
in /Users/ptw/OpenLaszlo/trunk
Summary: Better typing for styles
Bugs Fixed:
LPP-3356: 'can't make bgcolor transparent with css'
Technical Reviewer: ben (pending)
QA Reviewer: adam (pending)
Doc Reviewer: jsundman (Message-Id: <65BC51A6-BFF2-4589-
[EMAIL PROTECTED]>)
Documentation:
It seems that people want to write CSS colors as 0xFF00DD. But that
is not valid CSS. So they wrote them as "0xFF00DD" and then were
disappointed that the runtime did not recognize those strings as
numbers. So a kludge was added to the style applicator to convert
strings to numbers. But this kludge did not consider that the string
"null" would coerce nicely to the number 0, which for a color is
black. And thereby hangs a tale.
Release Notes:
You will get a warning if you use "OxXXXXXX" to specify a color in a
CSS style sheet. You should be using #XXXXXX instead.
Details:
LzCSSStyle.js: Consider the case where the value of the property
may be 0, or null, which coerce to false in a boolean context.
LzNode.as: Only do the string->int conversion if the string is
really parseable as a number. Warn the user that there is a
better way.
LaszloView.as: Fix the code that was trying to warn you when you
set bgcolor to a non-number to actually detect and report that.
StyleProperty.java: Add a toString method to support
ScriptCompiler.writeObject
CSSHandler.java: Use the LexicalUnitType information to store the
value as an appropriate Javascript literal (i.e., encode the type
information).
StyleSheetCompiler: Use ScriptCompiler.writeObject to write the
style map, so that type information encoded in the literals is
preserved.
Tests:
Bug test and failing cases both pass now. That is, once I
corrected the failing test case to specify CSS bgcolor as the
token `null`, rather than the string `"null"`.
Files:
M WEB-INF/lps/lfc/services/LzCSSStyle.js
M WEB-INF/lps/lfc/core/LzNode.as
M WEB-INF/lps/lfc/views/LaszloView.as
M WEB-INF/lps/server/src/org/openlaszlo/css/StyleProperty.java
M WEB-INF/lps/server/src/org/openlaszlo/css/CSSHandler.java
M WEB-INF/lps/server/src/org/openlaszlo/compiler/
StyleSheetCompiler.java
Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20070102-ptw-
s.tar