DocumentServer/OfficeWeb/sdk/Excel/model/DrawingObjects/Format/ChartTitle.js
nikolay ivanov a8be6b9e72 init repo
2014-07-05 18:22:49 +00:00

977 lines
46 KiB
JavaScript

/*
* (c) Copyright Ascensio System SIA 2010-2014
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
var CHART_TITLE_TYPE_TITLE = 0;
var CHART_TITLE_TYPE_H_AXIS = 1;
var CHART_TITLE_TYPE_V_AXIS = 2;
var paraDrawing;
function CChartTitle(chartGroup, type) {
this.layout = null;
this.overlay = false;
this.spPr = new CSpPr();
this.txPr = null;
this.isDefaultText = false;
this.txBody = null;
this.x = null;
this.y = null;
this.extX = null;
this.extY = null;
this.brush = null;
this.pen = null;
this.spPr.geometry = CreateGeometry("rect");
this.spPr.geometry.Init(5, 5);
this.invertTransform = new CMatrix();
this.invertTransformText = new CMatrix();
this.transform = new CMatrix();
this.transformText = new CMatrix();
this.recalculateInfo = {
recalculateTransform: true,
recalculateBrush: true,
recalculatePen: true
};
this.selected = false;
this.Id = g_oIdCounter.Get_NewId();
g_oTableId.Add(this, this.Id);
if (chartGroup) {
this.setChartGroup(chartGroup);
}
if (isRealNumber(type)) {
this.setType(type);
}
}
CChartTitle.prototype = {
getObjectType: function () {
return CLASS_TYPE_CHART_TITLE;
},
Get_Id: function () {
return this.Id;
},
getTitleType: function () {
if (this === this.chartGroup.chartTitle) {
return CHART_TITLE_TYPE_TITLE;
}
if (this === this.chartGroup.hAxisTitle) {
return CHART_TITLE_TYPE_H_AXIS;
}
if (this === this.chartGroup.vAxisTitle) {
return CHART_TITLE_TYPE_V_AXIS;
}
},
setBodyPr: function (bodyPr) {
if (isRealObject(this.txBody)) {
this.txBody.bodyPr = bodyPr;
}
},
isEmpty: function () {
return isRealObject(this.txBody) ? this.txBody.isEmpty() : true;
},
setType: function (type) {
var oldValue = this.type;
var newValue = type;
this.type = type;
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetChartTitleType, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue)));
},
Get_Styles: function () {
return new CStyles();
},
select: function () {
this.selected = true;
},
deselect: function () {
this.selected = false;
if (isRealObject(this.txBody) && isRealObject(this.txBody.content)) {
this.txBody.content.Selection_Remove();
}
},
getParagraphParaPr: function () {
if (this.txBody) {
return this.txBody.content.Get_Paragraph_ParaPr();
}
return null;
},
getParagraphTextPr: function () {
if (this.txBody) {
return this.txBody.content.Get_Paragraph_TextPr();
}
return null;
},
getAllParagraphParaPr: function () {
if (this.txBody) {
this.txBody.content.Set_ApplyToAll(true);
var paraPr = this.txBody.content.Get_Paragraph_ParaPr();
this.txBody.content.Set_ApplyToAll(false);
return paraPr;
}
return null;
},
getAllParagraphTextPr: function () {
if (this.txBody) {
this.txBody.content.Set_ApplyToAll(true);
var paraPr = this.txBody.content.Get_Paragraph_TextPr();
this.txBody.content.Set_ApplyToAll(false);
return paraPr;
}
return null;
},
increaseFontSize: function () {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
this.txBody.content.Paragraph_IncDecFontSize(true);
this.chartGroup.recalculate();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
decreaseFontSize: function () {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
this.txBody.content.Paragraph_IncDecFontSize(false);
this.chartGroup.recalculate();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
increaseAllFontSize: function () {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
this.txBody.content.Set_ApplyToAll(true);
this.txBody.content.Paragraph_IncDecFontSize(true);
this.txBody.content.Set_ApplyToAll(false);
this.chartGroup.recalculate();
this.calculateTransformTextMatrix();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
decreaseAllFontSize: function () {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
this.txBody.content.Set_ApplyToAll(true);
this.txBody.content.Paragraph_IncDecFontSize(false);
this.txBody.content.Set_ApplyToAll(false);
this.chartGroup.recalculate();
this.calculateTransformTextMatrix();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
setCellFontName: function (fontName) {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
var text_pr = new ParaTextPr();
text_pr.Set_FontFamily({
Name: fontName,
Index: -1
});
this.txBody.paragraphAdd(text_pr);
this.chartGroup.recalculate();
this.drawingObjects.showDrawingObjects();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
setCellFontSize: function (fontSize) {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
var text_pr = new ParaTextPr();
text_pr.Set_FontSize(fontSize);
this.txBody.paragraphAdd(text_pr);
this.chartGroup.recalculate();
this.drawingObjects.showDrawingObjects();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
setCellBold: function (isBold) {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
var text_pr = new ParaTextPr();
text_pr.Set_Bold(isBold);
this.txBody.paragraphAdd(text_pr);
this.chartGroup.recalculate();
this.drawingObjects.showDrawingObjects();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
setCellItalic: function (isItalic) {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
var text_pr = new ParaTextPr();
text_pr.Set_Italic(isItalic);
this.txBody.paragraphAdd(text_pr);
this.chartGroup.recalculate();
this.drawingObjects.showDrawingObjects();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
setCellUnderline: function (isUnderline) {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
var text_pr = new ParaTextPr();
text_pr.Set_Underline(isUnderline);
this.txBody.paragraphAdd(text_pr);
this.chartGroup.recalculate();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
setCellStrikeout: function (isStrikeout) {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
var text_pr = new ParaTextPr();
text_pr.Set_Strikeout(isStrikeout);
this.txBody.paragraphAdd(text_pr);
this.chartGroup.recalculate();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
setCellTextColor: function (color) {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
var unifill = new CUniFill();
unifill.setFill(new CSolidFill());
unifill.fill.setColor(CorrectUniColor2(color, null));
var text_pr = new ParaTextPr();
text_pr.SetUniFill(unifill);
this.txBody.paragraphAdd(text_pr);
this.chartGroup.recalculate();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
setCellAllFontName: function (fontName) {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
var text_pr = new ParaTextPr();
text_pr.Set_FontFamily({
Name: fontName,
Index: -1
});
this.txBody.content.Set_ApplyToAll(true);
this.txBody.paragraphAdd(text_pr);
this.txBody.content.Set_ApplyToAll(false);
this.chartGroup.recalculate();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
setCellAllFontSize: function (fontSize) {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
var text_pr = new ParaTextPr();
text_pr.Set_FontSize(fontSize);
this.txBody.content.Set_ApplyToAll(true);
this.txBody.paragraphAdd(text_pr);
this.txBody.content.Set_ApplyToAll(false);
this.chartGroup.recalculate();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
setCellAllBold: function (isBold) {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
var text_pr = new ParaTextPr();
text_pr.Set_Bold(isBold);
this.txBody.content.Set_ApplyToAll(true);
this.txBody.paragraphAdd(text_pr);
this.txBody.content.Set_ApplyToAll(false);
this.chartGroup.recalculate();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
setCellAllItalic: function (isItalic) {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
var text_pr = new ParaTextPr();
text_pr.Set_Italic(isItalic);
this.txBody.content.Set_ApplyToAll(true);
this.txBody.paragraphAdd(text_pr);
this.txBody.content.Set_ApplyToAll(false);
this.chartGroup.recalculate();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
setCellAllUnderline: function (isUnderline) {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
var text_pr = new ParaTextPr();
text_pr.Set_Underline(isUnderline);
this.txBody.content.Set_ApplyToAll(true);
this.txBody.paragraphAdd(text_pr);
this.txBody.content.Set_ApplyToAll(false);
this.chartGroup.recalculate();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
setCellAllStrikeout: function (isStrikeout) {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
var text_pr = new ParaTextPr();
text_pr.Set_Strikeout(isStrikeout);
this.txBody.content.Set_ApplyToAll(true);
this.txBody.paragraphAdd(text_pr);
this.txBody.content.Set_ApplyToAll(false);
this.chartGroup.recalculate();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
setCellAllSubscript: function (isSubscript) {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
var text_pr = new ParaTextPr();
text_pr.Set_VertAlign(isSubscript ? vertalign_SubScript : vertalign_Baseline);
this.txBody.content.Set_ApplyToAll(true);
this.txBody.paragraphAdd(text_pr);
this.txBody.content.Set_ApplyToAll(false);
this.chartGroup.recalculate();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
setCellAllSuperscript: function (isSuperscript) {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
var text_pr = new ParaTextPr();
text_pr.Set_VertAlign(isSubscript ? vertalign_SuperScript : vertalign_Baseline);
this.txBody.content.Set_ApplyToAll(true);
this.txBody.paragraphAdd(text_pr);
this.txBody.content.Set_ApplyToAll(false);
this.chartGroup.recalculate();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
setCellAllTextColor: function (color) {
if (isRealObject(this.txBody)) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
var unifill = new CUniFill();
unifill.setFill(new CSolidFill());
unifill.fill.setColor(CorrectUniColor2(color, null));
var text_pr = new ParaTextPr();
text_pr.SetUniFill(unifill);
this.txBody.content.Set_ApplyToAll(true);
this.txBody.paragraphAdd(text_pr);
this.txBody.content.Set_ApplyToAll(false);
this.chartGroup.recalculate();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
}
},
setChartGroup: function (chartGroup) {
var old_value = this.chartGroup ? this.chartGroup.Get_Id() : null;
var new_value = chartGroup ? chartGroup.Get_Id() : null;
this.chartGroup = chartGroup;
this.setDrawingObjects(chartGroup ? chartGroup.drawingObjects : null);
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_AddChartGroup, null, null, new UndoRedoDataGraphicObjects(this.Id, new UndoRedoDataGOSingleProp(old_value, new_value)), null);
},
setDrawingObjects: function (drawingObjects) {
if (isRealObject(drawingObjects) && drawingObjects.getWorksheet()) {
var newValue = drawingObjects.getWorksheet().model.getId();
var oldValue = isRealObject(this.drawingObjects) ? this.drawingObjects.getWorksheet().model.getId() : null;
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetDrawingObjects, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue)));
this.drawingObjects = drawingObjects;
}
},
Get_Id: function () {
return this.Id;
},
Undo: function (type, data) {
switch (type) {
case historyitem_AutoShapes_AddChartGroup:
this.chartGroup = g_oTableId.Get_ById(data.oldValue);
if (isRealObject(this.chartGroup)) {
this.drawingObjects = this.chartGroup.drawingObjects;
}
break;
case historyitem_AutoShapes_SetDrawingObjects:
if (data.oldValue !== null) {
var api = window["Asc"]["editor"];
if (api.wb) {
var ws = api.wb.getWorksheetById(data.oldValue);
this.drawingObjects = ws.objectRender;
}
}
break;
case historyitem_AutoShapes_AddTextBody:
this.txBody = g_oTableId.Get_ById(data.oldValue);
break;
case historyitem_AutoShapes_SetChartTitleLayout:
this.layout = g_oTableId.Get_ById(data.oldValue);
break;
case historyitem_AutoShapes_SetChartTitleType:
this.type = data.oldValue;
break;
}
},
Redo: function (type, data) {
switch (type) {
case historyitem_AutoShapes_AddChartGroup:
this.chartGroup = g_oTableId.Get_ById(data.newValue);
if (isRealObject(this.chartGroup)) {
this.drawingObjects = this.chartGroup.drawingObjects;
}
break;
case historyitem_AutoShapes_SetDrawingObjects:
if (data.oldValue !== null) {
var api = window["Asc"]["editor"];
if (api.wb) {
var ws = api.wb.getWorksheetById(data.newValue);
this.drawingObjects = ws.objectRender;
}
}
break;
case historyitem_AutoShapes_AddTextBody:
this.txBody = g_oTableId.Get_ById(data.newValue);
break;
case historyitem_AutoShapes_SetChartTitleLayout:
this.layout = g_oTableId.Get_ById(data.newValue);
break;
case historyitem_AutoShapes_SetChartTitleType:
this.type = data.newValue;
break;
}
},
getStyles: function () {
var styles = new CStyles();
var default_legend_style = new CStyle("defaultLegendStyle", styles.Default, null, styletype_Paragraph);
default_legend_style.TextPr.themeFont = "Calibri";
default_legend_style.TextPr.Bold = true;
if (this.getTitleType() === CHART_TITLE_TYPE_TITLE) {
default_legend_style.TextPr.FontSize = 18;
} else {
default_legend_style.TextPr.FontSize = 10;
}
default_legend_style.ParaPr.Spacing.After = 0;
default_legend_style.ParaPr.Spacing.Before = 0;
default_legend_style.ParaPr.Spacing.LineRule = linerule_AtLeast;
default_legend_style.ParaPr.Spacing.Line = 1;
default_legend_style.ParaPr.Jc = align_Center;
var tx_pr;
if (isRealObject(this.txPr)) {}
styles.Style[styles.Id] = default_legend_style;
++styles.Id;
return styles;
},
initFromString: function (title) {
this.textBody.initFromString(title);
},
setDefaultText: function (val) {
this.isDefaultText = val;
},
recalculateTransform: function () {
this.transform.Reset();
global_MatrixTransformer.TranslateAppend(this.transform, this.x, this.y);
global_MatrixTransformer.MultiplyAppend(this.transform, this.chartGroup.getTransform());
this.invertTransform = global_MatrixTransformer.Invert(this.transform);
},
recalculateTransform2: function () {
this.transform.Reset();
global_MatrixTransformer.TranslateAppend(this.transform, this.x, this.y);
global_MatrixTransformer.MultiplyAppend(this.transform, this.chartGroup.getTransform());
},
setTextBody: function (textBody) {
var oldId = isRealObject(this.txBody) ? this.txBody.Get_Id() : null;
var newId = isRealObject(textBody) ? textBody.Get_Id() : null;
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_AddTextBody, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldId, newId)));
this.txBody = textBody;
},
setLayoutX: function (x) {
if (!isRealObject(this.layout)) {
this.setLayout(new CChartLayout());
}
this.layout.setX(x);
},
setLayoutY: function (y) {
if (!isRealObject(this.layout)) {
this.setLayout(new CChartLayout());
}
this.layout.setY(y);
},
addTextBody: function (txBody) {
this.txBody = txBody;
},
paragraphAdd: function (paraItem, bRecalculate) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
if (!isRealObject(this.txBody)) {
this.txBody = new CTextBody(this);
}
this.txBody.paragraphAdd(paraItem);
this.recalculatePosExt();
this.txBody.recalculateCurPos();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
return;
},
recalculatePosExt: function () {
var old_cx = this.x + this.extX * 0.5;
var old_cy = this.y + this.extY * 0.5;
var bodyPr = this.txBody.getBodyPr();
switch (this.type) {
case CHART_TITLE_TYPE_TITLE:
case CHART_TITLE_TYPE_H_AXIS:
var max_title_width = this.chartGroup.extX * 0.8;
var title_width = this.txBody.getRectWidth(max_title_width);
this.extX = title_width;
this.extY = this.txBody.getRectHeight(this.chartGroup.extY, title_width - (bodyPr.rIns + bodyPr.lIns));
this.x = old_cx - this.extX * 0.5;
if (this.x + this.extX > this.chartGroup.extX) {
this.x = this.chartGroup.extX - this.extX;
}
if (this.x < 0) {
this.x = 0;
}
this.y = old_cy - this.extY * 0.5;
if (this.y + this.extY > this.chartGroup.extY) {
this.y = this.chartGroup.extY - this.extY;
}
if (this.y < 0) {
this.y = 0;
}
if (isRealObject(this.layout) && isRealNumber(this.layout.x)) {
this.layout.setX(this.x / this.chartGroup.extX);
}
break;
case CHART_TITLE_TYPE_V_AXIS:
var max_title_height = this.chartGroup.extY * 0.8;
var body_pr = this.txBody.getBodyPr();
this.extY = this.txBody.getRectWidth(max_title_height) - body_pr.rIns - body_pr.lIns + body_pr.tIns + body_pr.bIns;
this.extX = this.txBody.getRectHeight(this.chartGroup.extX, this.extY) - (-body_pr.rIns - body_pr.lIns + body_pr.tIns + body_pr.bIns);
this.spPr.geometry.Recalculate(this.extX, this.extY);
this.x = old_cx - this.extX * 0.5;
if (this.x + this.extX > this.chartGroup.extX) {
this.x = this.chartGroup.extX - this.extX;
}
if (this.x < 0) {
this.x = 0;
}
this.y = old_cy - this.extY * 0.5;
if (this.y + this.extY > this.chartGroup.extY) {
this.y = this.chartGroup.extY - this.extY;
}
if (this.y < 0) {
this.y = 0;
}
if (isRealObject(this.layout) && isRealNumber(this.layout.y)) {
this.layout.setY(this.y / this.chartGroup.extY);
}
break;
}
this.spPr.geometry.Recalculate(this.extX, this.extY);
this.recalculateTransform();
this.calculateTransformTextMatrix();
this.calculateContent();
},
getFullRotate: function () {
return 0;
},
getFullFlip: function () {
return {
flipH: false,
flipV: false
};
},
addNewParagraph: function () {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
this.txBody.addNewParagraph();
this.recalculatePosExt();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
},
remove: function (direction, bOnlyText) {
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
this.txBody.remove(direction, bOnlyText);
this.recalculatePosExt();
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(this.chartGroup.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
},
updateSelectionState: function (drawingDocument) {
this.txBody.updateSelectionState(drawingDocument);
},
recalculateCurPos: function () {
if (this.txBody) {
this.txBody.recalculateCurPos();
}
},
drawTextSelection: function () {
if (isRealObject(this.txBody)) {
this.txBody.drawTextSelection();
}
},
calculateContent: function () {
if (this.txBody) {
this.txBody.calculateContent();
}
},
getColorMap: function () {
return this.chartGroup.drawingObjects.controller.getColorMap();
},
getTheme: function () {
return this.chartGroup.drawingObjects.getWorkbook().theme;
},
calculateTransformTextMatrix: function () {
if (this.txBody === null) {
return;
}
this.transformText.Reset();
var _text_transform = this.transformText;
var _shape_transform = this.transform;
var _body_pr = this.txBody.getBodyPr();
var _content_height = this.txBody.getSummaryHeight();
var _l, _t, _r, _b;
var _t_x_lt, _t_y_lt, _t_x_rt, _t_y_rt, _t_x_lb, _t_y_lb, _t_x_rb, _t_y_rb;
if (isRealObject(this.spPr.geometry) && isRealObject(this.spPr.geometry.rect)) {
var _rect = this.spPr.geometry.rect;
_l = _rect.l + _body_pr.lIns;
_t = _rect.t + _body_pr.tIns;
_r = _rect.r - _body_pr.rIns;
_b = _rect.b - _body_pr.bIns;
} else {
_l = _body_pr.lIns;
_t = _body_pr.tIns;
_r = this.extX - _body_pr.rIns;
_b = this.extY - _body_pr.bIns;
}
if (_l >= _r) {
var _c = (_l + _r) * 0.5;
_l = _c - 0.01;
_r = _c + 0.01;
}
if (_t >= _b) {
_c = (_t + _b) * 0.5;
_t = _c - 0.01;
_b = _c + 0.01;
}
_t_x_lt = _shape_transform.TransformPointX(_l, _t);
_t_y_lt = _shape_transform.TransformPointY(_l, _t);
_t_x_rt = _shape_transform.TransformPointX(_r, _t);
_t_y_rt = _shape_transform.TransformPointY(_r, _t);
_t_x_lb = _shape_transform.TransformPointX(_l, _b);
_t_y_lb = _shape_transform.TransformPointY(_l, _b);
_t_x_rb = _shape_transform.TransformPointX(_r, _b);
_t_y_rb = _shape_transform.TransformPointY(_r, _b);
var _dx_t, _dy_t;
_dx_t = _t_x_rt - _t_x_lt;
_dy_t = _t_y_rt - _t_y_lt;
var _dx_lt_rb, _dy_lt_rb;
_dx_lt_rb = _t_x_rb - _t_x_lt;
_dy_lt_rb = _t_y_rb - _t_y_lt;
var _vertical_shift;
var _text_rect_height = _b - _t;
var _text_rect_width = _r - _l;
if (! (_body_pr.vert === nVertTTvert || _body_pr.vert === nVertTTvert270)) {
if (_content_height < _text_rect_height) {
switch (_body_pr.anchor) {
case 0:
_vertical_shift = _text_rect_height - _content_height;
break;
case 1:
_vertical_shift = (_text_rect_height - _content_height) * 0.5;
break;
case 2:
_vertical_shift = (_text_rect_height - _content_height) * 0.5;
break;
case 3:
_vertical_shift = (_text_rect_height - _content_height) * 0.5;
break;
case 4:
_vertical_shift = 0;
break;
}
} else {
_vertical_shift = 0;
}
global_MatrixTransformer.TranslateAppend(_text_transform, 0, _vertical_shift);
if (_dx_lt_rb * _dy_t - _dy_lt_rb * _dx_t <= 0) {
var alpha = Math.atan2(_dy_t, _dx_t);
global_MatrixTransformer.RotateRadAppend(_text_transform, -alpha);
global_MatrixTransformer.TranslateAppend(_text_transform, _t_x_lt, _t_y_lt);
} else {
alpha = Math.atan2(_dy_t, _dx_t);
global_MatrixTransformer.RotateRadAppend(_text_transform, Math.PI - alpha);
global_MatrixTransformer.TranslateAppend(_text_transform, _t_x_rt, _t_y_rt);
}
} else {
if (_content_height < _text_rect_width) {
switch (_body_pr.anchor) {
case 0:
_vertical_shift = _text_rect_width - _content_height;
break;
case 1:
_vertical_shift = (_text_rect_width - _content_height) * 0.5;
break;
case 2:
_vertical_shift = (_text_rect_width - _content_height) * 0.5;
break;
case 3:
_vertical_shift = (_text_rect_width - _content_height) * 0.5;
break;
case 4:
_vertical_shift = 0;
break;
}
} else {
_vertical_shift = 0;
}
global_MatrixTransformer.TranslateAppend(_text_transform, 0, _vertical_shift);
var _alpha;
_alpha = Math.atan2(_dy_t, _dx_t);
if (_body_pr.vert === nVertTTvert) {
if (_dx_lt_rb * _dy_t - _dy_lt_rb * _dx_t <= 0) {
global_MatrixTransformer.RotateRadAppend(_text_transform, -_alpha - Math.PI * 0.5);
global_MatrixTransformer.TranslateAppend(_text_transform, _t_x_rt, _t_y_rt);
} else {
global_MatrixTransformer.RotateRadAppend(_text_transform, Math.PI * 0.5 - _alpha);
global_MatrixTransformer.TranslateAppend(_text_transform, _t_x_lt, _t_y_lt);
}
} else {
if (_dx_lt_rb * _dy_t - _dy_lt_rb * _dx_t <= 0) {
global_MatrixTransformer.RotateRadAppend(_text_transform, -_alpha - Math.PI * 1.5);
global_MatrixTransformer.TranslateAppend(_text_transform, _t_x_lb, _t_y_lb);
} else {
global_MatrixTransformer.RotateRadAppend(_text_transform, -Math.PI * 0.5 - _alpha);
global_MatrixTransformer.TranslateAppend(_text_transform, _t_x_rb, _t_y_rb);
}
}
}
if (isRealObject(this.spPr.geometry) && isRealObject(this.spPr.geometry.rect)) {
var rect = this.spPr.geometry.rect;
this.clipRect = {
x: rect.l,
y: rect.t,
w: rect.r - rect.l,
h: rect.b - rect.t
};
} else {
this.clipRect = {
x: 0,
y: 0,
w: this.absExtX,
h: this.absExtY
};
}
this.invertTransformText = global_MatrixTransformer.Invert(this.transformText);
},
recalculateAfterTextAdd: function () {
switch (this.type) {
case CHART_TITLE_TYPE_TITLE:
var body_pr = this.txBody.bodyPr;
var r_ins = isRealNumber(body_pr.rIns) ? body_pr.rIns : 1.27;
var l_ins = isRealNumber(body_pr.lIns) ? body_pr.lIns : 2.54;
var t_ins = isRealNumber(body_pr.tIns) ? body_pr.tIns : 1.27;
var b_ins = isRealNumber(body_pr.bIns) ? body_pr.bIns : 1.27;
var max_width = this.chartGroup.extX * 0.8 - r_ins - l_ins;
var title_content = this.txBody.content;
title_content.Reset(0, 0, max_width, 20000);
title_content.Recalculate_Page(0);
var result_width;
if (! (title_content.Content.length > 1 || title_content.Content[0].Lines.length > 1)) {
if (title_content.Content[0].Lines[0].Ranges[0].W < max_width) {
title_content.Reset(0, 0, title_content.Content[0].Lines[0].Ranges[0].W, 20000);
title_content.Recalculate_Page(0);
}
result_width = title_content.Content[0].Lines[0].Ranges[0].W + r_ins + l_ins;
} else {
var width = 0;
for (var i = 0; i < title_content.Content.length; ++i) {
var par = title_content.Content[i];
for (var j = 0; j < par.Lines.length; ++j) {
if (par.Lines[j].Ranges[0].W > width) {
width = par.Lines[j].Ranges[0].W;
}
}
}
result_width = width + r_ins + l_ins;
}
this.extX = result_width;
this.extY = title_content.Get_SummaryHeight() + r_ins + l_ins;
this.x = this.chartGroup.extX - this.extX * 0.5;
this.y = 2.5;
break;
}
},
recalculateBrush: function () {},
recalculatePen: function () {},
draw: function (graphics) {
if (! (graphics.ClearMode === true)) {
graphics.SetIntegerGrid(false);
graphics.transform3(this.transformText);
this.txBody.draw(graphics);
graphics.reset();
graphics.SetIntegerGrid(true);
}
},
selectionSetStart: function (e, x, y) {
var t_x, t_y;
t_x = this.invertTransformText.TransformPointX(x, y);
t_y = this.invertTransformText.TransformPointY(x, y);
var event = new CMouseEventHandler();
event.fromJQueryEvent(e);
this.txBody.selectionSetStart(event, t_x, t_y);
},
selectionSetEnd: function (e, x, y) {
var t_x, t_y;
t_x = this.invertTransformText.TransformPointX(x, y);
t_y = this.invertTransformText.TransformPointY(x, y);
var event = new CMouseEventHandler();
event.fromJQueryEvent(e);
this.txBody.selectionSetEnd(event, t_x, t_y);
},
setPosition: function (x, y) {
if (!isRealObject(this.layout)) {
this.setLayout(new CChartLayout());
}
this.layout.setIsManual(true);
this.layout.setXMode(LAYOUT_MODE_EDGE);
this.layout.setX(x / this.chartGroup.extX);
this.layout.setYMode(LAYOUT_MODE_EDGE);
this.layout.setY(y / this.chartGroup.extY);
},
setLayout: function (layout) {
var oldValue = this.layout ? this.layout.Get_Id() : null;
var newValue = layout ? layout.Get_Id() : null;
this.layout = layout;
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetChartTitleLayout, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue)));
},
setOverlay: function (overlay) {
var oldValue = this.overlay;
var newValue = overlay;
this.overlay = overlay;
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetChartOverlay, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue)));
},
getRectBounds: function () {
var transform = this.getTransform();
var w = this.extX;
var h = this.extY;
var rect_points = [{
x: 0,
y: 0
},
{
x: w,
y: 0
},
{
x: w,
y: h
},
{
x: 0,
y: h
}];
var min_x, max_x, min_y, max_y;
min_x = transform.TransformPointX(rect_points[0].x, rect_points[0].y);
min_y = transform.TransformPointY(rect_points[0].x, rect_points[0].y);
max_x = min_x;
max_y = min_y;
var cur_x, cur_y;
for (var i = 1; i < 4; ++i) {
cur_x = transform.TransformPointX(rect_points[i].x, rect_points[i].y);
cur_y = transform.TransformPointY(rect_points[i].x, rect_points[i].y);
if (cur_x < min_x) {
min_x = cur_x;
}
if (cur_x > max_x) {
max_x = cur_x;
}
if (cur_y < min_y) {
min_y = cur_y;
}
if (cur_y > max_y) {
max_y = cur_y;
}
}
return {
minX: min_x,
maxX: max_x,
minY: min_y,
maxY: max_y
};
},
hit: function (x, y) {
return this.hitInInnerArea(x, y) || this.hitInPath(x, y) || this.hitInTextRect(x, y);
},
hitInPath: function (x, y) {
var invert_transform = this.getInvertTransform();
var x_t = invert_transform.TransformPointX(x, y);
var y_t = invert_transform.TransformPointY(x, y);
if (isRealObject(this.spPr.geometry)) {
return this.spPr.geometry.hitInPath(this.drawingObjects.getCanvasContext(), x_t, y_t);
}
return false;
},
hitInInnerArea: function (x, y) {
var invert_transform = this.getInvertTransform();
var x_t = invert_transform.TransformPointX(x, y);
var y_t = invert_transform.TransformPointY(x, y);
if (isRealObject(this.spPr.geometry)) {
return this.spPr.geometry.hitInInnerArea(this.drawingObjects.getCanvasContext(), x_t, y_t);
}
return x_t > 0 && x_t < this.extX && y_t > 0 && y_t < this.extY;
},
hitInTextRect: function (x, y) {
if (isRealObject(this.txBody)) {
var t_x, t_y;
t_x = this.invertTransformText.TransformPointX(x, y);
t_y = this.invertTransformText.TransformPointY(x, y);
return t_x > 0 && t_x < this.txBody.contentWidth && t_y > 0 && t_y < this.txBody.contentHeight;
}
return false;
},
hitInBoundingRect: function (x, y) {
var invert_transform = this.getInvertTransform();
var x_t = invert_transform.TransformPointX(x, y);
var y_t = invert_transform.TransformPointY(x, y);
var _hit_context = this.drawingObjects.getCanvasContext();
return (HitInLine(_hit_context, x_t, y_t, 0, 0, this.extX, 0) || HitInLine(_hit_context, x_t, y_t, this.extX, 0, this.extX, this.extY) || HitInLine(_hit_context, x_t, y_t, this.extX, this.extY, 0, this.extY) || HitInLine(_hit_context, x_t, y_t, 0, this.extY, 0, 0));
},
getInvertTransform: function () {
return this.invertTransform;
},
getAllFonts: function (AllFonts) {
if (this.txBody && this.txBody.content) {
this.txBody.content.Document_Get_AllFontNames(AllFonts);
}
},
writeToBinary: function (w) {
w.WriteBool(isRealObject(this.layout));
if (isRealObject(this.layout)) {
this.layout.writeToBinary(w);
}
w.WriteBool(this.overlay);
this.spPr.Write_ToBinary2(w);
w.WriteBool(isRealObject(this.txBody));
if (isRealObject(this.txBody)) {
this.txBody.writeToBinary(w);
}
},
readFromBinary: function (r) {
if (r.GetBool()) {
this.setLayout(new CChartLayout());
this.layout.readFromBinary(r);
}
this.setOverlay(r.GetBool());
this.spPr.Read_FromBinary2(r);
if (r.GetBool()) {
this.setTextBody(new CTextBody(this));
this.txBody.readFromBinary(r);
}
},
OnContentRecalculate: function () {
if (this.chartGroup) {
this.chartGroup.recalculate();
}
}
};