This is an automated email from the ASF dual-hosted git repository. yishayw pushed a commit to branch color_picker in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit b985b92209725859932ea12ecccfd83fc607f9e4 Author: DESKTOP-RH4S838\Yishay <[email protected]> AuthorDate: Mon Mar 11 12:02:09 2019 +0200 Adding swatch - no styling as of yet --- .../Basic/src/main/resources/basic-manifest.xml | 2 + .../projects/Basic/src/main/resources/defaults.css | 13 +++ .../royale/org/apache/royale/html/SwatchList.as | 47 +++++++++ .../html/supportClasses/ColorItemRenderer.as | 105 +++++++++++++++++++++ 4 files changed, 167 insertions(+) diff --git a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml index 82d2990..1a0775a 100644 --- a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml +++ b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml @@ -48,6 +48,7 @@ <component id="DynamicList" class="org.apache.royale.html.DynamicList"/> <component id="PopUpList" class="org.apache.royale.html.PopUpList"/> <component id="SimpleList" class="org.apache.royale.html.SimpleList"/> + <component id="SwatchList" class="org.apache.royale.html.SwatchList"/> <component id="CheckBox" class="org.apache.royale.html.CheckBox"/> <component id="CSSCheckBox" class="org.apache.royale.html.CSSCheckBox"/> <component id="RadioButton" class="org.apache.royale.html.RadioButton"/> @@ -122,6 +123,7 @@ <component id="MXMLItemRenderer" class="org.apache.royale.html.supportClasses.MXMLItemRenderer"/> <component id="AlternatingBackgroundColorStringItemRenderer" class="org.apache.royale.html.supportClasses.AlternatingBackgroundColorStringItemRenderer"/> <component id="StringItemRenderer" class="org.apache.royale.html.supportClasses.StringItemRenderer"/> + <component id="ColorItemRenderer" class="org.apache.royale.html.supportClasses.ColorItemRenderer"/> <component id="AccordionItemRenderer" class="org.apache.royale.html.supportClasses.AccordionItemRenderer"/> <component id="AccordionCollapseBead" class="org.apache.royale.html.beads.AccordionCollapseBead"/> <component id="DispatchInputFinishedBead" class="org.apache.royale.html.beads.DispatchInputFinishedBead"/> diff --git a/frameworks/projects/Basic/src/main/resources/defaults.css b/frameworks/projects/Basic/src/main/resources/defaults.css index 01f60af..875f0c6 100644 --- a/frameworks/projects/Basic/src/main/resources/defaults.css +++ b/frameworks/projects/Basic/src/main/resources/defaults.css @@ -580,6 +580,19 @@ SimpleList IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel"); } +SwatchList +{ + IBeadModel: ClassReference("org.apache.royale.html.beads.models.ArraySelectionModel"); + IBeadView: ClassReference("org.apache.royale.html.beads.ListView"); + IBeadController: ClassReference("org.apache.royale.html.beads.controllers.ListSingleSelectionMouseController"); + IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.TileLayout"); + IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForArrayData"); + IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory"); + IItemRenderer: ClassReference("org.apache.royale.html.supportClasses.ColorItemRenderer"); + IViewport: ClassReference("org.apache.royale.html.supportClasses.ScrollingViewport"); + IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel"); +} + Slider { IBeadModel: ClassReference("org.apache.royale.html.beads.models.RangeModel"); diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/SwatchList.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/SwatchList.as new file mode 100644 index 0000000..50c9d2a --- /dev/null +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/SwatchList.as @@ -0,0 +1,47 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 +{ + + /** + * The SwatchList class is use in a ColorPicker. It contains a list of predefined colors. + * + * + * @toplevel + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.9.6 + */ + public class SwatchList extends List + { + /** + * constructor. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.9.6 + */ + public function SwatchList() + { + super(); + } + } +} diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ColorItemRenderer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ColorItemRenderer.as new file mode 100644 index 0000000..ff905cc --- /dev/null +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ColorItemRenderer.as @@ -0,0 +1,105 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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.utils.CSSUtils; + + /** + * The ColorItemRenderer class displays a color as part of a color palette + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.9.6 + */ + public class ColorItemRenderer extends DataItemRenderer + { + /** + * constructor. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.9.6 + */ + public function ColorItemRenderer() + { + super(); + + typeNames = 'ColorItemRenderer'; + } + + /** + * Sets the data value and uses the String version of the data for display. + * + * @param Object data The object being displayed by the itemRenderer instance. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.9.6 + * @royaleignorecoercion String + */ + override public function set data(value:Object):void + { + super.data = value; + COMPILE::JS + { + var color:uint; + if (!isNaN(value)) + { + color = uint(value); + } else if (dataField) + { + color = uint(data[dataField]); + } else + { + color = 0x000000; + } + element.style.backgroundColor = CSSUtils.attributeFromColor(color); + } + } + + + /** + * @private + */ + override public function updateRenderer():void + { + COMPILE::SWF + { + super.updateRenderer(); + + graphics.clear(); + graphics.beginFill(useColor, (down||selected||hovered)?1:0); + graphics.drawRect(0, 0, width, height); + graphics.endFill(); + } + COMPILE::JS + { +// if (selected) +// element.style.backgroundColor = '#9C9C9C'; +// else if (hovered) +// element.style.backgroundColor = '#ECECEC'; +// else +// element.style.backgroundColor = 'transparent'; + } + } + } +}
