Change 20081118-ptw-u by [EMAIL PROTECTED] on 2008-11-18 17:14:04 EST
    in /Users/ptw/OpenLaszlo/trunk
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: First pass at <mixin>

New Features: <mixin>

Bugs Fixed:
LPP-2302  Implement LZX <mixin> tag
LPP-7365 Update color names to use CSS3 standard

Technical Reviewer: max (pending)
QA Reviewer: hminsky (pending)
Doc Reviewer: [EMAIL PROTECTED] (pending)

Documentation:

    <mixin> is like <class> but rather than creating something you can
    instantiate, creates a template that can be 'mixed in' (added to)
    more than one other class.  A <mixin> is like an interface, but it
    is allowed to have state and implementation.

    <mixin> is an advanced feature.  To add a mixin to a class you
    say:

    <class name="icecream" ... />
    <class name="walnuts" ... />

    <mixin name="toppings">
      <attribute name="sauce" type="color" value="lavender" />
      <attribute name="whippedcream" type="boolean" value="true" />
      <attribute name="cherry" type="boolean" value="true" />
      ...
    </mixin>

    <class name="sundae" extends="icecream" with="toppings />

    <sundae name="chocfulla"
      flavor="honeydew"
      sauce="lemonchiffon">
      <walnuts ground="true" />
    </sundae>

    See tests/classes.lzx for a more complete example

Details:
    test/classes: Create a more complex example using classes and
    mixins

    lfc-undeclared: Add <mixin>

    LzConstants, ViewSchema: Update color tokes to CSS3 standard

    ClassCompiler: Learn how to create interstitial <nodes>, insert
    them into the schema.

Compiler, MixinCompiler: For now, just compiles the mixin as a class.

    NodeModel: Only classes can have `extends` or `with` attributes.

    ElementWithLocationInfo: Support cloning of elements (to make
    mixin interstitials).

Tests:
    smokecheck, test/classes.lzx

Files:
M      test/classes.lzx
M      WEB-INF/lps/schema/lfc-undeclared.lzx
M      WEB-INF/lps/lfc/core/LzConstants.lzs
M      WEB-INF/lps/server/src/org/openlaszlo/compiler/ClassCompiler.java
A      WEB-INF/lps/server/src/org/openlaszlo/compiler/MixinCompiler.java
M WEB-INF/lps/server/src/org/openlaszlo/compiler/ ToplevelCompiler.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/ InterfaceCompiler.java
M      WEB-INF/lps/server/src/org/openlaszlo/compiler/ViewSchema.java
M      WEB-INF/lps/server/src/org/openlaszlo/compiler/NodeModel.java
M      WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java
M      WEB-INF/lps/server/src/org/openlaszlo/compiler/ClassModel.java
M WEB-INF/lps/server/src/org/openlaszlo/compiler/ ElementWithLocationInfo.java


Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20081118-ptw-u.tar

Reply via email to