Added convenience method for determining if a table has merged cells.
Allow a CellRange to have a null table


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

Branch: refs/heads/develop
Commit: b9011500beae1c9774d9621bdc706b5e85202cf9
Parents: e5a3382
Author: Harbs <ha...@in-tools.com>
Authored: Wed Oct 22 14:50:19 2014 +0300
Committer: Harbs <ha...@in-tools.com>
Committed: Wed Oct 22 14:50:19 2014 +0300

----------------------------------------------------------------------
 .../src/flashx/textLayout/elements/CellRange.as |  7 +++++--
 .../flashx/textLayout/elements/TableElement.as  | 22 ++++++++++++++++++++
 2 files changed, 27 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-tlf/blob/b9011500/textLayout/src/flashx/textLayout/elements/CellRange.as
----------------------------------------------------------------------
diff --git a/textLayout/src/flashx/textLayout/elements/CellRange.as 
b/textLayout/src/flashx/textLayout/elements/CellRange.as
index 27e8490..8e83003 100644
--- a/textLayout/src/flashx/textLayout/elements/CellRange.as
+++ b/textLayout/src/flashx/textLayout/elements/CellRange.as
@@ -54,10 +54,13 @@ package flashx.textLayout.elements
                                return null;
                        if (coords.row < 0)
                                coords.row = 0;
-                       if (coords.row >= _table.numRows)
-                               coords.row = _table.numRows-1;
                        if (coords.column < 0)
                                coords.column = 0;
+                       if(_table == null)
+                               return coords;
+                       
+                       if (coords.row >= _table.numRows)
+                               coords.row = _table.numRows-1;
                        if (coords.column >= _table.numColumns)
                                coords.column = _table.numColumns-1;
                        return coords;

http://git-wip-us.apache.org/repos/asf/flex-tlf/blob/b9011500/textLayout/src/flashx/textLayout/elements/TableElement.as
----------------------------------------------------------------------
diff --git a/textLayout/src/flashx/textLayout/elements/TableElement.as 
b/textLayout/src/flashx/textLayout/elements/TableElement.as
index ed82a28..a9472c1 100644
--- a/textLayout/src/flashx/textLayout/elements/TableElement.as
+++ b/textLayout/src/flashx/textLayout/elements/TableElement.as
@@ -408,6 +408,25 @@ package flashx.textLayout.elements
                }
                
                /**
+                * Convenience method for checking if table has merged cells
+                * 
+                */
+               public function hasMergedCells():Boolean
+               {
+                       var cell:TableCellElement;
+                       var child:*;
+                       if(mxmlChildren == null)
+                               return false;
+                       for each(child in mxmlChildren)
+                       {
+                               cell = child as TableCellElement;
+                               if( cell && (cell.columnSpan > 1 || 
cell.rowSpan > 1) )
+                                       return true;
+                       }
+                       return false;
+               }
+               
+               /**
                 * Inserts a column at the end of the table. If a column is not 
provided one is created. 
                 * 
                 * @see addColumn
@@ -1441,6 +1460,9 @@ package flashx.textLayout.elements
                        return _tableBlocks;
                }
                
+               /**
+                * Returns a vector of the table blocks in the specified cell 
range.
+                **/
                public function 
getTableBlocksInRange(start:CellCoordinates,end:CellCoordinates):Vector.<TextFlowTableBlock>
                {
                        var coords:CellCoordinates = start.clone();

Reply via email to