Commit 89d345ad authored by Alexander.Trofimov's avatar Alexander.Trofimov Committed by Alexander.Trofimov

Поправил функцию перемещения диапазона. Была некоторая неправильность в обновлении.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@57497 954022d7-b5bf-4e40-9824-e11837661b57
parent c398737e
...@@ -7739,41 +7739,44 @@ ...@@ -7739,41 +7739,44 @@
return d; return d;
}; };
WorksheetView.prototype._cleanSelectionMoveRange = function () {
// Перерисовываем и сбрасываем параметры
this.cleanSelection();
this.activeMoveRange = null;
this.startCellMoveRange = null;
this._drawSelection();
};
/* Функция для применения перемещения диапазона */ /* Функция для применения перемещения диапазона */
WorksheetView.prototype.applyMoveRangeHandle = function (ctrlKey) { WorksheetView.prototype.applyMoveRangeHandle = function (ctrlKey) {
var t = this; if (null === this.activeMoveRange) {
if (null === t.activeMoveRange) {
// Сбрасываем параметры // Сбрасываем параметры
t.startCellMoveRange = null; this.startCellMoveRange = null;
return; return;
} }
var arnFrom = t.activeRange.clone(true); var arnFrom = this.activeRange.clone(true);
var arnTo = t.activeMoveRange.clone(true); var arnTo = this.activeMoveRange.clone(true);
var resmove = t.model._prepareMoveRange(arnFrom, arnTo); if (arnFrom.isEqual(arnTo)) {
if( resmove == -2 ){ this._cleanSelectionMoveRange();
t.model.workbook.handlers.trigger("asc_onError", c_oAscError.ID.CannotMoveRange, c_oAscError.Level.NoCritical); return;
// Сбрасываем параметры
t.activeMoveRange = null;
t.startCellMoveRange = null;
t.isChanged = true;
t._updateCellsRange(new asc_Range(0, 0, arnFrom.c2 > arnTo.c2 ? arnFrom.c2 : arnTo.c2,
arnFrom.r2 > arnTo.r2 ? arnFrom.r2 : arnTo.r2), /*canChangeColWidth*/c_oAscCanChangeColWidth.none);
// Перерисовываем
t.cleanSelection();
t._drawSelection();
return false;
} else if( resmove == -1 ){
t.model.workbook.handlers.trigger("asc_onConfirmAction",
c_oAscConfirm.ConfirmReplaceRange,
function(can){t.moveRangeHandle(arnFrom, arnTo, can, ctrlKey)}
);
} else {
t.moveRangeHandle(arnFrom, arnTo, true, ctrlKey)
} }
var resmove = this.model._prepareMoveRange(arnFrom, arnTo);
if (resmove === -2) {
this.handlers.trigger("onErrorEvent", c_oAscError.ID.CannotMoveRange, c_oAscError.Level.NoCritical);
this._cleanSelectionMoveRange();
} else if (resmove === -1) {
var t = this;
this.model.workbook.handlers.trigger("asc_onConfirmAction", c_oAscConfirm.ConfirmReplaceRange,
function (can) {
if (can)
t.moveRangeHandle(arnFrom, arnTo, ctrlKey);
else
t._cleanSelectionMoveRange();
});
} else
this.moveRangeHandle(arnFrom, arnTo, ctrlKey);
}; };
WorksheetView.prototype.applyMoveResizeRangeHandle = function (target){ WorksheetView.prototype.applyMoveResizeRangeHandle = function (target){
...@@ -7784,26 +7787,30 @@ ...@@ -7784,26 +7787,30 @@
this.startCellMoveResizeRange2 = null; this.startCellMoveResizeRange2 = null;
}; };
WorksheetView.prototype.moveRangeHandle = function (arnFrom, arnTo, can, copyRange){ WorksheetView.prototype.moveRangeHandle = function (arnFrom, arnTo, copyRange){
var t = this; var t = this;
var onApplyMoveRangeHandleCallback = function (isSuccess) { var onApplyMoveRangeHandleCallback = function (isSuccess) {
if (false === isSuccess) {
t._cleanSelectionMoveRange();
return;
}
// Очищаем выделение // Очищаем выделение
t.cleanSelection(); t.cleanSelection();
if (true === isSuccess && !arnFrom.isEqual(arnTo) && can) {
//ToDo t.cleanDepCells(); //ToDo t.cleanDepCells();
History.Create_NewPoint(); History.Create_NewPoint();
History.SetSelection(arnFrom.clone()); History.SetSelection(arnFrom.clone());
History.SetSelectionRedo(arnTo.clone()); History.SetSelectionRedo(arnTo.clone());
History.StartTransaction(); History.StartTransaction();
if( !copyRange ) t.autoFilters._preMoveAutoFilters(arnFrom); if (!copyRange)
t.autoFilters._preMoveAutoFilters(arnFrom);
t.model._moveRange(arnFrom, arnTo, copyRange); t.model._moveRange(arnFrom, arnTo, copyRange);
t._updateCellsRange(arnTo); t._updateCellsRange(arnTo, false, true);
t.cleanSelection();
t.activeRange = arnTo.clone(true); t.activeRange = arnTo.clone(true);
t.cellCommentator.moveRangeComments(arnFrom, arnTo); t.cellCommentator.moveRangeComments(arnFrom, arnTo);
t.objectRender.moveRangeDrawingObject(arnFrom, arnTo, false); t.objectRender.moveRangeDrawingObject(arnFrom, arnTo, false);
if( !copyRange ) { if (!copyRange) {
t.autoFilters._moveAutoFilters(arnTo, arnFrom); t.autoFilters._moveAutoFilters(arnTo, arnFrom);
// Вызываем функцию пересчета для заголовков форматированной таблицы // Вызываем функцию пересчета для заголовков форматированной таблицы
t.autoFilters._renameTableColumn( arnFrom ); t.autoFilters._renameTableColumn( arnFrom );
...@@ -7811,17 +7818,12 @@ ...@@ -7811,17 +7818,12 @@
t.autoFilters.reDrawFilter( arnFrom ); t.autoFilters.reDrawFilter( arnFrom );
} }
History.EndTransaction(); History.EndTransaction();
}
// Сбрасываем параметры // Сбрасываем параметры
t.activeMoveRange = null; t.activeMoveRange = null;
t.startCellMoveRange = null; t.startCellMoveRange = null;
t.isChanged = true; // Тут будет отрисовка select-а
t._updateCellsRange(new asc_Range(0, 0, arnFrom.c2 > arnTo.c2 ? arnFrom.c2 : arnTo.c2, t._updateCellsRange(arnFrom);
arnFrom.r2 > arnTo.r2 ? arnFrom.r2 : arnTo.r2), /*canChangeColWidth*/c_oAscCanChangeColWidth.none);
// Перерисовываем
t.cleanSelection();
t._drawSelection();
}; };
this._isLockedCells ([arnFrom, arnTo], null, onApplyMoveRangeHandleCallback); this._isLockedCells ([arnFrom, arnTo], null, onApplyMoveRangeHandleCallback);
......
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