[Laszlo-dev] switch and when in LZX

P T Withington ptw at pobox.com
Thu Aug 20 07:04:46 PDT 2009


Should there be a bug to deprecate the old <when runtime= > way?

On 2009-08-19, at 19:51EDT, Raju Bitter wrote:

> Ok, thanks a lot. That makes sense. :-)
>
> On Aug 20, 2009, at 12:24 AM, Henry Minsky wrote:
>
>> Forgot to make clear, the <when property="foo"> is implicitly  
>> testing a boolean value,
>> which many of the compile time constants are. It is just 'runtime'  
>> that is a string value, and can be compared via the <when  
>> property="foo" value="bar"> form.
>>
>> On Wed, Aug 19, 2009 at 6:22 PM, Henry Minsky  
>> <henry.minsky at gmail.com> wrote:
>> There was an older syntax which was specific to the 'runtime'  
>> property, and the new syntax
>> can check any compile-time constant property.
>>
>> So you can actually say
>>
>> <when property="runtime" value="swf9">
>>
>> Which I think would be the best way
>>
>> e.g.,
>>
>> <switch>
>>  <when property="runtime" value="swf9">
>>    <text>runtime is swf9</text>
>>  </when>
>>  <when property="runtime" value="swf10">
>>    <text>runtime is swf10</text>
>>  </when>
>>  <otherwise>
>>    <text>some other  runtime</text>
>>  </otherwise>
>> </switch>
>>
>> "as3" is more of a language selector than a specific runtime, just  
>> as "as2" and "js1" would be.
>>
>> The compiler sets these constants, which can be checked at compile  
>> time
>>
>>  boolean setRuntime(String runtime) {
>>    if (! ("dhtml".equals(runtime) || "j2me".equals(runtime) ||  
>> "svg".equals(runtime) ||
>>           "swf9".equals(runtime) || "swf10".equals(runtime) ||
>>           "swf7".equals(runtime) || "swf8".equals(runtime))) {
>>      usage("runtime must be one of swf7, swf8, swf9, swf10, dhtml,  
>> j2me, svg");
>>      return false;
>>    }
>>    compileTimeConstants.put("$runtime", runtime);
>>
>>    // Kludges until compile-time constants can be expressions
>>    compileTimeConstants.put("$swf7",  
>> Boolean.valueOf("swf7".equals(runtime)));
>>    compileTimeConstants.put("$swf8",  
>> Boolean.valueOf("swf8".equals(runtime)));
>>    compileTimeConstants.put(
>>      "$as2",
>>      Boolean.valueOf("swf7".equals(runtime) ||  
>> "swf8".equals(runtime) ));
>>    compileTimeConstants.put("$swf9",  
>> Boolean.valueOf("swf9".equals(runtime)));
>>    compileTimeConstants.put("$swf10",  
>> Boolean.valueOf("swf10".equals(runtime)));
>>    compileTimeConstants.put("$as3",  
>> Boolean.valueOf("swf9".equals(runtime) || "swf10".equals(runtime)));
>>    compileTimeConstants.put("$dhtml",  
>> Boolean.valueOf("dhtml".equals(runtime)));
>>    compileTimeConstants.put("$j2me",  
>> Boolean.valueOf("j2me".equals(runtime)));
>>    compileTimeConstants.put("$svg",  
>> Boolean.valueOf("svg".equals(runtime)));
>>    compileTimeConstants.put(
>>      "$js1",
>>      Boolean.valueOf("dhtml".equals(runtime) ||  
>> "j2me".equals(runtime) || "svg".equals(runtime)));
>>
>>    compilerOptions.put(Compiler.RUNTIME, runtime);
>>    return true;
>>
>>  }
>>
>>
>> On Wed, Aug 19, 2009 at 4:57 PM, Raju Bitter <rajubitter at me.com>  
>> wrote:
>> Henry,
>>
>> why is it that you can say:
>>
>> <switch>
>> <when runtime="dhtml">
>>
>> for testing for DHTML runtime, but for SWF9 you have to say
>>
>> <switch>
>> <when property="as3">
>>
>> Is there a good reason for not supporting:
>>
>> <when runtime="swf9">
>>
>> What if we have swf9 and swf10 specific code?
>>
>> - Raju
>>
>>
>>
>> -- 
>> Henry Minsky
>> Software Architect
>> hminsky at laszlosystems.com
>>
>>
>>
>>
>>
>> -- 
>> Henry Minsky
>> Software Architect
>> hminsky at laszlosystems.com
>>
>>
>



More information about the Laszlo-dev mailing list