[Laszlo-dev] [Platform-team] lz.colors question

Mamye Kratt mamye at laszlosystems.com
Fri Nov 14 14:26:48 PST 2008


http://www.openlaszlo.org/jira/browse/LPP-2544

----- Original Message ----- 
From: "Mamye Kratt" <mamye at laszlosystems.com>
To: "J Crowley" <jcrowley at laszlosystems.com>; "P T Withington" 
<ptw at pobox.com>
Cc: "Platform Team" <platform-team at laszlosystems.com>; "Max Carlson" 
<max at openlaszlo.org>; "Laszlo-dev bug reporting" <laszlo-dev at openlaszlo.org>
Sent: Friday, November 14, 2008 5:25 PM
Subject: Re: [Platform-team] lz.colors question


> We have a bug for tinting/dolors not working in dhtml.
>
>
> ----- Original Message ----- 
> From: "J Crowley" <jcrowley at laszlosystems.com>
> To: "P T Withington" <ptw at pobox.com>
> Cc: "Platform Team" <platform-team at laszlosystems.com>; "Max Carlson" 
> <max at openlaszlo.org>; "Laszlo-dev bug reporting" 
> <laszlo-dev at openlaszlo.org>
> Sent: Friday, November 14, 2008 4:20 PM
> Subject: Re: [Platform-team] lz.colors question
>
>
>> Thanks.  There also seems to be a bug in that DHTML doesn't display 
>> colors that are displayed in SWF8.  I'll file that one as well...
>>
>> P T Withington wrote:
>>> That sounds like at least 2 bugs.
>>>
>>> 1) I'm not sure the compiler should be giving an error if you write an 
>>> expression as the initial (immediate) value for a color.  The compiler 
>>> should just let that expression be passed through and evaluated at load 
>>> time.  It is an optimization for the compiler to try to evaluate 
>>> constant colors at compile time, so it should not give an error if it 
>>> cannot.
>>>
>>> 2) The constraint/swf9 issue is a bug in constraints.  If you try to 
>>> constrain to an object property and the object is not an LzEventable 
>>> (i.e., cannot participate in our event system) then the constraint 
>>> should not be trying to 'listen' for events from that object.  _Maybe_ 
>>> you should be getting a warning, but I don't think you need to.  If you 
>>> thought you could update lz.colors and have constraints update, you 
>>> would have to say lz.colors.setAttribute('iceblue', ...) and that 
>>> _would_ give you an error, so you would know right then that something 
>>> was rotten.
>>>
>>> Please file both bugs with your test cases.
>>>
>>> On 2008-11-14, at 14:46EST, J Crowley wrote:
>>>
>>>> Here's something else... I changed the example to:
>>>>
>>>> <class name="box1" width="100" height="100" 
>>>> bgcolor="${lz.colors['gold4']}" />
>>>>
>>>> <class name="box2" width="100" height="100" 
>>>> bgcolor="${lz.colors.iceblue1}" />
>>>>
>>>> Which works fine in SWF8, but doesn't show the colors for the boxes in 
>>>> DHTML (If I remove the constraints from the first one, I get a compiler 
>>>> error, and if I remove them from the second, it shows black and gives 
>>>> an "Invalid value for bgcolor" message in the Debugger) and gives this 
>>>> error in SWF9:
>>>>
>>>> TypeError: Error #1034: Type Coercion failed: cannot convert 
>>>> LzInheritedHash at 716ccd1 to LzEventable.
>>>>   at LzNode/applyConstraintMethod()[C:\Documents and 
>>>> Settings\laszlo\Local Settings\Temp\lzswf9\lzgen2652\LzNode.as:1048]
>>>>   at LzNode/applyConstraintExpr()[C:\Documents and 
>>>> Settings\laszlo\Local Settings\Temp\lzswf9\lzgen2652\LzNode.as:1083]
>>>>   at LzNode/__LZresolveReferences()[C:\Documents and 
>>>> Settings\laszlo\Local Settings\Temp\lzswf9\lzgen2652\LzNode.as:943]
>>>>   at LzNode/__LZcallInit()[C:\Documents and Settings\laszlo\Local 
>>>> Settings\Temp\lzswf9\lzgen2652\LzNode.as:424]
>>>>   at LzCanvas/__LZcallInit()[C:\Documents and Settings\laszlo\Local 
>>>> Settings\Temp\lzswf9\lzgen2652\LzCanvas.as:443]
>>>>   at LzCanvas/__LZinstantiationDone()[C:\Documents and 
>>>> Settings\laszlo\Local Settings\Temp\lzswf9\lzgen2652\LzCanvas.as:390]
>>>>   at LzInstantiatorService/makeSomeViews()[C:\Documents and 
>>>> Settings\laszlo\Local 
>>>> Settings\Temp\lzswf9\lzgen2652\LzInstantiatorService.as:193]
>>>>   at LzInstantiatorService/checkQ()[C:\Documents and 
>>>> Settings\laszlo\Local 
>>>> Settings\Temp\lzswf9\lzgen2652\LzInstantiatorService.as:130]
>>>>   at Function/http://adobe.com/AS3/2006/builtin::call()
>>>>   at LzEvent/sendEvent()[C:\Documents and Settings\laszlo\Local 
>>>> Settings\Temp\lzswf9\lzgen2652\LzEvent.as:92]
>>>>   at LzIdleService/__idleupdate()[C:\Documents and 
>>>> Settings\laszlo\Local 
>>>> Settings\Temp\lzswf9\lzgen2652\LzIdleService.as:53]
>>>>   at LzIdleKernel$/__update()[C:\Documents and Settings\laszlo\Local 
>>>> Settings\Temp\lzswf9\lzgen2652\LzIdleKernel.as:27]
>>>>
>>>>
>>>> P T Withington wrote:
>>>>> But he should also be able to say:
>>>>>
>>>>>  bgcolor="iceblue"
>>>>>
>>>>> and/or
>>>>>
>>>>>  bgcolor="${this.acceptValue('iceblue', 'color')}"
>>>>>
>>>>> Which might be more instructive.  In the first case, you are 
>>>>> specifying a constant color, and since bgcolor is an attribute with a 
>>>>> type of `color` the token `iceblue` is acceptable as a value (not 
>>>>> tested).  In the second case, you are using a constraint, and (at 
>>>>> least as of now), constraints are simply expressions that _directly_ 
>>>>> set the value of an attribute -- they _do_not_ pass through the data 
>>>>> interface, which converts string representations into values according 
>>>>> to type.  (I think this is desirable.)  So, in the second case, I am 
>>>>> calling the (currently unpublished) `acceptValue` method, which takes 
>>>>> a string representation of a value and parses it according to the 
>>>>> specified type.
>>>>>
>>>>> There should be a better way.  Perhaps I should be able to say:
>>>>>
>>>>>  bgcolor="$accept{'iceblue'}"
>>>>>
>>>>> (meaning use acceptValue and the attribute's declared type to parse 
>>>>> the value of the expression)?  We've already got $path and $style, why 
>>>>> not $accept (unless someone can come up with a better name).  I think 
>>>>> this would allow me to say something like:
>>>>>
>>>>>  <inputtext id="color" />
>>>>>  <view bgcolor="$accept{color.text}" />
>>>>>
>>>>> would that be useful?
>>>>>
>>>>>
>>>>> On 2008-11-13, at 21:16EST, Max Carlson wrote:
>>>>>
>>>>>> You should be able to just set it to bgcolor="lz.colors.iceblue4" - 
>>>>>> constraints shouldn't be required.  Also note that colors aren't in 
>>>>>> global[] anymore - use lz.colors[''] instead.
>>>>>>
>>>>>> J Crowley wrote:
>>>>>>> So, I'm working on fixing one of the color dguide examples.  The 
>>>>>>> description on the doc page (docs/developers/color.html) reads:
>>>>>>> -----
>>>>>>> To specify any color but the 16 which are usable by name, use 
>>>>>>> 0xFFFFFF hex codes. Alternatively, the non-standard colors named in 
>>>>>>> |lps/components/base/colors.lzx| were added to OpenLaszlo's global 
>>>>>>> namespace. Those colors can also be employed by name, but note the 
>>>>>>> ${constraint} syntax around the bgcolor specification. There are two 
>>>>>>> ways to make the constraint: |bgcolor="${global['iceblue1']}"| is 
>>>>>>> the same as |bgcolor="${iceblue1}"|.
>>>>>>> -----
>>>>>>> The example this describes is:
>>>>>>> -----
>>>>>>> <canvas debug="true">
>>>>>>> <simplelayout axis="x" spacing="10"/>
>>>>>>> <class name="box1" width="100" height="100" 
>>>>>>> bgcolor="${global['gold4']}" />
>>>>>>> <class name="box2" width="100" height="100" bgcolor="${iceblue1}" />
>>>>>>> <box1 id="sun">
>>>>>>>  <text text="Sun"/>
>>>>>>> </box1>
>>>>>>> <box2 id="mystic">
>>>>>>>  <text fgcolor="0xFFFFFF" text="Mystic"/>
>>>>>>> </box2>
>>>>>>> </canvas>
>>>>>>> -----
>>>>>>> Thing is, the only way to get the example to work is to change 
>>>>>>> bgcolor="${iceblue1}" to bgcolor="${lz.colors.iceblue1}", and trying 
>>>>>>> to use the global['gold4'] syntax doesn't actually work.  So my 
>>>>>>> question is:  Is the description in the documentation wrong? 
>>>>>>> Because doing it the way the description states results in a 
>>>>>>> Debugger error. (Keep in mind I'm using the docs on openlaszlo.org, 
>>>>>>> since I can't build locally, so if the description has already been 
>>>>>>> changed, let me know and I won't file the bug, but I do need to fix 
>>>>>>> the example. What I need to know then is, what is the new way of 
>>>>>>> doing this?)
>>>>>>> Thanks!
>>>>>>> Josh
>>>>>>
>>>>>> -- 
>>>>>> Regards,
>>>>>> Max Carlson
>>>>>> OpenLaszlo.org
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>>
>
> 



More information about the Laszlo-dev mailing list