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 2019/05/26 21:22:25 UTC

[royale-asjs] branch develop updated (06d7815 -> 5249aec)

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

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


    from 06d7815  Merge branch 'develop' of https://github.com/apache/royale-asjs into develop
     new 9c94854  This belongs in a viewport bead
     new ece4ac8  Fix viewports
     new cd19050  This one too.
     new 5249aec  The position of the drop indicator needs to be calculated relative to its parent

The 4 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:
 .../royale/html/supportClasses/HScrollViewport.as  | 19 ++-----
 .../html/supportClasses/ScrollingViewport.as       | 66 ++++++++++++++--------
 .../royale/html/supportClasses/VScrollViewport.as  | 18 ++----
 .../apache/royale/html/supportClasses/Viewport.as  |  9 ++-
 .../apache/royale/html/beads/DragDropListView.as   |  2 -
 .../SensitiveSingleSelectionDropTargetBead.as      | 15 +++--
 .../html/beads/SingleSelectionDropTargetBead.as    | 14 +++--
 7 files changed, 79 insertions(+), 64 deletions(-)


[royale-asjs] 01/04: This belongs in a viewport bead

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

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

commit 9c94854b273131bff5908dbac2833945f22f3aba
Author: Harbs <ha...@in-tools.com>
AuthorDate: Mon May 27 00:17:46 2019 +0300

    This belongs in a viewport bead
---
 .../src/main/royale/org/apache/royale/html/beads/DragDropListView.as    | 2 --
 1 file changed, 2 deletions(-)

diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListView.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListView.as
index cdfccd4..59ec2cd 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListView.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DragDropListView.as
@@ -59,8 +59,6 @@ package org.apache.royale.html.beads
 			//chost.strandChildren.addElement(_layer);
 			UIBase(_strand).addElement(_layer);
 
-			UIBase(_strand).element.style['overflow'] = 'auto';
-
 		}
 
 		/**


[royale-asjs] 04/04: The position of the drop indicator needs to be calculated relative to its parent

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

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

commit 5249aec5a7d6b3b120996a3a935d3916281e08e8
Author: Harbs <ha...@in-tools.com>
AuthorDate: Mon May 27 00:22:15 2019 +0300

    The position of the drop indicator needs to be calculated relative to its parent
---
 .../html/beads/SensitiveSingleSelectionDropTargetBead.as  | 15 +++++++++------
 .../royale/html/beads/SingleSelectionDropTargetBead.as    | 14 ++++++++------
 2 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SensitiveSingleSelectionDropTargetBead.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SensitiveSingleSelectionDropTargetBead.as
index fe40c83..28a86cc 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SensitiveSingleSelectionDropTargetBead.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SensitiveSingleSelectionDropTargetBead.as
@@ -137,6 +137,7 @@ package org.apache.royale.html.beads
 
 		/**
 		 * @private
+     *  @royaleignorecoercion org.apache.royale.events.IEventDispatcher
 		 */
 		public function set strand(value:IStrand):void
 		{
@@ -145,10 +146,10 @@ package org.apache.royale.html.beads
 			_dropController = new DropMouseController();
 			_strand.addBead(_dropController);
 
-			IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_ENTER, handleDragEnter);
-			IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_EXIT, handleDragExit);
-			IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_OVER, handleDragOver);
-			IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_DROP, handleDragDrop);
+			_dropController.addEventListener(DragEvent.DRAG_ENTER, handleDragEnter);
+			_dropController.addEventListener(DragEvent.DRAG_EXIT, handleDragExit);
+			_dropController.addEventListener(DragEvent.DRAG_OVER, handleDragOver);
+			_dropController.addEventListener(DragEvent.DRAG_DROP, handleDragDrop);
 			IEventDispatcher(_strand).addEventListener(DragEvent.DRAG_MOVE, handleDragMove);
 		}
 
@@ -387,11 +388,13 @@ package org.apache.royale.html.beads
 		COMPILE::JS
 		private function displayDropIndicator(item:IUIBase, isEndOfList:Boolean=false):void
 		{
+			var pt:Point = PointUtils.localToGlobal(new Point(0,0), item);
+			pt = PointUtils.globalToLocal(pt,indicatorParent);
 			if (dropDirection == "horizontal") {
 				_dropIndicator.x = 0;
-				_dropIndicator.y = item.y + (isEndOfList ? item.height : 0);
+				_dropIndicator.y = pt.y + (isEndOfList ? item.height : 0);
 			} else {
-				_dropIndicator.x = item.x + (isEndOfList ? item.width : 0);
+				_dropIndicator.x = pt.x + (isEndOfList ? item.width : 0);
 				_dropIndicator.y = 0;
 			}
 		}
