You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ha...@apache.org on 2018/09/03 09:16:22 UTC

[royale-asjs] branch feature/new_merge updated (e6e171f -> 1f10ebd)

This is an automated email from the ASF dual-hosted git repository.

harbs pushed a change to branch feature/new_merge
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git.


    from e6e171f  Merge branch 'feature/MXRoyale' into feature/new_merge
     new 2369b32  Make color values consistent with opacity, a decimal between 0 and 1.
     new be83e1d  Filters are not necessarily drop shadows
     new 73627be  Filter elements should not be treated as beads as they are not unique.
     new 11971b2  Filter elements are now children of filter bead instead of beads.
     new 8a0e524  DropShadowFilter is now just another Filter
     new 36e4f4e  Added SuperimposeFilter
     new b2752cf  Enable CompoundGraphic for transformations (and blending some browsers).
     new 58c89c4  Wrong DataGridColumn reference
     new 8f63c32  Basic DataGridColumns do not have percentColumnWidth
     new 926ebd7  Added merge, and more
     new 132d50d  Now that we're using Merge we don't need to play with sources in SuperImposeFilter
     new eea90e2  Add toggle menu method to mdl menu
     new 1f10ebd  Add a wrapper bead the date formatter to add hours

The 13 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../projects/Basic/src/main/royale/BasicClasses.as |   1 +
 .../org/apache/royale/svg/CompoundGraphic.as       |  19 ++-
 .../royale/svg/TransformableCompoundGraphic.as     |  93 ++++++++++
 .../royale/express/beads/layouts/DataGridLayout.as |  31 +++-
 .../src/main/resources/basic-manifest.xml          |   1 +
 .../html/accessories/DateAndTimeFormatter.as       | 175 +++++++++++++++++++
 .../Graphics/src/main/resources/defaults.css       |   8 -
 .../Graphics/src/main/resources/svg-manifest.xml   |   2 +
 .../org/apache/royale/svg/BlendFilterElement.as    |  37 +---
 .../org/apache/royale/svg/BlurFilterElement.as     |   4 +-
 .../apache/royale/svg/ColorMatrixFilterElement.as  |  14 +-
 .../apache/royale/svg/CompositeFilterElement.as    |   5 +-
 .../org/apache/royale/svg/DropShadowFilter.as      | 188 ++++++++++++---------
 .../main/royale/org/apache/royale/svg/Filter.as    |  45 ++---
 .../royale/org/apache/royale/svg/FilterElement.as  |  72 ++++----
 ...tFilterElement.as => FullAlphaFilterElement.as} |  15 +-
 .../org/apache/royale/svg/IChainableFilter.as}     |  73 ++++----
 .../org/apache/royale/svg/InvertFilterElement.as   |   4 +-
 .../org/apache/royale/svg/MergeFilterElement.as    |  49 +++---
 .../org/apache/royale/svg/OffsetFilterElement.as   |   4 +-
 .../org/apache/royale/svg/SpreadFilterElement.as   |   4 +-
 ...InvertFilterElement.as => SuperimposeFilter.as} |  50 +++---
 .../src/main/royale/org/apache/royale/mdl/Menu.as  |   8 +
 23 files changed, 606 insertions(+), 296 deletions(-)
 create mode 100644 frameworks/projects/Basic/src/main/royale/org/apache/royale/svg/TransformableCompoundGraphic.as
 create mode 100644 frameworks/projects/Formatters/src/main/royale/org/apache/royale/html/accessories/DateAndTimeFormatter.as
 copy frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/{InvertFilterElement.as => FullAlphaFilterElement.as} (83%)
 copy frameworks/projects/{Icons/src/main/royale/org/apache/royale/icons/FontIcon.as => Graphics/src/main/royale/org/apache/royale/svg/IChainableFilter.as} (64%)
 copy frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/{InvertFilterElement.as => SuperimposeFilter.as} (56%)


[royale-asjs] 09/13: Basic DataGridColumns do not have percentColumnWidth

Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch feature/new_merge
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 8f63c3289aeeca1daf0b805c42022099ec2dc756
Author: Harbs <ha...@in-tools.com>
AuthorDate: Wed Jul 25 11:40:47 2018 +0300

    Basic DataGridColumns do not have percentColumnWidth
---
 .../royale/org/apache/royale/express/beads/layouts/DataGridLayout.as  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/frameworks/projects/Express/src/main/royale/org/apache/royale/express/beads/layouts/DataGridLayout.as b/frameworks/projects/Express/src/main/royale/org/apache/royale/express/beads/layouts/DataGridLayout.as
index 66ab8d9..3d63125 100644
--- a/frameworks/projects/Express/src/main/royale/org/apache/royale/express/beads/layouts/DataGridLayout.as
+++ b/frameworks/projects/Express/src/main/royale/org/apache/royale/express/beads/layouts/DataGridLayout.as
@@ -30,7 +30,7 @@ package org.apache.royale.express.beads.layouts
 	import org.apache.royale.core.layout.EdgeData;
 	import org.apache.royale.events.Event;
 	import org.apache.royale.events.IEventDispatcher;
-	import org.apache.royale.html.supportClasses.DataGridColumn;
+	import org.apache.royale.express.supportClasses.DataGridColumn;
 	import org.apache.royale.geom.Rectangle;
 	import org.apache.royale.html.beads.IDataGridView;
 	import org.apache.royale.html.beads.IDrawingLayerBead;
@@ -118,7 +118,7 @@ package org.apache.royale.express.beads.layouts
 		 * @royaleignorecoercion org.apache.royale.core.ILayoutChild
 		 * @royaleignorecoercion org.apache.royale.html.beads.IDataGridView
 		 * @royaleignorecoercion org.apache.royale.core.IDataGridModel
-		 * @royaleignorecoercion org.apache.royale.html.supportClasses.DataGridColumn
+		 * @royaleemitcoercion org.apache.royale.html.supportClasses.DataGridColumn
 		 * @royaleignorecoercion org.apache.royale.html.beads.models.ButtonBarModel
 		 * @royaleignorecoercion org.apache.royale.html.beads.IDrawingLayerBead
 		 */


[royale-asjs] 12/13: Add toggle menu method to mdl menu

Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch feature/new_merge
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit eea90e2f8130c7c9c79e5a7dd8e6425bbe65584b
Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
AuthorDate: Tue Aug 7 13:59:50 2018 +0300

    Add toggle menu method to mdl menu
---
 .../src/main/royale/org/apache/royale/mdl/Menu.as                 | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/Menu.as b/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/Menu.as
index 4c9bbd1..02f929b 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/Menu.as
+++ b/frameworks/projects/MaterialDesignLite/src/main/royale/org/apache/royale/mdl/Menu.as
@@ -229,5 +229,13 @@ package org.apache.royale.mdl
         {
             return _classList.compute() + super.computeFinalClassNames();
         }
+		
+		public function toggle():void
+		{
+			COMPILE::JS
+			{
+				element["MaterialMenu"]["toggle"]();
+			}
+		}
     }
 }


[royale-asjs] 13/13: Add a wrapper bead the date formatter to add hours

Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch feature/new_merge
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 1f10ebd551fbae6760991929ed7a45c752af7f3d
Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
AuthorDate: Thu Aug 23 09:28:21 2018 +0300

    Add a wrapper bead the date formatter to add hours
---
 .../src/main/resources/basic-manifest.xml          |   1 +
 .../html/accessories/DateAndTimeFormatter.as       | 175 +++++++++++++++++++++
 2 files changed, 176 insertions(+)

diff --git a/frameworks/projects/Formatters/src/main/resources/basic-manifest.xml b/frameworks/projects/Formatters/src/main/resources/basic-manifest.xml
index ce9d2d4..05bc912 100644
--- a/frameworks/projects/Formatters/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/Formatters/src/main/resources/basic-manifest.xml
@@ -26,4 +26,5 @@
     <component id="DateFormatYYYYMMDD" class="org.apache.royale.html.accessories.DateFormatYYYYMMDD"/>
     <component id="NumberFormatter" class="org.apache.royale.html.accessories.NumberFormatter"/>
     <component id="CurrencyFormatter" class="org.apache.royale.html.accessories.CurrencyFormatter"/>
+    <component id="DateAndTimeFormatter" class="org.apache.royale.html.accessories.DateAndTimeFormatter"/>
 </componentPackage>
