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 2019/04/02 09:20:11 UTC

[royale-asjs] branch color_picker updated: Mouse controller for color spectrum now functional.

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


The following commit(s) were added to refs/heads/color_picker by this push:
     new 15615ba  Mouse controller for color spectrum now functional.
15615ba is described below

commit 15615ba38a1f0d0e7bd7df8cd79491c1e1302732
Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
AuthorDate: Tue Apr 2 12:19:53 2019 +0300

    Mouse controller for color spectrum now functional.
---
 .../projects/Basic/src/main/resources/defaults.css |  2 +-
 .../projects/Basic/src/main/royale/BasicClasses.as |  1 +
 .../apache/royale/html/beads/ColorSpectrumView.as  |  8 ++--
 .../controllers/ColorSpectrumMouseController.as    | 46 +++++++++++++---------
 .../royale/html/beads/models/ColorSpectrumModel.as | 18 +++++----
 .../royale/html/supportClasses/ColorSpectrum.as    | 32 +++++++++++----
 .../projects/Core/src/main/royale/CoreClasses.as   |  4 +-
 .../org/apache/royale/core/IColorSpectrumModel.as  |  8 ++--
 .../src/main/royale/org/apache/royale/utils/HSV.as |  6 +--
 9 files changed, 77 insertions(+), 48 deletions(-)

diff --git a/frameworks/projects/Basic/src/main/resources/defaults.css b/frameworks/projects/Basic/src/main/resources/defaults.css
index cc174b7..8c0fec7 100644
--- a/frameworks/projects/Basic/src/main/resources/defaults.css
+++ b/frameworks/projects/Basic/src/main/resources/defaults.css
@@ -603,7 +603,7 @@ SwatchList
 
 ColorSpectrum
 {
-	IBeadModel: ClassReference("org.apache.royale.html.beads.models.ColorModel");
+	IBeadModel: ClassReference("org.apache.royale.html.beads.models.ColorSpectrumModel");
 	IBeadView:  ClassReference("org.apache.royale.html.beads.ColorSpectrumView");
 	IBeadController: ClassReference("org.apache.royale.html.beads.controllers.ColorSpectrumMouseController");
 }
diff --git a/frameworks/projects/Basic/src/main/royale/BasicClasses.as b/frameworks/projects/Basic/src/main/royale/BasicClasses.as
index dcf7309..9517edb 100644
--- a/frameworks/projects/Basic/src/main/royale/BasicClasses.as
+++ b/frameworks/projects/Basic/src/main/royale/BasicClasses.as
@@ -43,6 +43,7 @@ internal class BasicClasses
     import org.apache.royale.html.beads.AlertView; AlertView;
     import org.apache.royale.html.beads.ColorSpectrumView; ColorSpectrumView;
     import org.apache.royale.html.beads.controllers.AlertController; AlertController;
