From: Scott H. <sco...@us...> - 2005-05-27 06:03:01
|
Update of /cvsroot/actionstep/actionstep/src/org/actionstep In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25708/src/org/actionstep Modified Files: NSMatrix.as Log Message: fixed some with adding columns and rows Index: NSMatrix.as =================================================================== RCS file: /cvsroot/actionstep/actionstep/src/org/actionstep/NSMatrix.as,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** NSMatrix.as 27 May 2005 05:15:21 -0000 1.9 --- NSMatrix.as 27 May 2005 06:02:51 -0000 1.10 *************** *** 576,581 **** case 1: ! var loc:Object = m_sel.lastObject(); ! return cellAtRowColumn(loc.row, loc.column); } --- 576,581 ---- case 1: ! var loc:Number = Number(m_sel.lastObject()); ! return NSCell(m_cells.objectAtIndex(loc)); } *************** *** 584,590 **** // default case (selections > 1) // ! var selLoc:Object = getLowestRightmostSelectionLocation(); ! return cellAtRowColumn(selLoc.row, selLoc.column); } --- 584,590 ---- // default case (selections > 1) // ! var selLoc:Number = getLowestRightmostSelectionLocation(); ! return NSCell(m_cells.objectAtIndex(selLoc)); } *************** *** 601,609 **** // var cellItr:NSEnumerator = m_sel.objectEnumerator(); ! var selLoc:Object; ! while (null != (selLoc = cellItr.nextObject())) { ! res.addObject(cellAtRowColumn(selLoc.row, selLoc.column)); } --- 601,609 ---- // var cellItr:NSEnumerator = m_sel.objectEnumerator(); ! var selLoc:Number; ! while (null != (selLoc = Number(cellItr.nextObject()))) { ! res.addObject(m_cells.objectAtIndex(selLoc)); } *************** *** 971,979 **** if (cnt > 0 && (m_numrows == 0 || m_numcols == 0)) { renewRowsColumnsRowSpaceColSpace(cnt, 1, 0, cnt); } else { ! renewRowsColumnsRowSpaceColSpace(m_numrows == 0 ? m_numrows : 1, i, 0, cnt); } --- 971,981 ---- if (cnt > 0 && (m_numrows == 0 || m_numcols == 0)) { + TRACE("cnt > 0 && (m_numrows == 0 || m_numcols == 0)"); renewRowsColumnsRowSpaceColSpace(cnt, 1, 0, cnt); } else { ! TRACE("num rows: " + m_numrows + ", column: " + i); ! renewRowsColumnsRowSpaceColSpace(m_numrows == 0 ? 1 : m_numrows, i, 0, cnt); } *************** *** 1011,1014 **** --- 1013,1017 ---- } + recalcCellSize(); setNeedsDisplay(true); *************** *** 1081,1085 **** { renewRowsColumnsRowSpaceColSpace(i, ! m_numcols == 0 ? m_numcols : 1, cnt, 0); } --- 1084,1088 ---- { renewRowsColumnsRowSpaceColSpace(i, ! m_numcols == 0 ? 1 : m_numcols, cnt, 0); } *************** *** 1111,1114 **** --- 1114,1121 ---- selectCellAtRowColumn(0, 0); } + + recalcCellSize(); + + setNeedsDisplay(true); } *************** *** 1582,1586 **** m_selcell_row = row; m_selcell_column = column; ! m_sel.addObject({row: row, column: column}); // --- 1589,1593 ---- m_selcell_row = row; m_selcell_column = column; ! m_sel.addObject(indexFromRowColumn(row, column)); // *************** *** 1764,1768 **** m_mousedownflags = theEvent.modifierFlags; // record flags ! super.mouseDown(theEvent); } --- 1771,1775 ---- m_mousedownflags = theEvent.modifierFlags; // record flags ! //super.mouseDown(theEvent); } *************** *** 1960,1963 **** --- 1967,1972 ---- rows:Number, columns:Number, rowSpace:Number, colSpace:Number):Void { + TRACE(rows + ", " + columns); + // // Check for illegal arguments (negative column or row). *************** *** 1983,1989 **** // if (columns > m_numcols) // Only expand if necessary ! { ! var numNewCols:Number = columns - m_numcols; ! // // Loop through the rows, adding the column to each. --- 1992,1996 ---- // if (columns > m_numcols) // Only expand if necessary ! { // // Loop through the rows, adding the column to each. *************** *** 1991,1994 **** --- 1998,2003 ---- for (var i:Number = m_numrows; i > 0; i--) { + var numNewCols:Number = columns - m_numcols; + var insertPoint:Number = i * m_numcols; *************** *** 1997,2001 **** } } ! else { var numColsToRemove:Number = m_numcols - columns; --- 2006,2010 ---- } } ! else if (columns < m_numcols) { var numColsToRemove:Number = m_numcols - columns; *************** *** 2025,2029 **** m_cells.addObject(makeCell()); } ! else { var numCellsToRemove:Number = (m_numrows - rows) * m_numcols; --- 2034,2038 ---- m_cells.addObject(makeCell()); } ! else if (rows < m_numrows) { var numCellsToRemove:Number = (m_numrows - rows) * m_numcols; *************** *** 2036,2039 **** --- 2045,2049 ---- m_numrows = rows; + TRACE("cells: " + m_cells); //deselectAllCells(); } *************** *** 2091,2105 **** * Returns the lowest, rightmost selected cell, with row taking precedence. */ ! private function getLowestRightmostSelectionLocation():Object { var cellItr:NSEnumerator = m_sel.objectEnumerator(); var selLoc:Object; var resLoc:Object; ! while (null != (selLoc = cellItr.nextObject())) { if (resLoc == null) // Set resLoc to the first item in the list. { resLoc = selLoc; continue; } --- 2101,2120 ---- * Returns the lowest, rightmost selected cell, with row taking precedence. */ ! private function getLowestRightmostSelectionLocation():Number { var cellItr:NSEnumerator = m_sel.objectEnumerator(); var selLoc:Object; var resLoc:Object; + var resIdx:Number; + var index:Number; ! while (null != (index = Number(cellItr.nextObject()))) { + selLoc = rowColumnFromIndex(index); + if (resLoc == null) // Set resLoc to the first item in the list. { resLoc = selLoc; + resIdx = index; continue; } *************** *** 2112,2123 **** { resLoc = selLoc; } else // == pick farthest to right { resLoc = resLoc.column > selLoc.column ? resLoc : selLoc; } } ! return resLoc; } --- 2127,2140 ---- { resLoc = selLoc; + resIdx = index; } else // == pick farthest to right { resLoc = resLoc.column > selLoc.column ? resLoc : selLoc; + resIdx = indexFromRowColumn(resLoc.row, resLoc.column); } } ! return resIdx; } *************** *** 2254,2257 **** --- 2271,2288 ---- } + + /** + * Given an index, returns an object with row and column properties. + */ + private function rowColumnFromIndex(index:Number):Object + { + var ret:Object = new Object(); + + ret.row = Math.ceil(index / m_numcols); + ret.column = index % m_numrows; + + return ret; + } + //****************************************************** //* Public Static Properties * |