diff --git a/frameworks/projects/Formatters/src/main/royale/org/apache/royale/html/accessories/DateAndTimeFormatter.as b/frameworks/projects/Formatters/src/main/royale/org/apache/royale/html/accessories/DateAndTimeFormatter.as
new file mode 100644
index 0000000..0b3c09d
--- /dev/null
+++ b/frameworks/projects/Formatters/src/main/royale/org/apache/royale/html/accessories/DateAndTimeFormatter.as
@@ -0,0 +1,175 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.accessories
+{
+	import org.apache.royale.core.IBead;
+	import org.apache.royale.core.IBeadModel;
+	import org.apache.royale.core.Strand;
+	import org.apache.royale.core.IDateChooserModel;
+	import org.apache.royale.core.IFormatBead;
+	import org.apache.royale.core.IStrand;
+	import org.apache.royale.core.IStrandWithModel;
+	import org.apache.royale.events.Event;
+	import org.apache.royale.events.IEventDispatcher;
+	
+	/**
+	 * The DateFormatter class wraps an IFormatBead and adds an hour.
+	 *  
+	 *  @royaleignoreimport org.apache.royale.core.IStrandWithModel
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.9.3
+	 */
+	public class DateAndTimeFormatter extends Strand implements IFormatBead
+	{
+
+		private var _formattedResult:String;
+		private var _originalFormatter:IFormatBead;
+		private var _model:IDateChooserModel;
+		private var _strand:IStrand;
+		/**
+		 *  The name of the property on the model holding the value to be formatted.
+		 *  The default is selectedDate.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.9.3
+		 */
+		public function get propertyName():String
+		{
+			return _originalFormatter.propertyName;
+		}
+
+		public function set propertyName(value:String):void
+		{
+			_originalFormatter.propertyName = value;
+		}
+		
+		/**
+		 *  The name of the event dispatched when the property changes. The
+		 *  default is selectedDateChanged.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.9.3
+		 */
+		public function get eventName():String
+		{
+			return _originalFormatter.eventName;
+		}
+
+		public function set eventName(value:String):void
+		{
+			_originalFormatter.eventName = value;
+		}
+
+		/**
+		 *  The formatted result.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.9.3
+		 */
+		public function get formattedString():String
+		{
+			return _formattedResult;
+		}
+		
+		
+		/**
+		 *  @copy org.apache.royale.core.IBead#strand
+		 *  
+		 *  @royaleignorecoercion org.apache.royale.core.IStrandWithModel
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.9.3
+		 */
+		public function set strand(value:IStrand):void
+		{
+			_strand = value;
+			_model = IStrandWithModel(_strand).model as IDateChooserModel;
+			if (_originalFormatter)
+			{
+				addBead(_originalFormatter);
+			} else
+			{
+				_originalFormatter = getBeadByType(IFormatBead) as IFormatBead;
+			}
+			IEventDispatcher(_originalFormatter).addEventListener('formatChanged', formatChangedHandler);
+		}
+		
+		/**
+		 *  @copy org.apache.royale.core.UIBase#model
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.9.3
+		 */
+		override public function get model():IBeadModel
+		{
+			return _model;
+		}
+
+		override public function addBead(bead:IBead):void
+		{
+			if (model)
+			{
+				super.addBead(bead);
+			} else
+			{
+				_originalFormatter = bead as IFormatBead;
+			}
+		}
+
+		private function formatChangedHandler(event:Event):void
+		{
+			var dateResult:String = _originalFormatter.formattedString;
+			var selectedDate:Date = _model.selectedDate;
+			_formattedResult = getFormattedResult(selectedDate);
+			dispatchEvent(new Event('formatChanged'));
+		}
+
+		protected function getFormattedResult(date:Date):String
+		{
+			var formattedHour:String = getFormattedHour(date);
+			return _originalFormatter.formattedString + " " + formattedHour;
+		}
+		
+		private function getNumberAsPaddedString(value:Number):String
+		{
+			return (value < 10 ? "0" : "") + value;
+		}
+
+		protected function getFormattedHour(date:Date):String
+		{
+			var hours:String = getNumberAsPaddedString(date.getHours());
+			var minutes:String = getNumberAsPaddedString(date.getMinutes());
+			var seconds:String = getNumberAsPaddedString(date.getSeconds());
+			return hours + ":" + minutes + ":" + seconds;
+		}
+	}
+}


[royale-asjs] 04/13: Filter elements are now children of filter bead instead of beads.

Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch feature/new_merge
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 11971b24e0933af95d113db062b54675fd4ac523
Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
AuthorDate: Sun Jul 15 10:44:59 2018 +0300

    Filter elements are now children of filter bead instead of beads.
---
 .../org/apache/royale/svg/BlendFilterElement.as    | 14 +++++++------
 .../org/apache/royale/svg/BlurFilterElement.as     | 10 ++++++----
 .../apache/royale/svg/ColorMatrixFilterElement.as  | 12 ++++++-----
 .../apache/royale/svg/CompositeFilterElement.as    | 12 ++++++-----
 .../main/royale/org/apache/royale/svg/Filter.as    | 23 +++++++++++++++++-----
 .../royale/org/apache/royale/svg/FilterElement.as  | 16 ++++++++-------
 .../org/apache/royale/svg/InvertFilterElement.as   | 16 ++++++++-------
 .../org/apache/royale/svg/OffsetFilterElement.as   | 12 ++++++-----
 .../org/apache/royale/svg/SpreadFilterElement.as   | 14 +++++++------
 9 files changed, 79 insertions(+), 50 deletions(-)

diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as
index ecbac1d..6c4eac3 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as
@@ -49,13 +49,15 @@ package org.apache.royale.svg
 		/**
 		 * @royaleignorecoercion Element
 		 */
-		COMPILE::JS 
-		override protected function build():void
+		override public function build():void
 		{
-			super.build();
-			filterElement.setAttribute("in", in);
-			filterElement.setAttribute("in2", in2);
-			filterElement.setAttribute("mode", "normal");
+			COMPILE::JS 
+			{
+				super.build();
+				filterElement.setAttribute("in", in);
+				filterElement.setAttribute("in2", in2);
+				filterElement.setAttribute("mode", "normal");
+			}
 		}
 
 		/**
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlurFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlurFilterElement.as
index fdfe358..e4ba5b6 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlurFilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlurFilterElement.as
@@ -45,11 +45,13 @@ package org.apache.royale.svg
 		/**
 		 * @royaleignorecoercion Element
 		 */
-		COMPILE::JS 
-		override protected function build():void
+		override public function build():void
 		{
-			super.build();
-			filterElement.setAttribute("stdDeviation", stdDeviation);
+			COMPILE::JS 
+			{
+				super.build();
+				filterElement.setAttribute("stdDeviation", stdDeviation);
+			}
 		}
 
 		/**
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/ColorMatrixFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/ColorMatrixFilterElement.as
index 89b460b..8e3a1f1 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/ColorMatrixFilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/ColorMatrixFilterElement.as
@@ -49,12 +49,14 @@ package org.apache.royale.svg
 		/**
 		 * @royaleignorecoercion Element
 		 */
-		COMPILE::JS 
-		override protected function build():void
+		override public function build():void
 		{
-			super.build();
-			var matrixValues:String = "0 0 0 0 " + red + " 0 0 0 0 " + green + " 0 0 0 0 " + blue + " 0 0 0 " + opacity + " 0";
-			filterElement.setAttribute("values", matrixValues);
+			COMPILE::JS 
+			{
+				super.build();
+				var matrixValues:String = "0 0 0 0 " + red + " 0 0 0 0 " + green + " 0 0 0 0 " + blue + " 0 0 0 " + opacity + " 0";
+				filterElement.setAttribute("values", matrixValues);
+			}
 		}
 
 		/**
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as
index fa84244..a01ce4b 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as
@@ -46,12 +46,14 @@ package org.apache.royale.svg
 		/**
 		 * @royaleignorecoercion Element
 		 */
