Changeset 5572


Ignore:
Timestamp:
06/08/2010 07:02:34 PM (5 years ago)
Author:
garry.yao
Message:

#5268: Adding 'tableresize' as a default plugin, but load on demand.

Location:
CKEditor/branches/versions/3.4.x
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/branches/versions/3.4.x/CHANGES.html

    r5549 r5572  
    3636        </h1>
    3737        <h3>
    38                         CKEditor 3.3.1 (SVN)</h3>
     38                        CKEditor 3.4 (SVN)</h3>
    3939        <p>
    4040                        New features:</p>
    4141        <ul>
    42                         <li></li>
     42                <li><a href="http://dev.fckeditor.net/ticket/5628">#5628</a> : Port 'DragResizeTable' plugin from FCKEditor 2.x.</li>
    4343        </ul>
    4444        <p>
  • CKEditor/branches/versions/3.4.x/_source/plugins/tabletools/plugin.js

    r5534 r5572  
    399399                }
    400400                range.select( true );
    401         }
    402 
    403         function buildTableMap( table )
    404         {
    405 
    406                 var aRows = table.$.rows ;
    407 
    408                 // Row and Column counters.
    409                 var r = -1 ;
    410 
    411                 var aMap = [];
    412 
    413                 for ( var i = 0 ; i < aRows.length ; i++ )
    414                 {
    415                         r++ ;
    416                         !aMap[r] && ( aMap[r] = [] );
    417 
    418                         var c = -1 ;
    419 
    420                         for ( var j = 0 ; j < aRows[i].cells.length ; j++ )
    421                         {
    422                                 var oCell = aRows[i].cells[j] ;
    423 
    424                                 c++ ;
    425                                 while ( aMap[r][c] )
    426                                         c++ ;
    427 
    428                                 var iColSpan = isNaN( oCell.colSpan ) ? 1 : oCell.colSpan ;
    429                                 var iRowSpan = isNaN( oCell.rowSpan ) ? 1 : oCell.rowSpan ;
    430 
    431                                 for ( var rs = 0 ; rs < iRowSpan ; rs++ )
    432                                 {
    433                                         if ( !aMap[r + rs] )
    434                                                 aMap[r + rs] = new Array() ;
    435 
    436                                         for ( var cs = 0 ; cs < iColSpan ; cs++ )
    437                                         {
    438                                                 aMap[r + rs][c + cs] = aRows[i].cells[j] ;
    439                                         }
    440                                 }
    441 
    442                                 c += iColSpan - 1 ;
    443                         }
    444                 }
    445                 return aMap ;
    446401        }
    447402
     
    499454                        firstCell = cells[ 0 ],
    500455                        table = firstCell.getAscendant( 'table' ),
    501                         map = buildTableMap( table ),
     456                        map = CKEDITOR.tools.buildTableMap( table ),
    502457                        mapHeight = map.length,
    503458                        mapWidth = map[ 0 ].length,
     
    634589                        tr = cell.getParent(),
    635590                        table = tr.getAscendant( 'table' ),
    636                         map = buildTableMap( table ),
     591                        map = CKEDITOR.tools.buildTableMap( table ),
    637592                        rowIndex = tr.$.rowIndex,
    638593                        colIndex = cellInRow( map, rowIndex, cell ),
     
    710665                        tr = cell.getParent(),
    711666                        table = tr.getAscendant( 'table' ),
    712                         map = buildTableMap( table ),
     667                        map = CKEDITOR.tools.buildTableMap( table ),
    713668                        rowIndex = tr.$.rowIndex,
    714669                        colIndex = cellInRow( map, rowIndex, cell ),
     
    11151070        CKEDITOR.plugins.add( 'tabletools', CKEDITOR.plugins.tabletools );
    11161071})();
     1072
     1073/**
     1074 * Create a two-dimension array that reflects the actual layout of table cells,
     1075 * with cell spans, with mappings to the original td elements.
     1076 * @param table {CKEDITOR.dom.element}
     1077 */
     1078CKEDITOR.tools.buildTableMap = function ( table )
     1079{
     1080        var aRows = table.$.rows ;
     1081
     1082        // Row and Column counters.
     1083        var r = -1 ;
     1084
     1085        var aMap = [];
     1086
     1087        for ( var i = 0 ; i < aRows.length ; i++ )
     1088        {
     1089                r++ ;
     1090                !aMap[r] && ( aMap[r] = [] );
     1091
     1092                var c = -1 ;
     1093
     1094                for ( var j = 0 ; j < aRows[i].cells.length ; j++ )
     1095                {
     1096                        var oCell = aRows[i].cells[j] ;
     1097
     1098                        c++ ;
     1099                        while ( aMap[r][c] )
     1100                                c++ ;
     1101
     1102                        var iColSpan = isNaN( oCell.colSpan ) ? 1 : oCell.colSpan ;
     1103                        var iRowSpan = isNaN( oCell.rowSpan ) ? 1 : oCell.rowSpan ;
     1104
     1105                        for ( var rs = 0 ; rs < iRowSpan ; rs++ )
     1106                        {
     1107                                if ( !aMap[r + rs] )
     1108                                        aMap[r + rs] = [];
     1109
     1110                                for ( var cs = 0 ; cs < iColSpan ; cs++ )
     1111                                {
     1112                                        aMap[r + rs][c + cs] = aRows[i].cells[j] ;
     1113                                }
     1114                        }
     1115
     1116                        c += iColSpan - 1 ;
     1117                }
     1118        }
     1119        return aMap ;
     1120};
     1121
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy