Commit 4c89ceaa authored by Alexander.Trofimov's avatar Alexander.Trofimov Committed by Alexander.Trofimov

Добавил возможность skipHelpSelector (при вставке пропустить обработку подсказки)

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@63883 954022d7-b5bf-4e40-9824-e11837661b57
parent 0e9d5e7e
...@@ -608,9 +608,8 @@ ...@@ -608,9 +608,8 @@
// Не смогли добавить... // Не смогли добавить...
return false; return false;
} }
} } else {
else { if (!isDefName)
if( !isDefName )
// Это уже форула, добавляем без '=' // Это уже форула, добавляем без '='
functionName = functionName + "()"; functionName = functionName + "()";
} }
...@@ -619,7 +618,7 @@ ...@@ -619,7 +618,7 @@
// Вставим форумулу в текущую позицию // Вставим форумулу в текущую позицию
this._addChars(functionName); this._addChars(functionName);
// Меняем позицию курсора внутрь скобок // Меняем позицию курсора внутрь скобок
if( !isDefName ) if (!isDefName)
this._moveCursor(kPosition, this.cursorPos - 1); this._moveCursor(kPosition, this.cursorPos - 1);
}; };
......
...@@ -148,9 +148,10 @@ ...@@ -148,9 +148,10 @@
this.fontRenderingMode = null; this.fontRenderingMode = null;
this.popUpSelector = null; this.popUpSelector = null;
this.formulasList = null; // Список всех формул this.formulasList = null; // Список всех формул
this.lastFormulaPos = -1; // Последняя позиция формулы this.lastFormulaPos = -1; // Последняя позиция формулы
this.lastFormulaName = ""; // Последний кусок формулы this.lastFormulaName = ""; // Последний кусок формулы
this.skipHelpSelector = false; // Пока true - не показываем окно подсказки
this.lastFindOptions = null; // Последний поиск (параметры) this.lastFindOptions = null; // Последний поиск (параметры)
this.lastFindResults = {}; // Результаты поиска (для поиска по всей книге, чтобы перейти на другой лист) this.lastFindResults = {}; // Результаты поиска (для поиска по всей книге, чтобы перейти на другой лист)
...@@ -1519,6 +1520,8 @@ ...@@ -1519,6 +1520,8 @@
}; };
WorkbookView.prototype._onUpdateCellEditor = function (text, cursorPosition, isFormula, formulaPos, formulaName) { WorkbookView.prototype._onUpdateCellEditor = function (text, cursorPosition, isFormula, formulaPos, formulaName) {
if (this.skipHelpSelector)
return;
// ToDo для ускорения можно завести объект, куда класть результаты поиска по формулам и второй раз не искать. // ToDo для ускорения можно завести объект, куда класть результаты поиска по формулам и второй раз не искать.
var arrResult = []; var arrResult = [];
if (isFormula && formulaName) { if (isFormula && formulaName) {
...@@ -1554,28 +1557,35 @@ ...@@ -1554,28 +1557,35 @@
// Вставка формулы в редактор // Вставка формулы в редактор
WorkbookView.prototype.insertFormulaInEditor = function (functionName, autoComplete, isDefName) { WorkbookView.prototype.insertFormulaInEditor = function (functionName, autoComplete, isDefName) {
var t = this, ws = this.getWorksheet(), cursorPos var t = this, ws = this.getWorksheet(), cursorPos;
// Проверяем, открыт ли редактор // Проверяем, открыт ли редактор
if (ws.getCellEditMode()) { if (ws.getCellEditMode()) {
if (isDefName)
this.skipHelpSelector = true;
// При autoComplete заканчиваем ввод // При autoComplete заканчиваем ввод
if (autoComplete) if (autoComplete)
this.cellEditor.close(true); this.cellEditor.close(true);
else if (false === this.cellEditor.insertFormula (functionName,isDefName)) { else if (false === this.cellEditor.insertFormula(functionName, isDefName)) {
// Не смогли вставить формулу, закроем редактор, с сохранением текста // Не смогли вставить формулу, закроем редактор, с сохранением текста
this.cellEditor.close(true); this.cellEditor.close(true);
} }
if (isDefName)
this.skipHelpSelector = false;
} else { } else {
// Он закрыт // Проверка глобального лока
if (this.collaborativeEditing.getGlobalLock())
return false;
// Редактор закрыт
var cellRange = null; var cellRange = null;
// Если нужно сделать автозаполнение формулы, то ищем ячейки) // Если нужно сделать автозаполнение формулы, то ищем ячейки)
if (autoComplete) { if (autoComplete) {
cellRange = ws.autoCompleteFormula(functionName); cellRange = ws.autoCompleteFormula(functionName);
} }
if(isDefName){ if (isDefName) {
functionName = "=" + functionName functionName = "=" + functionName;
} } else{
else{
if (cellRange) { if (cellRange) {
if (cellRange.notEditCell) { if (cellRange.notEditCell) {
// Мы уже ввели все что нужно, редактор открывать не нужно // Мы уже ввели все что нужно, редактор открывать не нужно
...@@ -1591,10 +1601,6 @@ ...@@ -1591,10 +1601,6 @@
cursorPos = functionName.length - 1; cursorPos = functionName.length - 1;
} }
// Проверка глобального лока
if (this.collaborativeEditing.getGlobalLock())
return false;
var arn = ws.activeRange.clone(true); var arn = ws.activeRange.clone(true);
var openEditor = function (res) { var openEditor = function (res) {
...@@ -1604,6 +1610,8 @@ ...@@ -1604,6 +1610,8 @@
ws.setCellEditMode(true); ws.setCellEditMode(true);
t.handlers.trigger("asc_onEditCell", c_oAscCellEditorState.editStart); t.handlers.trigger("asc_onEditCell", c_oAscCellEditorState.editStart);
if (isDefName)
t.skipHelpSelector = true;
// Открываем, с выставлением позиции курсора // Открываем, с выставлением позиции курсора
if (!ws.openCellEditorWithText(t.cellEditor, functionName, cursorPos, /*isFocus*/false, if (!ws.openCellEditorWithText(t.cellEditor, functionName, cursorPos, /*isFocus*/false,
/*activeRange*/arn)) { /*activeRange*/arn)) {
...@@ -1614,6 +1622,8 @@ ...@@ -1614,6 +1622,8 @@
ws.setCellEditMode(false); ws.setCellEditMode(false);
ws.setFormulaEditMode(false); ws.setFormulaEditMode(false);
} }
if (isDefName)
t.skipHelpSelector = false;
} else { } else {
t.controller.setCellEditMode(false); t.controller.setCellEditMode(false);
t.controller.setStrictClose(false); t.controller.setStrictClose(false);
......
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