This is an automated email from the ASF dual-hosted git repository. yishayw 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 3928794 Fix wrong usage of ISelectableItemRenderer (consider changing name to ISelctableItemRendererBead). 3928794 is described below commit 3928794f57d78305773e270933665c853bcd7dd9 Author: Yishay Weiss <yishayj...@hotmail.com> AuthorDate: Wed Jul 28 08:44:19 2021 +0300 Fix wrong usage of ISelectableItemRenderer (consider changing name to ISelctableItemRendererBead). Closes #1138 --- .../Basic/src/main/resources/basic-manifest.xml | 1 - .../projects/Basic/src/main/royale/BasicClasses.as | 1 + .../beads/TextColorSelectableItemRendererBead.as | 46 +++++ .../SelectableTextButtonItemRenderer.as | 211 --------------------- .../MXRoyale/src/main/resources/defaults.css | 6 +- 5 files changed, 50 insertions(+), 215 deletions(-) diff --git a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml index 7139ff5..75b1021 100644 --- a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml +++ b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml @@ -155,7 +155,6 @@ <component id="DateItemRenderer" class="org.apache.royale.html.supportClasses.DateItemRenderer"/> <component id="DayNameItemRenderer" class="org.apache.royale.html.supportClasses.DayNameItemRenderer"/> <component id="TextButtonItemRenderer" class="org.apache.royale.html.supportClasses.TextButtonItemRenderer"/> - <component id="SelectableTextButtonItemRenderer" class="org.apache.royale.html.supportClasses.SelectableTextButtonItemRenderer"/> <component id="DataFieldProviderBead" class="org.apache.royale.html.beads.DataFieldProviderBead"/> <component id="ButtonBarButtonItemRenderer" class="org.apache.royale.html.supportClasses.ButtonBarButtonItemRenderer"/> <!-- diff --git a/frameworks/projects/Basic/src/main/royale/BasicClasses.as b/frameworks/projects/Basic/src/main/royale/BasicClasses.as index 00f5c1f..bccfa7b 100644 --- a/frameworks/projects/Basic/src/main/royale/BasicClasses.as +++ b/frameworks/projects/Basic/src/main/royale/BasicClasses.as @@ -78,6 +78,7 @@ internal class BasicClasses import org.apache.royale.html.beads.SolidBackgroundSelectableItemRendererBead; SolidBackgroundSelectableItemRendererBead; import org.apache.royale.html.beads.SolidBackgroundRuntimeSelectableItemRendererBead; SolidBackgroundRuntimeSelectableItemRendererBead; import org.apache.royale.html.beads.AlternatingBackgroundColorSelectableItemRendererBead; AlternatingBackgroundColorSelectableItemRendererBead; + import org.apache.royale.html.beads.TextColorSelectableItemRendererBead; TextColorSelectableItemRendererBead; COMPILE::SWF { diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextColorSelectableItemRendererBead.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextColorSelectableItemRendererBead.as new file mode 100644 index 0000000..54aae6f --- /dev/null +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextColorSelectableItemRendererBead.as @@ -0,0 +1,46 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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.html.beads +{ + import org.apache.royale.core.IUIBase; + + /** + * The TextColorSelectableItemRendererBead adjusts text color according to selection + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.9.8 + */ + public class TextColorSelectableItemRendererBead extends SelectableItemRendererBeadBase + { + + /** + * @private + */ + override public function updateRenderer():void + { + COMPILE::JS + { + var element:HTMLElement = (_strand as IUIBase).element; + element.style["color"] = selected ? "red" : "black"; + } + } + } +} diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/SelectableTextButtonItemRenderer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/SelectableTextButtonItemRenderer.as deleted file mode 100644 index 73737fd..0000000 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/SelectableTextButtonItemRenderer.as +++ /dev/null @@ -1,211 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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.html.supportClasses -{ - import org.apache.royale.core.ISelectableItemRenderer; - 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.utils.CSSUtils; - - /** - * The SelectableTextButtonItemRenderer class extends TextButtonItemRenderer to make it selectable - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion Royale 0.9.8 - */ - public class SelectableTextButtonItemRenderer extends TextButtonItemRenderer implements ISelectableItemRenderer, IBead - { - public function SelectableTextButtonItemRenderer() - { - super(); - } - - 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 - * @royaleignorecoercion org.apache.royale.events.IEventDispatcher - */ - public function set strand(value:IStrand):void - { - _strand = value; - - var host:IEventDispatcher = value as IEventDispatcher; - - // very common for item renderers to be resized by their containers, - host.addEventListener("widthChanged", sizeChangeHandler); - host.addEventListener("heightChanged", sizeChangeHandler); - host.addEventListener("sizeChanged", sizeChangeHandler); - - } - - private var _backgroundColor:uint = 0xFFFFFF; - public function get backgroundColor():uint - { - return _backgroundColor; - } - public function set backgroundColor(value:uint):void - { - _backgroundColor = value; - } - - private var _highlightColor:uint = 0xCEDBEF; - public function get highlightColor():uint - { - return _highlightColor; - } - public function set highlightColor(value:uint):void - { - _highlightColor = value; - } - - private var _selectedColor:uint = 0xA8C6EE; - public function get selectedColor():uint - { - return _selectedColor; - } - public function set selectedColor(value:uint):void - { - _selectedColor = value; - } - - private var _downColor:uint = 0x808080; - public function get downColor():uint - { - return _downColor; - } - public function set downColor(value:uint):void - { - _downColor = value; - } - - protected var useColor:uint = backgroundColor; - - private var _hovered:Boolean; - - /** - * Whether or not the itemRenderer is in a hovered state. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion Royale 0.9.8 - */ - public function get hovered():Boolean - { - return _hovered; - } - public function set hovered(value:Boolean):void - { - _hovered = value; - updateRenderer(); - } - - private var _selected:Boolean; - - /** - * Whether or not the itemRenderer is in a selected state. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion Royale 0.9.8 - */ - public function get selected():Boolean - { - return _selected; - } - public function set selected(value:Boolean):void - { - _selected = value; - updateRenderer(); - } - - private var _down:Boolean; - - /** - * Whether or not the itemRenderer is in a down (or pre-selected) state. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion Royale 0.9.8 - */ - public function get down():Boolean - { - return _down; - } - public function set down(value:Boolean):void - { - _down = value; - updateRenderer(); - } - - /** - * @private - */ - public function updateRenderer():void - { - if (down) - useColor = downColor; - else if (hovered) - useColor = highlightColor; - else if (selected) - useColor = selectedColor; - else - useColor = backgroundColor; - COMPILE::JS - { - var colorAsStr:String = CSSUtils.attributeFromColor(useColor); - element.style.backgroundColor = colorAsStr; - } - } - - /** - * @private - */ - private function sizeChangeHandler(event:Event):void - { - adjustSize(); - } - - /** - * This function is called whenever the itemRenderer changes size. Sub-classes should override - * this method an handle the size change. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion Royale 0.9.8 - */ - public function adjustSize():void - { - // handle in subclass - } - } -} diff --git a/frameworks/projects/MXRoyale/src/main/resources/defaults.css b/frameworks/projects/MXRoyale/src/main/resources/defaults.css index c2bbd85..6c66b13 100644 --- a/frameworks/projects/MXRoyale/src/main/resources/defaults.css +++ b/frameworks/projects/MXRoyale/src/main/resources/defaults.css @@ -591,9 +591,9 @@ ToggleButtonBar IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.ButtonBarLayout"); IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.TextItemRendererFactoryForArrayData"); IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.ListItemRendererInitializer"); - IItemRendererClassFactory: ClassReference("org.apache.royale.core.OverridableSelectableItemRendererClassFactory"); - IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.SelectableTextButtonItemRenderer"); - ISelectableItemRenderer: ClassReference("org.apache.royale.html.supportClasses.SelectableTextButtonItemRenderer"); + IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory"); + IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.TextButtonItemRenderer"); + ISelectableItemRenderer: ClassReference("org.apache.royale.html.beads.TextColorSelectableItemRendererBead"); border-style: none; }