You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by jm...@apache.org on 2013/07/27 04:21:28 UTC

[03/50] [abbrv] git commit: [flex-sdk] [refs/heads/master] - Stop several RTE in the ADG from occurring including when resizing columns. All fixed have been in live app for 6+ months and ADG Mustella tests pass.

Stop several RTE in the ADG from occurring including when resizing columns. All fixed have been in live app for 6+ months and ADG Mustella tests pass.


Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/d7f78c41
Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/d7f78c41
Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/d7f78c41

Branch: refs/heads/master
Commit: d7f78c414616ea933f556124f5c13e45c22b4e34
Parents: 71350a2
Author: Justin Mclean <jm...@apache.org>
Authored: Wed Jul 10 17:02:45 2013 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Wed Jul 10 17:02:45 2013 +1000

----------------------------------------------------------------------
 .../src/mx/controls/AdvancedDataGridBaseEx.as   | 53 ++++++++++++++------
 .../AdvancedDataGridItemRenderer.as             | 20 ++++++--
 2 files changed, 55 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/d7f78c41/frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as b/frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as
index 5855c6f..203a113 100644
--- a/frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as
+++ b/frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as
@@ -5390,7 +5390,8 @@ public class AdvancedDataGridBaseEx extends AdvancedDataGridBase implements IIME
 				deferFocus();
 				
 				// must call removeChild() so FocusManager.lastFocus becomes null
-                itemEditorInstance.parent.removeChild(DisplayObject(itemEditorInstance));
+				if (itemEditorInstance)
+               		itemEditorInstance.parent.removeChild(DisplayObject(itemEditorInstance));
 
                 // we are not setting the item renderer's visibility to false while creating an editor,
                 // then why set its visibility to true
@@ -6542,7 +6543,14 @@ public class AdvancedDataGridBaseEx extends AdvancedDataGridBase implements IIME
      */
     protected function displayToAbsoluteColumnIndex(columnIndex:int):int
     {
-        return displayableColumns[columnIndex].colNum;
+		var noColumns:int = displayableColumns.length;
+		
+		if (columnIndex >= 0 && columnIndex < noColumns) {
+			return displayableColumns[columnIndex].colNum;
+		}
+		else {
+			return -1;
+		}
     }
 
     /**
@@ -7590,11 +7598,20 @@ public class AdvancedDataGridBaseEx extends AdvancedDataGridBase implements IIME
             return;
 
         var target:DisplayObject = DisplayObject(event.target);
-        var index:int = target.parent.getChildIndex(target);
-        var optimumColumns:Array = getOptimumColumns();
-        if (!optimumColumns[index].resizable)
+		var parent:DisplayObjectContainer = target.parent;
+		if (!parent)
+			return;
+		var index:int = parent.getChildIndex(target);
+		var optimumColumns:Array = getOptimumColumns();
+		if (index < 0 || index >= optimumColumns.length)
+			return;
+		if (!optimumColumns[index] || !optimumColumns[index].resizable)
             return;
-        cursorManager.removeCursor(resizeCursorID);
+		
+		if (resizeCursorID != CursorManager.NO_CURSOR) {
+			cursorManager.removeCursor(resizeCursorID);
+			resizeCursorID =  CursorManager.NO_CURSOR;
+		}
     }
 
     /**
@@ -7607,16 +7624,21 @@ public class AdvancedDataGridBaseEx extends AdvancedDataGridBase implements IIME
             return;
 
         var target:DisplayObject = DisplayObject(event.target);
-        var index:int = target.parent.getChildIndex(target);
+		var parent:DisplayObjectContainer = target.parent;
+		if (!parent)
+			return;
+        var index:int = parent.getChildIndex(target);
         
-        //If the separator is not in locked region, column index need to be adjusted
-        if(lockedColumnCount > 0 &&
-           target.parent == UIComponent(getLines().getChildByName("header")))
+        // If the separator is not in locked region, column index need to be adjusted
+        if (lockedColumnCount > 0 &&
+           parent == UIComponent(getLines().getChildByName("header")))
             index += (lockedColumnCount - 1);
 
         var optimumColumns:Array = getOptimumColumns();
-        if (!optimumColumns[index].resizable)
-            return;
+		if (index < 0 || index >= optimumColumns.length)
+			return;
+		if (!optimumColumns[index] || !optimumColumns[index].resizable)
+			return;
 
         if (itemEditorInstance)
             endEdit(AdvancedDataGridEventReason.OTHER);
@@ -7703,7 +7725,7 @@ public class AdvancedDataGridBaseEx extends AdvancedDataGridBase implements IIME
         // TODO - we should substract the resized column separatos's width 
         var maxWidth:Number = unscaledWidth - separatorWidth - vsw ;
         var index:int;
-        if(getOptimumColumns() == visibleColumns)
+        if (getOptimumColumns() == visibleColumns)
             index = absoluteToVisibleColumnIndex(resizingColumn.colNum);
         else
             index = absoluteToDisplayColumnIndex(resizingColumn.colNum);
@@ -7730,7 +7752,10 @@ public class AdvancedDataGridBaseEx extends AdvancedDataGridBase implements IIME
 
         listContent.removeChild(DisplayObject(resizeGraphic));
 
-        cursorManager.removeCursor(resizeCursorID);
+		if (resizeCursorID != CursorManager.NO_CURSOR) {
+			cursorManager.removeCursor(resizeCursorID);
+			resizeCursorID =  CursorManager.NO_CURSOR;
+		}
 
         var c:AdvancedDataGridColumn = resizingColumn;
         resizingColumn = null;

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/d7f78c41/frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as b/frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as
index aeadecf..533af53 100644
--- a/frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as
+++ b/frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as
@@ -448,13 +448,25 @@ public class AdvancedDataGridItemRenderer extends UITextField
     public function validateProperties():void
     {
         invalidatePropertiesFlag = false;
-        if (_listData)
+        if (_listData && listData.owner)
         {
             var dg:AdvancedDataGrid = AdvancedDataGrid(_listData.owner);
 
-            var column:AdvancedDataGridColumn =
-                dg.columns[_listData.columnIndex];
-
+			if (_listData.columnIndex < 0 || _listData.columnIndex >= dg.columns.length) {
+				text = " ";
+				toolTip = null;
+				return;
+			}
+			
+			var column:AdvancedDataGridColumn =
+				dg.columns[_listData.columnIndex];
+			
+			if (column == null) {
+				text = " ";
+				toolTip = null;
+				return;
+			}
+			
             text = _listData.label;
             
             if (_data is AdvancedDataGridColumn)