-		COMPILE::JS 
-		override protected function build():void
+		override public function build():void
 		{
-			super.build();
-			filterElement.setAttribute("in2", in2);
-			filterElement.setAttribute("operator", operator);
+			COMPILE::JS 
+			{
+				super.build();
+				filterElement.setAttribute("in2", in2);
+				filterElement.setAttribute("operator", operator);
+			}
 		}
 
 		public function get in2():String 
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/Filter.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/Filter.as
index e58bc70..ffc17f1 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/Filter.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/Filter.as
@@ -19,16 +19,17 @@
 package org.apache.royale.svg
 {
 	
-	import org.apache.royale.core.IBead;
-	import org.apache.royale.core.IRenderedObject;
-	import org.apache.royale.core.IStrand;
-
 	COMPILE::JS
 	{
 		import org.apache.royale.utils.UIDUtil;
 		import org.apache.royale.graphics.utils.addSvgElementToElement;
 		import org.apache.royale.events.IEventDispatcher;
 	}
+	import org.apache.royale.core.IBead;
+	import org.apache.royale.core.IRenderedObject;
+	import org.apache.royale.core.IStrand;
+	[DefaultProperty("children")]
+
 	/**
 	 *  The Filter bead allows you to filter an SVG element. Filter elements should be added to the strand to achieve the desired effect.
 	 *  
@@ -42,6 +43,7 @@ package org.apache.royale.svg
 		private var _strand:IStrand;
 		private var _width:String = "200%";
 		private var _height:String = "200%";
+		private var _children:Array;
 //		private var floodColor:uint;
 		COMPILE::JS 
 		{
@@ -112,7 +114,8 @@ package org.apache.royale.svg
 			for (var i:int = 0; i < children.length; i++)
 			{
 				var filterElement:FilterElement = children[i] as FilterElement;
-				filterElement.buildOn(filterElementWrapper);
+				filterElement.filterElementWrapper = filterElementWrapper;
+				filterElement.build();
 			}
 		}
 		
@@ -154,6 +157,16 @@ package org.apache.royale.svg
 		{
 			return _filterElementWrapper;
 		}
+
+		public function get children():Array 
+		{
+			return _children;
+		}
+		
+		public function set children(value:Array):void 
+		{
+			_children = value;
+		}
 	}
 }
 
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/FilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/FilterElement.as
index 6afb656..0e7e1fd 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/FilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/FilterElement.as
@@ -53,13 +53,15 @@ package org.apache.royale.svg
 		/**
 		 * @royaleignorecoercion Element
 		 */
-		COMPILE::JS 
-		protected function build():void
+		public function build():void
 		{
-			_filterElement = addSvgElementToElement(filterElementWrapper, filterElementType) as Element;
-			if (result)
+			COMPILE::JS 
 			{
-				filterElement.setAttribute("result", result);
+				_filterElement = addSvgElementToElement(filterElementWrapper, filterElementType) as Element;
+				if (result)
+				{
+					filterElement.setAttribute("result", result);
+				}
 			}
 		}
 		
@@ -100,7 +102,7 @@ package org.apache.royale.svg
 		/**
 		 * @royaleignorecoercion Element
 		 */
-		COMPIE::JS
+		COMPILE::JS
 		public function get filterElementWrapper():Element 
 		{
 			return _filterElementWrapper;
@@ -109,7 +111,7 @@ package org.apache.royale.svg
 		/**
 		 * @royaleignorecoercion Element
 		 */
-		COMPIE::JS
+		COMPILE::JS
 		public function set filterElementWrapper(value:Element):void 
 		{
 			_filterElementWrapper = value;
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/InvertFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/InvertFilterElement.as
index 3ba808a..7d0958a 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/InvertFilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/InvertFilterElement.as
@@ -45,14 +45,16 @@ package org.apache.royale.svg
 		/*
 		* @royaleignorecoercion Element
 		*/
-		COMPILE::JS 
-		override protected function build():void
+		override public function build():void
 		{
-			super.build();
-			filterElement.setAttribute("in", "SourceAlpha");
-			var funcA:Element = addSvgElementToElement(filterElement, "feFuncA") as Element;
-			funcA.setAttribute("type", "table");
-			funcA.setAttribute("tableValues", "1 0");
+			COMPILE::JS 
+			{
+				super.build();
+				filterElement.setAttribute("in", "SourceAlpha");
+				var funcA:Element = addSvgElementToElement(filterElement, "feFuncA") as Element;
+				funcA.setAttribute("type", "table");
+				funcA.setAttribute("tableValues", "1 0");
+			}
 		}
 			
 		COMPILE::JS
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/OffsetFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/OffsetFilterElement.as
index 1ace625..6d76227 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/OffsetFilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/OffsetFilterElement.as
@@ -46,12 +46,14 @@ package org.apache.royale.svg
 		/**
 		 * @royaleignorecoercion Element
 		 */
-		COMPILE::JS 
-		override protected function build():void
+		override public function build():void
 		{
-			super.build();
-			filterElement.setAttribute("dx", dx);
-			filterElement.setAttribute("dy", dy);
+			COMPILE::JS 
+			{
+				super.build();
+				filterElement.setAttribute("dx", dx);
+				filterElement.setAttribute("dy", dy);
+			}
 		}
 
 		/**
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/SpreadFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/SpreadFilterElement.as
index 44786ec..57453e3 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/SpreadFilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/SpreadFilterElement.as
@@ -45,13 +45,15 @@ package org.apache.royale.svg
 		/**
 		 * @royaleignorecoercion Element
 		 */
-		COMPILE::JS 
-		override protected function build():void
+		override public function build():void
 		{
-			super.build();
-			var funcA:Element = addSvgElementToElement(filterElement, "feFuncA") as Element;
-			funcA.setAttribute("type", "linear");
-			funcA.setAttribute("slope", spread);
+			COMPILE::JS 
+			{
+				super.build();
+				var funcA:Element = addSvgElementToElement(filterElement, "feFuncA") as Element;
+				funcA.setAttribute("type", "linear");
+				funcA.setAttribute("slope", spread);
+			}
 		}
 
 		/**


[royale-asjs] 10/13: Added merge, and more

Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch feature/new_merge
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 926ebd7dbc2607aa15533bd8c02bf2ea170182dc
Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
AuthorDate: Mon Jul 30 13:29:18 2018 +0300

    Added merge, and more
---
 .../Graphics/src/main/resources/svg-manifest.xml   |  1 +
 .../org/apache/royale/svg/BlendFilterElement.as    | 12 -----
 .../apache/royale/svg/CompositeFilterElement.as    |  1 +
 .../org/apache/royale/svg/DropShadowFilter.as      | 54 ++++++++++++++++++----
 .../royale/org/apache/royale/svg/FilterElement.as  | 15 ++++++
 ...eFilterElement.as => FullAlphaFilterElement.as} | 48 ++++++-------------
 ...ositeFilterElement.as => MergeFilterElement.as} | 45 ++++++++----------
 .../org/apache/royale/svg/SuperimposeFilter.as     |  8 +++-
 8 files changed, 104 insertions(+), 80 deletions(-)

diff --git a/frameworks/projects/Graphics/src/main/resources/svg-manifest.xml b/frameworks/projects/Graphics/src/main/resources/svg-manifest.xml
index b453bca..72aa7a5 100644
--- a/frameworks/projects/Graphics/src/main/resources/svg-manifest.xml
+++ b/frameworks/projects/Graphics/src/main/resources/svg-manifest.xml
@@ -29,6 +29,7 @@
 	<component id="SpreadFilterElement" class="org.apache.royale.svg.SpreadFilterElement" />
 	<component id="BlurFilterElement" class="org.apache.royale.svg.BlurFilterElement" />
 	<component id="InvertFilterElement" class="org.apache.royale.svg.InvertFilterElement" />
+	<component id="FullAlphaFilterElement" class="org.apache.royale.svg.FullAlphaFilterElement" />
 	<component id="CompositeFilterElement" class="org.apache.royale.svg.CompositeFilterElement" />
 	<component id="BlendFilterElement" class="org.apache.royale.svg.BlendFilterElement" />
 	<component id="MaskBead" class="org.apache.royale.svg.MaskBead" />
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as
index 6c4eac3..b658352 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as
@@ -40,7 +40,6 @@ package org.apache.royale.svg
 	{
 		private var _strand:IStrand;
 		private var _in2:String;
-		private var _in:String;
 
 		public function BlendFilterElement()
 		{
@@ -54,7 +53,6 @@ package org.apache.royale.svg
 			COMPILE::JS 
 			{
 				super.build();
-				filterElement.setAttribute("in", in);
 				filterElement.setAttribute("in2", in2);
 				filterElement.setAttribute("mode", "normal");
 			}
@@ -78,16 +76,6 @@ package org.apache.royale.svg
 			_in2 = value;
 		}
 
-		public function get in():String 
-		{
-			return _in;
-		}
-		
-		public function set in(value:String):void 
-		{
-			_in = value;
-		}
-
 		COMPILE::JS
 		override protected function get filterElementType():String
 		{
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as
index a01ce4b..dba53ca 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as
@@ -81,6 +81,7 @@ package org.apache.royale.svg
 		{
 			return "feComposite";
 		}
+
 	}
 }
 
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
index 02cdce9..c89859b 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
@@ -45,6 +45,7 @@ package org.apache.royale.svg
 		private var _opacity:Number = 1;
 		private var _spread:Number = 1;
 		private var _inset:Boolean;
+		private var _knockout:Boolean;
 		private var _source:String;
 		private var _result:String;
 
@@ -55,21 +56,47 @@ package org.apache.royale.svg
 		public function build():void
 		{
 			children = [];
+			var knockoutResult:String;
+			if (!inset && knockout)
+			{
+				knockoutResult = "knockout_res1";
+//				var fullAlpha:ColorMatrixFilterElement = new ColorMatrixFilterElement();
+//				fullAlpha.opacity = 1000000;
+//				fullAlpha.result = knockoutResult;
+//				fullAlpha.in = "SourceAlpha";
+//				children.push(fullAlpha);
+			}
 			if (inset)
 			{
 				var insetFilterElement:FilterElement = new InvertFilterElement();
 				children.push(insetFilterElement);
 			}
+			var offset:OffsetFilterElement;
 			if (!isNaN(dx) && !isNaN(dy) && (dx !=0 || dy !=0))
 			{
-				var offset:OffsetFilterElement = new OffsetFilterElement();
+				offset = new OffsetFilterElement();
 				children.push(offset);
 				offset.dx = dx;
 				offset.dy = dy;
+				if (knockoutResult)
+				{
+					offset.in = source ? source : "SourceGraphic";
+				}
 			}
 			var blur:BlurFilterElement = new BlurFilterElement();
 			children.push(blur);
 			blur.stdDeviation = stdDeviation;
+			if (!offset)
+			{
+				blur.in = source ? source : "SourceGraphic";
+			}
+			if (!inset && knockout)
+			{
+				var outsetComposite:CompositeFilterElement = new CompositeFilterElement();
+				children.push(outsetComposite);
+				outsetComposite.in2 = knockoutResult;
+				outsetComposite.operator = "out";
+			}
 			var colorMatrix:ColorMatrixFilterElement = new ColorMatrixFilterElement();
 			children.push(colorMatrix);
 			colorMatrix.red = red;
@@ -80,7 +107,7 @@ package org.apache.royale.svg
 			children.push(spreadElement);
 			if (!inset)
 			{
-				spreadElement.result = "spreadResult";
+				spreadElement.result = result ? result : "spreadResult";
 			}
 			spreadElement.spread = spread;
 			if (inset)
@@ -89,15 +116,14 @@ package org.apache.royale.svg
 				children.push(composite);
 				composite.in2 = "SourceAlpha";
 				composite.operator = "in";
-				composite.result = "compositeResult";
+				composite.result = result ? result : "compositeResult";
 			}
-			var blend:BlendFilterElement = new BlendFilterElement();
-			children.push(blend);
-			blend.in = inset ? "compositeResult" : source ? source : "SourceGraphic";
-			blend.in2 = inset && !source ? "SourceGraphic" : inset && source ? source : "spreadResult";
-			if (result)
+			if (!result)
 			{
-				blend.result = result;
+				var blend:BlendFilterElement = new BlendFilterElement();
+				children.push(blend);
+				blend.in = inset ? "compositeResult" : source ? source : "SourceGraphic";
+				blend.in2 = inset && !source ? "SourceGraphic" : inset && source ? source : "spreadResult";
 			}
 		}
 
@@ -299,6 +325,16 @@ package org.apache.royale.svg
 		{
 			_result = value;
 		}
+
+		public function get knockout():Boolean 
+		{
+			return _knockout;
+		}
+		
+		public function set knockout(value:Boolean):void 
+		{
+			_knockout = value;
+		}
 	}
 }
 
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/FilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/FilterElement.as
index 0e7e1fd..f063f02 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/FilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/FilterElement.as
@@ -45,6 +45,7 @@ package org.apache.royale.svg
 			private var _filterElement:Element;
 		}
 		private var _result:String;
+		private var _in:String;
 
 		public function FilterElement()
 		{
@@ -62,6 +63,10 @@ package org.apache.royale.svg
 				{
 					filterElement.setAttribute("result", result);
 				}
+				if (_in)
+				{
+					filterElement.setAttribute("in", _in);
+				}
 			}
 		}
 		
@@ -116,6 +121,16 @@ package org.apache.royale.svg
 		{
 			_filterElementWrapper = value;
 		}
+
+		public function get in():String 
+		{
+			return _in;
+		}
+		
+		public function set in(value:String):void 
+		{
+			_in = value;
+		}
 	}
 }
 
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/FullAlphaFilterElement.as
similarity index 67%
copy from frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as
copy to frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/FullAlphaFilterElement.as
index a01ce4b..8b30982 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/FullAlphaFilterElement.as
@@ -19,6 +19,8 @@
 package org.apache.royale.svg
 {
 	
+	import org.apache.royale.core.IBead;
+	import org.apache.royale.events.IEventDispatcher;
 	import org.apache.royale.events.Event;
 	COMPILE::JS 
 	{
@@ -26,61 +28,41 @@ package org.apache.royale.svg
 	}
 
 	/**
-	 *  The CompositeFilterElement takes two objects and applies Porter/Duff operators
+	 *  The FullAlphaFilterElement 
 	 *  
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.3
 	 */
-	public class CompositeFilterElement extends FilterElement
+	public class FullAlphaFilterElement extends FilterElement
 	{
-		private var _in2:String;
-		private var _operator:String;
+		
 
-		public function CompositeFilterElement()
+		public function FullAlphaFilterElement()
 		{
 		}
 		
-		
-		/**
-		 * @royaleignorecoercion Element
-		 */
+		/*
+		* @royaleignorecoercion Element
+		*/
 		override public function build():void
 		{
 			COMPILE::JS 
 			{
 				super.build();
-				filterElement.setAttribute("in2", in2);
-				filterElement.setAttribute("operator", operator);
+				var funcA:Element = addSvgElementToElement(filterElement, "feFuncA") as Element;
+				funcA.setAttribute("type", "table");
+				funcA.setAttribute("tableValues", "1");
 			}
 		}
-
-		public function get in2():String 
-		{
-			return _in2;
-		}
-		
-		public function set in2(value:String):void 
-		{
-			_in2 = value;
-		}
-
-		public function get operator():String 
-		{
-			return _operator;
-		}
-		
-		public function set operator(value:String):void 
-		{
-			_operator = value;
-		}
-
+			
 		COMPILE::JS
 		override protected function get filterElementType():String
 		{
-			return "feComposite";
+			return "feComponentTransfer";
 		}
+
 	}
 }
 
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/MergeFilterElement.as
similarity index 68%
copy from frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as
copy to frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/MergeFilterElement.as
index a01ce4b..fcc033f 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/MergeFilterElement.as
@@ -19,6 +19,9 @@
 package org.apache.royale.svg
 {
 	
+	import org.apache.royale.core.IBead;
+	import org.apache.royale.core.IStrand;
+	import org.apache.royale.events.IEventDispatcher;
 	import org.apache.royale.events.Event;
 	COMPILE::JS 
 	{
@@ -26,23 +29,22 @@ package org.apache.royale.svg
 	}
 
 	/**
-	 *  The CompositeFilterElement takes two objects and applies Porter/Duff operators
+	 *  The MergeFilterElement merges several filter elements
 	 *  
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.3
 	 */
-	public class CompositeFilterElement extends FilterElement
+	public class MergeFilterElement extends FilterElement
 	{
-		private var _in2:String;
-		private var _operator:String;
+		private var _strand:IStrand;
+		private var _results:Array;
 
-		public function CompositeFilterElement()
+		public function MergeFilterElement()
 		{
 		}
 		
-		
 		/**
 		 * @royaleignorecoercion Element
 		 */
@@ -51,35 +53,28 @@ package org.apache.royale.svg
 			COMPILE::JS 
 			{
 				super.build();
-				filterElement.setAttribute("in2", in2);
-				filterElement.setAttribute("operator", operator);
+				for (var i:int = 0; i < results.length; i++)
+				{
+					var mergeNode:Element = addSvgElementToElement(filterElement, "feMergeNode") as Element;
+					mergeNode.setAttribute("in", results[i] as String);
+				}
 			}
 		}
 
-		public function get in2():String 
-		{
-			return _in2;
-		}
-		
-		public function set in2(value:String):void 
+		COMPILE::JS
+		override protected function get filterElementType():String
 		{
-			_in2 = value;
+			return "feMerge";
 		}
 
-		public function get operator():String 
+		public function get results():Array 
 		{
-			return _operator;
+			return _results;
 		}
 		
-		public function set operator(value:String):void 
-		{
-			_operator = value;
-		}
-
-		COMPILE::JS
-		override protected function get filterElementType():String
+		public function set results(value:Array):void 
 		{
-			return "feComposite";
+			_results = value;
 		}
 	}
 }
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/SuperimposeFilter.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/SuperimposeFilter.as
index ecabf26..9c8358a 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/SuperimposeFilter.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/SuperimposeFilter.as
@@ -37,10 +37,13 @@ package org.apache.royale.svg
 		override protected function filter():void
 		{
 			var newChildren:Array = [];
+			var results:Array = ["SourceGraphic"];
 			for (var i:int = 0; i < children.length; i++)
 			{
 				var chainable:IChainableFilter = children[i] as IChainableFilter;
-				chainable.result = "chainableResult" + i;
+				var resultName:String = "chainableResult" + i;
+				chainable.result = resultName;
+				results.push(resultName);
 				if (i != 0)
 				{
 					chainable.source = "chainableResult" + (i - 1);
@@ -48,6 +51,9 @@ package org.apache.royale.svg
 				chainable.build();
 				addArray(newChildren, chainable.children);
 			}
+			var merge:MergeFilterElement = new MergeFilterElement();
+			merge.results = results;
+			newChildren.push(merge);
 			children = newChildren;
 			super.filter();
 		}


[royale-asjs] 01/13: Make color values consistent with opacity, a decimal between 0 and 1.

Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch feature/new_merge
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 2369b329be433566f1adb73aad71a1ac487d3477
Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
AuthorDate: Tue Jul 10 13:45:32 2018 +0300

    Make color values consistent with opacity, a decimal between 0 and 1.
---
 .../royale/org/apache/royale/svg/ColorMatrixFilterElement.as   | 10 +++++-----
 .../src/main/royale/org/apache/royale/svg/DropShadowFilter.as  |  8 ++++----
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/ColorMatrixFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/ColorMatrixFilterElement.as
index 5e38562..924edb7 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/ColorMatrixFilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/ColorMatrixFilterElement.as
@@ -54,13 +54,13 @@ package org.apache.royale.svg
 			super.onInitComplete(e);
 			COMPILE::JS 
 			{
-				var matrixValues:String = "0 0 0 0 " + red / 255 + " 0 0 0 0 " + green  / 255 + " 0 0 0 0 " + blue / 255 + " 0 0 0 " + opacity + " 0";
+				var matrixValues:String = "0 0 0 0 " + red + " 0 0 0 0 " + green + " 0 0 0 0 " + blue + " 0 0 0 " + opacity + " 0";
 				filterElement.setAttribute("values", matrixValues);
 			}
 		}
 
 		/**
-		 *  The red value
+		 *  The red value. This should be a number between 0 and 1.
 		 *
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
@@ -78,7 +78,7 @@ package org.apache.royale.svg
 		}
 
 		/**
-		 *  The blue value
+		 *  The blue value. This should be a number between 0 and 1.
 		 *
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
@@ -96,7 +96,7 @@ package org.apache.royale.svg
 		}
 
 		/**
-		 *  The green value
+		 *  The green value. This should be a number between 0 and 1.
 		 *
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
@@ -114,7 +114,7 @@ package org.apache.royale.svg
 		}
 
 		/**
-		 *  The opacity value
+		 *  The opacity value. This should be a number between 0 and 1.
 		 *
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
index aa3f06a..f974de4 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
@@ -192,7 +192,7 @@ package org.apache.royale.svg
 		}
 
 		/**
-		 *  The red component of the drop shadow
+		 *  The red component of the drop shadow. This should be a number between 0 and 1.
 		 *
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
@@ -210,7 +210,7 @@ package org.apache.royale.svg
 		}
 
 		/**
-		 *  The green component of the drop shadow
+		 *  The green component of the drop shadow. This should be a number between 0 and 1.
 		 *
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
@@ -228,7 +228,7 @@ package org.apache.royale.svg
 		}
 
 		/**
-		 *  The blue component of the drop shadow
+		 *  The blue component of the drop shadow. This should be a number between 0 and 1.
 		 *
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
@@ -246,7 +246,7 @@ package org.apache.royale.svg
 		}
 
 		/**
-		 *  The opacity component of the drop shadow
+		 *  The opacity component of the drop shadow. This should be a number between 0 and 1.
 		 *
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2


[royale-asjs] 03/13: Filter elements should not be treated as beads as they are not unique.

Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch feature/new_merge
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 73627be4bb94633585656d83f1963acf027e2ead
Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
AuthorDate: Wed Jul 11 16:11:04 2018 +0300

    Filter elements should not be treated as beads as they are not
    unique.
---
 .../Graphics/src/main/resources/defaults.css       |  8 ---
 .../org/apache/royale/svg/BlendFilterElement.as    | 37 ++++------
 .../org/apache/royale/svg/BlurFilterElement.as     | 10 ++-
 .../apache/royale/svg/ColorMatrixFilterElement.as  | 12 ++--
 .../apache/royale/svg/CompositeFilterElement.as    | 12 ++--
 .../main/royale/org/apache/royale/svg/Filter.as    | 16 ++---
 .../royale/org/apache/royale/svg/FilterElement.as  | 65 ++++++++---------
 .../org/apache/royale/svg/InvertFilterElement.as   | 16 ++---
 .../org/apache/royale/svg/MergeFilterElement.as    | 84 ----------------------
 .../org/apache/royale/svg/OffsetFilterElement.as   | 12 ++--
 .../org/apache/royale/svg/SpreadFilterElement.as   | 14 ++--
 11 files changed, 78 insertions(+), 208 deletions(-)

diff --git a/frameworks/projects/Graphics/src/main/resources/defaults.css b/frameworks/projects/Graphics/src/main/resources/defaults.css
index 99d45ee..6bc0b1b 100644
--- a/frameworks/projects/Graphics/src/main/resources/defaults.css
+++ b/frameworks/projects/Graphics/src/main/resources/defaults.css
@@ -38,12 +38,4 @@ svg|BinaryImage
 svg|DropShadowFilter
 {
 	Filter: ClassReference("org.apache.royale.svg.Filter");
-	BlendFilterElement: ClassReference("org.apache.royale.svg.BlendFilterElement");
-	OffsetFilterElement: ClassReference("org.apache.royale.svg.OffsetFilterElement");
-	ColorMatrixFilterElement: ClassReference("org.apache.royale.svg.ColorMatrixFilterElement");
-	BlurFilterElement: ClassReference("org.apache.royale.svg.BlurFilterElement");
-	BlendFilterElement: ClassReference("org.apache.royale.svg.BlendFilterElement");
-	SpreadFilterElement: ClassReference("org.apache.royale.svg.SpreadFilterElement");
-	CompositeFilterElement: ClassReference("org.apache.royale.svg.CompositeFilterElement");
-	InvertFilterElement: ClassReference("org.apache.royale.svg.InvertFilterElement");
 }
\ No newline at end of file
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as
index bca53eb..ecbac1d 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlendFilterElement.as
@@ -36,7 +36,7 @@ package org.apache.royale.svg
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.3
 	 */
-	public class BlendFilterElement implements IBead
+	public class BlendFilterElement extends FilterElement
 	{
 		private var _strand:IStrand;
 		private var _in2:String;
@@ -47,32 +47,15 @@ package org.apache.royale.svg
 		}
 		
 		/**
-		 *  @copy org.apache.royale.core.IBead#strand
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.3
-		 */		
-		public function set strand(value:IStrand):void
-		{
-			_strand = value;
-			(_strand as IEventDispatcher).addEventListener('beadsAdded', onInitComplete);
-		}
-		
-		/**
 		 * @royaleignorecoercion Element
 		 */
-		protected function onInitComplete(e:Event):void
+		COMPILE::JS 
+		override protected function build():void
 		{
-			COMPILE::JS 
-			{
-				var filter:Element = (_strand.getBeadByType(Filter) as Filter).filterElementWrapper;
-				var blend:Element = addSvgElementToElement(filter, "feBlend") as Element;
-				blend.setAttribute("in", in);
-				blend.setAttribute("in2", in2);
-				blend.setAttribute("mode", "normal");
-			}
+			super.build();
+			filterElement.setAttribute("in", in);
+			filterElement.setAttribute("in2", in2);
+			filterElement.setAttribute("mode", "normal");
 		}
 
 		/**
@@ -102,6 +85,12 @@ package org.apache.royale.svg
 		{
 			_in = value;
 		}
+
+		COMPILE::JS
+		override protected function get filterElementType():String
+		{
+			return "feBlend";
+		}
 	}
 }
 
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlurFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlurFilterElement.as
index 14ba372..fdfe358 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlurFilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/BlurFilterElement.as
@@ -45,13 +45,11 @@ package org.apache.royale.svg
 		/**
 		 * @royaleignorecoercion Element
 		 */
-		override protected function onInitComplete(e:Event):void
+		COMPILE::JS 
+		override protected function build():void
 		{
-			super.onInitComplete(e);
-			COMPILE::JS 
-			{
-				filterElement.setAttribute("stdDeviation", stdDeviation);
-			}
+			super.build();
+			filterElement.setAttribute("stdDeviation", stdDeviation);
 		}
 
 		/**
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/ColorMatrixFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/ColorMatrixFilterElement.as
index 924edb7..89b460b 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/ColorMatrixFilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/ColorMatrixFilterElement.as
@@ -49,14 +49,12 @@ package org.apache.royale.svg
 		/**
 		 * @royaleignorecoercion Element
 		 */
-		override protected function onInitComplete(e:Event):void
+		COMPILE::JS 
+		override protected function build():void
 		{
-			super.onInitComplete(e);
-			COMPILE::JS 
-			{
-				var matrixValues:String = "0 0 0 0 " + red + " 0 0 0 0 " + green + " 0 0 0 0 " + blue + " 0 0 0 " + opacity + " 0";
-				filterElement.setAttribute("values", matrixValues);
-			}
+			super.build();
+			var matrixValues:String = "0 0 0 0 " + red + " 0 0 0 0 " + green + " 0 0 0 0 " + blue + " 0 0 0 " + opacity + " 0";
+			filterElement.setAttribute("values", matrixValues);
 		}
 
 		/**
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as
index 94dd7d1..fa84244 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/CompositeFilterElement.as
@@ -46,14 +46,12 @@ package org.apache.royale.svg
 		/**
 		 * @royaleignorecoercion Element
 		 */
-		override protected function onInitComplete(e:Event):void
+		COMPILE::JS 
+		override protected function build():void
 		{
-			super.onInitComplete(e);
-			COMPILE::JS 
-			{
-				filterElement.setAttribute("in2", in2);
-				filterElement.setAttribute("operator", operator);
-			}
+			super.build();
+			filterElement.setAttribute("in2", in2);
+			filterElement.setAttribute("operator", operator);
 		}
 
 		public function get in2():String 
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/Filter.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/Filter.as
index b349e20..e58bc70 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/Filter.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/Filter.as
@@ -108,20 +108,12 @@ package org.apache.royale.svg
 			filterElementWrapper.setAttribute("width", _width);
 			filterElementWrapper.setAttribute("height", _height);
 			// clean up existing filter
-			if (filterElementWrapper.hasChildNodes())
+			host.element.style["filter"] = "url(#" + filterElementWrapper.id + ")";
+			for (var i:int = 0; i < children.length; i++)
 			{
-				var childNodes:Object = filterElementWrapper.childNodes;
-				for (var i:int = 0; i < childNodes.length; i++)
-				{
-					filterElementWrapper.removeChild(childNodes[i]);
-				}
+				var filterElement:FilterElement = children[i] as FilterElement;
+				filterElement.buildOn(filterElementWrapper);
 			}
-//			var flood:Element = addSvgElementToWrapper(filterElementWrapper, "feFlood") as Element;
-//			flood.setAttribute("flood-color", floodColor);
-//			flood.setAttribute("flood-alpha", floodAlpha);
-			// create blend
-			// apply filter
-			host.element.style["filter"] = "url(#" + filterElementWrapper.id + ")";
 		}
 		
 		COMPILE::JS
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/FilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/FilterElement.as
index b286a2e..6afb656 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/FilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/FilterElement.as
@@ -19,8 +19,6 @@
 package org.apache.royale.svg
 {
 	
-	import org.apache.royale.core.IBead;
-	import org.apache.royale.core.IStrand;
 	import org.apache.royale.events.IEventDispatcher;
 	import org.apache.royale.events.Event;
 	COMPILE::JS 
@@ -36,59 +34,36 @@ package org.apache.royale.svg
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.3
 	 */
-	public class FilterElement implements IBead
+	public class FilterElement
 	{
-		private var _strand:IStrand;
-		private var _result:String;
+		COMPILE::JS 
+		{
+			private var _filterElementWrapper:Element;
+		}
 		COMPILE::JS
 		{
 			private var _filterElement:Element;
 		}
+		private var _result:String;
 
 		public function FilterElement()
 		{
 		}
 		
 		/**
-		 *  @copy org.apache.royale.core.IBead#strand
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.3
-		 */		
-		public function set strand(value:IStrand):void
-		{
-			_strand = value;
-			(_strand as IEventDispatcher).addEventListener('beadsAdded', onInitComplete);
-		}
-		
-		/**
 		 * @royaleignorecoercion Element
 		 */
-		protected function onInitComplete(e:Event):void
+		COMPILE::JS 
+		protected function build():void
 		{
-			COMPILE::JS 
+			_filterElement = addSvgElementToElement(filterElementWrapper, filterElementType) as Element;
+			if (result)
 			{
-				var filter:Element = getFilterElementWrapper();
-				_filterElement = addSvgElementToElement(filter, filterElementType) as Element;
-				if (result)
-				{
-					filterElement.setAttribute("result", result);
-				}
+				filterElement.setAttribute("result", result);
 			}
 		}
 		
 		/**
-		 * @royaleignorecoercion Element
-		 */
-		COMPILE::JS
-		protected function getFilterElementWrapper():Element
-		{
-			return (_strand.getBeadByType(Filter) as Filter).filterElementWrapper;
-		}
-
-		/**
 		 *  Reference to the filter element result. This can later be used as input for a subsequent filter element.
 		 *  
 		 *  @langversion 3.0
@@ -121,6 +96,24 @@ package org.apache.royale.svg
 		{
 			return _filterElement;
 		}
+
+		/**
+		 * @royaleignorecoercion Element
+		 */
+		COMPIE::JS
+		public function get filterElementWrapper():Element 
+		{
+			return _filterElementWrapper;
+		}
+		
+		/**
+		 * @royaleignorecoercion Element
+		 */
+		COMPIE::JS
+		public function set filterElementWrapper(value:Element):void 
+		{
+			_filterElementWrapper = value;
+		}
 	}
 }
 
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/InvertFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/InvertFilterElement.as
index ae37052..3ba808a 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/InvertFilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/InvertFilterElement.as
@@ -45,16 +45,14 @@ package org.apache.royale.svg
 		/*
 		* @royaleignorecoercion Element
 		*/
