You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by yi...@apache.org on 2022/11/23 17:47:10 UTC
[royale-asjs] branch develop updated: Start implementing text option in ColorPicker
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 63c61e0527 Start implementing text option in ColorPicker
63c61e0527 is described below
commit 63c61e0527c8524d9aa83dab531aff76ff331424
Author: Yishay Weiss <yi...@hotmail.com>
AuthorDate: Wed Nov 23 19:47:02 2022 +0200
Start implementing text option in ColorPicker
---
.../royale/mx/controls/beads/ColorPickerPopUp.as | 60 +++++++++++++++++++++-
1 file changed, 58 insertions(+), 2 deletions(-)
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/ColorPickerPopUp.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/ColorPickerPopUp.as
index 23caf22676..3dbc08b0e6 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/ColorPickerPopUp.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/ColorPickerPopUp.as
@@ -27,6 +27,14 @@ package mx.controls.beads
import org.apache.royale.html.supportClasses.ColorPalette;
import org.apache.royale.html.beads.layouts.TileLayout;
import org.apache.royale.html.supportClasses.IColorPickerPopUp;
+ import org.apache.royale.html.TextInput;
+ import org.apache.royale.html.Group;
+ import org.apache.royale.core.IStyleableObject;
+ import org.apache.royale.events.Event;
+ import org.apache.royale.utils.CSSUtils;
+ import org.apache.royale.html.beads.DispatchInputFinishedBead;
+ import org.apache.royale.html.accessories.RestrictTextInputBead;
+ import org.apache.royale.core.IStrandWithModel;
/**
* The ColorPickerPopUp class is used in ColorPicker. It contains a set of controls for picking a color.
@@ -41,6 +49,8 @@ package mx.controls.beads
public class ColorPickerPopUp extends UIBase implements IColorPickerPopUp, IBead
{
protected var colorPalette:ColorPalette;
+ protected var textInput:TextInput;
+ protected var selectedColorDisplay:Group;
protected var host:IStrand;
/**
* constructor.
@@ -55,14 +65,39 @@ package mx.controls.beads
super();
colorPalette = new ColorPalette();
var colorPaletteLayout:TileLayout = loadBeadFromValuesManager(TileLayout, "iBeadLayout", colorPalette) as TileLayout;
- colorPaletteLayout.rowHeight = colorPaletteLayout.columnWidth = 12;
- colorPalette.width = 240;
+ selectedColorDisplay = new Group();
+ (selectedColorDisplay as IStyleableObject).className = "ColorPickerDisplayedColor";
+ var irDim:int = 11;
+ var margin:int = 2;
+ colorPaletteLayout.rowHeight = colorPaletteLayout.columnWidth = irDim;
+ colorPalette.width = irDim * 20;
+ selectedColorDisplay.width = irDim * 4;
+ textInput = new TextInput();
+ textInput.width = 62;
+ textInput.x = selectedColorDisplay.width + margin * 2;
+ selectedColorDisplay.y = textInput.y = margin;
+ selectedColorDisplay.height = textInput.height = 24;
+ colorPalette.y = selectedColorDisplay.height + margin * 2;
+ COMPILE::JS
+ {
+ selectedColorDisplay.element.style.position = "absolute";
+ textInput.element.style.position = "absolute";
+ colorPalette.element.style.position = "absolute";
+ }
}
override public function set model(value:Object):void
{
super.model = value;
colorPalette.model = value;
+ if (getElementIndex(selectedColorDisplay) < 0)
+ {
+ addElement(selectedColorDisplay);
+ }
+ if (getElementIndex(textInput) < 0)
+ {
+ addElement(textInput);
+ }
if (getElementIndex(colorPalette) < 0)
{
addElement(colorPalette);
@@ -72,6 +107,27 @@ package mx.controls.beads
public function set strand(value:IStrand):void
{
host = value;
+ textInput.addEventListener("change", changeHandler);
+ var restrictBead:RestrictTextInputBead = new RestrictTextInputBead();
+ restrictBead.restrict = "aAbBcCdDeEfF0123456789";
+ textInput.addBead(restrictBead);
+ textInput.addBead(new DispatchInputFinishedBead());
+ textInput.addEventListener(DispatchInputFinishedBead.INPUT_FINISHED, inputFinishedHandler)
+ }
+
+ protected function changeHandler(event:Event):void
+ {
+ var color:uint = CSSUtils.toColorWithAlpha("#" + textInput.text);
+ COMPILE::JS
+ {
+ selectedColorDisplay.element.style.backgroundColor = CSSUtils.attributeFromColor(color);
+ }
+ }
+
+ protected function inputFinishedHandler(event:Event):void
+ {
+ var color:uint = CSSUtils.toColorWithAlpha("#" + textInput.text);
+ ((host as IStrandWithModel).model as IColorModel).color = color;
}
}