[Laszlo-dev] switch and when in LZX
Raju Bitter
rajubitter at me.com
Wed Aug 19 16:51:00 PDT 2009
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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.openlaszlo.org/pipermail/laszlo-dev/attachments/20090819/f4903f24/attachment.html
More information about the Laszlo-dev
mailing list