+    import org.apache.royale.html.beads.controllers.ColorSpectrumMouseController; ColorSpectrumMouseController;
 	
 	import org.apache.royale.html.beads.DividedContainerView; DividedContainerView;
 	import org.apache.royale.html.beads.models.DividedContainerModel; DividedContainerModel;
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ColorSpectrumView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ColorSpectrumView.as
index ed02b78..5605836 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ColorSpectrumView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ColorSpectrumView.as
@@ -18,7 +18,7 @@
 package org.apache.royale.html.beads
 {
     import org.apache.royale.core.BeadViewBase;
-    import org.apache.royale.core.IColorModel;
+    import org.apache.royale.core.IColorSpectrumModel;
     import org.apache.royale.core.IRenderedObject;
     import org.apache.royale.core.IStrand;
     import org.apache.royale.core.IStrandWithModel;
@@ -70,16 +70,16 @@ package org.apache.royale.html.beads
 		
 		private function updateSpectrum():void
 		{
-			var color:String = CSSUtils.attributeFromColor(colorModel.color);
+			var color:String = CSSUtils.attributeFromColor(colorModel.baseColor);
 			COMPILE::JS
 			{
 				(host as IRenderedObject).element.style.background = "linear-gradient(to top, #000000, transparent), linear-gradient(to left, " + color + ", #ffffff)";
 			}
 		}
 		
-		private function get colorModel():IColorModel
+		private function get colorModel():IColorSpectrumModel
 		{
-			return (host as IStrandWithModel).model as IColorModel
+			return (host as IStrandWithModel).model as IColorSpectrumModel;
 		}
 	}
 }
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ColorSpectrumMouseController.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ColorSpectrumMouseController.as
index c45805d..dedf641 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ColorSpectrumMouseController.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ColorSpectrumMouseController.as
@@ -19,15 +19,20 @@
 package org.apache.royale.html.beads.controllers
 {
 	import org.apache.royale.core.IBeadController;
+	import org.apache.royale.core.IColorSpectrumModel;
 	import org.apache.royale.core.IStrand;
-
+	import org.apache.royale.core.IStrandWithModel;
+	import org.apache.royale.core.IUIBase;
+	import org.apache.royale.events.IEventDispatcher;
+	import org.apache.royale.events.MouseEvent;
+	import org.apache.royale.utils.HSV;
+	import org.apache.royale.utils.hsvToHex;
+	import org.apache.royale.utils.rgbToHsv;
 	COMPILE::JS 
 	{
-		import org.apache.royale.core.IStrandWithModel;
-		import org.apache.royale.core.IUIBase;
-		import org.apache.royale.events.MouseEvent;
+        import org.apache.royale.events.BrowserEvent;
 	}
-	
+
     /**
      *  The ColorSpectrumMouseController class is a controller for
 	 *  the ColorSpecrum control. It's job is to detect the location
@@ -57,28 +62,31 @@ package org.apache.royale.html.beads.controllers
 		public function set strand(value:IStrand):void
 		{
 			_strand = value;
-			COMPILE::JS 
-			{
-                goog.events.listen(track.element, goog.events.EventType.CLICK,
-                    handleClick, false, this);
-			}
+			(value as IEventDispatcher).addEventListener(MouseEvent.CLICK, handleClick);
 		}
 		
-		/**
+        /**
 		 * @royaleignorecoercion org.apache.royale.events.BrowserEvent
          */
-        COMPILE::JS
         private function handleClick(event:MouseEvent):void
         {
-			var bevent:BrowserEvent = event["wrappedEvent"] as BrowserEvent;
-            var host:ColorSpectrum = _strand as IUIBase;
-            var xloc:Number = bevent.offsetX;
-            var yloc:Number = bevent.offsetY;
+            var host:IUIBase = _strand as IUIBase;
+			var yloc:Number;
+			var xloc:Number;
+			COMPILE::JS 
+			{
+				var bevent:BrowserEvent = event["nativeEvent"] as BrowserEvent;
+				xloc = bevent.offsetX;
+				yloc = bevent.offsetY;
+			}
 			var widthRatio:Number = xloc / host.width;
-			var heightRatio:Number = yloc / host.height;
+			var heightRatio:Number = (host.height - yloc) / host.height;
 			var model:IColorSpectrumModel = (_strand as IStrandWithModel).model as IColorSpectrumModel;
-			var hsvBaseColor:HSV = rgbToHsv(model.baseColor.color);
-			model.hsvModifiedColor.color = hsvToHex(hsvBaseColor.h, hsvBaseColor.s * heightRatio, hsvBaseColor.v * widthRatio);
+			var r:uint = (model.baseColor >> 16 ) & 255;
+			var g:uint = (model.baseColor >> 8 ) & 255;
+			var b:uint = model.baseColor & 255;
+			var hsvBaseColor:HSV = rgbToHsv(r, g, b);
+			model.hsvModifiedColor = hsvToHex(hsvBaseColor.h, widthRatio * 100, heightRatio * 100);
         }
 	}
 }
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/ColorSpectrumModel.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/ColorSpectrumModel.as
index 034c0f5..259d697 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/ColorSpectrumModel.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/ColorSpectrumModel.as
@@ -19,11 +19,11 @@
 package org.apache.royale.html.beads.models
 {	
 	import org.apache.royale.core.IBead;
-	import org.apache.royale.core.IStrand;
 	import org.apache.royale.core.IColorSpectrumModel;
-	import org.apache.royale.core.IColorModel;
+	import org.apache.royale.core.IStrand;
 	import org.apache.royale.events.Event;
 	import org.apache.royale.events.EventDispatcher;
+	import org.apache.royale.events.ValueChangeEvent;
 		
     /**
      *  The ColorSpectrumModel class is the most basic data model for a
@@ -37,8 +37,8 @@ package org.apache.royale.html.beads.models
 	public class ColorSpectrumModel extends EventDispatcher implements IColorSpectrumModel
 	{
 		private var _color:uint;
-		private var _baseColor:IColorModel;
-		private var _hsvModifiedColor:IColorModel;
+		private var _baseColor:uint;
+		private var _hsvModifiedColor:uint;
         /**
          *  Constructor.
          *  
@@ -63,7 +63,7 @@ package org.apache.royale.html.beads.models
          *  @playerversion AIR 2.6
          *  @productversion Royale 0.9.6
          */
-        public function get baseColor():IColorModel
+        public function get baseColor():uint
 		{
 			return _baseColor;
 		}
@@ -71,9 +71,10 @@ package org.apache.royale.html.beads.models
         /**
          *  @private
          */
-        public function set baseColor(value:IColorModel):void
+        public function set baseColor(value:uint):void
 		{
 			_baseColor = value;
+			dispatchEvent(new Event("baseColorChange"));
 		}
         /**
          *  @copy org.apache.royale.core.ISpectrumColorModel#hsvModifiedColor
@@ -83,7 +84,7 @@ package org.apache.royale.html.beads.models
          *  @playerversion AIR 2.6
          *  @productversion Royale 0.9.6
          */
-        public function get hsvModifiedColor():IColorModel
+        public function get hsvModifiedColor():uint
 		{
 			return _hsvModifiedColor;
 		}
@@ -91,9 +92,10 @@ package org.apache.royale.html.beads.models
         /**
          *  @private
          */
-        public function set hsvModifiedColor(value:IColorModel):void
+        public function set hsvModifiedColor(value:uint):void
 		{
 			_hsvModifiedColor = value;
+			dispatchEvent(new Event("hsvModifiedColorChange"));
 		}
 	}
 }
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ColorSpectrum.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ColorSpectrum.as
index ce507e1..72a158d 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ColorSpectrum.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ColorSpectrum.as
@@ -18,7 +18,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.html.supportClasses
 {
-	import org.apache.royale.core.IColorModel;
+	import org.apache.royale.core.IColorSpectrumModel;
 	import org.apache.royale.core.UIBase;
 	import org.apache.royale.events.Event;
 
@@ -55,7 +55,7 @@ package org.apache.royale.html.supportClasses
 		public function ColorSpectrum()
 		{
 			super();
-			model.addEventListener("colorChange", colorChangeHandler);
+			model.addEventListener("hsvModifiedColorChange", colorChangeHandler);
 		}
 
         /**
@@ -65,18 +65,34 @@ package org.apache.royale.html.supportClasses
          *  @playerversion AIR 2.6
          *  @productversion Royale 0.9.6
          */
-		[Bindable(event="change")]
-		public function get color():uint
+		public function get baseColor():uint
 		{
-			return IColorModel(model).color;
+			return IColorSpectrumModel(model).baseColor;
 		}
 
         /**
-         *  @private
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9.6
          */
-		public function set color(value:uint):void
+		public function set baseColor(value:uint):void
+		{
+			IColorSpectrumModel(model).baseColor = value;
+		}
+
+        /**
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9.6
+         */
+		[Bindable(event="change")]
+		public function get hsvModifiedColor():uint
 		{
-			IColorModel(model).color = value;
+			return IColorSpectrumModel(model).hsvModifiedColor;
 		}
 
 		/**
diff --git a/frameworks/projects/Core/src/main/royale/CoreClasses.as b/frameworks/projects/Core/src/main/royale/CoreClasses.as
index 9b56dfc..c0a153f 100644
--- a/frameworks/projects/Core/src/main/royale/CoreClasses.as
+++ b/frameworks/projects/Core/src/main/royale/CoreClasses.as
@@ -37,7 +37,7 @@ internal class CoreClasses
 	import org.apache.royale.core.IIconSupport; IIconSupport;
 	import org.apache.royale.html.beads.IListView; IListView;
 	import org.apache.royale.events.ItemAddedEvent; ItemAddedEvent;
-import org.apache.royale.events.ItemRemovedEvent; ItemRemovedEvent;
+	import org.apache.royale.events.ItemRemovedEvent; ItemRemovedEvent;
 	import org.apache.royale.html.beads.IDropDownListView; IDropDownListView;
 
 	import org.apache.royale.events.ItemAddedEvent; ItemAddedEvent;
@@ -281,6 +281,8 @@ import org.apache.royale.events.ItemRemovedEvent; ItemRemovedEvent;
 
 	import org.apache.royale.utils.measureComponent; measureComponent;
 	import org.apache.royale.utils.loadBeadFromValuesManager; loadBeadFromValuesManager;
+	import org.apache.royale.utils.HSV; HSV;
+	import org.apache.royale.utils.rgbToHsv; rgbToHsv;
 	import org.apache.royale.utils.hsvToHex; hsvToHex;
 
 	import org.apache.royale.utils.array.rangeCheck; rangeCheck;
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IColorSpectrumModel.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IColorSpectrumModel.as
index e505999..60bd368 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IColorSpectrumModel.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IColorSpectrumModel.as
@@ -37,8 +37,8 @@ package org.apache.royale.core
          *  @playerversion AIR 2.6
          *  @productversion Royale 0.9.6
          */
-        function get baseColor():IColorModel;
-        function set baseColor(value:IColorModel):void;
+        function get baseColor():uint;
+        function set baseColor(value:uint):void;
 		
         /**
          *  The resultant color after hue and saturation were modified
@@ -48,7 +48,7 @@ package org.apache.royale.core
          *  @playerversion AIR 2.6
          *  @productversion Royale 0.9.6
          */
-        function get hsvModifiedColor():IColorModel;
-        function set hsvModifiedColor(value:IColorModel):void;
+        function get hsvModifiedColor():uint;
+        function set hsvModifiedColor(value:uint):void;
 	}
 }
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/HSV.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/HSV.as
index 8ba42e8..42cacc9 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/HSV.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/HSV.as
@@ -43,7 +43,7 @@ package org.apache.royale.utils
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.9.6
 		 */
-		public function HSV(h:Number, s:Number, v:Number)
+		public function HSV(h:Number=NaN, s:Number=NaN, v:Number=NaN)
 		{
 			_h = h;
 			_s = s;
@@ -52,7 +52,7 @@ package org.apache.royale.utils
 	
 		public function get h():Number 
 		{
-			_return h;
+			return _h;
 		}
 		
 		public function set h(value:Number):void
@@ -62,7 +62,7 @@ package org.apache.royale.utils
 		
 		public function get s():Number 
 		{
-			_return s;
+			return _s;
 		}
 		
 		public function set s(value:Number):void