-		override protected function onInitComplete(e:Event):void
+		COMPILE::JS 
+		override protected function build():void
 		{
-			super.onInitComplete(e);
-			COMPILE::JS 
-			{
-				filterElement.setAttribute("in", "SourceAlpha");
-				var funcA:Element = addSvgElementToElement(filterElement, "feFuncA") as Element;
-				funcA.setAttribute("type", "table");
-				funcA.setAttribute("tableValues", "1 0");
-			}
+			super.build();
+			filterElement.setAttribute("in", "SourceAlpha");
+			var funcA:Element = addSvgElementToElement(filterElement, "feFuncA") as Element;
+			funcA.setAttribute("type", "table");
+			funcA.setAttribute("tableValues", "1 0");
 		}
 			
 		COMPILE::JS
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/MergeFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/MergeFilterElement.as
deleted file mode 100644
index 1be51fa..0000000
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/MergeFilterElement.as
+++ /dev/null
@@ -1,84 +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.svg
-{
-	
-	import org.apache.royale.events.Event;
-	COMPILE::JS 
-	{
-		import org.apache.royale.graphics.utils.addSvgElementToElement;
-	}
-
-	/**
-	 *  The BlendFilterElement filterElements several filter elements
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10.2
-	 *  @playerversion AIR 2.6
-	 *  @productversion Royale 0.9.3
-	 */
-	public class BlendFilterElement extends FilterElement
-	{
-		private var _in2:String;
-
-		public function BlendFilterElement()
-		{
-		}
-		
-		
-		/**
-		 * @royaleignorecoercion Element
-		 */
-		override protected function onInitComplete(e:Event):void
-		{
-			super.onInitComplete(e);
-			COMPILE::JS 
-			{
-				filterElement.setAttribute("in", "SourceGraphic");
-				filterElement.setAttribute("in2", in2);
-				filterElement.setAttribute("mode", "normal");
-			}
-		}
-
-		/**
-		 *  The filter element result which is filterElemented with the source graphic.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.3
-		 */
-		public function get in2():String
-		{
-			return _in2;
-		}
-
-		public function set in2(value:String):void
-		{
-			_in2 = value;
-		}
-
-		COMPILE::JS
-		override protected function get filterElementType():String
-		{
-			return "feBlend";
-		}
-	}
-}
-
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/OffsetFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/OffsetFilterElement.as
index 56ed0bc..1ace625 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/OffsetFilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/OffsetFilterElement.as
@@ -46,14 +46,12 @@ package org.apache.royale.svg
 		/**
 		 * @royaleignorecoercion Element
 		 */
