Hi Alex,
thanks for the changes all have more sense that way now.
One question about Jewel ListItemRenderer.as
in line 56
addClass("selectable");
that should remain?
I guess it must be removed (like in "NavigationLinkItemRenderer" and "
TabBarButtonItemRenderer"
right?

El jue., 20 feb. 2020 a las 23:03, Alex Harui (<aha...@adobe.com.invalid>)
escribió:

> I pushed changes that I think has everything working in Jewel by using the
> same "has" pattern that is used in other component sets.
>
> The Lists in the ToDo examples use a regular ItemRendererClassFactory
> instead of SelectableItemRendererClassFactory that is now used in most
> other places (List/DataGrid/Table)
>
> The recommended pattern for disabling selection in a list is whether you
> choose a ClassFactory that attaches a Selection Bead to each renderer.
> There was an exception to that rule in one of the Table examples because it
> wanted only certain renderers to not have selection.  I added a bead that
> turns off the selection for that case.  IMO, how to deal with such an
> exception will be based more on what percentage of the renderers need
> selection.  If most do, then add a Selection Bead to all renderers but
> disable selection where you don't want it.  If most do not want selection,
> then add the bead where you need it.
>
> Thanks,
> -Alex
>
> On 2/20/20, 11:28 AM, "Carlos Rovira" <carlosrov...@apache.org> wrote:
>
>     yes, Jewel has the "structure" and is organized in SASS files, then
>     JewelTheme has the "styling" part and is as well SASS.
>     so Jewel should not need to change, and people should only need to
> change
>     JewelTheme or create a new theme one using it as a template.
>
>     I'll add examples to ant tomorrow
>
>     thanks
>
>
>     El jue., 20 feb. 2020 a las 20:17, Alex Harui
> (<aha...@adobe.com.invalid>)
>     escribió:
>
>     >
>     >
>     > On 2/20/20, 11:04 AM, "Carlos Rovira" <carlosrov...@apache.org>
> wrote:
>     >
>     >     forgot to say. Can you add missing examples to ANT? don't know
> where
>     > to do
>     >     that
>     >     and checking Jewel don't see the use of
>     > SelectableItemRendererClassFactory.
>     >     all times ItemRendererClassFactory is used
>     >
>     > I could fix the Ant side, but I don't have time.  It think all you
> need to
>     > do is add it to the examples/build.xml
>     >
>     > I didn't use SelectableItemRendererClassFactory in Jewel because I
> wasn't
>     > sure if the selection was supposed to be changeable at runtime.  I
> think
>     > you've confirmed that it isn't so we can change to use
>     > SelectableItemRendererClassFactory
>     >
>     > I knew the themes were generated by SASS, but I didn't realize the
> Jewel
>     > one was as well.
>     >
>     > -Alex
>     >
>     >     El jue., 20 feb. 2020 a las 20:00, Carlos Rovira (<
>     > carlosrov...@apache.org>)
>     >     escribió:
>     >
>     >     > Hi Alex,
>     >     >
>     >     > remember that Jewel uses SASS to create the CSS. I already
> pushed a
>     > commit
>     >     > with ["warning"]. It's not the first time I warn about it ;)
>     >     > You must to change SASS file. The css is just generated (like
> other
>     >     > generations in compiler), and is committed since no body added
> SASS
>     > to ANT.
>     >     > Maven has a sass plugin to compile SASS.
>     >     >
>     >     > I saw you response and commented there
>     >     >
>     >     > Thanks
>     >     >
>     >     > Carlos
>     >     >
>     >     >
>     >     > El jue., 20 feb. 2020 a las 19:55, Alex Harui
>     > (<aha...@adobe.com.invalid>)
>     >     > escribió:
>     >     >
>     >     >> I replied on this topic on your commit email.
>     >     >>
>     >     >> So I don't have to copy that into this thread, read what I
> said in
>     > that
>     >     >> email and reply on that thread and let's figure out the right
> thing
>     > to do.
>     >     >> I am having some weird problem with my Maven build where
> every time
>     > I try
>     >     >> to change Jewel's defaults.css something overwrites it.  I'm
> trying
>     > to
>     >     >> figure out what is going on there.
>     >     >>
>     >     >> -Alex
>     >     >>
>     >     >> On 2/20/20, 10:47 AM, "Carlos Rovira" <
> carlosrov...@apache.org>
>     > wrote:
>     >     >>
>     >     >>     Hi Alex,
>     >     >>
>     >     >>     I found that TodoMVC examples was not working, so I fixed
> it
>     > removing
>     >     >> the
>     >     >>     non existing properties (hoverable and selectable).
>     >     >>     But I found Jewel ListItemRenderer has all baked, so I
> created a
>     >     >>     SimpleListItemRenderer (in Jewel Simple in the normal
> prefix
>     > for a
>     >     >> "base",
>     >     >>     "basic" or "simple" option) that hast the minimum
> required.
>     >     >>
>     >     >>     So at least in Jewel if people wants hoverable and
> selectable
>     >     >> renderers use
>     >     >>     the normal ListItemRenderer.
>     >     >>     If don't want that indicators, use
> SimpleListItemRenderer. If
>     > you
>     >     >> want just
>     >     >>     show hover, but not selected state, then extend Simple
> version
>     > and
>     >     >> add "
>     >     >>     ClassSelectorListRuntimeSelectableItemRendererBead" and
>     > configure to
>     >     >> have
>     >     >>     just "hoverable" to true ¿ok?
>     >     >>
>     >     >>     Hope I understand ok how it works. Let me know if
> something is
>     > not as
>     >     >>     expected.
>     >     >>
>     >     >>     Thanks
>     >     >>
>     >     >>     Carlos
>     >     >>
>     >     >>
>     >     >>
>     >     >>     El jue., 20 feb. 2020 a las 18:06, Alex Harui
>     >     >> (<aha...@adobe.com.invalid>)
>     >     >>     escribió:
>     >     >>
>     >     >>     > I'm not sure I understand what you mean by "control".
>     >     >>     >
>     >     >>     > Before the "has" changes, every ItemRenderer contained
> or
>     > inherited
>     >     >> code
>     >     >>     > that had hovered/selected APIs that drew visuals, and
> the
>     >     >> ItemRenderer also
>     >     >>     > "had" a bead like ItemRendererMouseController that set
> the
>     > hovered
>     >     >> property
>     >     >>     > on that item renderer, and the List's controller would
> set the
>     >     >> selected
>     >     >>     > property.
>     >     >>     >
>     >     >>     > Now, every ItemRenderer "has" a bead that has the
>     > hovered/selected
>     >     >>     > properties, and the ItemRendererMouseController and the
>     > Lists's
>     >     >> controllers
>     >     >>     > get that bead instead of talking to the ItemRenderer
>     > directly.  I
>     >     >> guess
>     >     >>     > that's the new way of thinking for has/composition vs
>     >     >> is/inheritance:  a
>     >     >>     > component doesn't have to have all of its APIs glued to
> its
>     > API
>     >     >> surface.
>     >     >>     > We mainly do that for convenience in MXML, but for more
>     > internal
>     >     >> stuff like
>     >     >>     > this, loose-coupling via has/composition shared more
> code and
>     >     >> increases
>     >     >>     > configurability, but does add some runtime overhead in
> its
>     > raw form.
>     >     >>     > Hopefully we can optimize that away.
>     >     >>     >
>     >     >>     > HTH,
>     >     >>     > -Alex
>     >     >>     >
>     >     >>     > On 2/20/20, 5:01 AM, "Piotr Zarzycki" <
>     > piotrzarzyck...@gmail.com>
>     >     >> wrote:
>     >     >>     >
>     >     >>     >     Hi Alex,
>     >     >>     >
>     >     >>     >     Could you provide an example how would I control
>     >     >> hovering/selecting in
>     >     >>     > item
>     >     >>     >     renderer when I don't have build in hover property
> etc. ?
>     > How
>     >     >> should I
>     >     >>     >     compose such item renderer ?
>     >     >>     >
>     >     >>     >     Thanks,
>     >     >>     >     Piotr
>     >     >>     >
>     >     >>     >     czw., 20 lut 2020 o 03:20 Alex Harui
>     > <aha...@adobe.com.invalid>
>     >     >>     > napisał(a):
>     >     >>     >
>     >     >>     >     > I pushed the "has" changes.  TourDeJewel seems to
> be
>     > working
>     >     >>     > correctly for
>     >     >>     >     > me.
>     >     >>     >     >
>     >     >>     >     > The principle of "has" is similar to inheritance
> vs
>     >     >> composition.
>     >     >>     > Just
>     >     >>     >     > like top-level components like List are composed
> of many
>     >     >> beads, the
>     >     >>     > item
>     >     >>     >     > renderers are now composed of more beads as
> well.  That
>     >     >> reduces the
>     >     >>     >     > requirement to add code to a class in order to
> "be/is"
>     >     >> something.
>     >     >>     >     >
>     >     >>     >     > There used to be copies of code that drew hover
> and
>     > selected
>     >     >> states
>     >     >>     > on
>     >     >>     >     > the item renderers in each new kind of item
> renderer
>     > that
>     >     >> couldn't
>     >     >>     > inherit
>     >     >>     >     > from an item renderer that could draw selected and
>     > hovered
>     >     >> states.
>     >     >>     > Now,
>     >     >>     >     > the itemrenderers compose their selection
> visuals.   A
>     > single
>     >     >> item
>     >     >>     > renderer
>     >     >>     >     > like StringItemRenderer can be composed with no
>     > selection
>     >     >> drawing at
>     >     >>     > all,
>     >     >>     >     > or with solid color selection drawing or with
> alternate
>     > color
>     >     >>     > selection
>     >     >>     >     > drawing or something new.    And that means that
> some
>     > new
>     >     >> kind of
>     >     >>     > item
>     >     >>     >     > renderer, like a TextInput can become an item
> renderer
>     > more
>     >     >> easily,
>     >     >>     > by
>     >     >>     >     > composing a selection visuals bead instead of
> having to
>     > add
>     >     >> all of
>     >     >>     > that
>     >     >>     >     > code.
>     >     >>     >     >
>     >     >>     >     > Another place I started using "has" but didn't
> fully
>     > replace
>     >     >> the old
>     >     >>     > code
>     >     >>     >     > was in handling itemRendererParent, which is now
> called
>     >     >>     >     > itemRendererOwnerView (to try to make it more
> clear
>     > that isn't
>     >     >>     > always the
>     >     >>     >     > parent of the item renderer and is sometimes an
> internal
>     >     >>     >     > datagroup/container).  Turns out a lot of our
> renderers
>     >     >> didn't need
>     >     >>     > to know
>     >     >>     >     > the itemRendererParent, so in many cases we no
> longer
>     > figure
>     >     >> it out
>     >     >>     > and
>     >     >>     >     > assign it.  But in cases where it is needed, the
>     > property is
>     >     >>     > currently left
>     >     >>     >     > baked into the renderer, but in some new cases,
> it is
>     >     >> composed.  An
>     >     >>     >     > ItemRendererOwnerViewBead is added to the strand
>     > instead of
>     >     >> added to
>     >     >>     > a
>     >     >>     >     > class and contains the reference to the ownerView.
>     >  Maybe
>     >     >> someday
>     >     >>     > we'll
>     >     >>     >     > fully remove the old pattern, not sure.
>     >     >>     >     >
>     >     >>     >     > Ideally we would do more "has" than "is".  It
> could
>     > allow us
>     >     >> to
>     >     >>     > eliminate
>     >     >>     >     > much of the required code to be a top tag in an
> MXML
>     > document.
>     >     >>     >     >
>     >     >>     >     > Other changes in this branch were to add
> "Initializers"
>     > so the
>     >     >>     >     > RendererFactories didn't bake in code for
> specific item
>     >     >> renderers,
>     >     >>     > and to
>     >     >>     >     > create a few base classes with overrides so there
> is
>     > less
>     >     >> code to
>     >     >>     > maintain.
>     >     >>     >     >
>     >     >>     >     > There should be little if any impact to
> application
>     > code.  It
>     >     >> should
>     >     >>     >     > mainly affect the internals of how item
> renderer-based
>     > things
>     >     >> are
>     >     >>     > created.
>     >     >>     >     >
>     >     >>     >     > Thanks,
>     >     >>     >     > -Alex
>     >     >>     >     >
>     >     >>     >     > On 2/17/20, 4:33 PM, "Carlos Rovira" <
>     > carlosrov...@apache.org
>     >     >> >
>     >     >>     > wrote:
>     >     >>     >     >
>     >     >>     >     >     Hi Alex,
>     >     >>     >     >
>     >     >>     >     >     if will be of help if you point us to
> different
>     > links
>     >     >> where we
>     >     >>     > can
>     >     >>     >     > learn
>     >     >>     >     >     about this modifications, since I at least
> can just
>     >     >> imagine what
>     >     >>     > is all
>     >     >>     >     >     about, but will need to get deeper in the
> concepts
>     > to
>     >     >> understand
>     >     >>     > the
>     >     >>     >     >     changes and to apply this patterns.
>     >     >>     >     >
>     >     >>     >     >     In Jewel each "list component has its own
> type of
>     >     >> renderer, so
>     >     >>     > for
>     >     >>     >     > example
>     >     >>     >     >     List uses ListItemRenderer and DataGrid has
>     >     >>     > DataGridItemRenderer, since
>     >     >>     >     >     usually at that component level the user needs
>     > similar
>     >     >>     > infrastructure
>     >     >>     >     > like
>     >     >>     >     >     hoverable, selectable...and some (not much)
> more,
>     > don't
>     >     >> know
>     >     >>     > right now
>     >     >>     >     > how
>     >     >>     >     >     all this will fit with the "has" new
>     > pattern....I'll try
>     >     >> it.
>     >     >>     >     >
>     >     >>     >     >     Just one important thing. There's actual
> users and
>     >     >> clients using
>     >     >>     > Jewel
>     >     >>     >     > and
>     >     >>     >     >     other UI sets and are with very short times
> for
>     > their
>     >     >>     > migrations, so
>     >     >>     >     > just
>     >     >>     >     >     want to ask you to test as much as possible,
> since
>     > TDJ
>     >     >> has many
>     >     >>     >     > examples
>     >     >>     >     >     now. Other thing you can test is new TodoMVC
> to see
>     > how it
>     >     >>     > behaves,
>     >     >>     >     > since
>     >     >>     >     >     it uses a List with IRs. So we can ensure (as
> much
>     > as we
>     >     >> can)
>     >     >>     > the merge
>     >     >>     >     >     left things working (as much as we can)
>     >     >>     >     >
>     >     >>     >     >     Thanks for working on this, will try all of
> this
>     > tomorrow
>     >     >>     >     >
>     >     >>     >     >     Carlos
>     >     >>     >     >
>     >     >>     >     >
>     >     >>     >     >
>     >     >>     >     >
>     >     >>     >     >     El lun., 17 feb. 2020 a las 22:35, Alex Harui
>     >     >>     >     > (<aha...@adobe.com.invalid>)
>     >     >>     >     >     escribió:
>     >     >>     >     >
>     >     >>     >     >     > I've pushed the "has" branch that contains a
>     >     >> refactoring of
>     >     >>     > the item
>     >     >>     >     >     > renderers.  Tour De Jewel and MDL Example
> seem to
>     > be
>     >     >> working
>     >     >>     > as is
>     >     >>     >     > Basic
>     >     >>     >     >     > List Example and MX AdvancedDataGrid.
>     >     >>     >     >     >
>     >     >>     >     >     > "has" is really just calls to
> getBeadByType.  If
>     > we
>     >     >> start to
>     >     >>     > see
>     >     >>     >     >     > performance issues, then we'll look into
>     > optimizing.
>     >     >> The
>     >     >>     > motivation
>     >     >>     >     > to
>     >     >>     >     >     > switch to "has" came from several bugs about
>     > using MX
>     >     >>     > Label/CheckBox
>     >     >>     >     > as
>     >     >>     >     >     > item renderers.  In Royale, the
> ItemRenderers
>     > were in
>     >     >> control
>     >     >>     > of the
>     >     >>     >     >     > visuals of their rollover and selected
> state.
>     > That is
>     >     >> a more
>     >     >>     > proper
>     >     >>     >     >     > encapsulation than the way it was in Flex
> where
>     > the
>     >     >> lists drew
>     >     >>     > the
>     >     >>     >     > rollover
>     >     >>     >     >     > and selected states and it was hard to
> override
>     > the
>     >     >> visuals
>     >     >>     > for a
>     >     >>     >     > custom
>     >     >>     >     >     > item renderer.  But in the develop branch
> Royale
>     > code,
>     >     >> it would
>     >     >>     >     > require
>     >     >>     >     >     > that custom itemrenderers implement a lot
> of APIs
>     >     >> related to
>     >     >>     >     > rollover and
>     >     >>     >     >     > selected visuals.  Instead we can now
> reuse/share
>     > code
>     >     >> for
>     >     >>     > visuals
>     >     >>     >     > between
>     >     >>     >     >     > different renderers because a renderer now
> can
>     > "has" a
>     >     >>     >     > rollover/selection
>     >     >>     >     >     > implementation instead of being one.
>     >     >>     >     >     >
>     >     >>     >     >     > There are more pieces involved, but there
> is more
>     >     >> sharing of
>     >     >>     > code.
>     >     >>     >     > Along
>     >     >>     >     >     > the way I found that there were some
> not-so-PAYG
>     >     >> patterns
>     >     >>     > being used
>     >     >>     >     > in MDL
>     >     >>     >     >     > and Jewel renderers that might deserve
> further
>     >     >> modification.
>     >     >>     > There
>     >     >>     >     > are
>     >     >>     >     >     > "hoverable" and "selectable" APIs that
> appear to
>     > be
>     >     >> used to
>     >     >>     >     > permanently
>     >     >>     >     >     > turn off selection and hover visuals.  In
>     > general, I
>     >     >> think
>     >     >>     > there is
>     >     >>     >     > better
>     >     >>     >     >     > use of PAYG and composition when
> functionality is
>     >     >> "built up"
>     >     >>     > and not
>     >     >>     >     >     > "turned off", so with the "has" pattern the
>     > renderers
>     >     >> can be
>     >     >>     > added
>     >     >>     >     > to a
>     >     >>     >     >     > list without any selection visuals at all
> (for a
>     >     >> non-selectable
>     >     >>     >     > list) or
>     >     >>     >     >     > re-composed with custom visuals that only
> support
>     >     >> hoverable,
>     >     >>     > for
>     >     >>     >     > example.
>     >     >>     >     >     > I left it "hoverable/selectable" in the API
>     > surface for
>     >     >> now,
>     >     >>     > but
>     >     >>     >     > something
>     >     >>     >     >     > to think about going forward.
>     >     >>     >     >     >
>     >     >>     >     >     > I’m going to run a few more tests before
> merging
>     > and
>     >     >> pushing to
>     >     >>     >     > develop.
>     >     >>     >     >     >
>     >     >>     >     >     > -Alex
>     >     >>     >     >     >
>     >     >>     >     >     > On 1/15/20, 10:44 PM, "Alex Harui"
>     >     >> <aha...@adobe.com.INVALID>
>     >     >>     > wrote:
>     >     >>     >     >     >
>     >     >>     >     >     >     You are welcome to try and see how many
> cache
>     > hits
>     >     >> it
>     >     >>     > gets.  I
>     >     >>     >     > think
>     >     >>     >     >     > in renderers, we ask once per renderer.
> I'm not
>     > sure
>     >     >> there is
>     >     >>     > a
>     >     >>     >     > faster way
>     >     >>     >     >     > to do the first lookup of "is", but for
> "has" we
>     > could
>     >     >> change
>     >     >>     > the
>     >     >>     >     > lookup
>     >     >>     >     >     > and save time.
>     >     >>     >     >     >
>     >     >>     >     >     >     On 1/15/20, 10:38 PM, "Greg Dove" <
>     >     >> greg.d...@gmail.com>
>     >     >>     > wrote:
>     >     >>     >     >     >
>     >     >>     >     >     >         For the  'something is
> ISomeInterface'
>     >     >>     >     >     >         I had wondered in the past if these
> types
>     > of
>     >     >> lookups
>     >     >>     > could be
>     >     >>     >     >     > incrementally
>     >     >>     >     >     >         cached on the 'is' target (after
> first
>     > lookup),
>     >     >> that
>     >     >>     > might
>     >     >>     >     > make
>     >     >>     >     >     > sense for
>     >     >>     >     >     >         interfaces, which are the deepest
> checks I
>     >     >> think?
>     >     >>     >     >     >         caching result (could optionally
> create
>     > the Map)
>     >     >>     >     >     >
>     >     >>  ISomeInterface['implMap'].set(something.constructor,
>     >     >>     >     > isResult )
>     >     >>     >     >     >
>     >     >>     >     >     >         then earlier in the interface
> checks, it
>     > could
>     >     >> do
>     >     >>     > something
>     >     >>     >     > like:
>     >     >>     >     >     >          if (ISomeInterface['implMap']  &&
>     >     >>     >     >     >
>     >     >>  ISomeInterface['implMap'].has(something.constructor) )
>     >     >>     > return
>     >     >>     >     >     >
>     >     >>  ISomeInterface['implMap'].get(something.constructor)
>     >     >>     >     >     >
>     >     >>     >     >     >         I realize its extra code, but it
> should be
>     >     >> quite a bit
>     >     >>     >     > faster over
>     >     >>     >     >     > time I
>     >     >>     >     >     >         think.
>     >     >>     >     >     >
>     >     >>     >     >     >         On Thu, Jan 16, 2020 at 7:20 PM
> Alex Harui
>     >     >>     >     >     > <aha...@adobe.com.invalid> wrote:
>     >     >>     >     >     >
>     >     >>     >     >     >         > Hi,
>     >     >>     >     >     >         >
>     >     >>     >     >     >         > Several different threads have
> brought
>     > up
>     >     >> issues with
>     >     >>     >     > sharing
>     >     >>     >     >     > code between
>     >     >>     >     >     >         > component sets.  Other threads
> have
>     > offered
>     >     >>     > different and
>     >     >>     >     > clever
>     >     >>     >     >     > ways to
>     >     >>     >     >     >         > do various things like how MXML is
>     > applied to
>     >     >> a
>     >     >>     > component.
>     >     >>     >     >     > Meanwhile, over
>     >     >>     >     >     >         > in MX emulation, I was starting
> to copy
>     > some
>     >     >> code
>     >     >>     > from
>     >     >>     >     > Basic to
>     >     >>     >     >     > MXRoyale to
>     >     >>     >     >     >         > get the various MX components to
> be
>     > valid item
>     >     >>     > renderers.
>     >     >>     >     >     > MXRoyale is
>     >     >>     >     >     >         > using Basic's item renderer
> architecture
>     >     >> which is
>     >     >>     > better
>     >     >>     >     >     > encapsulated:  the
>     >     >>     >     >     >         > renderer draws its hovered and
> selected
>     >     >> state.  In
>     >     >>     > Flex,
>     >     >>     >     > the
>     >     >>     >     >     > List draws
>     >     >>     >     >     >         > over the renderer, which makes it
> hard
>     > to
>     >     >> customize
>     >     >>     > the
>     >     >>     >     > way the
>     >     >>     >     >     > renderer
>     >     >>     >     >     >         > will look when hovered and
> selected.
>     >     >>     >     >     >         >
>     >     >>     >     >     >         > It finally occurred to me that
> one of
>     > the
>     >     >> reasons we
>     >     >>     > end up
>     >     >>     >     >     > copying code
>     >     >>     >     >     >         > is because we are still using too
> many
>     > "is"
>     >     >> checks
>     >     >>     > instead
>     >     >>     >     > of
>     >     >>     >     >     > "has"
>     >     >>     >     >     >         > checks.  I'm not even sure we
> have any
>     > "has"
>     >     >> checks
>     >     >>     > in the
>     >     >>     >     > Royale
>     >     >>     >     >     >         > framework.  I was afraid of the
>     > overhead of a
>     >     >> "has"
>     >     >>     > check,
>     >     >>     >     > but
>     >     >>     >     >     > I'm starting
>     >     >>     >     >     >         > to change my mind because:
>     >     >>     >     >     >         >
>     >     >>     >     >     >         > 1) The "is" check actually runs a
> fair
>     > amount
>     >     >> of
>     >     >>     > code,
>     >     >>     >     >     > especially for
>     >     >>     >     >     >         > (comp is ISomeInterface)
>     >     >>     >     >     >         > 2) The length of bead arrays
> don't seem
>     > too
>     >     >> long.
>     >     >>     >     >     >         >
>     >     >>     >     >     >         > A "has" check calls
>     >     >> getBeadByType(ISomeInterface),
>     >     >>     > so it
>     >     >>     >     >     > actually will run
>     >     >>     >     >     >         > the (bead is ISomeInterface) on
>     > potentially
>     >     >> the
>     >     >>     > entire
>     >     >>     >     > strand
>     >     >>     >     >     > array/vector,
>     >     >>     >     >     >         > although we could speed that up by
>     > annotating
>     >     >> beads
>     >     >>     > or
>     >     >>     >     > keeping
>     >     >>     >     >     > track of
>     >     >>     >     >     >         > what is on the strand.  But the
> code
>     >     >> sharing/reuse
>     >     >>     >     > potential of
>     >     >>     >     >     > this
>     >     >>     >     >     >         > pattern seems significant to me.
>     >     >>     >     >     >         >
>     >     >>     >     >     >         > For example, it could change how
> hard
>     > it is
>     >     >> to make a
>     >     >>     >     > component
>     >     >>     >     >     > usable as
>     >     >>     >     >     >         > a top tag in MXML.  Instead of the
>     > component
>     >     >> having
>     >     >>     > to
>     >     >>     >     > implement
>     >     >>     >     >     > certain
>     >     >>     >     >     >         > methods, the component could have
> a bead
>     >     >> installed
>     >     >>     > and the
>     >     >>     >     >     >         > MXMLDataInterpreter could talk to
> that
>     > bead
>     >     >> instead
>     >     >>     > of the
>     >     >>     >     >     > component.
>     >     >>     >     >     >         >
>     >     >>     >     >     >         > In the case of the item renderers,
>     > instead of
>     >     >>     > testing if
>     >     >>     >     > the
>     >     >>     >     >     > renderer "is"
>     >     >>     >     >     >         > ISelectableLIstItemRenderer, it
> could
>     > ask if
>     >     >> the
>     >     >>     > created
>     >     >>     >     > widget
>     >     >>     >     >     > "has" an
>     >     >>     >     >     >         > ISelectableLIstItemRenderer bead
> and the
>     >     >> logic in
>     >     >>     > that
>     >     >>     >     > bead can
>     >     >>     >     >     > be reused
>     >     >>     >     >     >         > in both Basic and MXRoyale
> without being
>     >     >> copied.
>     >     >>     >     >     >         >
>     >     >>     >     >     >         > Some code, like Container
> overrides of
>     >     >> addElement
>     >     >>     > probably
>     >     >>     >     > can't
>     >     >>     >     >     > be
>     >     >>     >     >     >         > refactored into a "has".  But I
> wonder
>     > how
>     >     >> many other
>     >     >>     >     > things
>     >     >>     >     >     > could.  I'm
>     >     >>     >     >     >         > not sure I would move everything
> that
>     > could
>     >     >> be moved
>     >     >>     > into a
>     >     >>     >     >     > shared bead.
>     >     >>     >     >     >         > We'd have to think about the
> overhead
>     > on small
>     >     >>     > components
>     >     >>     >     > and
>     >     >>     >     >     > apps.  But
>     >     >>     >     >     >         > for MXML support and Item Renderer
>     > support,
>     >     >> it seems
>     >     >>     > to
>     >     >>     >     > make
>     >     >>     >     >     > sense.
>     >     >>     >     >     >         >
>     >     >>     >     >     >         > Anyway, I will look into
> refactoring
>     > the item
>     >     >>     > renderer
>     >     >>     >     > code in
>     >     >>     >     >     > a  few days
>     >     >>     >     >     >         > unless feedback indicates
> otherwise.
>     > Bugs
>     >     >> like #676
>     >     >>     > and
>     >     >>     >     > #681
>     >     >>     >     >     > inspired this
>     >     >>     >     >     >         > post.
>     >     >>     >     >     >         >
>     >     >>     >     >     >         > Of course, I could be wrong...
>     >     >>     >     >     >         > -Alex
>     >     >>     >     >     >         >
>     >     >>     >     >     >         >
>     >     >>     >     >     >
>     >     >>     >     >     >
>     >     >>     >     >     >
>     >     >>     >     >     >
>     >     >>     >     >     >
>     >     >>     >     >
>     >     >>     >     >     --
>     >     >>     >     >     Carlos Rovira
>     >     >>     >     >
>     >     >>     >     >
>     >     >>     >
>     >     >>
>     >
> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7Cc5187f5b4e28463bdb1b08d7b63b1ad4%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637178237288392599&amp;sdata=MegTTo0lt%2Fp1zKt6gaowEYo5a9XDkuM3SHQcCccUa2Y%3D&amp;reserved=0
>     >     >>     >     >
>     >     >>     >     >
>     >     >>     >     >
>     >     >>     >
>     >     >>     >     --
>     >     >>     >
>     >     >>     >     Piotr Zarzycki
>     >     >>     >
>     >     >>     >     Patreon: *
>     >     >>     >
>     >     >>
>     >
> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7Cc5187f5b4e28463bdb1b08d7b63b1ad4%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637178237288392599&amp;sdata=lM47VH2eMRha92QDljuklrrPWagubgNvaL6WurTBiwg%3D&amp;reserved=0
>     >     >>     >     <
>     >     >>     >
>     >     >>
>     >
> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7Cc5187f5b4e28463bdb1b08d7b63b1ad4%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637178237288392599&amp;sdata=lM47VH2eMRha92QDljuklrrPWagubgNvaL6WurTBiwg%3D&amp;reserved=0
>     >     >>     > >*
>     >     >>     >
>     >     >>     >
>     >     >>     >
>     >     >>
>     >     >>     --
>     >     >>     Carlos Rovira
>     >     >>
>     >     >>
>     >
> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7Cc5187f5b4e28463bdb1b08d7b63b1ad4%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637178237288392599&amp;sdata=MegTTo0lt%2Fp1zKt6gaowEYo5a9XDkuM3SHQcCccUa2Y%3D&amp;reserved=0
>     >     >>
>     >     >>
>     >     >>
>     >     >
>     >     > --
>     >     > Carlos Rovira
>     >     >
>     >
> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7Cc5187f5b4e28463bdb1b08d7b63b1ad4%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637178237288392599&amp;sdata=MegTTo0lt%2Fp1zKt6gaowEYo5a9XDkuM3SHQcCccUa2Y%3D&amp;reserved=0
>     >     >
>     >     >
>     >
>     >     --
>     >     Carlos Rovira
>     >
>     >
> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7Cc5187f5b4e28463bdb1b08d7b63b1ad4%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637178237288392599&amp;sdata=MegTTo0lt%2Fp1zKt6gaowEYo5a9XDkuM3SHQcCccUa2Y%3D&amp;reserved=0
>     >
>     >
>     >
>
>     --
>     Carlos Rovira
>
> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7Cc5187f5b4e28463bdb1b08d7b63b1ad4%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637178237288402599&amp;sdata=JcJWURIyUxG4bru0YjyB6xM%2FKPUEbNGfZ3zj%2FUB5jUU%3D&amp;reserved=0
>
>
>

-- 
Carlos Rovira
http://about.me/carlosrovira

Reply via email to