Commit b51b6445 authored by GoshaZotov's avatar GoshaZotov

modify insertColumn function

parent fc52052f
...@@ -3592,7 +3592,7 @@ ...@@ -3592,7 +3592,7 @@
//renameDependencyNodes before move cells to store current location in history //renameDependencyNodes before move cells to store current location in history
var changedFormulas = this.renameDependencyNodes(offset, oActualRange); var changedFormulas = this.renameDependencyNodes(offset, oActualRange);
var redrawTablesArr = this.autoFilters.insertColumn("delCell", oActualRange, c_oAscInsertOptions.InsertColumns); var redrawTablesArr = this.autoFilters.insertColumn(oActualRange, nDif);
var oDefColPr = new AscCommonExcel.UndoRedoData_ColProp(); var oDefColPr = new AscCommonExcel.UndoRedoData_ColProp();
this.getRange3(start,0,stop,0)._foreachColNoEmpty(function(col){ this.getRange3(start,0,stop,0)._foreachColNoEmpty(function(col){
...@@ -3634,7 +3634,7 @@ ...@@ -3634,7 +3634,7 @@
var offset = {offsetRow: 0, offsetCol: count}; var offset = {offsetRow: 0, offsetCol: count};
//renameDependencyNodes before move cells to store current location in history //renameDependencyNodes before move cells to store current location in history
var changedFormulas = this.renameDependencyNodes(offset, oActualRange); var changedFormulas = this.renameDependencyNodes(offset, oActualRange);
var redrawTablesArr = this.autoFilters.insertColumn("insCells", oActualRange, c_oAscInsertOptions.InsertColumns); var redrawTablesArr = this.autoFilters.insertColumn(oActualRange, count);
this._updateFormulasParents(0, index + count, gc_nMaxRow0, gc_nMaxCol0, offset); this._updateFormulasParents(0, index + count, gc_nMaxRow0, gc_nMaxCol0, offset);
var prevCellsByCol = index > 0 ? this.cellsByCol[index - 1] : null; var prevCellsByCol = index > 0 ? this.cellsByCol[index - 1] : null;
...@@ -4504,7 +4504,7 @@ ...@@ -4504,7 +4504,7 @@
var offset = {offsetRow: 0, offsetCol: dif}; var offset = {offsetRow: 0, offsetCol: dif};
//renameDependencyNodes before move cells to store current location in history //renameDependencyNodes before move cells to store current location in history
var changedFormulas = this.renameDependencyNodes(offset, oBBox); var changedFormulas = this.renameDependencyNodes(offset, oBBox);
var redrawTablesArr = this.autoFilters.insertColumn( "delCell", oBBox, c_oAscDeleteOptions.DeleteCellsAndShiftLeft ); var redrawTablesArr = this.autoFilters.insertColumn( oBBox, dif );
this.getRange3(oBBox.r1, oBBox.c1, oBBox.r2, oBBox.c2)._foreachNoEmpty(function(cell){ this.getRange3(oBBox.r1, oBBox.c1, oBBox.r2, oBBox.c2)._foreachNoEmpty(function(cell){
t._removeCell(null, null, cell); t._removeCell(null, null, cell);
...@@ -4569,7 +4569,7 @@ ...@@ -4569,7 +4569,7 @@
var offset = {offsetRow: 0, offsetCol: dif}; var offset = {offsetRow: 0, offsetCol: dif};
//renameDependencyNodes before move cells to store current location in history //renameDependencyNodes before move cells to store current location in history
var changedFormulas = this.renameDependencyNodes(offset, oBBox); var changedFormulas = this.renameDependencyNodes(offset, oBBox);
var redrawTablesArr = this.autoFilters.insertColumn( "insCells", oBBox, c_oAscInsertOptions.InsertCellsAndShiftRight, displayNameFormatTable ); var redrawTablesArr = this.autoFilters.insertColumn( oBBox, dif, displayNameFormatTable );
this._updateFormulasParents(oActualRange.r1, oActualRange.c1, oActualRange.r2, oActualRange.c2, offset); this._updateFormulasParents(oActualRange.r1, oActualRange.c1, oActualRange.r2, oActualRange.c2, offset);
var cellsByColLength = this.cellsByCol.length; var cellsByColLength = this.cellsByCol.length;
......
...@@ -1357,40 +1357,35 @@ ...@@ -1357,40 +1357,35 @@
} }
return false; return false;
}, },
_cleanStylesTables: function(redrawTablesArr) { _cleanStylesTables: function(redrawTablesArr) {
for(var i = 0; i < redrawTablesArr.length; i++) { for(var i = 0; i < redrawTablesArr.length; i++) {
this._cleanStyleTable(redrawTablesArr[i].oldfilterRef); this._cleanStyleTable(redrawTablesArr[i].oldfilterRef);
} }
}, },
_setStylesTables: function(redrawTablesArr) { _setStylesTables: function(redrawTablesArr) {
for(var i = 0; i < redrawTablesArr.length; i++) { for(var i = 0; i < redrawTablesArr.length; i++) {
this._setColorStyleTable(redrawTablesArr[i].newFilter.Ref, redrawTablesArr[i].newFilter, null, true); this._setColorStyleTable(redrawTablesArr[i].newFilter.Ref, redrawTablesArr[i].newFilter, null, true);
} }
}, },
redrawStylesTables: function(redrawTablesArr) { redrawStylesTables: function(redrawTablesArr) {
//set styles for tables //set styles for tables
this._cleanStylesTables(redrawTablesArr); this._cleanStylesTables(redrawTablesArr);
this._setStylesTables(redrawTablesArr); this._setStylesTables(redrawTablesArr);
}, },
insertColumn: function(type, activeRange, insertType, displayNameFormatTable, bHistoryStyles)
insertColumn: function(activeRange, diff, displayNameFormatTable)
{ {
var worksheet = this.worksheet; var worksheet = this.worksheet;
var t = this; var t = this;
var bUndoChanges = worksheet.workbook.bUndoChanges; var bUndoChanges = worksheet.workbook.bUndoChanges;
var bRedoChanges = worksheet.workbook.bRedoChanges; var bRedoChanges = worksheet.workbook.bRedoChanges;
var DeleteColumns = ((insertType == c_oAscDeleteOptions.DeleteColumns && type == 'delCell') || insertType == c_oAscInsertOptions.InsertColumns) ? true : false;
activeRange = activeRange.clone();
var diff = activeRange.c2 - activeRange.c1 + 1;
var redrawTablesArr = [];
if(type === "delCell") activeRange = activeRange.clone();
diff = - diff;
if(DeleteColumns)//в случае, если удаляем столбцы, тогда расширяем активную область область по всем строкам
{
activeRange.r1 = 0;
activeRange.r2 = AscCommon.gc_nMaxRow - 1;
}
var redrawTablesArr = [];
var changeFilter = function(filter, bTablePart) var changeFilter = function(filter, bTablePart)
{ {
var ref = filter.Ref; var ref = filter.Ref;
...@@ -1411,9 +1406,7 @@ ...@@ -1411,9 +1406,7 @@
if(diff < 0) if(diff < 0)
{ {
diffColId = ref.c1 - activeRange.c2 - 1; diffColId = ref.c1 - activeRange.c2 - 1;
filter.deleteTableColumns(activeRange); filter.deleteTableColumns(activeRange);
filter.changeRef(-diffColId, null, true); filter.changeRef(-diffColId, null, true);
} }
...@@ -1425,9 +1418,13 @@ ...@@ -1425,9 +1418,13 @@
diffColId = activeRange.c1 - ref.c2 - 1; diffColId = activeRange.c1 - ref.c2 - 1;
if(diff < 0) if(diff < 0)
{
filter.deleteTableColumns(activeRange); filter.deleteTableColumns(activeRange);
}
else else
{
filter.addTableColumns(activeRange, t); filter.addTableColumns(activeRange, t);
}
filter.changeRef(diffColId); filter.changeRef(diffColId);
} }
...@@ -1436,9 +1433,13 @@ ...@@ -1436,9 +1433,13 @@
oldFilter = filter.clone(null); oldFilter = filter.clone(null);
if(diff < 0) if(diff < 0)
{
filter.deleteTableColumns(activeRange); filter.deleteTableColumns(activeRange);
}
else else
{
filter.addTableColumns(activeRange, t); filter.addTableColumns(activeRange, t);
}
filter.changeRef(diff); filter.changeRef(diff);
...@@ -1465,11 +1466,13 @@ ...@@ -1465,11 +1466,13 @@
j--; j--;
} }
else else
{
autoFilter.FilterColumns[j].ColId = newColId; autoFilter.FilterColumns[j].ColId = newColId;
} }
} }
} }
} }
}
//History //History
if(!bUndoChanges && !bRedoChanges /*&& !notAddToHistory*/ && oldFilter) if(!bUndoChanges && !bRedoChanges /*&& !notAddToHistory*/ && oldFilter)
...@@ -1484,24 +1487,31 @@ ...@@ -1484,24 +1487,31 @@
//set style //set style
if(oldFilter && bTablePart) if(oldFilter && bTablePart)
{
redrawTablesArr.push({oldfilterRef: oldFilter.Ref, newFilter: filter}); redrawTablesArr.push({oldfilterRef: oldFilter.Ref, newFilter: filter});
} }
}
}; };
//change autoFilter //change autoFilter
if(worksheet.AutoFilter) if(worksheet.AutoFilter)
{
changeFilter(worksheet.AutoFilter); changeFilter(worksheet.AutoFilter);
}
//change TableParts //change TableParts
var tableParts = worksheet.TableParts; var tableParts = worksheet.TableParts;
for(var i = 0; i < tableParts.length; i++) for(var i = 0; i < tableParts.length; i++)
{
changeFilter(tableParts[i], true); changeFilter(tableParts[i], true);
}
if(displayNameFormatTable && type == 'insCells') if(displayNameFormatTable && diff > 0)
{ {
redrawTablesArr = redrawTablesArr.concat(this.insertLastTableColumn(displayNameFormatTable, activeRange)); redrawTablesArr = redrawTablesArr.concat(this.insertLastTableColumn(displayNameFormatTable, activeRange));
} }
return redrawTablesArr; return redrawTablesArr;
}, },
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment