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
>>
>

Reply via email to