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