diff --git a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDropTargetBead.as b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDropTargetBead.as
index 7db7d49..23707be 100644
--- a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDropTargetBead.as
+++ b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDropTargetBead.as
@@ -148,10 +148,10 @@ package org.apache.royale.html.beads
 			_dropController = new DropMouseController();
 			_strand.addBead(_dropController);
 
-			IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_ENTER, handleDragEnter);
-			IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_EXIT, handleDragExit);
-			IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_OVER, handleDragOver);
-			IEventDispatcher(_dropController).addEventListener(DragEvent.DRAG_DROP, handleDragDrop);
+			_dropController.addEventListener(DragEvent.DRAG_ENTER, handleDragEnter);
+			_dropController.addEventListener(DragEvent.DRAG_EXIT, handleDragExit);
+			_dropController.addEventListener(DragEvent.DRAG_OVER, handleDragOver);
+			_dropController.addEventListener(DragEvent.DRAG_DROP, handleDragDrop);
 		}
 
 		private var _dropDirection: String = "horizontal";
@@ -413,11 +413,13 @@ package org.apache.royale.html.beads
 		COMPILE::JS
 		private function displayDropIndicator(item:IUIBase):void
 		{
+			var pt:Point = PointUtils.localToGlobal(new Point(0,0), item);
+			pt = PointUtils.globalToLocal(pt,indicatorParent);
 			if (dropDirection == "horizontal") {
 				_dropIndicator.x = 0;
-				_dropIndicator.y = item.y;
+				_dropIndicator.y = pt.y;
 			} else {
-				_dropIndicator.x = item.x;
+				_dropIndicator.x = pt.x;
 				_dropIndicator.y = 0;
 			}
 		}


[royale-asjs] 03/04: This one too.

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

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

commit cd19050eab44d9fe4b9a1a7d78f13f2e8ad54e14
Author: Harbs <ha...@in-tools.com>
AuthorDate: Mon May 27 00:21:42 2019 +0300

    This one too.
---
 .../royale/html/supportClasses/VScrollViewport.as      | 18 +++++-------------
 1 file changed, 5 insertions(+), 13 deletions(-)

diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/VScrollViewport.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/VScrollViewport.as
index 9feb90d..4f6d131 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/VScrollViewport.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/VScrollViewport.as
@@ -78,20 +78,12 @@ package org.apache.royale.html.supportClasses
 			// Do nothing
 		}
 		
-		/**
-		 * @royaleignorecoercion HTMLElement 
-		 */
-		override public function set strand(value:IStrand):void
+		override protected function setScrollStyle():void
 		{
-			super.strand = value;
-			if (contentView == null) {
-				(value as UIBase).element.style.overflow = "hidden";
-				(value as UIBase).element.style.overflowY = "auto";
-			} else {
-				(contentView as UIBase).element.style.overflow = "hidden";
-				(contentView as UIBase).element.style.overflowY = "auto";
-			}
-		}		
+			contentArea.element.style.overflow = "hidden";
+			contentArea.element.style.overflowY = "auto";
+			adaptContentArea();
+		}
 	}
 	
 	COMPILE::SWF


[royale-asjs] 02/04: Fix viewports

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

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

commit ece4ac898282d0a31d4d3d2eb9e6ef749ff4b7e0
Author: Harbs <ha...@in-tools.com>
AuthorDate: Mon May 27 00:21:31 2019 +0300

    Fix viewports
    
    Scrolling viewports should reference the correct divs
    Viewport percentage sizes need to match those of the strand
---
 .../royale/html/supportClasses/HScrollViewport.as  | 19 ++-----
 .../html/supportClasses/ScrollingViewport.as       | 66 ++++++++++++++--------
 .../apache/royale/html/supportClasses/Viewport.as  |  9 ++-
 3 files changed, 57 insertions(+), 37 deletions(-)

diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/HScrollViewport.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/HScrollViewport.as
index 0a96b42..28851cd 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/HScrollViewport.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/HScrollViewport.as
@@ -78,20 +78,13 @@ package org.apache.royale.html.supportClasses
 			// Do nothing
 		}
 		
