Hi Hugo, much appreciate the effort. Many thanks! :)
El mar., 20 oct. 2020 a las 2:21, Hugo Ferreira (<[email protected]>) escribió: > Hi Carlos, > > Now everything as it should be :) > > 1. Checked Jenkins to be sure to not apply the fix during another issue; > 2. Fork refreshed; > 3. Apply the fix; > 4. Compiled with ANT; > 5. Test with TDJ (before the test, clean the browser console, test the fix > and check for an error). > 6. Commit; > 7. Pull request and comment on the issue. > > Hugo Ferreira <[email protected]> escreveu no dia segunda, 19/10/2020 > à(s) 11:34: > > > Hi Carlos, > > > > No problem. > > I will do that. > > > > Carlos Rovira <[email protected]> escreveu no dia segunda, > > 19/10/2020 à(s) 11:32: > > > >> Hi Hugo, > >> > >> sorry, but this way of sharing code is not the best for us to interact. > >> If I copy and override on my file, I get lots of errors and also its > >> unformatted, so to review it I should invest a lot of time formatting it > >> and see where the email is adding bad characters. > >> > >> You can use paste.apache.org [1] so we can solve this problem as soon > as > >> possible. > >> but for next ones I think the best is to create a Pull Request (PR) in > >> github, so we can review it and integrate more easily [2]. > >> > >> Thanks and sorry for the trouble, but these days I'm without much time > so > >> I > >> can't afford it. > >> > >> Best > >> > >> Carlos > >> > >> [1] https://paste.apache.org/ > >> [2] https://github.com/apache/royale-asjs/issues > >> > >> > >> > >> El dom., 18 oct. 2020 a las 23:40, hferreira (<[email protected]>) > >> escribió: > >> > >> > Hi Carlos, > >> > > >> > I was able to replicate the issue on TDJ apply the fix and saw the > issue > >> > goes away. > >> > BUT I had to clean everything and rebuild everything (I even put a > >> console > >> > log to be sure that I was testing updated version). > >> > I thought that was normal. > >> > > >> > Thank you for point me out about the remove listener. > >> > > >> > Here the full source code updated file: > >> > > >> > > >> > > >> > //////////////////////////////////////////////////////////////////////////////// > >> > // > >> > // Licensed to the Apache Software Foundation (ASF) under one or more > >> > // contributor license agreements. See the NOTICE file distributed > >> with > >> > // this work for additional information regarding copyright > ownership. > >> > // The ASF licenses this file to You under the Apache License, > Version > >> 2.0 > >> > // (the "License"); you may not use this file except in compliance > with > >> > // the License. You may obtain a copy of the License at > >> > // > >> > // http://www.apache.org/licenses/LICENSE-2.0 > >> > // > >> > // Unless required by applicable law or agreed to in writing, > software > >> > // distributed under the License is distributed on an "AS IS" BASIS, > >> > // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > >> > implied. > >> > // See the License for the specific language governing permissions > and > >> > // limitations under the License. > >> > // > >> > > >> > > >> > //////////////////////////////////////////////////////////////////////////////// > >> > package org.apache.royale.jewel.beads.controls.combobox > >> > { > >> > import org.apache.royale.events.Event; > >> > import org.apache.royale.jewel.beads.controls.combobox.IComboBoxView; > >> > import > >> > org.apache.royale.jewel.beads.controls.textinput.SearchFilterForList; > >> > import org.apache.royale.jewel.beads.views.ComboBoxView; > >> > import org.apache.royale.jewel.supportClasses.textinput.TextInputBase; > >> > import org.apache.royale.jewel.List; > >> > import org.apache.royale.events.MouseEvent; > >> > > >> > /** > >> > * The SearchFilter bead class is a specialty bead that can be used > with > >> > * a Jewel ComboBox to filter options as we type > >> > * > >> > * @langversion 3.0 > >> > * @playerversion Flash 10.2 > >> > * @playerversion AIR 2.6 > >> > * @productversion Royale 0.9.5 > >> > */ > >> > public class SearchFilter extends SearchFilterForList > >> > { > >> > /** > >> > * constructor. > >> > * > >> > * @langversion 3.0 > >> > * @playerversion Flash 10.2 > >> > * @playerversion AIR 2.6 > >> > * @productversion Royale 0.9.5 > >> > */ > >> > public function SearchFilter() > >> > { > >> > } > >> > > >> > public override function set list(value:List):void > >> > { > >> > super.list = value; > >> > COMPILE::JS > >> > { > >> > if (list != null) > >> > list.addEventListener(MouseEvent.CLICK, onListClick); > >> > } > >> > } > >> > > >> > private function onListClick(event:MouseEvent):void > >> > { > >> > list.removeEventListener(MouseEvent.CLICK, onListClick); > >> > comboView.popUpVisible = false; > >> > } > >> > > >> > private var comboView:IComboBoxView; > >> > > >> > override protected function textInputKeyUpLogic(input:Object):void > >> > { > >> > if(!list) return; > >> > > >> > // first remove a previous selection > >> > if(list.selectedIndex != -1) > >> > { > >> > var tmp:String = input.text; > >> > list.selectedItem = null; > >> > input.text = tmp; > >> > } > >> > > >> > if (!comboView.popUpVisible) > >> > comboView.popUpVisible = true; > >> > > >> > // fill "list" with the internal list in the combobox popup > >> > //list = comboView.popup.view.list; > >> > > >> > applyFilter(comboView.textinput.text.toUpperCase()); > >> > > >> > ComboBoxView(comboView).autoResizeHandler(); //as we filter the popup > >> list > >> > will be smaller, and we want to reposition > >> > } > >> > > >> > override protected function selectItem(item:Object):void > >> > { > >> > // Select the item in the list if text is the same > >> > // we do at the end to avoid multiple selection (if there's more than > >> one > >> > matches) > >> > // in that case, select the first one in the list > >> > // if(item != null) > >> > // list.selectedItem = item; > >> > } > >> > > >> > override protected function onBeadsAdded(event:Event):void{ > >> > listenOnStrand('dismissPopUp', removeListListeners); > >> > listenOnStrand('popUpOpened', popUpOpenedHandler); > >> > listenOnStrand('popUpClosed', popUpClosedHandler); > >> > > >> > comboView = event.target.view as IComboBoxView; > >> > if (comboView) > >> > { > >> > var _textInput:TextInputBase = comboView.textinput as > >> > TextInputBase; > >> > if (_textInput) { > >> > COMPILE::JS > >> > { > >> > _textInput.element.addEventListener('focus', > >> > onInputFocus); > >> > } > >> > } > >> > } > >> > } > >> > > >> > override protected function onInputFocus(event:Event):void{ > >> > if (!comboView.popUpVisible) > >> > comboView.popUpVisible = true; > >> > } > >> > > >> > protected function popUpOpenedHandler():void { > >> > // fill "list" with the internal list in the combobox popup > >> > list = comboView.popup.view.list; > >> > } > >> > > >> > protected function popUpClosedHandler():void { > >> > list = null; > >> > } > >> > } > >> > } > >> > > >> > > >> > > >> > -- > >> > Sent from: http://apache-royale-development.20373.n8.nabble.com/ > >> > > >> > >> > >> -- > >> 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
