Hi Yishay,
please go ahead and do the changes
thanks!

El mar., 28 ene. 2020 a las 11:55, Yishay Weiss (<yishayj...@hotmail.com>)
escribió:

> Thanks for adding this. Since this behavior could be desirable in all
> component sets I’d like to suggest the following:
>
>
>   1.  Move it to Basic
>   2.  Create an interface ITooltipBead which includes removeTip()
>   3.  Have all tooltip beads implement it
>   4.  Use strand.getBeadByType(ITooltipBead) instead of requiring a
> tooltip param
>
> Do you agree?
>
> If you don’t have time I can do this.
>
> From: carlosrov...@apache.org<mailto:carlosrov...@apache.org>
> Sent: Tuesday, January 28, 2020 11:34 AM
> To: comm...@royale.apache.org<mailto:comm...@royale.apache.org>
> Subject: [royale-asjs] branch develop updated:
> ToolTipRemovalWhenItemRemoved: new bead to abstract best practice showcased
> in #697
>
> This is an automated email from the ASF dual-hosted git repository.
>
> carlosrovira pushed a commit to branch develop
> in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
>
>
> The following commit(s) were added to refs/heads/develop by this push:
>      new 93c5612  ToolTipRemovalWhenItemRemoved: new bead to abstract best
> practice showcased in #697
> 93c5612 is described below
>
> commit 93c5612fb36e8c450d6b8c2ff2b69b789c8461ee
> Author: Carlos Rovira <carlosrov...@apache.org>
> AuthorDate: Tue Jan 28 10:34:22 2020 +0100
>
>     ToolTipRemovalWhenItemRemoved: new bead to abstract best practice
> showcased in #697
> ---
>  .../royale/itemRenderers/IconListItemRenderer.mxml |  27 +----
>  .../Jewel/src/main/resources/jewel-manifest.xml    |   2 +
>  .../itemRenderers/ToolTipRemovalWhenItemRemoved.as | 116
> +++++++++++++++++++++
>  3 files changed, 119 insertions(+), 26 deletions(-)
>
> diff --git
> a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconListItemRenderer.mxml
> b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconListItemRenderer.mxml
> index 906630b..b7c54d0 100644
> ---
> a/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconListItemRenderer.mxml
> +++
> b/examples/royale/TourDeJewel/src/main/royale/itemRenderers/IconListItemRenderer.mxml
> @@ -29,32 +29,6 @@ limitations under the License.
>                          import
> org.apache.royale.jewel.beads.views.ListView;
>
>                          import vos.IconListVO;
> -
> -            private var host:List;
> -
> -            /**
> -             * listen to "itemRemoved" event dispatched from the List
> -             */
> -            override public function addedToParent():void
> -            {
> -                super.addedToParent();
> -
> -                var view:ListView = this.itemRendererParent as ListView;
> -                host = view.host as List;
> -                IEventDispatcher(host).addEventListener("itemRemoved",
> handleItemRemoved);
> -            }
> -
> -            /**
> -             * check if the renderer (item) is the current and in that
> case ensure remove listener and tip.
> -             */
> -            protected function
> handleItemRemoved(event:ItemRemovedEvent):void
> -            {
> -                if(event.item == this)
> -                {
> -
> IEventDispatcher(host).removeEventListener("itemRemoved",
> handleItemRemoved);
> -                    tt.removeTip();
> -                }
> -            }
>
>              [Bindable("dataChange")]
>              public function get iconList():IconListVO
> @@ -83,6 +57,7 @@ limitations under the License.
>      <j:beads>
>          <js:ItemRendererDataBinding />
>          <j:ToolTip localId="tt" toolTip="{getToolTip(text)}"/>
> +        <j:ToolTipRemovalWhenItemRemoved tooltip="{tt}"/>
>      </j:beads>
>
>      <js:FontIcon text="{iconList ? iconList.icon : ''}" material="true"
> visible="{iconList ? iconList.icon != null : false}"
> click="clickCloseButton()"/>
> diff --git
> a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
> b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
> index 1b6d9a9..44d1bce 100644
> --- a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
> +++ b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
> @@ -222,6 +222,8 @@
>      <component id="UpdateTableRowForArrayListData"
> class="org.apache.royale.jewel.beads.itemRenderers.UpdateTableRowForArrayListData"
> />
>
>      <component id="RemoveAllItemRendererForArrayListData"
> class="org.apache.royale.jewel.beads.itemRenderers.RemoveAllItemRendererForArrayListData"
> />
> +
> +    <component id="ToolTipRemovalWhenItemRemoved"
> class="org.apache.royale.jewel.beads.itemRenderers.ToolTipRemovalWhenItemRemoved"
> />
>
>      <!-- <component id="JewelLabelViewBead"
> class="org.apache.royale.jewel.beads.views.JewelLabelViewBead"/> -->
>
> diff --git
> a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ToolTipRemovalWhenItemRemoved.as
> b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ToolTipRemovalWhenItemRemoved.as
> new file mode 100644
> index 0000000..2ddeb2d
> --- /dev/null
> +++
> b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/ToolTipRemovalWhenItemRemoved.as
> @@ -0,0 +1,116 @@
>
> +////////////////////////////////////////////////////////////////////////////////
> +//
> +//  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.itemRenderers
> +{
> +       import org.apache.royale.core.IBead;
> +       import org.apache.royale.core.IBeadView;
> +       import org.apache.royale.core.IItemRenderer;
> +       import org.apache.royale.core.IStrand;
> +       import org.apache.royale.core.IUIBase;
> +       import org.apache.royale.events.IEventDispatcher;
> +       import org.apache.royale.events.ItemRemovedEvent;
> +       import org.apache.royale.jewel.beads.controls.ToolTip;
> +
> +    /**
> +     *  The ToolTipRemovalWhenItemRemoved class can be used in renderers
> that
> +     *  can be removed and uses ToolTip, to ensure the tooltip popup is
> removed
> +     *  with the item renderer.
> +     *
> +     *  @langversion 3.0
> +     *  @playerversion Flash 10.2
> +     *  @playerversion AIR 2.6
> +     *  @productversion Royale 0.9.7
> +     */
> +       public class ToolTipRemovalWhenItemRemoved implements IBead
> +       {
> +        /**
> +         *  Constructor.
> +         *
> +         *  @langversion 3.0
> +         *  @playerversion Flash 10.2
> +         *  @playerversion AIR 2.6
> +         *  @productversion Royale 0.9.7
> +         */
> +               public function ToolTipRemovalWhenItemRemoved()
> +               {
> +               }
> +
> +               private var _strand:IStrand;
> +        private var host:IUIBase;
> +
> +        /**
> +         *  listen to "itemRemoved" event dispatched from the List
> +         *
> +         *  @copy org.apache.royale.core.IBead#strand
> +         *
> +         *  @langversion 3.0
> +         *  @playerversion Flash 10.2
> +         *  @playerversion AIR 2.6
> +         *  @productversion Royale 0.9.7
> +         */
> +               public function set strand(value:IStrand):void
> +               {
> +                       _strand = value;
> +
> +            var view:IBeadView = (_strand as
> IItemRenderer).itemRendererParent as IBeadView;
> +            host = view.host as IUIBase;
> +            IEventDispatcher(host).addEventListener("itemRemoved",
> handleItemRemoved);
> +               }
> +
> +        /**
> +         * check if the renderer (item) is the current and in that case
> ensure remove listener and tip.
> +         */
> +        protected function handleItemRemoved(event:ItemRemovedEvent):void
> +        {
> +            if(event.item == this)
> +            {
> +                IEventDispatcher(host).removeEventListener("itemRemoved",
> handleItemRemoved);
> +                if(tooltip)
> +                {
> +                    tooltip.removeTip();
> +                }
> +            }
> +        }
> +
> +        private var _tooltip:ToolTip = null;
> +        /**
> +         *  The ToolTip that manages the tip popup to be removed
> +         *
> +         *  @langversion 3.0
> +         *  @playerversion Flash 10.2
> +         *  @playerversion AIR 2.6
> +         *  @productversion Royale 0.9.7
> +         */
> +               public function get tooltip():ToolTip
> +               {
> +                       return _tooltip;
> +               }
> +
> +        /**
> +         *  @private
> +         */
> +               public function set tooltip(value:ToolTip):void
> +               {
> +                       if (value != _tooltip)
> +                       {
> +                _tooltip = value;
> +                       }
> +               }
> +       }
> +}
>
>