-		override protected function onInitComplete(e:Event):void
+		COMPILE::JS 
+		override protected function build():void
 		{
-			super.onInitComplete(e);
-			COMPILE::JS 
-			{
-				filterElement.setAttribute("dx", dx);
-				filterElement.setAttribute("dy", dy);
-			}
+			super.build();
+			filterElement.setAttribute("dx", dx);
+			filterElement.setAttribute("dy", dy);
 		}
 
 		/**
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/SpreadFilterElement.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/SpreadFilterElement.as
index edc414b..44786ec 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/SpreadFilterElement.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/SpreadFilterElement.as
@@ -45,15 +45,13 @@ package org.apache.royale.svg
 		/**
 		 * @royaleignorecoercion Element
 		 */
-		override protected function onInitComplete(e:Event):void
+		COMPILE::JS 
+		override protected function build():void
 		{
-			super.onInitComplete(e);
-			COMPILE::JS 
-			{
-				var funcA:Element = addSvgElementToElement(filterElement, "feFuncA") as Element;
-				funcA.setAttribute("type", "linear");
-				funcA.setAttribute("slope", spread);
-			}
+			super.build();
+			var funcA:Element = addSvgElementToElement(filterElement, "feFuncA") as Element;
+			funcA.setAttribute("type", "linear");
+			funcA.setAttribute("slope", spread);
 		}
 
 		/**


[royale-asjs] 02/13: Filters are not necessarily drop shadows

Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch feature/new_merge
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit be83e1d010155280eed00edc19fc4225a9c7590a
Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
AuthorDate: Wed Jul 11 14:36:50 2018 +0300

    Filters are not necessarily drop shadows
---
 .../Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as  | 2 +-
 .../projects/Graphics/src/main/royale/org/apache/royale/svg/Filter.as   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
index f974de4..c10bd49 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
@@ -124,7 +124,7 @@ package org.apache.royale.svg
 			{
 				COMPILE::JS
 				{
-				var f:Function = c as Function;
+					var f:Function = c as Function;
 					result = new f() as IBead;
 				}
 				COMPILE::SWF
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/Filter.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/Filter.as
index cf9f6d5..b349e20 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/Filter.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/Filter.as
@@ -104,7 +104,7 @@ package org.apache.royale.svg
 			var svgElement:Node = host.element as Element;
 			var defs:Element = getChildNode(svgElement, "defs") as Element;
 			_filterElementWrapper = getChildNode(defs, "filter") as Element;
-			filterElementWrapper.id = "myDropShadow" + UIDUtil.createUID();
+			filterElementWrapper.id = "myFilter" + UIDUtil.createUID();
 			filterElementWrapper.setAttribute("width", _width);
 			filterElementWrapper.setAttribute("height", _height);
 			// clean up existing filter


[royale-asjs] 06/13: Added SuperimposeFilter

Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch feature/new_merge
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 36e4f4ecb356ddb1881e12d254e338051957e97d
Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
AuthorDate: Sun Jul 15 13:22:01 2018 +0300

    Added SuperimposeFilter
---
 .../Graphics/src/main/resources/svg-manifest.xml   |  1 +
 .../org/apache/royale/svg/DropShadowFilter.as      | 41 ++++++++++--
 .../org/apache/royale/svg/IChainableFilter.as      | 74 ++++++++++++++++++++++
 .../org/apache/royale/svg/SuperimposeFilter.as     | 65 +++++++++++++++++++
 4 files changed, 176 insertions(+), 5 deletions(-)

diff --git a/frameworks/projects/Graphics/src/main/resources/svg-manifest.xml b/frameworks/projects/Graphics/src/main/resources/svg-manifest.xml
index ed49401..b453bca 100644
--- a/frameworks/projects/Graphics/src/main/resources/svg-manifest.xml
+++ b/frameworks/projects/Graphics/src/main/resources/svg-manifest.xml
@@ -34,4 +34,5 @@
 	<component id="MaskBead" class="org.apache.royale.svg.MaskBead" />
 	<component id="DisableClipBead" class="org.apache.royale.svg.DisableClipBead" />
 	<component id="LinearGradient" class="org.apache.royale.svg.LinearGradient" />
+	<component id="SuperimposeFilter" class="org.apache.royale.svg.SuperimposeFilter" />
 </componentPackage>
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
index fe79d37..02cdce9 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
@@ -34,7 +34,7 @@ package org.apache.royale.svg
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.3
 	 */
