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