-- 



Carlos Rovira

Presidente Ejecutivo

M: +34 607 22 60 05

http://www.codeoscopic.com


Conócenos en 1 minuto! <https://avant2.es/#video>


AVISO LEGAL: La información contenida en este correo electrónico, y en su
caso en los documentos adjuntos, es información privilegiada para uso
exclusivo de la persona y/o personas a las que va dirigido. No está
permitido el acceso a este mensaje a cualquier otra persona distinta a los
indicados. Si Usted no es uno de los destinatarios, cualquier duplicación,
reproducción, distribución, así como cualquier uso de la información
contenida en él o cualquiera otra acción u omisión tomada en relación con
el mismo, está prohibida y puede ser ilegal. En dicho caso, por favor,
notifíquelo al remitente y proceda a la eliminación de este correo
electrónico, así como de sus adjuntos si los hubiere. En cumplimiento de la
legislación española vigente en materia de protección de datos de carácter
personal y del RGPD 679/2016 le informamos que sus datos están siendo
objeto de tratamiento por parte de CODEOSCOPIC S.A. con CIFA85677342, con
la finalidad del mantenimiento y gestión de relaciones comerciales y
administrativas. La base jurídica del tratamiento es el interés legítimo de
la empresa. No se prevén cesiones de sus datos, salvo que exista una
obligación legal. Para ejercitar sus derechos puede dirigirse a CODEOSCOPIC
S.A., domiciliada enPaseo de la Habana, 9-11, 28036 de Madrid (MADRID), o
bien por email a...@codeoscopic.com, con el fin de ejercer sus derechos de
acceso, rectificación, supresión (derecho al olvido), limitación de
tratamiento, portabilidad de los datos, oposición, y a no ser objeto de
decisiones automatizadas, indicando como Asunto: “Derechos Ley Protección
de Datos”, y adjuntando fotocopia de su DNI. Delegado de protección de
datos:d...@codeoscopic.com

Reply via email to