-	public class DropShadowFilter extends Filter
+	public class DropShadowFilter extends Filter implements IChainableFilter
 	{
 		private var _dx:Number;
 		private var _dy:Number;
@@ -45,13 +45,14 @@ package org.apache.royale.svg
 		private var _opacity:Number = 1;
 		private var _spread:Number = 1;
 		private var _inset:Boolean;
+		private var _source:String;
+		private var _result:String;
 
 		public function DropShadowFilter()
 		{
 		}
 		
-		COMPILE::JS
-		override protected function filter():void
+		public function build():void
 		{
 			children = [];
 			if (inset)
@@ -92,8 +93,18 @@ package org.apache.royale.svg
 			}
 			var blend:BlendFilterElement = new BlendFilterElement();
 			children.push(blend);
-			blend.in = inset ? "compositeResult" : "SourceGraphic";
-			blend.in2 = inset ? "SourceGraphic" : "spreadResult";
+			blend.in = inset ? "compositeResult" : source ? source : "SourceGraphic";
+			blend.in2 = inset && !source ? "SourceGraphic" : inset && source ? source : "spreadResult";
+			if (result)
+			{
+				blend.result = result;
+			}
+		}
+
+		COMPILE::JS
+		override protected function filter():void
+		{
+			build();
 			super.filter();
 		}
 
@@ -268,6 +279,26 @@ package org.apache.royale.svg
 		{
 			_inset = value;
 		}
+
+		public function get source():String 
+		{
+			return _source;
+		}
+		
+		public function set source(value:String):void 
+		{
+			_source = value;
+		}
+
+		public function get result():String 
+		{
+			return _result;
+		}
+		
+		public function set result(value:String):void 
+		{
+			_result = value;
+		}
 	}
 }
 
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/IChainableFilter.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/IChainableFilter.as
new file mode 100644
index 0000000..29f2b56
--- /dev/null
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/IChainableFilter.as
@@ -0,0 +1,74 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.svg
+{
+    /**
+     *  The IChainableFilter interface describes a filter that can be a part of a chain of filters
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.9.3
+     */
+	public interface IChainableFilter
+	{
+        /**
+		 *  This method builds the filter's children.
+         * 
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9.3
+         */
+		function build():void
+			
+			
+        /**
+		 *  This method returns the elements representing the filter primitives.
+         * 
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9.3
+         */
+		function get children():Array
+			
+		
+        /**
+		 *  This method sets the result of this filter to be used in a subsequent chain element.
+         * 
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9.3
+         */
+		function set result(value:String):void
+			
+		/**
+		 *  This method sets the source of this filter which can be a result from a previous chain element.
+         * 
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9.3
+         */
+		function set source(value:String):void
+
+	}
+}
\ No newline at end of file
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/SuperimposeFilter.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/SuperimposeFilter.as
new file mode 100644
index 0000000..ecabf26
--- /dev/null
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/SuperimposeFilter.as
@@ -0,0 +1,65 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.svg
+{
+	
+	/**
+	 *  SuperimposeFilter composes superimposes several filters one on top of the other.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.9.3
+	 */
+	public class SuperimposeFilter extends Filter
+	{
+		public function SuperimposeFilter()
+		{
+		}
+		
+		COMPILE::JS
+		override protected function filter():void
+		{
+			var newChildren:Array = [];
+			for (var i:int = 0; i < children.length; i++)
+			{
+				var chainable:IChainableFilter = children[i] as IChainableFilter;
+				chainable.result = "chainableResult" + i;
+				if (i != 0)
+				{
+					chainable.source = "chainableResult" + (i - 1);
+				}
+				chainable.build();
+				addArray(newChildren, chainable.children);
+			}
+			children = newChildren;
+			super.filter();
+		}
+		
+		COMPILE::JS
+		private function addArray(original:Array, addition:Array):void
+		{
+			for (var i:int = 0; i < addition.length; i++)
+			{
+				original.push(addition[i]);
+			}
+		}
+	}
+}
+


[royale-asjs] 07/13: Enable CompoundGraphic for transformations (and blending some browsers).

Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch feature/new_merge
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit b2752cf9a64d9889e06722c1193d6c3f257ee366
Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
AuthorDate: Tue Jul 17 11:02:09 2018 +0300

    Enable CompoundGraphic for transformations (and blending some browsers).
---
 .../projects/Basic/src/main/royale/BasicClasses.as |  1 +
 .../org/apache/royale/svg/CompoundGraphic.as       | 19 +++--
 .../royale/svg/TransformableCompoundGraphic.as     | 93 ++++++++++++++++++++++
 3 files changed, 108 insertions(+), 5 deletions(-)

diff --git a/frameworks/projects/Basic/src/main/royale/BasicClasses.as b/frameworks/projects/Basic/src/main/royale/BasicClasses.as
index e5560ab..4faef78 100644
--- a/frameworks/projects/Basic/src/main/royale/BasicClasses.as
+++ b/frameworks/projects/Basic/src/main/royale/BasicClasses.as
@@ -283,6 +283,7 @@ internal class BasicClasses
 	import org.apache.royale.svg.Path; Path;
 	import org.apache.royale.svg.Text; Text;
 	import org.apache.royale.svg.CompoundGraphic; CompoundGraphic;
