ok, let me know how it goes
thanks

El lun, 30 nov 2020 a las 1:37, Maria Jose Esteve (<[email protected]>)
escribió:

> Hi Carlos,
> Yes, I have seen your changes and was comparing them with mine. In the
> end, I also modified the controller and the model but in another way.
> I have to analyze your solution 😝, because I added some extra
> modifications that may not be necessary now.
> Just this past week I was implementing an extension to the Jewel ComboBox
> control and had problems with the popup list, I am also going to check
> these modifications to see if they have been fixed.
>
> Thanks Carlos, I'll tell you.
> Hiedra.
>
> -----Mensaje original-----
> De: Carlos Rovira <[email protected]>
> Enviado el: domingo, 29 de noviembre de 2020 22:59
> Para: Apache Royale Development <[email protected]>
> Asunto: Re: Jewel List - selectionChange (Bis)
>
> Hi Maria Jose,
>
> I finally was able to have time to check this. I finally think this is
> very close to the List component since always users will want to put the
> selectedItem into view (can't think of a case that will not be what we all
> want). So I abandoned the bead idea. Instead I made the scrollToIndex run
> in any case selectionChange is triggered but left out the case when the
> user clicks over an item, since as you said don't this a case we want since
> the item is already on view.
>
> Hope this helps and I think we can close this case
>
> Carlos
>
>
>
> El jue, 5 nov 2020 a las 0:51, Maria Jose Esteve (<[email protected]>)
> escribió:
>
> > Hi,
> > This could be a possible implementation of the ScrollIndexToSelection
> bead:
> >
> > package xxxx.jewel.beads.controls.list {
> >         import org.apache.royale.core.IBead;
> >         import org.apache.royale.core.IStrand;
> >         import org.apache.royale.events.Event;
> >         import org.apache.royale.events.IEventDispatcher;
> >         import org.apache.royale.jewel.beads.views.IScrollToIndexView;
> >         import org.apache.royale.core.ISelectionModel;
> >         import org.apache.royale.core.UIBase;
> >
> >         /**
> >          *  The ScrollIndexToSelection bead is a specialty bead that
> > can be used with
> >          *  Jewel List List control to make sure that whenever the
> > selected item changes it becomes visible.
> >          *
> >          *  @langversion 3.0
> >          *  @playerversion Flash 10.2
> >          *  @playerversion AIR 2.6
> >          *  @productversion Royale 0.9.8
> >          */
> >         public class ScrollIndexToSelection implements IBead
> >         {
> >                 /**
> >                  *  constructor.
> >                  *
> >                  *  @langversion 3.0
> >                  *  @playerversion Flash 10.2
> >                  *  @playerversion AIR 2.6
> >                  *  @productversion Royale 0.9.8
> >                  */
> >                 public function ScrollIndexToSelection()
> >                 {
> >                 }
> >
> >                 protected var _strand:IStrand;
> >
> >                 /**
> >                  *  @copy org.apache.royale.core.IBead#strand
> >                  *
> >                  *  @langversion 3.0
> >                  *  @playerversion Flash 10.2
> >                  *  @playerversion AIR 2.6
> >                  *  @productversion Royale 0.9.8
> >                  */
> >                 public function set strand(value:IStrand):void
> >                 {
> >                         _strand = value;
> >
> > IEventDispatcher(_strand).addEventListener("selectionChanged",
> > selectionChangeHandler);
> >                 }
> >
> >                 /**
> >                  *  Ensures that the data provider item at the given
> > index is visible.
> >                  */
> >                         private function
> > selectionChangeHandler(ev:Event):void
> >                 {
> >                         var host:UIBase = UIBase(_strand);
> >                         if(!host)
> >                                 return;
> >
> >                         if(host.view && host.view is IScrollToIndexView)
> >                         {
> >                                 if(host.model && host.model is
> > ISelectionModel)
> >                                 {
> >                                         var setIndex:int = (host.model
> > as ISelectionModel).selectedIndex;
> >                                         (host.view as
> > IScrollToIndexView).scrollToIndex(setIndex);
> >
> >                                 }
> >                         }
> >                  }
> >         }
> > }
> >
> > The bead works, but the user experience is bad, too many jumps /
> > scrolls ...
> > They say that ignorance is very daring, you have to forgive me 😝 ...
> > this is how I see it:
> > The selectionChanged event of the List is dispatched when the
> > selectedIndex of the model is explicitly set and this occurs in at
> > least 3
> > scenarios:
> > 1- Assignment by code, valueCommit
> > 2- Click on an itemRenderer
> > 3- And when we move with the keyboard (key down / up) Of these three
> > scenarios I think that the only one that should be controlled is 1,
> > why? Because when clicked, the item is visible and, when we move with
> > the keyboard the ListKeyDownController, after modifying the
> > selectedIndex, explicitly calls scrollToIndex. Could scenario 1,
> > valueCommit, be differentiated from the rest?
> >
> > If the double positioning that occurs in scenarios 2 and 3 could not
> > be avoided, we could "hide" it by overriding the scrollToIndex
> > function so that it does not make the scroll change if the item is
> > visible at that moment.
> >
> > As you see?
> >
> > Thx.
> > Hiedra
> >
> > -----Mensaje original-----
> > De: Carlos Rovira <[email protected]> Enviado el: miércoles, 4
> > de noviembre de 2020 11:16
> > Para: Apache Royale Development <[email protected]>
> > Asunto: Re: Jewel List - selectionChange (Bis)
> >
> > Yeah, I think it should be pretty straight forward.
> > For example a name could be "ScrollIndexToSelection" in the "
> > org.apache.royale.jewel.beads.controls.list" package.
> > Then it just listen for selectionChange event and do the scrollToIndex
> >
> > thanks!
> >
> > El mié., 4 nov. 2020 a las 10:40, Maria Jose Esteve
> > (<[email protected]>)
> > escribió:
> >
> > > Right Carlos. If the guideline is that the operation should be the
> > > same, basically, I also think it should be a bead, since the
> > > application of the scrollToIndex, whenever the selected element is
> > > changed, it would be a sudden change.
> > >
> > >
> > >
> > > Would we agree to add this functionality in a bead?
> > >
> > > If you tell me yes, I try 😝
> > >
> > >
> > >
> > > Thx.
> > >
> > > Hiedra
> > >
> > > -----Mensaje original-----
> > > De: Carlos Rovira <[email protected]> Enviado el: miércoles, 4
> > > de noviembre de 2020 10:02
> > > Para: Apache Royale Development <[email protected]>
> > > Asunto: Re: Jewel List - selectionChange (Bis)
> > >
> > >
> > >
> > > Hi Maria Jose,
> > >
> > >
> > >
> > > so if I'm understanding correctly, we currently have the same
> > > behaviour as Flex (maybe we need to update a bit to improve over
> > > time, but in essence is the same): Moving with keys trigger the
> > > scrollToIndex, but if we use programmatically selectedItem, the
> > scrollToIndex is not triggered, right?
> > >
> > >
> > >
> > > If so I think we are ok in the TLC List, and the behaviour should go
> > > to a bead.
> > >
> > >
> > >
> > > Can you confirm?
> > >
> > >
> > >
> > > thanks
> > >
> >
> >
> > --
> > Carlos Rovira
> > Apache Member & Apache Royale PMC
> > *Apache Software Foundation*
> > http://about.me/carlosrovira
> >
>
>
> --
> Carlos Rovira
> Apache Member & Apache Royale PMC
> *Apache Software Foundation*
> http://about.me/carlosrovira
>


-- 
Carlos Rovira
Apache Member & Apache Royale PMC
*Apache Software Foundation*
http://about.me/carlosrovira

Reply via email to