-		/**
-		 * @royaleignorecoercion HTMLElement 
-		 */
-		override public function set strand(value:IStrand):void
+		override protected function setScrollStyle():void
 		{
-			super.strand = value;
-			if (contentView == null) {
-				(value as UIBase).element.style.overflow = "hidden";
-				(value as UIBase).element.style.overflowX = "auto";
-			} else {
-				(contentView as UIBase).element.style.overflow = "hidden";
-				(contentView as UIBase).element.style.overflowX = "auto";
-			}
-		}		
+			contentArea.element.style.overflow = "hidden";
+			contentArea.element.style.overflowX = "auto";
+			adaptContentArea();
+		}
+
 	}
 	
 	COMPILE::SWF
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ScrollingViewport.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ScrollingViewport.as
index 807c1d6..03d896a 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ScrollingViewport.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/ScrollingViewport.as
@@ -43,6 +43,8 @@ package org.apache.royale.html.supportClasses
 	import org.apache.royale.events.Event;
 	import org.apache.royale.geom.Size;
 	import org.apache.royale.geom.Rectangle;
+	import org.apache.royale.core.ILayoutChild;
+	import org.apache.royale.events.IEventDispatcher;
 
 	/**
 	 * The ScrollingViewport extends the Viewport class by adding horizontal and
@@ -73,53 +75,71 @@ package org.apache.royale.html.supportClasses
 		
 		public function get verticalScrollPosition():Number
 		{
-			return this.contentView.positioner.scrollTop;
+			return contentArea.element.scrollTop;
 		}
 		public function set verticalScrollPosition(value:Number):void
 		{
-			this.contentView.positioner.scrollTop = value;
+			contentArea.element.scrollTop = value;
 		}
 		
 		public function get horizontalScrollPosition():Number
 		{
-			return this.contentView.positioner.scrollLeft;
+			return contentArea.element.scrollLeft;
 		}
 		public function set horizontalScrollPosition(value:Number):void
 		{
-			this.contentView.positioner.scrollLeft = value;
+			contentArea.element.scrollLeft = value;
 		}
 		
 		/**
-		 * @royaleignorecoercion HTMLElement
-		 * @royaleignorecoercion org.apache.royale.core.UIBase
+		 * 
+     *  @royaleignorecoercion org.apache.royale.core.ILayoutChild
 		 */
-		override public function set strand(value:IStrand):void
+		override protected function setScrollStyle():void
 		{
-			super.strand = value;
-			var component:UIBase;
-			if (contentView == null) {
-				component = value as UIBase;
-			} else {
-				component = contentView as UIBase;
+			contentArea.element.style.overflow = "auto";
+			adaptContentArea();
+		}
+
+		/**
+		 * If the contentArea is not the same as the strand,
+		 * we need to sync the percentage sizes for scrolling to work correctly.
+		 * @royaleignorecoercion org.apache.royale.events.IEventDispatcher
+		 */
+		protected function adaptContentArea():void
+		{
+			if(_strand != contentArea)
+			{
+				var host:ILayoutChild = _strand as ILayoutChild;
+				var val:Number = host.percentHeight;
+				if(!isNaN(val)){
+					contentArea.percentHeight = val;
+				}
+				val = host.percentWidth;
+				if(!isNaN(val)){
+					contentArea.percentWidth = val;
+				}
+				(_strand as IEventDispatcher).addEventListener("percentWidthChanged",handleWidthChange);
+				(_strand as IEventDispatcher).addEventListener("percentHeightChanged",handleHeightChange);
 			}
-			component.element.style.overflow = "auto";
+
 		}
-		
 		/**
-		* @copy org.apache.royale.core.IViewport
-		*/
-		override public function layoutViewportBeforeContentLayout(width:Number, height:Number):void
+     *  @royaleignorecoercion org.apache.royale.core.ILayoutChild
+		 */
+		private function handleWidthChange(ev:Event):void
 		{
-			// does nothing for the JS platform
+			contentArea.percentWidth = (_strand as ILayoutChild).percentWidth;
 		}
-		
+
 		/**
-		 * @copy org.apache.royale.core.IViewport
+     *  @royaleignorecoercion org.apache.royale.core.ILayoutChild
 		 */
-		override public function layoutViewportAfterContentLayout(contentSize:Size):void
+		private function handleHeightChange(ev:Event):void
 		{
-			// does nothing for the JS platform
+			contentArea.percentHeight = (_strand as ILayoutChild).percentHeight;
 		}
+
 	}
 	
 	COMPILE::SWF
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/Viewport.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/Viewport.as
index 8fe96d6..b9bbbd0 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/Viewport.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/Viewport.as
@@ -99,7 +99,14 @@ package org.apache.royale.html.supportClasses
 			
 			if (!contentArea)
 				contentArea = value as UIBase;
-			
+			setScrollStyle();
+		}
+		/**
+		 * Subclasses override this method to change scrolling behavior
+		 */
+		COMPILE::JS
+		protected function setScrollStyle():void
+		{
 			contentArea.element.style.overflow = "hidden";
 		}