+	import org.apache.royale.svg.TransformableCompoundGraphic; TransformableCompoundGraphic;
 
     import org.apache.royale.html.beads.models.DataProviderModel; DataProviderModel;
 	import org.apache.royale.html.beads.DataContainerView; DataContainerView;
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/svg/CompoundGraphic.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/svg/CompoundGraphic.as
index b980695..7f80d4d 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/svg/CompoundGraphic.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/svg/CompoundGraphic.as
@@ -200,7 +200,7 @@ package org.apache.royale.svg
                     rect.setAttribute('rx', radiusX);
                     rect.setAttribute('ry', radiusY);
                 }
-                element.appendChild(rect);
+                addElementToSurface(rect);
             }
 
         }
@@ -239,7 +239,7 @@ package org.apache.royale.svg
                 ellipse.setAttribute('cy', y + height / 2);
                 ellipse.setAttribute('rx', width / 2);
                 ellipse.setAttribute('ry', height / 2);
-                element.appendChild(ellipse);
+                addElementToSurface(ellipse);
             }
         }
 
@@ -276,7 +276,7 @@ package org.apache.royale.svg
                 circle.setAttribute('cy', y);
                 circle.setAttribute('rx', radius);
                 circle.setAttribute('ry', radius);
-                element.appendChild(circle);
+                addElementToSurface(circle);
 
             }
         }
@@ -332,7 +332,7 @@ package org.apache.royale.svg
                 path.style.top = "0px";
                 path.setAttribute('style', style);
                 path.setAttribute('d', data);
-                element.appendChild(path);
+                addElementToSurface(path);
             }
         }
 
@@ -550,7 +550,7 @@ package org.apache.royale.svg
                 text.setAttribute('y', y + 15);
                 var textNode:Text = document.createTextNode(value) as Text;
                 text.appendChild(textNode as Node);
-                element.appendChild(text);
+                addElementToSurface(text);
                 return text;
             }
         }
@@ -585,5 +585,14 @@ package org.apache.royale.svg
 
         }
 
+		/*
+               *  @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
+		*/
+		COMPILE::JS
+		protected function addElementToSurface(e:WrappedHTMLElement):void
+		{
+			element.appendChild(e);
+		}
+
     }
 }
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/svg/TransformableCompoundGraphic.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/svg/TransformableCompoundGraphic.as
new file mode 100644
index 0000000..e23827f
--- /dev/null
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/svg/TransformableCompoundGraphic.as
@@ -0,0 +1,93 @@
+/*
+ *
+ *  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.svg
+{
+
+    /**
+     * TransformableCompoundGraphic adds a <g> element in which drawn elements are nested. 
+	 * This is useful for applying transforms and other low level operations not available on SVG elements.
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.9.3
+     */
+	COMPILE::JS 
+	{
+		import org.apache.royale.core.WrappedHTMLElement;
+	}
+    public class TransformableCompoundGraphic extends CompoundGraphic
+    {
+		COMPILE::JS
+		private var _groupElement:WrappedHTMLElement;
+
+		/*
+         *  @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
+		*/
+		COMPILE::JS
+		override protected function addElementToSurface(e:WrappedHTMLElement):void
+		{
+			_groupElement.appendChild(e);
+		}
+		
+        /**
+         *  Clears all of the drawn path data.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9.3
+         */
+        override public function clear():void
+        {
+            COMPILE::SWF
+            {
+				super.clear();
+            }
+            COMPILE::JS
+            {
+                while (transformElement.lastChild) {
+                    transformElement.removeChild(transformElement.lastChild);
+                }
+            }
+        }
+		
+		/**
+		 * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
+		 */
+		COMPILE::JS
+		override protected function createElement():WrappedHTMLElement
+		{
+			super.createElement();
+			_groupElement = document.createElementNS('http://www.w3.org/2000/svg', 'g') as WrappedHTMLElement;
+			element.appendChild(_groupElement);
+			return element;
+		}
+
+		/**
+		 * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
+		 */
+		COMPILE::JS
+		override public function get transformElement():WrappedHTMLElement
+		{
+			return _groupElement;
+		}
+
+
+    }
+}


[royale-asjs] 11/13: Now that we're using Merge we don't need to play with sources in SuperImposeFilter

Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch feature/new_merge
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 132d50db89ea502c6561839f9accb7760de540b0
Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
AuthorDate: Mon Jul 30 14:58:20 2018 +0300

    Now that we're using Merge we don't need to play with sources in SuperImposeFilter
---
 .../royale/org/apache/royale/svg/DropShadowFilter.as    | 17 ++++-------------
 .../royale/org/apache/royale/svg/SuperimposeFilter.as   |  4 ----
 2 files changed, 4 insertions(+), 17 deletions(-)

diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
index c89859b..d841c08 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
@@ -56,16 +56,7 @@ package org.apache.royale.svg
 		public function build():void
 		{
 			children = [];
-			var knockoutResult:String;
-			if (!inset && knockout)
-			{
-				knockoutResult = "knockout_res1";
-//				var fullAlpha:ColorMatrixFilterElement = new ColorMatrixFilterElement();
-//				fullAlpha.opacity = 1000000;
-//				fullAlpha.result = knockoutResult;
-//				fullAlpha.in = "SourceAlpha";
-//				children.push(fullAlpha);
-			}
+			var doKnockout:Boolean = !inset && knockout;
 			if (inset)
 			{
 				var insetFilterElement:FilterElement = new InvertFilterElement();
@@ -78,7 +69,7 @@ package org.apache.royale.svg
 				children.push(offset);
 				offset.dx = dx;
 				offset.dy = dy;
-				if (knockoutResult)
+				if (doKnockout)
 				{
 					offset.in = source ? source : "SourceGraphic";
 				}
@@ -90,11 +81,11 @@ package org.apache.royale.svg
 			{
 				blur.in = source ? source : "SourceGraphic";
 			}
-			if (!inset && knockout)
+			if (doKnockout)
 			{
 				var outsetComposite:CompositeFilterElement = new CompositeFilterElement();
 				children.push(outsetComposite);
-				outsetComposite.in2 = knockoutResult;
+				outsetComposite.in2 = "SourceAlpha";
 				outsetComposite.operator = "out";
 			}
 			var colorMatrix:ColorMatrixFilterElement = new ColorMatrixFilterElement();
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/SuperimposeFilter.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/SuperimposeFilter.as
index 9c8358a..3b92e49 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/SuperimposeFilter.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/SuperimposeFilter.as
@@ -44,10 +44,6 @@ package org.apache.royale.svg
 				var resultName:String = "chainableResult" + i;
 				chainable.result = resultName;
 				results.push(resultName);
-				if (i != 0)
-				{
-					chainable.source = "chainableResult" + (i - 1);
-				}
 				chainable.build();
 				addArray(newChildren, chainable.children);
 			}


[royale-asjs] 05/13: DropShadowFilter is now just another Filter

Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch feature/new_merge
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 8a0e5241565ec47849097d98f0c2148e7829b268
Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
AuthorDate: Sun Jul 15 11:25:48 2018 +0300

    DropShadowFilter is now just another Filter
---
 .../org/apache/royale/svg/DropShadowFilter.as      | 128 ++++++++-------------
 .../main/royale/org/apache/royale/svg/Filter.as    |   6 +-
 2 files changed, 52 insertions(+), 82 deletions(-)

diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
index c10bd49..fe79d37 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
@@ -19,9 +19,6 @@
 package org.apache.royale.svg
 {
 	
-	import org.apache.royale.core.IBead;
-	import org.apache.royale.core.IStrand;
-	import org.apache.royale.core.ValuesManager;
 	COMPILE::SWF 
 	{
 		import org.apache.royale.core.IRenderedObject;
@@ -37,7 +34,7 @@ package org.apache.royale.svg
 	 *  @playerversion AIR 2.6
 	 *  @productversion Royale 0.9.3
 	 */
-	public class DropShadowFilter implements IBead
+	public class DropShadowFilter extends Filter
 	{
 		private var _dx:Number;
 		private var _dy:Number;
@@ -53,90 +50,63 @@ package org.apache.royale.svg
 		{
 		}
 		
-		/**
-		 *  @copy org.apache.royale.core.IBead#strand
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion Royale 0.9.3
-		 */		
-		public function set strand(value:IStrand):void
+		COMPILE::JS
+		override protected function filter():void
 		{
-			COMPILE::JS 
+			children = [];
+			if (inset)
 			{
-				if (!value)
-				{
-					return;
-				}
-				loadBeadFromValuesManager(Filter, "filter", value);
-				if (inset)
-				{
-					loadBeadFromValuesManager(InvertFilterElement, "invertFilterElement", value);
-				}
-				if (!isNaN(dx) && !isNaN(dy) && (dx !=0 || dy !=0))
-				{
-					var offset:OffsetFilterElement = loadBeadFromValuesManager(OffsetFilterElement, "offsetFilterElement", value) as OffsetFilterElement;
-					offset.dx = dx;
-					offset.dy = dy;
-				}
-				var blur:BlurFilterElement = loadBeadFromValuesManager(BlurFilterElement, "blurFilterElement", value) as BlurFilterElement;
-				blur.stdDeviation = stdDeviation;
-				var colorMatrix:ColorMatrixFilterElement = loadBeadFromValuesManager(ColorMatrixFilterElement, "colorMatrixFilterElement", value) as ColorMatrixFilterElement;
-				colorMatrix.red = red;
-				colorMatrix.green = green;
-				colorMatrix.blue = blue;
-				colorMatrix.opacity = opacity;
-				var spreadElement:SpreadFilterElement = loadBeadFromValuesManager(SpreadFilterElement, "spreadFilterElement", value) as SpreadFilterElement;
-				if (!inset)
-				{
-					spreadElement.result = "spreadResult";
-				}
-				spreadElement.spread = spread;
-				if (inset)
-				{
-					var composite:CompositeFilterElement = loadBeadFromValuesManager(CompositeFilterElement, "compositeFilterElement", value) as CompositeFilterElement;
-					composite.in2 = "SourceAlpha";
-					composite.operator = "in";
-					composite.result = "compositeResult";
-				}
-				var blend:BlendFilterElement = loadBeadFromValuesManager(BlendFilterElement, "blendFilterElement", value) as BlendFilterElement;
-				blend.in = inset ? "compositeResult" : "SourceGraphic";
-				blend.in2 = inset ? "SourceGraphic" : "spreadResult";
-				value.removeBead(this);
+				var insetFilterElement:FilterElement = new InvertFilterElement();
+				children.push(insetFilterElement);
 			}
-			COMPILE::SWF 
+			if (!isNaN(dx) && !isNaN(dy) && (dx !=0 || dy !=0))
 			{
-				var distance:Number = Math.sqrt( (dx * dx) + (dy * dy) );
-				var radians:Number = Math.atan2(dy, dx);
-				var angle:Number =  (180/Math.PI) * radians;
-				var color:uint = red|green|blue;
-				var filter:flash.filters.DropShadowFilter = new flash.filters.DropShadowFilter(distance, angle, color, opacity, stdDeviation, stdDeviation, spread + 1, 1, inset);
-				(value as IRenderedObject).$displayObject.filters = [filter];
+				var offset:OffsetFilterElement = new OffsetFilterElement();
+				children.push(offset);
+				offset.dx = dx;
+				offset.dy = dy;
 			}
-		}
-
-		private function loadBeadFromValuesManager(classOrInterface:Class, classOrInterfaceName:String, strand:IStrand):IBead
-		{
-			var result:IBead;
-			var c:Class = ValuesManager.valuesImpl.getValue(this, classOrInterfaceName) as Class;
-			if (c)
+			var blur:BlurFilterElement = new BlurFilterElement();
+			children.push(blur);
+			blur.stdDeviation = stdDeviation;
+			var colorMatrix:ColorMatrixFilterElement = new ColorMatrixFilterElement();
+			children.push(colorMatrix);
+			colorMatrix.red = red;
+			colorMatrix.green = green;
+			colorMatrix.blue = blue;
+			colorMatrix.opacity = opacity;
+			var spreadElement:SpreadFilterElement = new SpreadFilterElement();
+			children.push(spreadElement);
+			if (!inset)
+			{
+				spreadElement.result = "spreadResult";
+			}
+			spreadElement.spread = spread;
+			if (inset)
 			{
-				COMPILE::JS
-				{
-					var f:Function = c as Function;
-					result = new f() as IBead;
-				}
-				COMPILE::SWF
-				{
-					result = new c() as IBead;
-				}
-				if (result)
-					strand.addBead(result);
+				var composite:CompositeFilterElement = new CompositeFilterElement();
+				children.push(composite);
+				composite.in2 = "SourceAlpha";
+				composite.operator = "in";
+				composite.result = "compositeResult";
 			}
-			return result;
+			var blend:BlendFilterElement = new BlendFilterElement();
+			children.push(blend);
+			blend.in = inset ? "compositeResult" : "SourceGraphic";
+			blend.in2 = inset ? "SourceGraphic" : "spreadResult";
+			super.filter();
 		}
 
+		COMPILE::SWF
+		override protected function filter():void
+		{
+			var distance:Number = Math.sqrt( (dx * dx) + (dy * dy) );
+			var radians:Number = Math.atan2(dy, dx);
+			var angle:Number =  (180/Math.PI) * radians;
+			var color:uint = red|green|blue;
+			var filter:flash.filters.DropShadowFilter = new flash.filters.DropShadowFilter(distance, angle, color, opacity, stdDeviation, stdDeviation, spread + 1, 1, inset);
+			host.$displayObject.filters = [filter];
+		}
 		/**
 		 *  The drop shadow x offset
 		 *
diff --git a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/Filter.as b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/Filter.as
index ffc17f1..3418b8b 100644
--- a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/Filter.as
+++ b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/Filter.as
@@ -69,7 +69,7 @@ package org.apache.royale.svg
 		}
 		
 		COMPILE::SWF
-		private function filter():void
+		protected function filter():void
 		{
 //			if (!path)
 //			{
@@ -101,7 +101,7 @@ package org.apache.royale.svg
 		 * @royaleignorecoercion Object
 		 */
 		COMPILE::JS
-		private function filter():void
+		protected function filter():void
 		{
 			var svgElement:Node = host.element as Element;
 			var defs:Element = getChildNode(svgElement, "defs") as Element;
@@ -139,7 +139,7 @@ package org.apache.royale.svg
 		}
 		
 		
-		private function get host():IRenderedObject
+		protected function get host():IRenderedObject
 		{
 			return _strand as IRenderedObject;
 		}


[royale-asjs] 08/13: Wrong DataGridColumn reference

Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch feature/new_merge
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 58c89c4db3cbc2fb08139657ee13f6bd8232e741
Author: Harbs <ha...@in-tools.com>
AuthorDate: Thu Jul 19 15:23:36 2018 +0300

    Wrong DataGridColumn reference
    
    Added ignores
---
 .../royale/express/beads/layouts/DataGridLayout.as | 33 +++++++++++++++++-----
 1 file changed, 26 insertions(+), 7 deletions(-)

diff --git a/frameworks/projects/Express/src/main/royale/org/apache/royale/express/beads/layouts/DataGridLayout.as b/frameworks/projects/Express/src/main/royale/org/apache/royale/express/beads/layouts/DataGridLayout.as
index 08a563d..66ab8d9 100644
--- a/frameworks/projects/Express/src/main/royale/org/apache/royale/express/beads/layouts/DataGridLayout.as
+++ b/frameworks/projects/Express/src/main/royale/org/apache/royale/express/beads/layouts/DataGridLayout.as
@@ -23,12 +23,14 @@ package org.apache.royale.express.beads.layouts
 	import org.apache.royale.core.IDataGridModel;
 	import org.apache.royale.core.IStrand;
 	import org.apache.royale.core.IUIBase;
+	import org.apache.royale.core.ILayoutChild;
+	import org.apache.royale.core.IParent;
 	import org.apache.royale.core.UIBase;
     import org.apache.royale.core.ValuesManager;
 	import org.apache.royale.core.layout.EdgeData;
 	import org.apache.royale.events.Event;
 	import org.apache.royale.events.IEventDispatcher;
-	import org.apache.royale.express.supportClasses.DataGridColumn;
+	import org.apache.royale.html.supportClasses.DataGridColumn;
 	import org.apache.royale.geom.Rectangle;
 	import org.apache.royale.html.beads.IDataGridView;
 	import org.apache.royale.html.beads.IDrawingLayerBead;
@@ -65,6 +67,7 @@ package org.apache.royale.express.beads.layouts
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
 		 *  @productversion Royale 0.0
+		 *  @royaleignorecoercion org.apache.royale.events.IEventDispatcher
 		 */
 		public function set strand(value:IStrand):void
 		{
@@ -76,10 +79,17 @@ package org.apache.royale.express.beads.layouts
 			(_strand as IEventDispatcher).addEventListener("layoutNeeded", handleLayoutNeeded);
 		}
 		
+		/**
+		 * @royaleignorecoercion org.apache.royale.core.IUIBase
+		 */
 		private function get host():IUIBase
 		{
 			return _strand as IUIBase;
 		}
+
+		/**
+		 * @royaleignorecoercion org.apache.royale.core.UIBase
+		 */
 		private function get uiHost():UIBase
 		{
 			return _strand as UIBase;
@@ -101,7 +111,16 @@ package org.apache.royale.express.beads.layouts
 		 * been placed. For example, with three columns of widths, "50", "100%", and "80" the
 		 * 100% size represents the amount left over after the 130 pixels have been removed from
 		 * whatever width the DataGrid currently has at the time this layout is executed.
-         *  @royaleignorecoercion org.apache.royale.core.IBorderPaddingMarginValuesImpl
+		 * 
+         * @royaleignorecoercion org.apache.royale.core.IBorderPaddingMarginValuesImpl
+		 * @royaleignorecoercion org.apache.royale.core.IUIBase
+		 * @royaleignorecoercion org.apache.royale.core.IParent
+		 * @royaleignorecoercion org.apache.royale.core.ILayoutChild
+		 * @royaleignorecoercion org.apache.royale.html.beads.IDataGridView
+		 * @royaleignorecoercion org.apache.royale.core.IDataGridModel
+		 * @royaleignorecoercion org.apache.royale.html.supportClasses.DataGridColumn
+		 * @royaleignorecoercion org.apache.royale.html.beads.models.ButtonBarModel
+		 * @royaleignorecoercion org.apache.royale.html.beads.IDrawingLayerBead
 		 */
 		public function layout():Boolean
 		{
@@ -131,7 +150,7 @@ package org.apache.royale.express.beads.layouts
 			
 			for(i=0; i < displayedColumns.length; i++) {
 				columnDef = model.columns[i] as DataGridColumn;
-				var columnList:UIBase = displayedColumns[i] as UIBase;
+				var columnList:IUIBase = displayedColumns[i] as IUIBase;
 				
 				// probably do not need to set (x,y), but if the Container's layout requires it, they will be set.
 				columnList.x = xpos;
@@ -160,7 +179,7 @@ package org.apache.royale.express.beads.layouts
 				header.width = useWidth;
 			}
 			COMPILE::JS {
-				(header as UIBase).percentWidth = 100;
+				(header as ILayoutChild).percentWidth = 100;
 			}
 			// header's height is set in CSS
 			
@@ -170,7 +189,7 @@ package org.apache.royale.express.beads.layouts
 				listArea.width = useWidth;
 			}
 			COMPILE::JS {
-				(listArea as UIBase).percentWidth = 100;
+				(listArea as ILayoutChild).percentWidth = 100;
 			}
 			listArea.height = useHeight - header.height;
 			
@@ -180,8 +199,8 @@ package org.apache.royale.express.beads.layouts
 			
 			// Put the drawing layer back, sizing it to fit over the listArea.
 			if (layerBead != null && layerBead.layer != null) {				
-				UIBase(_strand).removeElement(layerBead.layer);
-				UIBase(_strand).addElement(layerBead.layer); // always keep it on top
+				IParent(_strand).removeElement(layerBead.layer);
+				IParent(_strand).addElement(layerBead.layer); // always keep it on top
 				
 				var layerX:Number = listArea.x;
 				var layerY:Number = listArea.y;