This is an automated email from the ASF dual-hosted git repository.
pent pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/develop by this push:
new d2434b4 Fixed positioning and display of drop indicator for SWF
platform.
d2434b4 is described below
commit d2434b4ab9309db17705e45ab7dd76f4697f057c
Author: Peter Ent <[email protected]>
AuthorDate: Wed Jan 31 10:41:28 2018 -0500
Fixed positioning and display of drop indicator for SWF platform.
---
.../royale/html/beads/DataGridDrawingLayerBead.as | 35 ++++++++--------------
.../html/beads/DataGridWithDrawingLayerLayout.as | 19 +++++-------
.../apache/royale/html/beads/IDrawingLayerBead.as | 3 +-
.../html/beads/SingleSelectionDropTargetBead.as | 6 +---
.../royale/org/apache/royale/express/DataGrid.as | 14 ++++-----
5 files changed, 28 insertions(+), 49 deletions(-)
diff --git
a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridDrawingLayerBead.as
b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridDrawingLayerBead.as
index d498a29..9b7e5fc 100644
---
a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridDrawingLayerBead.as
+++
b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridDrawingLayerBead.as
@@ -24,9 +24,11 @@ package org.apache.royale.html.beads
import org.apache.royale.core.UIBase;
import org.apache.royale.events.Event;
import org.apache.royale.events.IEventDispatcher;
- import org.apache.royale.html.beads.IDataGridView;
import org.apache.royale.html.beads.IDrawingLayerBead;
+ COMPILE::SWF {
+ import org.apache.royale.html.beads.SolidBackgroundBead;
+ }
/**
* DataGridDrawingLayerBead places a graphic space into the DataGrid
that is
@@ -61,8 +63,15 @@ package org.apache.royale.html.beads
public function set strand(value:IStrand):void
{
_strand = value;
-
-
IEventDispatcher(_strand).addEventListener("beadsAdded", handleBeadsAdded);
+
+ _layer = new UIBase();
+ _layer.className = "DataGridDrawingLayer";
+ COMPILE::JS {
+ _layer.element.style.position = "absolute";
+ _layer.element.style['pointer-events'] = 'none';
+ _layer.element.style['overflow'] = 'hidden';
+ }
+ UIBase(_strand).addElement(_layer);
}
private var _layer:UIBase;
@@ -79,25 +88,5 @@ package org.apache.royale.html.beads
{
return _layer;
}
-
- /**
- * @private
- */
- private function handleBeadsAdded(event:Event):void
- {
- var view:IDataGridView = UIBase(_strand).view as
IDataGridView;
- if (view != null) {
- _layer = new UIBase();
- _layer.className = "DataGridDrawingLayer";
- COMPILE::JS {
- _layer.element.style.position =
"absolute";
- _layer.element.style['pointer-events']
= 'none';
- _layer.element.style['overflow'] =
'hidden';
- }
- UIBase(_strand).addElement(_layer);
- }
- // else: this is an error as this bead cannot be used
with anything but
- // a DataGrid.
- }
}
}
diff --git
a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridWithDrawingLayerLayout.as
b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridWithDrawingLayerLayout.as
index 4f3232c..355dd57 100644
---
a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridWithDrawingLayerLayout.as
+++
b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridWithDrawingLayerLayout.as
@@ -68,8 +68,6 @@ package org.apache.royale.html.beads
{
super.strand = value;
_strand = value;
-
- _strand.addBead(new DataGridDrawingLayerBead());
}
/**
@@ -77,25 +75,21 @@ package org.apache.royale.html.beads
*/
override public function layout():Boolean
{
- // If there is a drawing layer, remove it so the
super.layout function
- // will not include it.
+ // Get the drawing layer, if there is one, so it can be
positioned at the
+ // top of the z-order and sized properly.
var layerBead:IDrawingLayerBead =
_strand.getBeadByType(IDrawingLayerBead) as IDrawingLayerBead;
- if (layerBead != null && layerBead.layer == null) {
- UIBase(_strand).dispatchEvent(new
Event("beadsAdded"));
- }
-// if (layerBead != null && layerBead.layer != null) {
-// UIBase(_strand).removeElement(layerBead.layer);
-// }
// Run the actual layout
var result:Boolean = super.layout();
// Put the drawing layer back, sizing it to fit over
the listArea.
- if (layerBead != null && layerBead.layer != null) {
-// UIBase(_strand).addElement(layerBead.layer);
+ if (result && layerBead != null && layerBead.layer !=
null) {
var view:IDataGridView = UIBase(_strand).view
as IDataGridView;
var listArea:UIBase = view.listArea;
+
+ UIBase(_strand).removeElement(layerBead.layer);
+ UIBase(_strand).addElement(layerBead.layer); //
always keep it on top
var layerX:Number = listArea.x;
var layerY:Number = listArea.y;
@@ -117,6 +111,7 @@ package org.apache.royale.html.beads
layerBead.layer.setWidthAndHeight(useWidth,
useHeight, true);
}
+
return result;
}
}
diff --git
a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/IDrawingLayerBead.as
b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/IDrawingLayerBead.as
index 2ce1fdf..1b8a092 100644
---
a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/IDrawingLayerBead.as
+++
b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/IDrawingLayerBead.as
@@ -19,6 +19,7 @@
package org.apache.royale.html.beads
{
import org.apache.royale.core.UIBase;
+ import org.apache.royale.core.IBead;
/**
@@ -30,7 +31,7 @@ package org.apache.royale.html.beads
* @playerversion AIR 2.6
* @productversion Royale 0.8
*/
- public interface IDrawingLayerBead
+ public interface IDrawingLayerBead extends IBead
{
/**
* Returns the component to use as the actual drawing surface.
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 2f159e2..2ee627b 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
@@ -266,10 +266,6 @@ package org.apache.royale.html.beads
return;
}
- var pt0:Point;
- var pt1:Point;
- var pt2:Point;
-
var startHere:Object = event.relatedObject;
while( !(startHere is IItemRenderer) && startHere !=
null) {
startHere = startHere.parent;
@@ -386,7 +382,7 @@ package org.apache.royale.html.beads
var pt2:Point;
if (dropDirection == "horizontal") {
- pt0 = new Point(0, item.y);
+ pt0 = new Point(0, item.y+item.height);
pt1 = PointUtils.localToGlobal(pt0,
item.parent);
pt2 = PointUtils.globalToLocal(pt1,
indicatorParent);
_dropIndicator.x = 0;
diff --git
a/frameworks/projects/Express/src/main/royale/org/apache/royale/express/DataGrid.as
b/frameworks/projects/Express/src/main/royale/org/apache/royale/express/DataGrid.as
index b052184..5162890 100644
---
a/frameworks/projects/Express/src/main/royale/org/apache/royale/express/DataGrid.as
+++
b/frameworks/projects/Express/src/main/royale/org/apache/royale/express/DataGrid.as
@@ -21,12 +21,12 @@ package org.apache.royale.express
import org.apache.royale.core.IBeadLayout;
import org.apache.royale.core.IDataProviderNotifier;
import org.apache.royale.html.DataGrid;
- import org.apache.royale.html.beads.SingleSelectionDragSourceBead;
+ import org.apache.royale.html.beads.DataGridDrawingLayerBead;
+ import org.apache.royale.html.beads.DataGridWithDrawingLayerLayout;
import org.apache.royale.html.beads.SingleSelectionDragImageBead;
- import org.apache.royale.html.beads.SingleSelectionDropTargetBead;
+ import org.apache.royale.html.beads.SingleSelectionDragSourceBead;
import org.apache.royale.html.beads.SingleSelectionDropIndicatorBead;
- import org.apache.royale.html.beads.DataGridWithDrawingLayerLayout;
- import org.apache.royale.html.beads.DataGridDrawingLayerBead;
+ import org.apache.royale.html.beads.SingleSelectionDropTargetBead;
import org.apache.royale.utils.loadBeadFromValuesManager;
/**
@@ -63,11 +63,8 @@ package org.apache.royale.express
dataNotifier =
loadBeadFromValuesManager(IDataProviderNotifier, "iDataProviderNotifier", this)
as IDataProviderNotifier;
}
super.addedToParent();
- if(getBeadByType(IBeadLayout) is
DataGridWithDrawingLayerLayout)
- {
- addBead(new DataGridDrawingLayerBead());
- }
}
+
public var dataNotifier:IDataProviderNotifier;
private var _dragEnabled:Boolean = false;
@@ -115,6 +112,7 @@ package org.apache.royale.express
_dropEnabled = value;
if(value)
{
+ addBead(new DataGridDrawingLayerBead());
addBead(new SingleSelectionDropTargetBead());
addBead(new SingleSelectionDropIndicatorBead());
}
--
To stop receiving notification emails like this one, please contact
[email protected].