Commit d739cf67 authored by Ilya Kirillov's avatar Ilya Kirillov Committed by Alexander.Trofimov

В билдер добавлен кдасс ApiTableRowPr для работы с настройками строки таблицы....

В билдер добавлен кдасс ApiTableRowPr для работы с настройками строки таблицы. Класс ApiTable снаследован от класса ApiTableRowPr. Сделан тестовый пример для работы с настройками.
parent 729be7ba
...@@ -232,12 +232,14 @@ CTableRow.prototype = ...@@ -232,12 +232,14 @@ CTableRow.prototype =
// Сначала возьмем настройки по умолчанию для строки // Сначала возьмем настройки по умолчанию для строки
var RowPr = TablePr.TableRowPr.Copy(); var RowPr = TablePr.TableRowPr.Copy();
if (undefined !== TablePr.TablePr.TableCellSpacing)
RowPr.TableCellSpacing = TablePr.TablePr.TableCellSpacing;
// Совместим настройки с настройками для групп строк // Совместим настройки с настройками для групп строк
if ( true === TableLook.Is_BandHor() ) if ( true === TableLook.Is_BandHor() )
{ {
var RowBandSize = TablePr.TablePr.TableStyleRowBandSize; var RowBandSize = TablePr.TablePr.TableStyleRowBandSize;
var _CurIndex = ( true != TableLook.Is_FirstRow() ? CurIndex : CurIndex - 1 ) var _CurIndex = ( true != TableLook.Is_FirstRow() ? CurIndex : CurIndex - 1 );
var GroupIndex = ( 1 != RowBandSize ? Math.floor( _CurIndex / RowBandSize ) : _CurIndex ); var GroupIndex = ( 1 != RowBandSize ? Math.floor( _CurIndex / RowBandSize ) : _CurIndex );
if ( 0 === GroupIndex % 2 ) if ( 0 === GroupIndex % 2 )
RowPr.Merge(TablePr.TableBand1Horz.TableRowPr); RowPr.Merge(TablePr.TableBand1Horz.TableRowPr);
...@@ -288,6 +290,7 @@ CTableRow.prototype = ...@@ -288,6 +290,7 @@ CTableRow.prototype =
{ {
History.Add( this, { Type : AscDFH.historyitem_TableRow_Pr, Old : this.Pr, New : RowPr } ); History.Add( this, { Type : AscDFH.historyitem_TableRow_Pr, Old : this.Pr, New : RowPr } );
this.Pr = RowPr; this.Pr = RowPr;
this.Recalc_CompiledPr();
}, },
Get_Before : function() Get_Before : function()
...@@ -400,8 +403,7 @@ CTableRow.prototype = ...@@ -400,8 +403,7 @@ CTableRow.prototype =
Get_CellSpacing : function() Get_CellSpacing : function()
{ {
var RowPr = this.Get_CompiledPr( false ); return this.Get_CompiledPr(false).TableCellSpacing;
return RowPr.TableCellSpacing;
}, },
Set_CellSpacing : function(Value) Set_CellSpacing : function(Value)
......
...@@ -43,7 +43,6 @@ ...@@ -43,7 +43,6 @@
ApiParagraph.superclass.constructor.call(this, this, Paragraph.Pr.Copy()); ApiParagraph.superclass.constructor.call(this, this, Paragraph.Pr.Copy());
this.Paragraph = Paragraph; this.Paragraph = Paragraph;
} }
AscCommon.extendClass(ApiParagraph, ApiParaPr); AscCommon.extendClass(ApiParagraph, ApiParaPr);
/** /**
...@@ -87,7 +86,6 @@ ...@@ -87,7 +86,6 @@
ApiRun.superclass.constructor.call(this, this, Run.Pr.Copy()); ApiRun.superclass.constructor.call(this, this, Run.Pr.Copy());
this.Run = Run; this.Run = Run;
} }
AscCommon.extendClass(ApiRun, ApiTextPr); AscCommon.extendClass(ApiRun, ApiTextPr);
/** /**
...@@ -108,14 +106,26 @@ ...@@ -108,14 +106,26 @@
this.Section = Section; this.Section = Section;
} }
/**
* Class representing a table row properties.
* @constructor
*/
function ApiTableRowPr(Parent, RowPr)
{
this.Parent = Parent;
this.RowPr = RowPr;
}
/** /**
* Class representing a table row. * Class representing a table row.
* @constructor * @constructor
*/ */
function ApiTableRow(Row) function ApiTableRow(Row)
{ {
ApiTableRow.superclass.constructor.call(this, this, Row.Pr.Copy());
this.Row = Row; this.Row = Row;
} }
AscCommon.extendClass(ApiTableRow, ApiTableRowPr);
/** /**
* Class representing a table cell. * Class representing a table cell.
...@@ -938,16 +948,6 @@ ...@@ -938,16 +948,6 @@
return new ApiTableCell(this.Row.Content[nPos]); return new ApiTableCell(this.Row.Content[nPos]);
}; };
/**
* Set the height of the current table row within the current table.
* @param {("auto" | "atLeast")} sHRule - Specifies the meaning of the height specified for this table row.
* @param {twips} nValue
*/
ApiTableRow.prototype.SetHeight = function(sHRule, nValue)
{
var HRule = ("auto" === sHRule ? Asc.linerule_Auto : Asc.linerule_AtLeast);
this.Row.Set_Height(private_Twips2MM(nValue), HRule);
};
//------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------
// //
...@@ -1965,6 +1965,37 @@ ...@@ -1965,6 +1965,37 @@
this.private_OnChange(); this.private_OnChange();
}; };
//------------------------------------------------------------------------------------------------------------------
//
// ApiTableRowPr
//
//------------------------------------------------------------------------------------------------------------------
/**
* Set the height of the current table row within the current table.
* @param {("auto" | "atLeast")} sHRule - Specifies the meaning of the height specified for this table row.
* @param {twips} [nValue] - This value will be ignored if <code>sHRule="auto"</code>.
*/
ApiTableRowPr.prototype.SetHeight = function(sHRule, nValue)
{
if ("auto" === sHRule)
this.RowPr.Height = new CTableRowHeight(0, Asc.linerule_Auto);
else if ("atLeast" === sHRule)
this.RowPr.Height = new CTableRowHeight(private_Twips2MM(nValue), Asc.linerule_AtLeast);
this.private_OnChange();
};
/**
* Specifies that the current table row shall be repeated at the top of each new page on which part of this table
* is displayed. This gives this table row the behavior of a 'header' row on each of these pages. This element can
* be applied to any number of rows at the top of the table structure in order to generate multi-row table headers.
* @param {boolean} isHeader
*/
ApiTableRowPr.prototype.SetTableHeader = function(isHeader)
{
this.RowPr.TableHeader = private_GetBoolean(isHeader);
this.private_OnChange();
};
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Export // Export
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
...@@ -2021,7 +2052,6 @@ ...@@ -2021,7 +2052,6 @@
ApiTableRow.prototype["GetCellsCount"] = ApiTableRow.prototype.GetCellsCount; ApiTableRow.prototype["GetCellsCount"] = ApiTableRow.prototype.GetCellsCount;
ApiTableRow.prototype["GetCell"] = ApiTableRow.prototype.GetCell; ApiTableRow.prototype["GetCell"] = ApiTableRow.prototype.GetCell;
ApiTableRow.prototype["SetHeight"] = ApiTableRow.prototype.SetHeight;
ApiTableCell.prototype["GetContent"] = ApiTableCell.prototype.GetContent; ApiTableCell.prototype["GetContent"] = ApiTableCell.prototype.GetContent;
ApiTableCell.prototype["SetWidth"] = ApiTableCell.prototype.SetWidth; ApiTableCell.prototype["SetWidth"] = ApiTableCell.prototype.SetWidth;
...@@ -2106,6 +2136,8 @@ ...@@ -2106,6 +2136,8 @@
ApiTablePr.prototype["SetWidth"] = ApiTablePr.prototype.SetWidth; ApiTablePr.prototype["SetWidth"] = ApiTablePr.prototype.SetWidth;
ApiTablePr.prototype["SetTableLayout"] = ApiTablePr.prototype.SetTableLayout; ApiTablePr.prototype["SetTableLayout"] = ApiTablePr.prototype.SetTableLayout;
ApiTableRowPr.prototype["SetHeight"] = ApiTableRowPr.prototype.SetHeight;
ApiTableRowPr.prototype["SetTableHeader"] = ApiTableRowPr.prototype.SetTableHeader;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Private area // Private area
...@@ -2328,6 +2360,11 @@ ...@@ -2328,6 +2360,11 @@
this.Num.Set_ParaPr(this.Lvl, oApiParaPr.ParaPr); this.Num.Set_ParaPr(this.Lvl, oApiParaPr.ParaPr);
oApiParaPr.ParaPr = this.Num.Lvl[this.Lvl].ParaPr.Copy(); oApiParaPr.ParaPr = this.Num.Lvl[this.Lvl].ParaPr.Copy();
}; };
ApiTableRow.prototype.OnChangeTableRowPr = function(oApiTableRowPr)
{
this.Row.Set_Pr(oApiTableRowPr.RowPr);
oApiTableRowPr.RowPr = this.Row.Pr.Copy();
};
ApiTextPr.prototype.private_OnChange = function() ApiTextPr.prototype.private_OnChange = function()
{ {
this.Parent.OnChangeTextPr(this); this.Parent.OnChangeTextPr(this);
...@@ -2340,6 +2377,10 @@ ...@@ -2340,6 +2377,10 @@
{ {
this.Parent.OnChangeTablePr(this); this.Parent.OnChangeTablePr(this);
}; };
ApiTableRowPr.prototype.private_OnChange = function()
{
this.Parent.OnChangeTableRowPr(this);
};
}(window, null)); }(window, null));
...@@ -2854,6 +2895,10 @@ function TEST_BUILDER2() ...@@ -2854,6 +2895,10 @@ function TEST_BUILDER2()
//------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------
var Api = editor; var Api = editor;
var oDocument = Api.GetDocument(); var oDocument = Api.GetDocument();
//------------------------------------------------------------------------------------------------------------------
// TextPr
//------------------------------------------------------------------------------------------------------------------
var oParagraph = Api.CreateParagraph(); var oParagraph = Api.CreateParagraph();
oDocument.Push(oParagraph); oDocument.Push(oParagraph);
...@@ -2879,6 +2924,9 @@ function TEST_BUILDER2() ...@@ -2879,6 +2924,9 @@ function TEST_BUILDER2()
oParagraph.AddText("Language Russia").SetLanguage("ru-RU"); oParagraph.AddText("Language Russia").SetLanguage("ru-RU");
oParagraph.AddText("ShadeRed").SetShd("clear", 255, 0, 0); oParagraph.AddText("ShadeRed").SetShd("clear", 255, 0, 0);
//------------------------------------------------------------------------------------------------------------------
// ParaPr
//------------------------------------------------------------------------------------------------------------------
oParagraph = Api.CreateParagraph(); oParagraph = Api.CreateParagraph();
oParagraph.AddText("Normal paragraph"); oParagraph.AddText("Normal paragraph");
oDocument.Push(oParagraph); oDocument.Push(oParagraph);
...@@ -3073,12 +3121,18 @@ function TEST_BUILDER2() ...@@ -3073,12 +3121,18 @@ function TEST_BUILDER2()
oDocument.Push(oParagraph); oDocument.Push(oParagraph);
} }
//------------------------------------------------------------------------------------------------------------------
// Header - Footer
//------------------------------------------------------------------------------------------------------------------
var oSection = oDocument.GetFinalSection(); var oSection = oDocument.GetFinalSection();
var oHeader = oSection.GetHeader("default", true); var oHeader = oSection.GetHeader("default", true);
oParagraph = oHeader.GetElement(0); oParagraph = oHeader.GetElement(0);
oParagraph.AddText("I'm in default header"); oParagraph.AddText("I'm in default header");
//------------------------------------------------------------------------------------------------------------------
// TablePr
//------------------------------------------------------------------------------------------------------------------
var oTable = Api.CreateTable(3, 3); var oTable = Api.CreateTable(3, 3);
oDocument.Push(oTable); oDocument.Push(oTable);
oTable.SetJc("left"); oTable.SetJc("left");
...@@ -3143,6 +3197,27 @@ function TEST_BUILDER2() ...@@ -3143,6 +3197,27 @@ function TEST_BUILDER2()
oDocument.Push(oTable); oDocument.Push(oTable);
oTable.SetTableLayout("fixed"); oTable.SetTableLayout("fixed");
//------------------------------------------------------------------------------------------------------------------
// TableRowPr
//------------------------------------------------------------------------------------------------------------------
oTable = Api.CreateTable(3, 3);
oDocument.Push(oTable);
var oTableRow = oTable.GetRow(0);
oTableRow.SetHeight("auto");
oTableRow = oTable.GetRow(1);
oTableRow.SetHeight("atLeast", 1000);
oTableRow = oTable.GetRow(2);
oTableRow.SetHeight("atLeast", 2000);
oTable = Api.CreateTable(10, 40);
oDocument.Push(oTable);
oTable.SetStyle(oTableStyle);
oTable.GetRow(0).SetTableHeader(true);
oTable.GetRow(1).SetTableHeader(true);
//------------------------------------------------------------------------------------------------------------------
// TableCellPr
//------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------
oLD.Recalculate_FromStart(); oLD.Recalculate_FromStart();
......
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