I think Tigran wants to know where the allowed set of attributes for a tag
come from.  They come from the set of public variables and setters on the
class represented by the tag.  To add "automationName", you would add it to
UIBase.as (and UIBase.js)

However, it is my goal that things like automation is packagable as a
plug-in (bead) and thus instead of changing UIBase.as, you would create a
separate bead (like maybe call it UIBaseAutomation.as and
UIBaseAutomation.js and build a similar tree of subclasses for existing
components), and the developer would add such beads to the components as
needed.  That way, components that are re-used as "internal" do not have to
carry slots for optional properties, and code not needed in production is
easier to not initialize and run.

Then the MXML would look like

    <basic:CheckBox>
        <basic:beads>
            <basic:CheckBoxAutomation automationName="foo" />
        ...

-Alex

On 4/23/13 1:21 AM, "Erik de Bruin" <e...@ixsoftware.nl> wrote:

> In short: compiler.jx (FalconJX) gets it's information from compiler
> (Falcon). The AS/MXML source is compiled for use in compiler.jx by the
> compiler (duh ;-)) into an AST (Abstract Syntax Table), which becomes
> available to use in the JS production in 'MXMLBlockWalker.java ::
> visitCompilationUnit (151)' or, when running the tests, 'TestBase.java
> :: compile (201)'. This AST consists of 'nodes' that are filtered
> through a switch (i.e. MXMLNodeSwitch) that directs the parsing to a
> specific 'visitor' for each type. Mostly all the visitor does is pass
> the node through to a method that takes care of the actual emitting
> (i.e. MXMLEmitter :: emitClass).
> 
> You can find the currently 'available' MXML node types in the
> 'compiler :: org.apache.flex.compiler.tree.mxml' package. The
> (incomplete) list FalconJX uses is in 'compiler.jx ::
> org.apache.flex.compiler.internal.visitor.mxml.MXMLNodeSwitch.java'.
> 
> HTH,
> 
> EdB
> 
> 
> 
> On Tue, Apr 23, 2013 at 8:51 AM, Tigran Najaryan <tig...@gmail.com> wrote:
>>> From: Erik de Bruin [mailto:e...@ixsoftware.nl]
>>> 
>>> You mean the property is unknown to FalconJX (i.e. isn't handled yet), or
>> do
>>> you mean a property that isn't part of the "MXML specification"
>>> (whatever that may be ;-))?
>>> 
>>> EdB
>> 
>> Well, I tried property "automationName" which is part of the current public
>> Flex MXML specification. I do not know if it is also part of "MXML
>> specification" as used by FalconJX.
>> 
>> I am actually trying to understand where does FalconJX take this
>> "specification" from. Quick debugging shows that it tries to look up
>> property name in some map however I have not been able to identify where
>> does this map come from yet. If anyone know where should I look for it will
>> speed me up otherwise I am back to examining the source code and debugging.
>> 
>> Thanks
>> Tigran.
>> 
> 
> 

-- 
Alex Harui
Flex SDK Team
Adobe Systems, Inc.
http://blogs.adobe.com/aharui

Reply via email to