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