Commit 847d67f7 authored by Ilya Kirillov's avatar Ilya Kirillov

Рефакторинг функции CheckTargetUpdate, CheckCurPage. Также сделана начальная...

Рефакторинг функции CheckTargetUpdate, CheckCurPage. Также сделана начальная обработка этих функций для сносок.
parent 5a92b967
This diff is collapsed.
......@@ -165,14 +165,38 @@ CDocumentControllerBase.prototype.Get_ParentTextTransform = function()
{
return null;
};
/**
* Данная функция приходит из таблицы. Проверяет рассчитывается ли таблица по содержимому.
* @returns {boolean}
*/
CDocumentControllerBase.prototype.Check_AutoFit = function()
{
return false;
};
/**
* Данная функция нужна для обновления информации о предстоящем пересчете.
*/
CDocumentControllerBase.prototype.Refresh_RecalcData2 = function()
{
};
//----------------------------------------------------------------------------------------------------------------------
// Чисто виртуальные функции
//----------------------------------------------------------------------------------------------------------------------
/**
* Можно ли обновлять позицию курсора.
* @returns {boolean}
*/
CDocumentControllerBase.prototype.CanTargetUpdate = function(){return true;};
/**
* Пересчитываем текущую позицию.
*/
CDocumentControllerBase.prototype.RecalculateCurPos = function(){};
/**
* Получаем текущий номер страницы.
* @returns {number} -1 - значит, номер страницы определеить невозможно
*/
CDocumentControllerBase.prototype.GetCurPage = function(){return -1;};
/**
* Смещаем курсор влево
* @param {boolean} AddToSelect Добавлять ли к селекту смещение
......@@ -188,3 +212,9 @@ CDocumentControllerBase.prototype.Cursor_MoveLeft = function(AddToSelect, Word){
* @returns {boolean} Получилось ли перемещение, или мы достигли предела.
*/
CDocumentControllerBase.prototype.Cursor_MoveRight = function(AddToSelect, Word, FromPaste){return false;};
/**
* Добавляем элемент в параграф.
* @param oItem
* @param {boolean} bRecalculate - Пересчитывать ли после выполнения данной функции.
*/
CDocumentControllerBase.prototype.AddToParagraph = function(oItem, bRecalculate){};
......@@ -20,10 +20,22 @@ function CDrawingsController(LogicDocument, DrawingsObjects)
}
AscCommon.extendClass(CDrawingsController, CDocumentControllerBase);
CDrawingsController.prototype.CanTargetUpdate = function()
{
return true;
};
CDrawingsController.prototype.RecalculateCurPos = function()
{
this.DrawingObjects.recalculateCurPos();
};
CDrawingsController.prototype.GetCurPage = function()
{
var ParaDrawing = this.DrawingObjects.getMajorParaDrawing();
if (null !== ParaDrawing)
return ParaDrawing.PageNum;
return -1;
};
CDrawingsController.prototype.Cursor_MoveLeft = function(AddToSelect, Word)
{
return this.DrawingObjects.cursorMoveLeft(AddToSelect, Word);
......@@ -32,5 +44,15 @@ CDrawingsController.prototype.Cursor_MoveRight = function(AddToSelect, Word, Fro
{
return this.DrawingObjects.cursorMoveRight(AddToSelect, Word, FromPaste);
};
CDrawingsController.prototype.AddToParagraph = function(oItem, bRecalculate)
{
if (para_NewLine === oItem.Type && true === oItem.Is_PageOrColumnBreak())
return;
this.DrawingObjects.paragraphAdd(oItem, bRecalculate);
this.Logicdocument.Document_UpdateSelectionState();
this.Logicdocument.Document_UpdateUndoRedoState();
this.Logicdocument.Document_UpdateInterfaceState();
};
......@@ -234,11 +234,44 @@ CFootnotesController.prototype.Is_EmptyPage = function(nPageIndex)
return false;
};
CFootnotesController.prototype.Refresh_RecalcData2 = function(nRelPageIndex)
{
var nAbsPageIndex = nRelPageIndex;
if (this.LogicDocument.Pages[nAbsPageIndex])
{
var nIndex = this.LogicDocument.Pages[nAbsPageIndex].Pos;
this.LogicDocument.Refresh_RecalcData2(nIndex, nAbsPageIndex);
}
};
//----------------------------------------------------------------------------------------------------------------------
// Интерфейс CDocumentControllerBase
//----------------------------------------------------------------------------------------------------------------------
CFootnotesController.prototype.CanTargetUpdate = function()
{
return true;
};
CFootnotesController.prototype.RecalculateCurPos = function()
{
if (null !== this.CurFootnote)
this.CurFootnote.RecalculateCurPos();
};
CFootnotesController.prototype.GetCurPage = function()
{
// TODO: Доделать селект и курсор
if (true === this.Selection.Use)
{
}
else
{
if (null !== this.CurFootnote)
return this.CurFootnote.Get_StartPage_Absolute();
}
return -1;
};
CFootnotesController.prototype.Cursor_MoveLeft = function(AddToSelect, Word)
{
var bRetValue = false;
......@@ -273,6 +306,18 @@ CFootnotesController.prototype.Cursor_MoveRight = function(AddToSelect, Word, Fr
return bRetValue;
};
CFootnotesController.prototype.AddToParagraph = function(oItem, bRecalculate)
{
// TODO: Доделать селект и курсор
if (true === this.Selection.Use)
{
}
else
{
if (null !== this.CurFootnote)
this.CurFootnote.Paragraph_Add(oItem, bRecalculate);
}
};
function CFootEndnotePage()
{
......
......@@ -23,10 +23,22 @@ function CHdrFtrController(LogicDocument, HdrFtr)
}
AscCommon.extendClass(CHdrFtrController, CDocumentControllerBase);
CHdrFtrController.prototype.CanTargetUpdate = function()
{
return true;
};
CHdrFtrController.prototype.RecalculateCurPos = function()
{
this.HdrFtr.RecalculateCurPos();
};
CHdrFtrController.prototype.GetCurPage = function()
{
var CurHdrFtr = this.HdrFtr.CurHdrFtr;
if (null !== CurHdrFtr && -1 !== CurHdrFtr.RecalcInfo.CurPage)
return CurHdrFtr.RecalcInfo.CurPage;
return -1;
};
CHdrFtrController.prototype.Cursor_MoveLeft = function(AddToSelect, Word)
{
return this.HdrFtr.Cursor_MoveLeft(AddToSelect, Word);
......@@ -34,4 +46,13 @@ CHdrFtrController.prototype.Cursor_MoveLeft = function(AddToSelect, Word)
CHdrFtrController.prototype.Cursor_MoveRight = function(AddToSelect, Word, FromPaste)
{
return this.HdrFtr.Cursor_MoveRight(AddToSelect, Word, FromPaste);
};
CHdrFtrController.prototype.AddToParagraph = function(oItem, bRecalculate)
{
if (para_NewLine === oItem.Type && true === oItem.Is_PageOrColumnBreak())
return;
this.HdrFtr.Paragraph_Add(oItem, bRecalculate);
this.LogicDocument.Document_UpdateSelectionState();
this.LogicDocument.Document_UpdateUndoRedoState();
};
\ No newline at end of file
......@@ -17,10 +17,18 @@ function CLogicDocumentController(LogicDocument)
}
AscCommon.extendClass(CLogicDocumentController, CDocumentControllerBase);
CLogicDocumentController.prototype.CanTargetUpdate = function()
{
return this.LogicDocument.controller_CanTargetUpdate();
};
CLogicDocumentController.prototype.RecalculateCurPos = function()
{
this.LogicDocument.controller_RecalculateCurPos();
};
CLogicDocumentController.prototype.GetCurPage = function()
{
return this.LogicDocument.controller_GetCurPage();
};
CLogicDocumentController.prototype.Cursor_MoveLeft = function(AddToSelect, Word)
{
return this.LogicDocument.controller_CursorMoveLeft(AddToSelect, Word);
......@@ -29,5 +37,8 @@ CLogicDocumentController.prototype.Cursor_MoveRight = function(AddToSelect, Word
{
return this.LogicDocument.controller_CursorMoveRight(AddToSelect, Word, FromPaste);
};
CLogicDocumentController.prototype.AddToParagraph = function(oItem)
{
this.LogicDocument.controller_AddToParagraph(oItem);
};
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