4887 lines
201 KiB
JavaScript
4887 lines
201 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
|
|
*
|
|
*/
|
|
if (!window["Asc"]) {
|
|
window["Asc"] = {};
|
|
}
|
|
function isObject(what) {
|
|
return ((what != null) && (typeof(what) == "object"));
|
|
}
|
|
function isNumber(n) {
|
|
return !isNaN(parseFloat(n)) && isFinite(n);
|
|
}
|
|
function isNullOrEmptyString(str) {
|
|
return (str == undefined) || (str == null) || (str == "");
|
|
}
|
|
function convertFormula(formula, ws) {
|
|
var range = null;
|
|
if (formula && ws) {
|
|
var ref3D = parserHelp.is3DRef(formula, 0);
|
|
if (!ref3D[0]) {
|
|
range = ws.model.getRange2(formula.toUpperCase());
|
|
} else {
|
|
var resultRef = parserHelp.parse3DRef(formula);
|
|
if (null !== resultRef) {
|
|
var ws = ws.model.workbook.getWorksheetByName(resultRef.sheet);
|
|
if (ws) {
|
|
range = ws.getRange2(resultRef.range);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return range;
|
|
}
|
|
function getFullImageSrc(src) {
|
|
var start = src.substring(0, 6);
|
|
if (0 != src.indexOf("http:") && 0 != src.indexOf("data:") && 0 != src.indexOf("https:") && 0 != src.indexOf("ftp:") && 0 != src.indexOf("file:")) {
|
|
var api = window["Asc"]["editor"];
|
|
if (0 == src.indexOf(g_sResourceServiceLocalUrl + api.documentId)) {
|
|
return src;
|
|
}
|
|
return g_sResourceServiceLocalUrl + api.documentId + "/media/" + src;
|
|
} else {
|
|
return src;
|
|
}
|
|
}
|
|
function getCurrentTime() {
|
|
var currDate = new Date();
|
|
return currDate.getTime();
|
|
}
|
|
function asc_CChartStyle() {
|
|
this.style = null;
|
|
this.imageUrl = null;
|
|
}
|
|
asc_CChartStyle.prototype = {
|
|
asc_getStyle: function () {
|
|
return this.style;
|
|
},
|
|
asc_setStyle: function (style) {
|
|
this.style = style;
|
|
},
|
|
asc_getImageUrl: function () {
|
|
return this.imageUrl;
|
|
},
|
|
asc_setImageUrl: function (imageUrl) {
|
|
this.imageUrl = imageUrl;
|
|
}
|
|
};
|
|
window["Asc"].asc_CChartStyle = asc_CChartStyle;
|
|
window["Asc"]["asc_CChartStyle"] = asc_CChartStyle;
|
|
prot = asc_CChartStyle.prototype;
|
|
prot["asc_getStyle"] = prot.asc_getStyle;
|
|
prot["asc_setStyle"] = prot.asc_setStyle;
|
|
prot["asc_getImageUrl"] = prot.asc_getImageUrl;
|
|
prot["asc_setImageUrl"] = prot.asc_setImageUrl;
|
|
function asc_CChartTranslate() {
|
|
this.title = "Diagram Title";
|
|
this.xAxis = "X Axis";
|
|
this.yAxis = "Y Axis";
|
|
this.series = "Series";
|
|
}
|
|
asc_CChartTranslate.prototype = {
|
|
asc_getTitle: function () {
|
|
return this.title;
|
|
},
|
|
asc_setTitle: function (val) {
|
|
this.title = val;
|
|
},
|
|
asc_getXAxis: function () {
|
|
return this.xAxis;
|
|
},
|
|
asc_setXAxis: function (val) {
|
|
this.xAxis = val;
|
|
},
|
|
asc_getYAxis: function () {
|
|
return this.yAxis;
|
|
},
|
|
asc_setYAxis: function (val) {
|
|
this.yAxis = val;
|
|
},
|
|
asc_getSeries: function () {
|
|
return this.series;
|
|
},
|
|
asc_setSeries: function (val) {
|
|
this.series = val;
|
|
}
|
|
};
|
|
window["Asc"].asc_CChartTranslate = asc_CChartTranslate;
|
|
window["Asc"]["asc_CChartTranslate"] = asc_CChartTranslate;
|
|
prot = asc_CChartTranslate.prototype;
|
|
prot["asc_getTitle"] = prot.asc_getTitle;
|
|
prot["asc_setTitle"] = prot.asc_setTitle;
|
|
prot["asc_getXAxis"] = prot.asc_getXAxis;
|
|
prot["asc_setXAxis"] = prot.asc_setXAxis;
|
|
prot["asc_getYAxis"] = prot.asc_getYAxis;
|
|
prot["asc_setYAxis"] = prot.asc_setYAxis;
|
|
prot["asc_getSeries"] = prot.asc_getSeries;
|
|
prot["asc_setSeries"] = prot.asc_setSeries;
|
|
function asc_CChart(object) {
|
|
var bCopy = isObject(object);
|
|
this.worksheet = bCopy ? object.worksheet : null;
|
|
this.type = bCopy ? object.type : null;
|
|
this.subType = bCopy ? object.subType : c_oAscChartSubType.normal;
|
|
this.bChartEditor = bCopy ? object.bChartEditor : false;
|
|
this.bShowValue = bCopy ? object.bShowValue : false;
|
|
this.bShowCatName = bCopy ? object.bShowCatName : false;
|
|
this.bShowBorder = bCopy ? object.bShowBorder : true;
|
|
this.styleId = bCopy ? object.styleId : c_oAscChartStyle.Standart;
|
|
this.header = bCopy ? new asc_CChartHeader(object.header) : new asc_CChartHeader();
|
|
this.range = bCopy ? new asc_CChartRange(object.range) : new asc_CChartRange();
|
|
this.xAxis = bCopy ? new asc_CChartAxisX(object.xAxis) : new asc_CChartAxisX();
|
|
this.yAxis = bCopy ? new asc_CChartAxisY(object.yAxis) : new asc_CChartAxisY();
|
|
this.legend = bCopy ? new asc_CChartLegend(object.legend) : new asc_CChartLegend();
|
|
this.series = [];
|
|
if (bCopy && object.series) {
|
|
for (var i = 0; i < object.series.length; i++) {
|
|
var ser = new asc_CChartSeria();
|
|
ser.asc_setTitle(object.series[i].TxCache.Tx);
|
|
ser.asc_setTitleFormula(object.series[i].TxCache.Formula);
|
|
if (object.series[i].Val) {
|
|
ser.asc_setValFormula(object.series[i].Val.Formula);
|
|
for (var j = 0; j < object.series[i].Val.NumCache.length; j++) {
|
|
var item = {};
|
|
item.numFormatStr = object.series[i].Val.NumCache[j].numFormatStr;
|
|
item.isDateTimeFormat = object.series[i].Val.NumCache[j].isDateTimeFormat;
|
|
item.val = object.series[i].Val.NumCache[j].val;
|
|
item.isHidden = object.series[i].Val.NumCache[j].isHidden;
|
|
ser.Val.NumCache.push(item);
|
|
}
|
|
}
|
|
if (object.series[i].xVal) {
|
|
ser.asc_setxValFormula(object.series[i].xVal.Formula);
|
|
for (var j = 0; j < object.series[i].xVal.NumCache.length; j++) {
|
|
var item = {};
|
|
item.numFormatStr = object.series[i].xVal.NumCache[j].numFormatStr;
|
|
item.isDateTimeFormat = object.series[i].xVal.NumCache[j].isDateTimeFormat;
|
|
item.val = object.series[i].xVal.NumCache[j].val;
|
|
item.isHidden = object.series[i].xVal.NumCache[j].isHidden;
|
|
ser.xVal.NumCache.push(item);
|
|
}
|
|
}
|
|
if (object.series[i].Cat) {
|
|
ser.asc_setCatFormula(object.series[i].Cat.Formula);
|
|
for (var j = 0; j < object.series[i].Cat.NumCache.length; j++) {
|
|
var item = {};
|
|
item.numFormatStr = object.series[i].Cat.NumCache[j].numFormatStr;
|
|
item.isDateTimeFormat = object.series[i].Cat.NumCache[j].isDateTimeFormat;
|
|
item.val = object.series[i].Cat.NumCache[j].val;
|
|
item.isHidden = object.series[i].Cat.NumCache[j].isHidden;
|
|
ser.Cat.NumCache.push(item);
|
|
}
|
|
}
|
|
if (object.series[i].Marker) {
|
|
ser.asc_setMarkerSize(object.series[i].Marker.Size);
|
|
ser.asc_setMarkerSymbol(object.series[i].Marker.Symbol);
|
|
}
|
|
ser.asc_setOutlineColor(object.series[i].OutlineColor);
|
|
ser.asc_setFormatCode(object.series[i].FormatCode);
|
|
this.series.push(ser);
|
|
}
|
|
}
|
|
this.themeColors = [];
|
|
if (bCopy && object.themeColors) {
|
|
for (var i = 0; i < object.themeColors.length; i++) {
|
|
this.themeColors.push(object.themeColors[i]);
|
|
}
|
|
}
|
|
this.Id = g_oIdCounter.Get_NewId();
|
|
g_oTableId.Add(this, this.Id);
|
|
}
|
|
asc_CChart.prototype = {
|
|
isEqual: function (chart) {
|
|
return (this.type == chart.type && this.subType == chart.subType && this.styleId == chart.styleId && this.bShowValue == chart.bShowValue && this.bShowBorder == chart.bShowBorder && this.header.isEqual(chart.header) && this.range.isEqual(chart.range) && this.xAxis.isEqual(chart.xAxis) && this.yAxis.isEqual(chart.yAxis) && this.legend.isEqual(chart.legend) && this.series.length == chart.series.length);
|
|
},
|
|
asc_getType: function () {
|
|
return this.type;
|
|
},
|
|
asc_setType: function (type) {
|
|
this.type = type;
|
|
},
|
|
asc_getSubType: function () {
|
|
return this.subType;
|
|
},
|
|
asc_setSubType: function (subType) {
|
|
this.subType = subType;
|
|
},
|
|
asc_getStyleId: function () {
|
|
return this.styleId;
|
|
},
|
|
asc_setStyleId: function (styleId) {
|
|
this.styleId = styleId;
|
|
},
|
|
asc_getShowValueFlag: function () {
|
|
return this.bShowValue;
|
|
},
|
|
asc_setShowValueFlag: function (show) {
|
|
this.bShowValue = show;
|
|
},
|
|
asc_getShowCatNameFlag: function () {
|
|
return this.bShowCatName;
|
|
},
|
|
asc_setShowCatNameFlag: function (show) {
|
|
this.bShowCatName = show;
|
|
},
|
|
asc_getShowBorderFlag: function () {
|
|
return this.bShowBorder;
|
|
},
|
|
asc_setShowBorderFlag: function (show) {
|
|
this.bShowBorder = show;
|
|
},
|
|
asc_getHeader: function () {
|
|
return this.header;
|
|
},
|
|
asc_setHeader: function (headerObj) {
|
|
this.header = headerObj;
|
|
},
|
|
asc_getRange: function () {
|
|
return this.range;
|
|
},
|
|
asc_setRange: function (rangeObj) {
|
|
this.range = rangeObj;
|
|
},
|
|
asc_getXAxis: function () {
|
|
return this.xAxis;
|
|
},
|
|
asc_setXAxis: function (axisObj) {
|
|
this.xAxis = axisObj;
|
|
},
|
|
asc_getYAxis: function () {
|
|
return this.yAxis;
|
|
},
|
|
asc_setYAxis: function (axisObj) {
|
|
this.yAxis = axisObj;
|
|
},
|
|
asc_getLegend: function () {
|
|
return this.legend;
|
|
},
|
|
asc_setLegend: function (legendObj) {
|
|
this.legend = legendObj;
|
|
},
|
|
asc_getSeria: function (index) {
|
|
return (index < this.series.length) ? this.series[index] : null;
|
|
},
|
|
asc_setSeria: function (seriaObj) {
|
|
if (seriaObj) {
|
|
this.series.push(seriaObj);
|
|
}
|
|
},
|
|
asc_removeSeries: function () {
|
|
this.series = [];
|
|
},
|
|
initDefault: function () {
|
|
function createItem(value) {
|
|
return {
|
|
numFormatStr: "General",
|
|
isDateTimeFormat: false,
|
|
val: value,
|
|
isHidden: false
|
|
};
|
|
}
|
|
var api_doc = window["editor"];
|
|
var api_sheet = window["Asc"]["editor"];
|
|
var api = api_sheet ? api_sheet : api_doc;
|
|
this.bChartEditor = true;
|
|
this.header.title = "2012 Olympics Medal Standings";
|
|
this.range.interval = "Sheet1!A1:D7";
|
|
var Cat = {
|
|
Formula: "Sheet1!A2:A7",
|
|
NumCache: [createItem("USA"), createItem("CHN"), createItem("RUS"), createItem("GBR"), createItem("GER"), createItem("JPN")]
|
|
};
|
|
this.xAxis.title = "Countries";
|
|
this.yAxis.title = "Medals";
|
|
this.series = [];
|
|
var uniColors = this.generateUniColors(3);
|
|
var seria = new asc_CChartSeria();
|
|
seria.Val.Formula = "Sheet1!B2:B7";
|
|
seria.Val.NumCache = [createItem(46), createItem(38), createItem(24), createItem(29), createItem(11), createItem(7)];
|
|
seria.OutlineColor = uniColors[0];
|
|
seria.TxCache.Formula = "Sheet1!B1";
|
|
seria.TxCache.Tx = "Gold";
|
|
if (this.type != c_oAscChartType.scatter) {
|
|
seria.Cat = Cat;
|
|
} else {
|
|
seria.xVal = Cat;
|
|
}
|
|
this.series.push(seria);
|
|
seria = new asc_CChartSeria();
|
|
seria.Val.Formula = "Sheet1!C2:C7";
|
|
seria.Val.NumCache = [createItem(29), createItem(27), createItem(26), createItem(17), createItem(19), createItem(14)];
|
|
seria.OutlineColor = uniColors[1];
|
|
seria.TxCache.Formula = "Sheet1!C1";
|
|
seria.TxCache.Tx = "Silver";
|
|
if (this.type != c_oAscChartType.scatter) {
|
|
seria.Cat = Cat;
|
|
} else {
|
|
seria.xVal = Cat;
|
|
}
|
|
this.series.push(seria);
|
|
seria = new asc_CChartSeria();
|
|
seria.Val.Formula = "Sheet1!D2:D7";
|
|
seria.Val.NumCache = [createItem(29), createItem(23), createItem(32), createItem(19), createItem(14), createItem(17)];
|
|
seria.OutlineColor = uniColors[2];
|
|
seria.TxCache.Formula = "Sheet1!D1";
|
|
seria.TxCache.Tx = "Bronze";
|
|
if (this.type != c_oAscChartType.scatter) {
|
|
seria.Cat = Cat;
|
|
} else {
|
|
seria.xVal = Cat;
|
|
}
|
|
this.series.push(seria);
|
|
},
|
|
parseSeriesHeaders: function () {
|
|
var cntLeft = 0,
|
|
cntTop = 0;
|
|
var headers = {
|
|
bLeft: false,
|
|
bTop: false
|
|
};
|
|
var _t = this;
|
|
var bbox = _t.range.intervalObject.getBBox0();
|
|
if (bbox.c2 - bbox.c1 > 0) {
|
|
for (var i = bbox.r1 + 1; i <= bbox.r2; i++) {
|
|
var cell = _t.range.intervalObject.worksheet.getCell(new CellAddress(i, bbox.c1, 0));
|
|
var value = cell.getValue();
|
|
if (!isNumber(value) && (value != "")) {
|
|
cntLeft++;
|
|
}
|
|
}
|
|
if ((cntLeft > 0) && (cntLeft >= bbox.r2 - bbox.r1)) {
|
|
headers.bLeft = true;
|
|
}
|
|
}
|
|
if (bbox.r2 - bbox.r1 > 0) {
|
|
for (var i = bbox.c1 + 1; i <= bbox.c2; i++) {
|
|
var cell = _t.range.intervalObject.worksheet.getCell(new CellAddress(bbox.r1, i, 0));
|
|
var value = cell.getValue();
|
|
if (!isNumber(value) && (value != "")) {
|
|
cntTop++;
|
|
}
|
|
}
|
|
if ((cntTop > 0) && (cntTop >= bbox.c2 - bbox.c1)) {
|
|
headers.bTop = true;
|
|
}
|
|
}
|
|
return headers;
|
|
},
|
|
rebuildSeries: function (isIgnoreColors) {
|
|
var _t = this;
|
|
var bbox = _t.range.intervalObject.getBBox0();
|
|
var nameIndex = 1;
|
|
var api = window["Asc"]["editor"];
|
|
var oldSeriaData = [];
|
|
for (var i = 0; ! isIgnoreColors && (i < _t.series.length); i++) {
|
|
if (_t.series[i].OutlineColor && !_t.series[i].OutlineColor.isCustom) {
|
|
oldSeriaData[i] = _t.series[i].OutlineColor;
|
|
}
|
|
}
|
|
_t.series = [];
|
|
function getNumCache(c1, c2, r1, r2) {
|
|
var cache = [];
|
|
if (c1 == c2) {
|
|
for (var row = r1; row <= r2; row++) {
|
|
var cell = _t.range.intervalObject.worksheet.getCell(new CellAddress(row, c1, 0));
|
|
var item = {};
|
|
item.numFormatStr = cell.getNumFormatStr();
|
|
item.isDateTimeFormat = cell.getNumFormat().isDateTimeFormat();
|
|
item.val = cell.getValue();
|
|
item.isHidden = (_t.range.intervalObject.worksheet._getCol(c1).hd === true) || (_t.range.intervalObject.worksheet._getRow(row).hd === true);
|
|
cache.push(item);
|
|
}
|
|
} else {
|
|
for (var col = c1; col <= c2; col++) {
|
|
var cell = _t.range.intervalObject.worksheet.getCell(new CellAddress(r1, col, 0));
|
|
var item = {};
|
|
item.numFormatStr = cell.getNumFormatStr();
|
|
item.isDateTimeFormat = cell.getNumFormat().isDateTimeFormat();
|
|
item.val = cell.getValue();
|
|
item.isHidden = (_t.range.intervalObject.worksheet._getCol(col).hd === true) || (_t.range.intervalObject.worksheet._getRow(r1).hd === true);
|
|
cache.push(item);
|
|
}
|
|
}
|
|
return cache;
|
|
}
|
|
var parsedHeaders = _t.parseSeriesHeaders();
|
|
if (_t.range.rows) {
|
|
for (var i = bbox.r1 + (parsedHeaders.bTop ? 1 : 0); i <= bbox.r2; i++) {
|
|
var ser = new asc_CChartSeria();
|
|
var startCell = new CellAddress(i, bbox.c1 + (parsedHeaders.bLeft ? 1 : 0), 0);
|
|
var endCell = new CellAddress(i, bbox.c2, 0);
|
|
if (_t.range.intervalObject.worksheet._getRow(i).hd === true) {
|
|
ser.isHidden = true;
|
|
}
|
|
if (startCell && endCell) {
|
|
if (startCell.getID() == endCell.getID()) {
|
|
ser.Val.Formula = startCell.getID();
|
|
} else {
|
|
ser.Val.Formula = (!rx_test_ws_name.test(_t.range.intervalObject.worksheet.sName) ? "'" + _t.range.intervalObject.worksheet.sName + "'" : _t.range.intervalObject.worksheet.sName) + "!" + startCell.getID() + ":" + endCell.getID();
|
|
}
|
|
}
|
|
ser.Val.NumCache = getNumCache(bbox.c1 + (parsedHeaders.bLeft ? 1 : 0), bbox.c2, i, i);
|
|
if (parsedHeaders.bTop) {
|
|
var start = new CellAddress(bbox.r1, bbox.c1 + (parsedHeaders.bLeft ? 1 : 0), 0);
|
|
var end = new CellAddress(bbox.r1, bbox.c2, 0);
|
|
var formula = (!rx_test_ws_name.test(_t.range.intervalObject.worksheet.sName) ? "'" + _t.range.intervalObject.worksheet.sName + "'" : _t.range.intervalObject.worksheet.sName) + "!" + start.getID() + ":" + end.getID();
|
|
var numCache = getNumCache(bbox.c1 + (parsedHeaders.bLeft ? 1 : 0), bbox.c2, bbox.r1, bbox.r1);
|
|
if (_t.type == c_oAscChartType.scatter) {
|
|
ser.xVal.Formula = formula;
|
|
ser.xVal.NumCache = numCache;
|
|
} else {
|
|
ser.Cat.Formula = formula;
|
|
ser.Cat.NumCache = numCache;
|
|
}
|
|
}
|
|
if (parsedHeaders.bLeft) {
|
|
var formulaCell = new CellAddress(i, bbox.c1, 0);
|
|
ser.TxCache.Formula = (!rx_test_ws_name.test(_t.range.intervalObject.worksheet.sName) ? "'" + _t.range.intervalObject.worksheet.sName + "'" : _t.range.intervalObject.worksheet.sName) + "!" + formulaCell.getID();
|
|
}
|
|
var seriaName = parsedHeaders.bLeft ? (_t.range.intervalObject.worksheet.getCell(new CellAddress(i, bbox.c1, 0)).getValue()) : (api.chartTranslate.series + " " + nameIndex);
|
|
ser.TxCache.Tx = seriaName;
|
|
_t.series.push(ser);
|
|
nameIndex++;
|
|
}
|
|
} else {
|
|
for (var i = bbox.c1 + (parsedHeaders.bLeft ? 1 : 0); i <= bbox.c2; i++) {
|
|
var ser = new asc_CChartSeria();
|
|
var startCell = new CellAddress(bbox.r1 + (parsedHeaders.bTop ? 1 : 0), i, 0);
|
|
var endCell = new CellAddress(bbox.r2, i, 0);
|
|
if (_t.range.intervalObject.worksheet._getCol(i).hd === true) {
|
|
ser.isHidden = true;
|
|
}
|
|
if (startCell && endCell) {
|
|
if (startCell.getID() == endCell.getID()) {
|
|
ser.Val.Formula = startCell.getID();
|
|
} else {
|
|
ser.Val.Formula = (!rx_test_ws_name.test(_t.range.intervalObject.worksheet.sName) ? "'" + _t.range.intervalObject.worksheet.sName + "'" : _t.range.intervalObject.worksheet.sName) + "!" + startCell.getID() + ":" + endCell.getID();
|
|
}
|
|
}
|
|
ser.Val.NumCache = getNumCache(i, i, bbox.r1 + (parsedHeaders.bTop ? 1 : 0), bbox.r2);
|
|
if (parsedHeaders.bLeft) {
|
|
var start = new CellAddress(bbox.r1 + (parsedHeaders.bTop ? 1 : 0), bbox.c1, 0);
|
|
var end = new CellAddress(bbox.r2, bbox.c1, 0);
|
|
var formula = (!rx_test_ws_name.test(_t.range.intervalObject.worksheet.sName) ? "'" + _t.range.intervalObject.worksheet.sName + "'" : _t.range.intervalObject.worksheet.sName) + "!" + start.getID() + ":" + end.getID();
|
|
var numCache = getNumCache(bbox.c1, bbox.c1, bbox.r1 + (parsedHeaders.bTop ? 1 : 0), bbox.r2);
|
|
if (_t.type == c_oAscChartType.scatter) {
|
|
ser.xVal.Formula = formula;
|
|
ser.xVal.NumCache = numCache;
|
|
} else {
|
|
ser.Cat.Formula = formula;
|
|
ser.Cat.NumCache = numCache;
|
|
}
|
|
}
|
|
if (parsedHeaders.bTop) {
|
|
var formulaCell = new CellAddress(bbox.r1, i, 0);
|
|
ser.TxCache.Formula = (!rx_test_ws_name.test(_t.range.intervalObject.worksheet.sName) ? "'" + _t.range.intervalObject.worksheet.sName + "'" : _t.range.intervalObject.worksheet.sName) + "!" + formulaCell.getID();
|
|
}
|
|
var seriaName = parsedHeaders.bTop ? (_t.range.intervalObject.worksheet.getCell(new CellAddress(bbox.r1, i, 0)).getValue()) : (api.chartTranslate.series + " " + nameIndex);
|
|
ser.TxCache.Tx = seriaName;
|
|
_t.series.push(ser);
|
|
nameIndex++;
|
|
}
|
|
}
|
|
var seriaUniColors = _t.generateUniColors(_t.series.length);
|
|
if (_t.type == c_oAscChartType.hbar) {
|
|
seriaUniColors = OfficeExcel.array_reverse(seriaUniColors);
|
|
}
|
|
for (var i = 0; i < _t.series.length; i++) {
|
|
if (oldSeriaData[i]) {
|
|
_t.series[i].OutlineColor = oldSeriaData[i];
|
|
} else {
|
|
_t.series[i].OutlineColor = seriaUniColors[i];
|
|
}
|
|
}
|
|
},
|
|
getReverseSeries: function () {
|
|
var _t = this;
|
|
var revSeries = [];
|
|
var serLen = _t.series.length;
|
|
var api_doc = window["editor"];
|
|
var api_sheet = window["Asc"]["editor"];
|
|
var api = api_sheet ? api_sheet : api_doc;
|
|
var aData = [];
|
|
for (var j = 0; j < _t.series.length; j++) {
|
|
aData.push(_t.series[j].Val.NumCache.length);
|
|
aData.push(_t.series[j].xVal.NumCache.length);
|
|
aData.push(_t.series[j].Cat.NumCache.length);
|
|
}
|
|
maxDataLen = Math.max.apply(Math, aData);
|
|
var emptyItem = {
|
|
numFormatStr: "General",
|
|
isDateTimeFormat: false,
|
|
val: "",
|
|
isHidden: false
|
|
};
|
|
for (var j = 0; j < _t.series.length; j++) {
|
|
if (_t.series[j].Val.NumCache.length) {
|
|
while (_t.series[j].Val.NumCache.length < maxDataLen) {
|
|
_t.series[j].Val.NumCache.push(emptyItem);
|
|
}
|
|
}
|
|
if (_t.series[j].xVal.NumCache.length) {
|
|
while (_t.series[j].xVal.NumCache.length < maxDataLen) {
|
|
_t.series[j].xVal.NumCache.push(emptyItem);
|
|
}
|
|
}
|
|
if (_t.series[j].Cat.NumCache.length) {
|
|
while (_t.series[j].Cat.NumCache.length < maxDataLen) {
|
|
_t.series[j].Cat.NumCache.push(emptyItem);
|
|
}
|
|
}
|
|
}
|
|
if (serLen) {
|
|
for (var i = 0; i < _t.series[0].Val.NumCache.length; i++) {
|
|
var seria = new asc_CChartSeria();
|
|
for (var j = 0; j < _t.series.length; j++) {
|
|
seria.Val.NumCache.push(_t.series[j].Val.NumCache[i]);
|
|
if (_t.series[j].TxCache.Formula && _t.series[j].TxCache.Tx) {
|
|
seria.Cat.NumCache.push({
|
|
val: _t.series[j].TxCache.Tx
|
|
});
|
|
}
|
|
if (_t.series[j].Cat.Formula && _t.series[j].Cat.NumCache.length) {
|
|
seria.TxCache.Tx = _t.series[j].Cat.NumCache[i].val;
|
|
} else {
|
|
seria.TxCache.Tx = (i + 1);
|
|
}
|
|
}
|
|
revSeries.push(seria);
|
|
}
|
|
}
|
|
return revSeries;
|
|
},
|
|
generateUniColors: function (count) {
|
|
var uniColors = [];
|
|
var api_doc = window["editor"];
|
|
var api_sheet = window["Asc"]["editor"];
|
|
var api = api_sheet ? api_sheet : api_doc;
|
|
if (count > 0) {
|
|
if (!api.chartStyleManager.isReady()) {
|
|
api.chartStyleManager.init();
|
|
}
|
|
var baseColors = api.chartStyleManager.getBaseColors(parseInt(this.styleId));
|
|
var colors = generateColors(count, baseColors, true);
|
|
for (var i = 0; i < colors.length; i++) {
|
|
var rgbColor = new RGBColor(colors[i]);
|
|
var uniColor = CreateUniColorRGB(rgbColor.r, rgbColor.g, rgbColor.b);
|
|
uniColor.isCustom = true;
|
|
uniColors.push(uniColor);
|
|
}
|
|
}
|
|
return uniColors;
|
|
},
|
|
getLegendInfo: function () {
|
|
var aInfo = [];
|
|
function legendInfo() {
|
|
return {
|
|
text: null,
|
|
color: null,
|
|
marker: null
|
|
};
|
|
}
|
|
var aColors = generateColors(this.series.length, arrBaseColors, true);
|
|
for (var i = 0; i < this.series.length; i++) {
|
|
var info = new legendInfo();
|
|
info.text = this.series[i].asc_getTitle();
|
|
info.color = aColors[i];
|
|
info.marker = c_oAscLegendMarkerType.Line;
|
|
aInfo.push(info);
|
|
}
|
|
return aInfo;
|
|
},
|
|
Get_Id: function () {
|
|
return this.Id;
|
|
},
|
|
getObjectType: function () {
|
|
return CLASS_TYPE_CHART_DATA;
|
|
},
|
|
Write_ToBinary2: function (Writer) {
|
|
Writer.WriteLong(CLASS_TYPE_CHART_DATA);
|
|
Writer.WriteString2(this.Id);
|
|
Writer.WriteString2(this.type);
|
|
Writer.WriteString2(this.subType);
|
|
Writer.WriteLong(this.styleId);
|
|
Writer.WriteBool(this.bChartEditor);
|
|
Writer.WriteBool(this.bShowValue);
|
|
Writer.WriteBool(this.bShowCatName);
|
|
Writer.WriteBool(this.bShowBorder);
|
|
Writer.WriteString2(this.header.title);
|
|
Writer.WriteString2(this.header.subTitle);
|
|
Writer.WriteBool(this.header.bDefaultTitle);
|
|
Writer.WriteString2(this.range.interval);
|
|
Writer.WriteBool(this.range.rows);
|
|
Writer.WriteBool(this.range.columns);
|
|
Writer.WriteString2(this.xAxis.title);
|
|
Writer.WriteBool(this.xAxis.bDefaultTitle);
|
|
Writer.WriteBool(this.xAxis.bShow);
|
|
Writer.WriteBool(this.xAxis.bGrid);
|
|
Writer.WriteString2(this.yAxis.title);
|
|
Writer.WriteBool(this.yAxis.bDefaultTitle);
|
|
Writer.WriteBool(this.yAxis.bShow);
|
|
Writer.WriteBool(this.yAxis.bGrid);
|
|
Writer.WriteString2(this.legend.position);
|
|
Writer.WriteBool(this.legend.bShow);
|
|
Writer.WriteBool(this.legend.bOverlay);
|
|
Writer.WriteLong(this.series.length);
|
|
for (var i = 0; i < this.series.length; i++) {
|
|
Writer.WriteString2(this.series[i].Val.Formula);
|
|
Writer.WriteLong(this.series[i].Val.NumCache.length);
|
|
for (var j = 0; j < this.series[i].Val.NumCache.length; j++) {
|
|
Writer.WriteString2((this.series[i].Val.NumCache[j].numFormatStr != undefined) ? this.series[i].Val.NumCache[j].numFormatStr : "General");
|
|
Writer.WriteBool((this.series[i].Val.NumCache[j].isDateTimeFormat != undefined) ? this.series[i].Val.NumCache[j].isDateTimeFormat : false);
|
|
Writer.WriteString2(this.series[i].Val.NumCache[j].val);
|
|
Writer.WriteBool((this.series[i].Val.NumCache[j].isHidden != undefined) ? this.series[i].Val.NumCache[j].isHidden : false);
|
|
}
|
|
Writer.WriteString2(this.series[i].xVal.Formula);
|
|
Writer.WriteLong(this.series[i].xVal.NumCache.length);
|
|
for (var j = 0; j < this.series[i].xVal.NumCache.length; j++) {
|
|
Writer.WriteString2((this.series[i].xVal.NumCache[j].numFormatStr != undefined) ? this.series[i].xVal.NumCache[j].numFormatStr : "General");
|
|
Writer.WriteBool((this.series[i].xVal.NumCache[j].isDateTimeFormat != undefined) ? this.series[i].xVal.NumCache[j].isDateTimeFormat : false);
|
|
Writer.WriteString2(this.series[i].xVal.NumCache[j].val);
|
|
Writer.WriteBool((this.series[i].xVal.NumCache[j].isHidden != undefined) ? this.series[i].xVal.NumCache[j].isHidden : false);
|
|
}
|
|
Writer.WriteString2(this.series[i].Cat.Formula);
|
|
Writer.WriteLong(this.series[i].Cat.NumCache.length);
|
|
for (var j = 0; j < this.series[i].Cat.NumCache.length; j++) {
|
|
Writer.WriteString2((this.series[i].Cat.NumCache[j].numFormatStr != undefined) ? this.series[i].Cat.NumCache[j].numFormatStr : "General");
|
|
Writer.WriteBool((this.series[i].Cat.NumCache[j].isDateTimeFormat != undefined) ? this.series[i].Cat.NumCache[j].isDateTimeFormat : false);
|
|
Writer.WriteString2(this.series[i].Cat.NumCache[j].val);
|
|
Writer.WriteBool((this.series[i].Cat.NumCache[j].isHidden != undefined) ? this.series[i].Cat.NumCache[j].isHidden : false);
|
|
}
|
|
Writer.WriteString2(this.series[i].TxCache.Tx);
|
|
Writer.WriteString2(this.series[i].TxCache.Formula);
|
|
Writer.WriteString2(this.series[i].Marker.Size);
|
|
Writer.WriteString2(this.series[i].Marker.Symbol);
|
|
Writer.WriteString2(this.series[i].FormatCode);
|
|
Writer.WriteBool(this.series[i].isHidden);
|
|
Writer.WriteBool(this.series[i].bShowValue);
|
|
}
|
|
Writer.WriteLong(this.themeColors.length);
|
|
for (var i = 0; i < this.themeColors.length; i++) {
|
|
Writer.WriteString2(this.themeColors[i]);
|
|
}
|
|
},
|
|
Read_FromBinary2: function (Reader, noReadId) {
|
|
Reader.GetLong();
|
|
var Id = Reader.GetString2();
|
|
if (! (noReadId === false)) {
|
|
this.Id = Id;
|
|
}
|
|
this.type = Reader.GetString2();
|
|
this.subType = Reader.GetString2();
|
|
this.styleId = Reader.GetLong();
|
|
this.bChartEditor = Reader.GetBool();
|
|
this.bShowValue = Reader.GetBool();
|
|
this.bShowCatName = Reader.GetBool();
|
|
this.bShowBorder = Reader.GetBool();
|
|
this.header.title = Reader.GetString2();
|
|
this.header.subTitle = Reader.GetString2();
|
|
this.header.bDefaultTitle = Reader.GetBool();
|
|
this.range.interval = Reader.GetString2();
|
|
this.range.rows = Reader.GetBool();
|
|
this.range.columns = Reader.GetBool();
|
|
this.xAxis.title = Reader.GetString2();
|
|
this.xAxis.bDefaultTitle = Reader.GetBool();
|
|
this.xAxis.bShow = Reader.GetBool();
|
|
this.xAxis.bGrid = Reader.GetBool();
|
|
this.yAxis.title = Reader.GetString2();
|
|
this.yAxis.bDefaultTitle = Reader.GetBool();
|
|
this.yAxis.bShow = Reader.GetBool();
|
|
this.yAxis.bGrid = Reader.GetBool();
|
|
this.legend.position = Reader.GetString2();
|
|
this.legend.bShow = Reader.GetBool();
|
|
this.legend.bOverlay = Reader.GetBool();
|
|
this.series = [];
|
|
var seriesCount = Reader.GetLong();
|
|
for (var i = 0; i < seriesCount; i++) {
|
|
var seria = new asc_CChartSeria();
|
|
seria.Val.Formula = Reader.GetString2();
|
|
var numCacheCount = Reader.GetLong();
|
|
for (var j = 0; j < numCacheCount; j++) {
|
|
var item = {};
|
|
item.numFormatStr = Reader.GetString2();
|
|
item.isDateTimeFormat = Reader.GetBool();
|
|
item.val = Reader.GetString2();
|
|
item.isHidden = Reader.GetBool();
|
|
seria.Val.NumCache.push(item);
|
|
}
|
|
seria.xVal.Formula = Reader.GetString2();
|
|
numCacheCount = Reader.GetLong();
|
|
for (var j = 0; j < numCacheCount; j++) {
|
|
var item = {};
|
|
item.numFormatStr = Reader.GetString2();
|
|
item.isDateTimeFormat = Reader.GetBool();
|
|
item.val = Reader.GetString2();
|
|
item.isHidden = Reader.GetBool();
|
|
seria.xVal.NumCache.push(item);
|
|
}
|
|
seria.Cat.Formula = Reader.GetString2();
|
|
numCacheCount = Reader.GetLong();
|
|
for (var j = 0; j < numCacheCount; j++) {
|
|
var item = {};
|
|
item.numFormatStr = Reader.GetString2();
|
|
item.isDateTimeFormat = Reader.GetBool();
|
|
item.val = Reader.GetString2();
|
|
item.isHidden = Reader.GetBool();
|
|
seria.Cat.NumCache.push(item);
|
|
}
|
|
seria.TxCache.Tx = Reader.GetString2();
|
|
seria.TxCache.Formula = Reader.GetString2();
|
|
seria.Marker.Size = Reader.GetString2();
|
|
seria.Marker.Symbol = Reader.GetString2();
|
|
seria.FormatCode = Reader.GetString2();
|
|
seria.isHidden = Reader.GetBool();
|
|
seria.bShowValue = Reader.GetBool();
|
|
this.series.push(seria);
|
|
}
|
|
this.themeColors = [];
|
|
var themeColorsCount = Reader.GetLong();
|
|
for (var i = 0; i < themeColorsCount; i++) {
|
|
this.themeColors.push(Reader.GetString2());
|
|
}
|
|
},
|
|
Save_Changes: function (data, Writer) {
|
|
this.Write_ToBinary2(Writer);
|
|
},
|
|
Load_Changes: function (Reader) {
|
|
Reader.GetLong();
|
|
this.Read_FromBinary2(Reader);
|
|
},
|
|
Refresh_RecalcData: function (data) {},
|
|
Undo: function (type, data) {
|
|
var api = window["Asc"]["editor"];
|
|
var ws = api.wb.getWorksheet();
|
|
switch (type) {
|
|
case historyitem_Chart_Type:
|
|
this.type = data.oldValue;
|
|
break;
|
|
case historyitem_Chart_SubType:
|
|
this.subType = data.oldValue;
|
|
break;
|
|
case historyitem_Chart_Style:
|
|
this.styleId = data.oldValue;
|
|
break;
|
|
case historyitem_Chart_IsShowValue:
|
|
this.bShowValue = data.oldValue;
|
|
break;
|
|
case historyitem_Chart_IsShowBorder:
|
|
this.bShowBorder = data.oldValue;
|
|
break;
|
|
case historyitem_Chart_RangeInterval:
|
|
this.range.interval = data.oldValue;
|
|
if (ws) {
|
|
this.range.intervalObject = convertFormula(this.range.interval, ws);
|
|
this.rebuildSeries();
|
|
}
|
|
break;
|
|
case historyitem_Chart_RangeRowColumns:
|
|
this.range.rows = data.oldValue;
|
|
this.range.columns = !data.oldValue;
|
|
break;
|
|
case historyitem_Chart_HeaderTitle:
|
|
this.header.title = data.oldValue;
|
|
break;
|
|
case historyitem_Chart_HeaderSubTitle:
|
|
this.header.subTitle = data.oldValue;
|
|
break;
|
|
case historyitem_Chart_IsDefaultHeaderTitle:
|
|
this.header.bDefaultTitle = data.oldValue;
|
|
break;
|
|
case historyitem_Chart_xAxisTitle:
|
|
this.xAxis.title = data.oldValue;
|
|
break;
|
|
case historyitem_Chart_xAxisIsDefaultTitle:
|
|
this.xAxis.bDefaultTitle = data.oldValue;
|
|
break;
|
|
case historyitem_Chart_xAxisIsShow:
|
|
this.xAxis.bShow = data.oldValue;
|
|
break;
|
|
case historyitem_Chart_xAxisIsGrid:
|
|
this.xAxis.bGrid = data.oldValue;
|
|
break;
|
|
case historyitem_Chart_yAxisTitle:
|
|
this.yAxis.title = data.oldValue;
|
|
break;
|
|
case historyitem_Chart_yAxisIsDefaultTitle:
|
|
this.yAxis.bDefaultTitle = data.oldValue;
|
|
break;
|
|
case historyitem_Chart_yAxisIsShow:
|
|
this.yAxis.bShow = data.oldValue;
|
|
break;
|
|
case historyitem_Chart_yAxisIsGrid:
|
|
this.yAxis.bGrid = data.oldValue;
|
|
break;
|
|
case historyitem_Chart_LegendPosition:
|
|
this.legend.position = data.oldValue;
|
|
break;
|
|
case historyitem_Chart_LegendIsShow:
|
|
this.legend.bShow = data.oldValue;
|
|
break;
|
|
case historyitem_Chart_LegendIsOverlay:
|
|
this.legend.bOverlay = data.oldValue;
|
|
break;
|
|
}
|
|
if (ws) {
|
|
ws.objectRender.rebuildChartGraphicObjects();
|
|
}
|
|
},
|
|
Redo: function (type, data) {
|
|
var api = window["Asc"]["editor"];
|
|
var ws = api.wb.getWorksheet();
|
|
switch (type) {
|
|
case historyitem_Chart_Type:
|
|
this.type = data.newValue;
|
|
break;
|
|
case historyitem_Chart_SubType:
|
|
this.subType = data.newValue;
|
|
break;
|
|
case historyitem_Chart_Style:
|
|
this.styleId = data.newValue;
|
|
break;
|
|
case historyitem_Chart_IsShowValue:
|
|
this.bShowValue = data.newValue;
|
|
break;
|
|
case historyitem_Chart_IsShowBorder:
|
|
this.bShowBorder = data.newValue;
|
|
break;
|
|
case historyitem_Chart_RangeInterval:
|
|
this.range.interval = data.newValue;
|
|
if (ws) {
|
|
this.range.intervalObject = convertFormula(this.range.interval, ws);
|
|
this.rebuildSeries();
|
|
}
|
|
break;
|
|
case historyitem_Chart_RangeRowColumns:
|
|
this.range.rows = data.newValue;
|
|
this.range.columns = !data.newValue;
|
|
break;
|
|
case historyitem_Chart_HeaderTitle:
|
|
this.header.title = data.newValue;
|
|
break;
|
|
case historyitem_Chart_HeaderSubTitle:
|
|
this.header.subTitle = data.newValue;
|
|
break;
|
|
case historyitem_Chart_IsDefaultHeaderTitle:
|
|
this.header.bDefaultTitle = data.newValue;
|
|
break;
|
|
case historyitem_Chart_xAxisTitle:
|
|
this.xAxis.title = data.newValue;
|
|
break;
|
|
case historyitem_Chart_xAxisIsDefaultTitle:
|
|
this.xAxis.bDefaultTitle = data.newValue;
|
|
break;
|
|
case historyitem_Chart_xAxisIsShow:
|
|
this.xAxis.bShow = data.newValue;
|
|
break;
|
|
case historyitem_Chart_xAxisIsGrid:
|
|
this.xAxis.bGrid = data.newValue;
|
|
break;
|
|
case historyitem_Chart_yAxisTitle:
|
|
this.yAxis.title = data.newValue;
|
|
break;
|
|
case historyitem_Chart_yAxisIsDefaultTitle:
|
|
this.yAxis.bDefaultTitle = data.newValue;
|
|
break;
|
|
case historyitem_Chart_yAxisIsShow:
|
|
this.yAxis.bShow = data.newValue;
|
|
break;
|
|
case historyitem_Chart_yAxisIsGrid:
|
|
this.yAxis.bGrid = data.newValue;
|
|
break;
|
|
case historyitem_Chart_LegendPosition:
|
|
this.legend.position = data.newValue;
|
|
break;
|
|
case historyitem_Chart_LegendIsShow:
|
|
this.legend.bShow = data.newValue;
|
|
break;
|
|
case historyitem_Chart_LegendIsOverlay:
|
|
this.legend.bOverlay = data.newValue;
|
|
break;
|
|
}
|
|
if (ws) {
|
|
ws.objectRender.rebuildChartGraphicObjects();
|
|
}
|
|
}
|
|
};
|
|
window["Asc"].asc_CChart = asc_CChart;
|
|
window["Asc"]["asc_CChart"] = asc_CChart;
|
|
prot = asc_CChart.prototype;
|
|
prot["asc_getType"] = prot.asc_getType;
|
|
prot["asc_setType"] = prot.asc_setType;
|
|
prot["asc_getSubType"] = prot.asc_getSubType;
|
|
prot["asc_setSubType"] = prot.asc_setSubType;
|
|
prot["asc_getStyleId"] = prot.asc_getStyleId;
|
|
prot["asc_setStyleId"] = prot.asc_setStyleId;
|
|
prot["asc_getShowValueFlag"] = prot.asc_getShowValueFlag;
|
|
prot["asc_setShowValueFlag"] = prot.asc_setShowValueFlag;
|
|
prot["asc_getShowCatNameFlag"] = prot.asc_getShowCatNameFlag;
|
|
prot["asc_setShowCatNameFlag"] = prot.asc_setShowCatNameFlag;
|
|
prot["asc_getShowBorderFlag"] = prot.asc_getShowBorderFlag;
|
|
prot["asc_setShowBorderFlag"] = prot.asc_setShowBorderFlag;
|
|
prot["asc_getHeader"] = prot.asc_getHeader;
|
|
prot["asc_setHeader"] = prot.asc_setHeader;
|
|
prot["asc_getRange"] = prot.asc_getRange;
|
|
prot["asc_setRange"] = prot.asc_setRange;
|
|
prot["asc_getXAxis"] = prot.asc_getXAxis;
|
|
prot["asc_setXAxis"] = prot.asc_setXAxis;
|
|
prot["asc_getYAxis"] = prot.asc_getYAxis;
|
|
prot["asc_setYAxis"] = prot.asc_setYAxis;
|
|
prot["asc_getLegend"] = prot.asc_getLegend;
|
|
prot["asc_setLegend"] = prot.asc_setLegend;
|
|
prot["asc_getSeria"] = prot.asc_getSeria;
|
|
prot["asc_setSeria"] = prot.asc_setSeria;
|
|
prot["asc_removeSeries"] = prot.asc_removeSeries;
|
|
function asc_CChartBinary(chart) {
|
|
this["binary"] = null;
|
|
if (typeof CChartAsGroup != "undefined" && chart instanceof CChartAsGroup) {
|
|
this["binary"] = chart.getChartBinary();
|
|
}
|
|
}
|
|
asc_CChartBinary.prototype = {
|
|
asc_getBinary: function () {
|
|
return this["binary"];
|
|
},
|
|
asc_setBinary: function (val) {
|
|
this["binary"] = val;
|
|
}
|
|
};
|
|
window["Asc"].asc_CChartBinary = asc_CChartBinary;
|
|
window["Asc"]["asc_CChartBinary"] = asc_CChartBinary;
|
|
prot = asc_CChartBinary.prototype;
|
|
prot["asc_getBinary"] = prot.asc_getBinary;
|
|
prot["asc_setBinary"] = prot.asc_setBinary;
|
|
function asc_CChartRange(object) {
|
|
var bCopy = isObject(object);
|
|
this.interval = bCopy ? object.interval : "";
|
|
this.intervalObject = bCopy ? object.intervalObject : null;
|
|
this.rows = bCopy ? object.rows : false;
|
|
this.columns = bCopy ? object.columns : true;
|
|
}
|
|
asc_CChartRange.prototype = {
|
|
isEqual: function (object) {
|
|
return ((this.interval == object.interval) && (this.rows == object.rows) && (this.columns == object.columns));
|
|
},
|
|
asc_getInterval: function () {
|
|
return this.interval;
|
|
},
|
|
asc_setInterval: function (interval) {
|
|
this.interval = interval;
|
|
},
|
|
asc_getRowsFlag: function () {
|
|
return this.rows;
|
|
},
|
|
asc_setRowsFlag: function (value) {
|
|
this.rows = value;
|
|
this.columns = !value;
|
|
},
|
|
asc_getColumnsFlag: function () {
|
|
return this.columns;
|
|
},
|
|
asc_setColumnsFlag: function (value) {
|
|
this.rows = !value;
|
|
this.columns = value;
|
|
}
|
|
};
|
|
window["Asc"].asc_CChartRange = asc_CChartRange;
|
|
window["Asc"]["asc_CChartRange"] = asc_CChartRange;
|
|
prot = asc_CChartRange.prototype;
|
|
prot["asc_getInterval"] = prot.asc_getInterval;
|
|
prot["asc_setInterval"] = prot.asc_setInterval;
|
|
prot["asc_getRowsFlag"] = prot.asc_getRowsFlag;
|
|
prot["asc_setRowsFlag"] = prot.asc_setRowsFlag;
|
|
prot["asc_getColumnsFlag"] = prot.asc_getColumnsFlag;
|
|
prot["asc_setColumnsFlag"] = prot.asc_setColumnsFlag;
|
|
function asc_CChartHeader(object) {
|
|
var bCopy = isObject(object);
|
|
this.title = bCopy ? object.title : "";
|
|
this.subTitle = bCopy ? object.subTitle : "";
|
|
this.bDefaultTitle = bCopy ? object.bDefaultTitle : false;
|
|
}
|
|
asc_CChartHeader.prototype = {
|
|
isEqual: function (object) {
|
|
return ((this.title == object.title) && (this.subTitle == object.subTitle) && (this.bDefaultTitle == object.bDefaultTitle));
|
|
},
|
|
asc_getTitle: function () {
|
|
return this.title;
|
|
},
|
|
asc_setTitle: function (title) {
|
|
this.title = title;
|
|
},
|
|
asc_getSubTitle: function () {
|
|
return this.subTitle;
|
|
},
|
|
asc_setSubTitle: function (subTitle) {
|
|
this.subTitle = subTitle;
|
|
},
|
|
asc_getDefaultTitleFlag: function () {
|
|
return this.bDefaultTitle;
|
|
},
|
|
asc_setDefaultTitleFlag: function (defaultTitleFlag) {
|
|
this.bDefaultTitle = defaultTitleFlag;
|
|
}
|
|
};
|
|
window["Asc"].asc_CChartHeader = asc_CChartHeader;
|
|
window["Asc"]["asc_CChartHeader"] = asc_CChartHeader;
|
|
prot = asc_CChartHeader.prototype;
|
|
prot["asc_getTitle"] = prot.asc_getTitle;
|
|
prot["asc_setTitle"] = prot.asc_setTitle;
|
|
prot["asc_getSubTitle"] = prot.asc_getSubTitle;
|
|
prot["asc_setSubTitle"] = prot.asc_setSubTitle;
|
|
prot["asc_getDefaultTitleFlag"] = prot.asc_getDefaultTitleFlag;
|
|
prot["asc_setDefaultTitleFlag"] = prot.asc_setDefaultTitleFlag;
|
|
function asc_CChartAxisX(object) {
|
|
var bCopy = isObject(object);
|
|
this.title = bCopy ? object.title : "";
|
|
this.bDefaultTitle = bCopy ? object.bDefaultTitle : false;
|
|
this.bShow = bCopy ? object.bShow : true;
|
|
this.bGrid = bCopy ? object.bGrid : true;
|
|
}
|
|
asc_CChartAxisX.prototype = {
|
|
isEqual: function (object) {
|
|
return ((this.title == object.title) && (this.bDefaultTitle == object.bDefaultTitle) && (this.bShow == object.bShow) && (this.bGrid == object.bGrid));
|
|
},
|
|
asc_getTitle: function () {
|
|
return this.title;
|
|
},
|
|
asc_setTitle: function (title) {
|
|
this.title = title;
|
|
},
|
|
asc_getDefaultTitleFlag: function () {
|
|
return this.bDefaultTitle;
|
|
},
|
|
asc_setDefaultTitleFlag: function (defaultTitleFlag) {
|
|
this.bDefaultTitle = defaultTitleFlag;
|
|
},
|
|
asc_getShowFlag: function () {
|
|
return this.bShow;
|
|
},
|
|
asc_setShowFlag: function (showFlag) {
|
|
this.bShow = showFlag;
|
|
},
|
|
asc_getGridFlag: function () {
|
|
return this.bGrid;
|
|
},
|
|
asc_setGridFlag: function (gridFlag) {
|
|
this.bGrid = gridFlag;
|
|
}
|
|
};
|
|
window["Asc"].asc_CChartAxisX = asc_CChartAxisX;
|
|
window["Asc"]["asc_CChartAxisX"] = asc_CChartAxisX;
|
|
prot = asc_CChartAxisX.prototype;
|
|
prot["asc_getTitle"] = prot.asc_getTitle;
|
|
prot["asc_setTitle"] = prot.asc_setTitle;
|
|
prot["asc_getDefaultTitleFlag"] = prot.asc_getDefaultTitleFlag;
|
|
prot["asc_setDefaultTitleFlag"] = prot.asc_setDefaultTitleFlag;
|
|
prot["asc_getShowFlag"] = prot.asc_getShowFlag;
|
|
prot["asc_setShowFlag"] = prot.asc_setShowFlag;
|
|
prot["asc_getGridFlag"] = prot.asc_getGridFlag;
|
|
prot["asc_setGridFlag"] = prot.asc_setGridFlag;
|
|
function asc_CChartAxisY(object) {
|
|
var bCopy = isObject(object);
|
|
this.title = bCopy ? object.title : "";
|
|
this.bDefaultTitle = bCopy ? object.bDefaultTitle : false;
|
|
this.bShow = bCopy ? object.bShow : true;
|
|
this.bGrid = bCopy ? object.bGrid : true;
|
|
}
|
|
asc_CChartAxisY.prototype = {
|
|
isEqual: function (object) {
|
|
return ((this.title == object.title) && (this.bDefaultTitle == object.bDefaultTitle) && (this.bShow == object.bShow) && (this.bGrid == object.bGrid));
|
|
},
|
|
asc_getTitle: function () {
|
|
return this.title;
|
|
},
|
|
asc_setTitle: function (title) {
|
|
this.title = title;
|
|
},
|
|
asc_getDefaultTitleFlag: function () {
|
|
return this.bDefaultTitle;
|
|
},
|
|
asc_setDefaultTitleFlag: function (defaultTitleFlag) {
|
|
this.bDefaultTitle = defaultTitleFlag;
|
|
},
|
|
asc_getShowFlag: function () {
|
|
return this.bShow;
|
|
},
|
|
asc_setShowFlag: function (showFlag) {
|
|
this.bShow = showFlag;
|
|
},
|
|
asc_getGridFlag: function () {
|
|
return this.bGrid;
|
|
},
|
|
asc_setGridFlag: function (gridFlag) {
|
|
this.bGrid = gridFlag;
|
|
}
|
|
};
|
|
window["Asc"].asc_CChartAxisY = asc_CChartAxisY;
|
|
window["Asc"]["asc_CChartAxisY"] = asc_CChartAxisY;
|
|
prot = asc_CChartAxisY.prototype;
|
|
prot["asc_getTitle"] = prot.asc_getTitle;
|
|
prot["asc_setTitle"] = prot.asc_setTitle;
|
|
prot["asc_getDefaultTitleFlag"] = prot.asc_getDefaultTitleFlag;
|
|
prot["asc_setDefaultTitleFlag"] = prot.asc_setDefaultTitleFlag;
|
|
prot["asc_getShowFlag"] = prot.asc_getShowFlag;
|
|
prot["asc_setShowFlag"] = prot.asc_setShowFlag;
|
|
prot["asc_getGridFlag"] = prot.asc_getGridFlag;
|
|
prot["asc_setGridFlag"] = prot.asc_setGridFlag;
|
|
function asc_CChartLegend(object) {
|
|
var bCopy = isObject(object);
|
|
this.position = bCopy ? object.position : c_oAscChartLegend.right;
|
|
this.bShow = bCopy ? object.bShow : true;
|
|
this.bOverlay = bCopy ? object.bOverlay : false;
|
|
}
|
|
asc_CChartLegend.prototype = {
|
|
isEqual: function (object) {
|
|
return ((this.position == object.position) && (this.bShow == object.bShow) && (this.bOverlay == object.bOverlay));
|
|
},
|
|
asc_getPosition: function () {
|
|
return this.position;
|
|
},
|
|
asc_setPosition: function (pos) {
|
|
this.position = pos;
|
|
},
|
|
asc_getShowFlag: function () {
|
|
return this.bShow;
|
|
},
|
|
asc_setShowFlag: function (showFlag) {
|
|
this.bShow = showFlag;
|
|
},
|
|
asc_getOverlayFlag: function () {
|
|
return this.bOverlay;
|
|
},
|
|
asc_setOverlayFlag: function (overlayFlag) {
|
|
this.bOverlay = overlayFlag;
|
|
}
|
|
};
|
|
window["Asc"].asc_CChartLegend = asc_CChartLegend;
|
|
window["Asc"]["asc_CChartLegend"] = asc_CChartLegend;
|
|
prot = asc_CChartLegend.prototype;
|
|
prot["asc_getPosition"] = prot.asc_getPosition;
|
|
prot["asc_setPosition"] = prot.asc_setPosition;
|
|
prot["asc_getShowFlag"] = prot.asc_getShowFlag;
|
|
prot["asc_setShowFlag"] = prot.asc_setShowFlag;
|
|
prot["asc_getOverlayFlag"] = prot.asc_getOverlayFlag;
|
|
prot["asc_setOverlayFlag"] = prot.asc_setOverlayFlag;
|
|
function asc_CChartFont(object) {
|
|
var bCopy = isObject(object);
|
|
this.name = bCopy ? object.name : "Calibri";
|
|
this.size = bCopy ? object.size : 10;
|
|
this.color = bCopy ? object.color : "#000000";
|
|
this.bold = bCopy ? object.bold : 0;
|
|
this.italic = bCopy ? object.italic : 0;
|
|
this.underline = bCopy ? object.underline : 0;
|
|
this.Properties = {
|
|
name: 0,
|
|
size: 1,
|
|
color: 2,
|
|
bold: 3,
|
|
italic: 4,
|
|
underline: 5
|
|
};
|
|
}
|
|
asc_CChartFont.prototype = {
|
|
asc_getName: function () {
|
|
return this.name;
|
|
},
|
|
asc_setName: function (val) {
|
|
this.name = val;
|
|
},
|
|
asc_getSize: function () {
|
|
return this.size;
|
|
},
|
|
asc_setSize: function (val) {
|
|
this.size = val;
|
|
},
|
|
asc_getColor: function () {
|
|
return this.color;
|
|
},
|
|
asc_setColor: function (val) {
|
|
this.color = val;
|
|
},
|
|
asc_getBold: function () {
|
|
return this.bold;
|
|
},
|
|
asc_setBold: function (val) {
|
|
this.bold = val;
|
|
},
|
|
asc_getItalic: function () {
|
|
return this.italic;
|
|
},
|
|
asc_setItalic: function (val) {
|
|
this.italic = val;
|
|
},
|
|
asc_getUnderline: function () {
|
|
return this.underline;
|
|
},
|
|
asc_setUnderline: function (val) {
|
|
this.underline = val;
|
|
},
|
|
getType: function () {
|
|
return UndoRedoDataTypes.ChartFont;
|
|
},
|
|
getProperties: function () {
|
|
return this.Properties;
|
|
},
|
|
getProperty: function (nType) {
|
|
switch (nType) {
|
|
case this.Properties.name:
|
|
return this.name;
|
|
break;
|
|
case this.Properties.size:
|
|
return this.size;
|
|
break;
|
|
case this.Properties.color:
|
|
return this.color;
|
|
break;
|
|
case this.Properties.bold:
|
|
return this.bold;
|
|
break;
|
|
case this.Properties.italic:
|
|
return this.italic;
|
|
break;
|
|
case this.Properties.underline:
|
|
return this.underline;
|
|
break;
|
|
}
|
|
},
|
|
setProperty: function (nType, value) {
|
|
switch (nType) {
|
|
case this.Properties.name:
|
|
this.name = value;
|
|
break;
|
|
case this.Properties.size:
|
|
this.size = value;
|
|
break;
|
|
case this.Properties.color:
|
|
this.color = value;
|
|
break;
|
|
case this.Properties.bold:
|
|
this.bold = value;
|
|
break;
|
|
case this.Properties.italic:
|
|
this.italic = value;
|
|
break;
|
|
case this.Properties.underline:
|
|
this.underline = value;
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
window["Asc"].asc_CChartFont = asc_CChartFont;
|
|
window["Asc"]["asc_CChartFont"] = asc_CChartFont;
|
|
prot = asc_CChartFont.prototype;
|
|
prot["asc_getName"] = prot.asc_getName;
|
|
prot["asc_setName"] = prot.asc_setName;
|
|
prot["asc_getSize"] = prot.asc_getSize;
|
|
prot["asc_setSize"] = prot.asc_setSize;
|
|
prot["asc_getColor"] = prot.asc_getColor;
|
|
prot["asc_setColor"] = prot.asc_setColor;
|
|
prot["asc_getBold"] = prot.asc_getBold;
|
|
prot["asc_setBold"] = prot.asc_setBold;
|
|
prot["asc_getItalic"] = prot.asc_getItalic;
|
|
prot["asc_setItalic"] = prot.asc_setItalic;
|
|
prot["asc_getUnderline"] = prot.asc_getUnderline;
|
|
prot["asc_setUnderline"] = prot.asc_setUnderline;
|
|
function asc_CChartSeria() {
|
|
this.Val = {
|
|
Formula: "",
|
|
NumCache: []
|
|
};
|
|
this.xVal = {
|
|
Formula: "",
|
|
NumCache: []
|
|
};
|
|
this.Cat = {
|
|
Formula: "",
|
|
NumCache: []
|
|
};
|
|
this.TxCache = {
|
|
Formula: "",
|
|
Tx: ""
|
|
};
|
|
this.Marker = {
|
|
Size: 0,
|
|
Symbol: ""
|
|
};
|
|
this.OutlineColor = null;
|
|
this.FormatCode = "";
|
|
this.isHidden = false;
|
|
this.bShowValue = false;
|
|
}
|
|
asc_CChartSeria.prototype = {
|
|
asc_getValFormula: function () {
|
|
return this.Val.Formula;
|
|
},
|
|
asc_setValFormula: function (formula) {
|
|
this.Val.Formula = formula;
|
|
},
|
|
asc_getxValFormula: function () {
|
|
return this.xVal.Formula;
|
|
},
|
|
asc_setxValFormula: function (formula) {
|
|
this.xVal.Formula = formula;
|
|
},
|
|
asc_getCatFormula: function () {
|
|
return this.Cat.Formula;
|
|
},
|
|
asc_setCatFormula: function (formula) {
|
|
this.Cat.Formula = formula;
|
|
},
|
|
asc_getTitle: function () {
|
|
return this.TxCache.Tx;
|
|
},
|
|
asc_setTitle: function (title) {
|
|
this.TxCache.Tx = title;
|
|
},
|
|
asc_getTitleFormula: function () {
|
|
return this.TxCache.Formula;
|
|
},
|
|
asc_setTitleFormula: function (val) {
|
|
this.TxCache.Formula = val;
|
|
},
|
|
asc_getMarkerSize: function () {
|
|
return this.Marker.Size;
|
|
},
|
|
asc_setMarkerSize: function (size) {
|
|
this.Marker.Size = size;
|
|
},
|
|
asc_getMarkerSymbol: function () {
|
|
return this.Marker.Symbol;
|
|
},
|
|
asc_setMarkerSymbol: function (symbol) {
|
|
this.Marker.Symbol = symbol;
|
|
},
|
|
asc_getOutlineColor: function () {
|
|
return this.OutlineColor;
|
|
},
|
|
asc_setOutlineColor: function (color) {
|
|
if (color instanceof CUniColor) {
|
|
this.OutlineColor = color.createDuplicate();
|
|
this.OutlineColor.isCustom = color.isCustom;
|
|
}
|
|
},
|
|
asc_getFormatCode: function () {
|
|
return this.FormatCode;
|
|
},
|
|
asc_setFormatCode: function (format) {
|
|
this.FormatCode = format;
|
|
}
|
|
};
|
|
window["Asc"].asc_CChartSeria = asc_CChartSeria;
|
|
window["Asc"]["asc_CChartSeria"] = asc_CChartSeria;
|
|
prot = asc_CChartSeria.prototype;
|
|
prot["asc_getValFormula"] = prot.asc_getValFormula;
|
|
prot["asc_setValFormula"] = prot.asc_setValFormula;
|
|
prot["asc_getxValFormula"] = prot.asc_getxValFormula;
|
|
prot["asc_setxValFormula"] = prot.asc_setxValFormula;
|
|
prot["asc_getCatFormula"] = prot.asc_getCatFormula;
|
|
prot["asc_setCatFormula"] = prot.asc_setCatFormula;
|
|
prot["asc_getTitle"] = prot.asc_getTitle;
|
|
prot["asc_setTitle"] = prot.asc_setTitle;
|
|
prot["asc_getTitleFormula"] = prot.asc_getTitleFormula;
|
|
prot["asc_setTitleFormula"] = prot.asc_setTitleFormula;
|
|
prot["asc_getMarkerSize"] = prot.asc_getMarkerSize;
|
|
prot["asc_setMarkerSize"] = prot.asc_setMarkerSize;
|
|
prot["asc_getMarkerSymbol"] = prot.asc_getMarkerSymbol;
|
|
prot["asc_setMarkerSymbol"] = prot.asc_setMarkerSymbol;
|
|
prot["asc_getOutlineColor"] = prot.asc_getOutlineColor;
|
|
prot["asc_setOutlineColor"] = prot.asc_setOutlineColor;
|
|
prot["asc_getFormatCode"] = prot.asc_getFormatCode;
|
|
prot["asc_setFormatCode"] = prot.asc_setFormatCode;
|
|
function asc_CSelectedObject(type, val) {
|
|
this.Type = (undefined != type) ? type : null;
|
|
this.Value = (undefined != val) ? val : null;
|
|
}
|
|
asc_CSelectedObject.prototype = {
|
|
asc_getObjectType: function () {
|
|
return this.Type;
|
|
},
|
|
asc_getObjectValue: function () {
|
|
return this.Value;
|
|
}
|
|
};
|
|
window["Asc"].asc_CSelectedObject = asc_CSelectedObject;
|
|
window["Asc"]["asc_CSelectedObject"] = asc_CSelectedObject;
|
|
prot = asc_CSelectedObject.prototype;
|
|
prot["asc_getObjectType"] = prot.asc_getObjectType;
|
|
prot["asc_getObjectValue"] = prot.asc_getObjectValue;
|
|
function asc_CImgProperty(obj) {
|
|
if (obj) {
|
|
this.CanBeFlow = (undefined != obj.CanBeFlow) ? obj.CanBeFlow : true;
|
|
this.Width = (undefined != obj.Width) ? obj.Width : undefined;
|
|
this.Height = (undefined != obj.Height) ? obj.Height : undefined;
|
|
this.WrappingStyle = (undefined != obj.WrappingStyle) ? obj.WrappingStyle : undefined;
|
|
this.Paddings = (undefined != obj.Paddings) ? new CPaddings(obj.Paddings) : undefined;
|
|
this.Position = (undefined != obj.Position) ? new CPosition(obj.Position) : undefined;
|
|
this.AllowOverlap = (undefined != obj.AllowOverlap) ? obj.AllowOverlap : undefined;
|
|
this.PositionH = (undefined != obj.PositionH) ? new CImagePositionH(obj.PositionH) : undefined;
|
|
this.PositionV = (undefined != obj.PositionV) ? new CImagePositionV(obj.PositionV) : undefined;
|
|
this.Internal_Position = (undefined != obj.Internal_Position) ? obj.Internal_Position : null;
|
|
this.ImageUrl = (undefined != obj.ImageUrl) ? obj.ImageUrl : null;
|
|
this.Locked = (undefined != obj.Locked) ? obj.Locked : false;
|
|
this.ChartProperties = (undefined != obj.ChartProperties) ? obj.ChartProperties : null;
|
|
this.ShapeProperties = (undefined != obj.ShapeProperties) ? (obj.ShapeProperties) : null;
|
|
this.ChangeLevel = (undefined != obj.ChangeLevel) ? obj.ChangeLevel : null;
|
|
this.Group = (obj.Group != undefined) ? obj.Group : null;
|
|
this.fromGroup = obj.fromGroup != undefined ? obj.fromGroup : null;
|
|
this.severalCharts = obj.severalCharts != undefined ? obj.severalCharts : false;
|
|
this.severalChartTypes = obj.severalChartTypes != undefined ? obj.severalChartTypes : undefined;
|
|
this.severalChartStyles = obj.severalChartStyles != undefined ? obj.severalChartStyles : undefined;
|
|
this.verticalTextAlign = obj.verticalTextAlign != undefined ? obj.verticalTextAlign : undefined;
|
|
} else {
|
|
this.CanBeFlow = true;
|
|
this.Width = undefined;
|
|
this.Height = undefined;
|
|
this.WrappingStyle = undefined;
|
|
this.Paddings = undefined;
|
|
this.Position = undefined;
|
|
this.PositionH = undefined;
|
|
this.PositionV = undefined;
|
|
this.Internal_Position = null;
|
|
this.ImageUrl = null;
|
|
this.Locked = false;
|
|
this.ChartProperties = null;
|
|
this.ShapeProperties = null;
|
|
this.ImageProperties = null;
|
|
this.ChangeLevel = null;
|
|
this.Group = null;
|
|
this.fromGroup = null;
|
|
this.severalCharts = false;
|
|
this.severalChartTypes = undefined;
|
|
this.severalChartStyles = undefined;
|
|
this.verticalTextAlign = undefined;
|
|
}
|
|
}
|
|
asc_CImgProperty.prototype = {
|
|
asc_getChangeLevel: function () {
|
|
return this.ChangeLevel;
|
|
},
|
|
asc_putChangeLevel: function (v) {
|
|
this.ChangeLevel = v;
|
|
},
|
|
asc_getCanBeFlow: function () {
|
|
return this.CanBeFlow;
|
|
},
|
|
asc_getWidth: function () {
|
|
return this.Width;
|
|
},
|
|
asc_putWidth: function (v) {
|
|
this.Width = v;
|
|
},
|
|
asc_getHeight: function () {
|
|
return this.Height;
|
|
},
|
|
asc_putHeight: function (v) {
|
|
this.Height = v;
|
|
},
|
|
asc_getWrappingStyle: function () {
|
|
return this.WrappingStyle;
|
|
},
|
|
asc_putWrappingStyle: function (v) {
|
|
this.WrappingStyle = v;
|
|
},
|
|
asc_getPaddings: function () {
|
|
return this.Paddings;
|
|
},
|
|
asc_putPaddings: function (v) {
|
|
this.Paddings = v;
|
|
},
|
|
asc_getAllowOverlap: function () {
|
|
return this.AllowOverlap;
|
|
},
|
|
asc_putAllowOverlap: function (v) {
|
|
this.AllowOverlap = v;
|
|
},
|
|
asc_getPosition: function () {
|
|
return this.Position;
|
|
},
|
|
asc_putPosition: function (v) {
|
|
this.Position = v;
|
|
},
|
|
asc_getPositionH: function () {
|
|
return this.PositionH;
|
|
},
|
|
asc_putPositionH: function (v) {
|
|
this.PositionH = v;
|
|
},
|
|
asc_getPositionV: function () {
|
|
return this.PositionV;
|
|
},
|
|
asc_putPositionV: function (v) {
|
|
this.PositionV = v;
|
|
},
|
|
asc_getValue_X: function (RelativeFrom) {
|
|
if (null != this.Internal_Position) {
|
|
return this.Internal_Position.Calculate_X_Value(RelativeFrom);
|
|
}
|
|
return 0;
|
|
},
|
|
asc_getValue_Y: function (RelativeFrom) {
|
|
if (null != this.Internal_Position) {
|
|
return this.Internal_Position.Calculate_Y_Value(RelativeFrom);
|
|
}
|
|
return 0;
|
|
},
|
|
asc_getImageUrl: function () {
|
|
return this.ImageUrl;
|
|
},
|
|
asc_putImageUrl: function (v) {
|
|
this.ImageUrl = v;
|
|
},
|
|
asc_getGroup: function () {
|
|
return this.Group;
|
|
},
|
|
asc_putGroup: function (v) {
|
|
this.Group = v;
|
|
},
|
|
asc_getFromGroup: function () {
|
|
return this.fromGroup;
|
|
},
|
|
asc_putFromGroup: function (v) {
|
|
this.fromGroup = v;
|
|
},
|
|
asc_getisChartProps: function () {
|
|
return this.isChartProps;
|
|
},
|
|
asc_putisChartPross: function (v) {
|
|
this.isChartProps = v;
|
|
},
|
|
asc_getSeveralCharts: function () {
|
|
return this.severalCharts;
|
|
},
|
|
asc_putSeveralCharts: function (v) {
|
|
this.severalCharts = v;
|
|
},
|
|
asc_getSeveralChartTypes: function () {
|
|
return this.severalChartTypes;
|
|
},
|
|
asc_putSeveralChartTypes: function (v) {
|
|
this.severalChartTypes = v;
|
|
},
|
|
asc_getSeveralChartStyles: function () {
|
|
return this.severalChartStyles;
|
|
},
|
|
asc_putSeveralChartStyles: function (v) {
|
|
this.severalChartStyles = v;
|
|
},
|
|
asc_getVerticalTextAlign: function () {
|
|
return this.verticalTextAlign;
|
|
},
|
|
asc_putVerticalTextAlign: function (v) {
|
|
this.verticalTextAlign = v;
|
|
},
|
|
asc_getLocked: function () {
|
|
return this.Locked;
|
|
},
|
|
asc_getChartProperties: function () {
|
|
return this.ChartProperties;
|
|
},
|
|
asc_putChartProperties: function (v) {
|
|
this.ChartProperties = v;
|
|
},
|
|
asc_getShapeProperties: function () {
|
|
return this.ShapeProperties;
|
|
},
|
|
asc_putShapeProperties: function (v) {
|
|
this.ShapeProperties = v;
|
|
}
|
|
};
|
|
window["Asc"].asc_CImgProperty = asc_CImgProperty;
|
|
window["Asc"]["asc_CImgProperty"] = asc_CImgProperty;
|
|
prot = asc_CImgProperty.prototype;
|
|
prot["asc_getChangeLevel"] = prot.asc_getChangeLevel;
|
|
prot["asc_putChangeLevel"] = prot.asc_putChangeLevel;
|
|
prot["asc_getCanBeFlow"] = prot.asc_getCanBeFlow;
|
|
prot["asc_getWidth"] = prot.asc_getWidth;
|
|
prot["asc_putWidth"] = prot.asc_putWidth;
|
|
prot["asc_getHeight"] = prot.asc_getHeight;
|
|
prot["asc_putHeight"] = prot.asc_putHeight;
|
|
prot["asc_getWrappingStyle"] = prot.asc_getWrappingStyle;
|
|
prot["asc_putWrappingStyle"] = prot.asc_putWrappingStyle;
|
|
prot["asc_getPaddings"] = prot.asc_getPaddings;
|
|
prot["asc_putPaddings"] = prot.asc_putPaddings;
|
|
prot["asc_getAllowOverlap"] = prot.asc_getAllowOverlap;
|
|
prot["asc_putAllowOverlap"] = prot.asc_putAllowOverlap;
|
|
prot["asc_getPosition"] = prot.asc_getPosition;
|
|
prot["asc_putPosition"] = prot.asc_putPosition;
|
|
prot["asc_getPositionH"] = prot.asc_getPositionH;
|
|
prot["asc_putPositionH"] = prot.asc_putPositionH;
|
|
prot["asc_getPositionV"] = prot.asc_getPositionV;
|
|
prot["asc_putPositionV"] = prot.asc_putPositionV;
|
|
prot["asc_getValue_X"] = prot.asc_getValue_X;
|
|
prot["asc_getValue_Y"] = prot.asc_getValue_Y;
|
|
prot["asc_getImageUrl"] = prot.asc_getImageUrl;
|
|
prot["asc_putImageUrl"] = prot.asc_putImageUrl;
|
|
prot["asc_getGroup"] = prot.asc_getGroup;
|
|
prot["asc_putGroup"] = prot.asc_putGroup;
|
|
prot["asc_getFromGroup"] = prot.asc_getFromGroup;
|
|
prot["asc_putFromGroup"] = prot.asc_putFromGroup;
|
|
prot["asc_getisChartProps"] = prot.asc_getisChartProps;
|
|
prot["asc_putisChartPross"] = prot.asc_putisChartPross;
|
|
prot["asc_getSeveralCharts"] = prot.asc_getSeveralCharts;
|
|
prot["asc_putSeveralCharts"] = prot.asc_putSeveralCharts;
|
|
prot["asc_getSeveralChartTypes"] = prot.asc_getSeveralChartTypes;
|
|
prot["asc_putSeveralChartTypes"] = prot.asc_putSeveralChartTypes;
|
|
prot["asc_getSeveralChartStyles"] = prot.asc_getSeveralChartStyles;
|
|
prot["asc_putSeveralChartStyles"] = prot.asc_putSeveralChartStyles;
|
|
prot["asc_getVerticalTextAlign"] = prot.asc_getVerticalTextAlign;
|
|
prot["asc_putVerticalTextAlign"] = prot.asc_putVerticalTextAlign;
|
|
prot["asc_getLocked"] = prot.asc_getLocked;
|
|
prot["asc_getChartProperties"] = prot.asc_getChartProperties;
|
|
prot["asc_putChartProperties"] = prot.asc_putChartProperties;
|
|
prot["asc_getShapeProperties"] = prot.asc_getShapeProperties;
|
|
prot["asc_putShapeProperties"] = prot.asc_putShapeProperties;
|
|
function asc_CShapeProperty() {
|
|
this.type = null;
|
|
this.fill = null;
|
|
this.stroke = null;
|
|
this.paddings = null;
|
|
this.canFill = true;
|
|
this.canChangeArrows = false;
|
|
}
|
|
asc_CShapeProperty.prototype = {
|
|
asc_getType: function () {
|
|
return this.type;
|
|
},
|
|
asc_putType: function (v) {
|
|
this.type = v;
|
|
},
|
|
asc_getFill: function () {
|
|
return this.fill;
|
|
},
|
|
asc_putFill: function (v) {
|
|
this.fill = v;
|
|
},
|
|
asc_getStroke: function () {
|
|
return this.stroke;
|
|
},
|
|
asc_putStroke: function (v) {
|
|
this.stroke = v;
|
|
},
|
|
asc_getPaddings: function () {
|
|
return this.paddings;
|
|
},
|
|
asc_putPaddings: function (v) {
|
|
this.paddings = v;
|
|
},
|
|
asc_getCanFill: function () {
|
|
return this.canFill;
|
|
},
|
|
asc_putCanFill: function (v) {
|
|
this.canFill = v;
|
|
},
|
|
asc_getCanChangeArrows: function () {
|
|
return this.canChangeArrows;
|
|
},
|
|
asc_setCanChangeArrows: function (v) {
|
|
this.canChangeArrows = v;
|
|
}
|
|
};
|
|
window["Asc"].asc_CShapeProperty = asc_CShapeProperty;
|
|
window["Asc"]["asc_CShapeProperty"] = asc_CShapeProperty;
|
|
prot = asc_CShapeProperty.prototype;
|
|
prot["asc_getType"] = prot.asc_getType;
|
|
prot["asc_putType"] = prot.asc_putType;
|
|
prot["asc_getFill"] = prot.asc_getFill;
|
|
prot["asc_putFill"] = prot.asc_putFill;
|
|
prot["asc_getStroke"] = prot.asc_getStroke;
|
|
prot["asc_putStroke"] = prot.asc_putStroke;
|
|
prot["asc_getPaddings"] = prot.asc_getPaddings;
|
|
prot["asc_putPaddings"] = prot.asc_putPaddings;
|
|
prot["asc_getCanFill"] = prot.asc_getCanFill;
|
|
prot["asc_putCanFill"] = prot.asc_putCanFill;
|
|
prot["asc_getCanChangeArrows"] = prot.asc_getCanChangeArrows;
|
|
prot["asc_setCanChangeArrows"] = prot.asc_setCanChangeArrows;
|
|
function asc_CPaddings(obj) {
|
|
if (obj) {
|
|
this.Left = (undefined == obj.Left) ? null : obj.Left;
|
|
this.Top = (undefined == obj.Top) ? null : obj.Top;
|
|
this.Bottom = (undefined == obj.Bottom) ? null : obj.Bottom;
|
|
this.Right = (undefined == obj.Right) ? null : obj.Right;
|
|
} else {
|
|
this.Left = null;
|
|
this.Top = null;
|
|
this.Bottom = null;
|
|
this.Right = null;
|
|
}
|
|
}
|
|
asc_CPaddings.prototype = {
|
|
asc_getLeft: function () {
|
|
return this.Left;
|
|
},
|
|
asc_putLeft: function (v) {
|
|
this.Left = v;
|
|
},
|
|
asc_getTop: function () {
|
|
return this.Top;
|
|
},
|
|
asc_putTop: function (v) {
|
|
this.Top = v;
|
|
},
|
|
asc_getBottom: function () {
|
|
return this.Bottom;
|
|
},
|
|
asc_putBottom: function (v) {
|
|
this.Bottom = v;
|
|
},
|
|
asc_getRight: function () {
|
|
return this.Right;
|
|
},
|
|
asc_putRight: function (v) {
|
|
this.Right = v;
|
|
}
|
|
};
|
|
window["Asc"].asc_CPaddings = asc_CPaddings;
|
|
window["Asc"]["asc_CPaddings"] = asc_CPaddings;
|
|
prot = asc_CPaddings.prototype;
|
|
prot["asc_getLeft"] = prot.asc_getLeft;
|
|
prot["asc_putLeft"] = prot.asc_putLeft;
|
|
prot["asc_getTop"] = prot.asc_getTop;
|
|
prot["asc_putTop"] = prot.asc_putTop;
|
|
prot["asc_getBottom"] = prot.asc_getBottom;
|
|
prot["asc_putBottom"] = prot.asc_putBottom;
|
|
prot["asc_getRight"] = prot.asc_getRight;
|
|
prot["asc_putRight"] = prot.asc_putRight;
|
|
function asc_CImageSize(width, height, isCorrect) {
|
|
this.Width = (undefined == width) ? 0 : width;
|
|
this.Height = (undefined == height) ? 0 : height;
|
|
this.IsCorrect = isCorrect;
|
|
}
|
|
asc_CImageSize.prototype = {
|
|
asc_getImageWidth: function () {
|
|
return this.Width;
|
|
},
|
|
asc_getImageHeight: function () {
|
|
return this.Height;
|
|
},
|
|
asc_getIsCorrect: function () {
|
|
return this.IsCorrect;
|
|
}
|
|
};
|
|
window["Asc"].asc_CImageSize = asc_CImageSize;
|
|
window["Asc"]["asc_CImageSize"] = asc_CImageSize;
|
|
prot = asc_CImageSize.prototype;
|
|
prot["asc_getImageWidth"] = prot.asc_getImageWidth;
|
|
prot["asc_getImageHeight"] = prot.asc_getImageHeight;
|
|
prot["asc_getIsCorrect"] = prot.asc_getIsCorrect;
|
|
function asc_CTexture() {
|
|
this.Id = 0;
|
|
this.Image = "";
|
|
}
|
|
asc_CTexture.prototype = {
|
|
asc_getId: function () {
|
|
return this.Id;
|
|
},
|
|
asc_getImage: function () {
|
|
return this.Image;
|
|
}
|
|
};
|
|
window["Asc"].asc_CTexture = asc_CTexture;
|
|
window["Asc"]["asc_CTexture"] = asc_CTexture;
|
|
prot = asc_CTexture.prototype;
|
|
prot["asc_getId"] = prot.asc_getId;
|
|
prot["asc_getImage"] = prot.asc_getImage;
|
|
function asc_CParagraphProperty(obj) {
|
|
if (obj) {
|
|
this.ContextualSpacing = (undefined != obj.ContextualSpacing) ? obj.ContextualSpacing : null;
|
|
this.Ind = (undefined != obj.Ind && null != obj.Ind) ? new asc_CParagraphInd(obj.Ind) : null;
|
|
this.KeepLines = (undefined != obj.KeepLines) ? obj.KeepLines : null;
|
|
this.KeepNext = (undefined != obj.KeepNext) ? obj.KeepNext : undefined;
|
|
this.WidowControl = (undefined != obj.WidowControl ? obj.WidowControl : undefined);
|
|
this.PageBreakBefore = (undefined != obj.PageBreakBefore) ? obj.PageBreakBefore : null;
|
|
this.Spacing = (undefined != obj.Spacing && null != obj.Spacing) ? new asc_CParagraphSpacing(obj.Spacing) : null;
|
|
this.Brd = (undefined != obj.Brd && null != obj.Brd) ? new asc_CParagraphBorders(obj.Brd) : null;
|
|
this.Shd = (undefined != obj.Shd && null != obj.Shd) ? new asc_CParagraphShd(obj.Shd) : null;
|
|
this.Tabs = (undefined != obj.Tabs) ? new asc_CParagraphTabs(obj.Tabs) : undefined;
|
|
this.DefaultTab = Default_Tab_Stop;
|
|
this.Locked = (undefined != obj.Locked && null != obj.Locked) ? obj.Locked : false;
|
|
this.CanAddTable = (undefined != obj.CanAddTable) ? obj.CanAddTable : true;
|
|
this.Subscript = (undefined != obj.Subscript) ? obj.Subscript : undefined;
|
|
this.Superscript = (undefined != obj.Superscript) ? obj.Superscript : undefined;
|
|
this.SmallCaps = (undefined != obj.SmallCaps) ? obj.SmallCaps : undefined;
|
|
this.AllCaps = (undefined != obj.AllCaps) ? obj.AllCaps : undefined;
|
|
this.Strikeout = (undefined != obj.Strikeout) ? obj.Strikeout : undefined;
|
|
this.DStrikeout = (undefined != obj.DStrikeout) ? obj.DStrikeout : undefined;
|
|
this.TextSpacing = (undefined != obj.TextSpacing) ? obj.TextSpacing : undefined;
|
|
this.Position = (undefined != obj.Position) ? obj.Position : undefined;
|
|
} else {
|
|
this.ContextualSpacing = undefined;
|
|
this.Ind = new asc_CParagraphInd();
|
|
this.KeepLines = undefined;
|
|
this.KeepNext = undefined;
|
|
this.WidowControl = undefined;
|
|
this.PageBreakBefore = undefined;
|
|
this.Spacing = new asc_CParagraphSpacing();
|
|
this.Brd = undefined;
|
|
this.Shd = undefined;
|
|
this.Locked = false;
|
|
this.CanAddTable = true;
|
|
this.Tabs = undefined;
|
|
this.Subscript = undefined;
|
|
this.Superscript = undefined;
|
|
this.SmallCaps = undefined;
|
|
this.AllCaps = undefined;
|
|
this.Strikeout = undefined;
|
|
this.DStrikeout = undefined;
|
|
this.TextSpacing = undefined;
|
|
this.Position = undefined;
|
|
}
|
|
}
|
|
asc_CParagraphProperty.prototype = {
|
|
asc_getContextualSpacing: function () {
|
|
return this.ContextualSpacing;
|
|
},
|
|
asc_putContextualSpacing: function (v) {
|
|
this.ContextualSpacing = v;
|
|
},
|
|
asc_getInd: function () {
|
|
return this.Ind;
|
|
},
|
|
asc_putInd: function (v) {
|
|
this.Ind = v;
|
|
},
|
|
asc_getKeepLines: function () {
|
|
return this.KeepLines;
|
|
},
|
|
asc_putKeepLines: function (v) {
|
|
this.KeepLines = v;
|
|
},
|
|
asc_getKeepNext: function () {
|
|
return this.KeepNext;
|
|
},
|
|
asc_putKeepNext: function (v) {
|
|
this.KeepNext = v;
|
|
},
|
|
asc_getPageBreakBefore: function () {
|
|
return this.PageBreakBefore;
|
|
},
|
|
asc_putPageBreakBefore: function (v) {
|
|
this.PageBreakBefore = v;
|
|
},
|
|
asc_getWidowControl: function () {
|
|
return this.WidowControl;
|
|
},
|
|
asc_putWidowControl: function (v) {
|
|
this.WidowControl = v;
|
|
},
|
|
asc_getSpacing: function () {
|
|
return this.Spacing;
|
|
},
|
|
asc_putSpacing: function (v) {
|
|
this.Spacing = v;
|
|
},
|
|
asc_getBorders: function () {
|
|
return this.Brd;
|
|
},
|
|
asc_putBorders: function (v) {
|
|
this.Brd = v;
|
|
},
|
|
asc_getShade: function () {
|
|
return this.Shd;
|
|
},
|
|
asc_putShade: function (v) {
|
|
this.Shd = v;
|
|
},
|
|
asc_getLocked: function () {
|
|
return this.Locked;
|
|
},
|
|
asc_getCanAddTable: function () {
|
|
return this.CanAddTable;
|
|
},
|
|
asc_getSubscript: function () {
|
|
return this.Subscript;
|
|
},
|
|
asc_putSubscript: function (v) {
|
|
this.Subscript = v;
|
|
},
|
|
asc_getSuperscript: function () {
|
|
return this.Superscript;
|
|
},
|
|
asc_putSuperscript: function (v) {
|
|
this.Superscript = v;
|
|
},
|
|
asc_getSmallCaps: function () {
|
|
return this.SmallCaps;
|
|
},
|
|
asc_putSmallCaps: function (v) {
|
|
this.SmallCaps = v;
|
|
},
|
|
asc_getAllCaps: function () {
|
|
return this.AllCaps;
|
|
},
|
|
asc_putAllCaps: function (v) {
|
|
this.AllCaps = v;
|
|
},
|
|
asc_getStrikeout: function () {
|
|
return this.Strikeout;
|
|
},
|
|
asc_putStrikeout: function (v) {
|
|
this.Strikeout = v;
|
|
},
|
|
asc_getDStrikeout: function () {
|
|
return this.DStrikeout;
|
|
},
|
|
asc_putDStrikeout: function (v) {
|
|
this.DStrikeout = v;
|
|
},
|
|
asc_getTextSpacing: function () {
|
|
return this.TextSpacing;
|
|
},
|
|
asc_putTextSpacing: function (v) {
|
|
this.TextSpacing = v;
|
|
},
|
|
asc_getPosition: function () {
|
|
return this.Position;
|
|
},
|
|
asc_putPosition: function (v) {
|
|
this.Position = v;
|
|
},
|
|
asc_getTabs: function () {
|
|
return this.Tabs;
|
|
},
|
|
asc_putTabs: function (v) {
|
|
this.Tabs = v;
|
|
},
|
|
asc_getDefaultTab: function () {
|
|
return this.DefaultTab;
|
|
},
|
|
asc_putDefaultTab: function (v) {
|
|
this.DefaultTab = v;
|
|
}
|
|
};
|
|
window["Asc"].asc_CParagraphProperty = asc_CParagraphProperty;
|
|
window["Asc"]["asc_CParagraphProperty"] = asc_CParagraphProperty;
|
|
prot = asc_CParagraphProperty.prototype;
|
|
prot["asc_getContextualSpacing"] = prot.asc_getContextualSpacing;
|
|
prot["asc_putContextualSpacing"] = prot.asc_putContextualSpacing;
|
|
prot["asc_getInd"] = prot.asc_getInd;
|
|
prot["asc_putInd"] = prot.asc_putInd;
|
|
prot["asc_getKeepLines"] = prot.asc_getKeepLines;
|
|
prot["asc_putKeepLines"] = prot.asc_putKeepLines;
|
|
prot["asc_getKeepNext"] = prot.asc_getKeepNext;
|
|
prot["asc_putKeepNext"] = prot.asc_putKeepNext;
|
|
prot["asc_getPageBreakBefore"] = prot.asc_getPageBreakBefore;
|
|
prot["asc_putPageBreakBefore"] = prot.asc_putPageBreakBefore;
|
|
prot["asc_getWidowControl"] = prot.asc_getWidowControl;
|
|
prot["asc_putWidowControl"] = prot.asc_putWidowControl;
|
|
prot["asc_getSpacing"] = prot.asc_getSpacing;
|
|
prot["asc_putSpacing"] = prot.asc_putSpacing;
|
|
prot["asc_getBorders"] = prot.asc_getBorders;
|
|
prot["asc_putBorders"] = prot.asc_putBorders;
|
|
prot["asc_getShade"] = prot.asc_getShade;
|
|
prot["asc_putShade"] = prot.asc_putShade;
|
|
prot["asc_getLocked"] = prot.asc_getLocked;
|
|
prot["asc_getCanAddTable"] = prot.asc_getCanAddTable;
|
|
prot["asc_getSubscript"] = prot.asc_getSubscript;
|
|
prot["asc_putSubscript"] = prot.asc_putSubscript;
|
|
prot["asc_getSuperscript"] = prot.asc_getSuperscript;
|
|
prot["asc_putSuperscript"] = prot.asc_putSuperscript;
|
|
prot["asc_getSmallCaps"] = prot.asc_getSmallCaps;
|
|
prot["asc_putSmallCaps"] = prot.asc_putSmallCaps;
|
|
prot["asc_getAllCaps"] = prot.asc_getAllCaps;
|
|
prot["asc_putAllCaps"] = prot.asc_putAllCaps;
|
|
prot["asc_getStrikeout"] = prot.asc_getStrikeout;
|
|
prot["asc_putStrikeout"] = prot.asc_putStrikeout;
|
|
prot["asc_getDStrikeout"] = prot.asc_getDStrikeout;
|
|
prot["asc_putDStrikeout"] = prot.asc_putDStrikeout;
|
|
prot["asc_getTextSpacing"] = prot.asc_getTextSpacing;
|
|
prot["asc_putTextSpacing"] = prot.asc_putTextSpacing;
|
|
prot["asc_getPosition"] = prot.asc_getPosition;
|
|
prot["asc_putPosition"] = prot.asc_putPosition;
|
|
prot["asc_getTabs"] = prot.asc_getTabs;
|
|
prot["asc_putTabs"] = prot.asc_putTabs;
|
|
prot["asc_getDefaultTab"] = prot.asc_getDefaultTab;
|
|
prot["asc_putDefaultTab"] = prot.asc_putDefaultTab;
|
|
function asc_CParagraphInd(obj) {
|
|
if (obj) {
|
|
this.Left = (undefined != obj.Left) ? obj.Left : null;
|
|
this.Right = (undefined != obj.Right) ? obj.Right : null;
|
|
this.FirstLine = (undefined != obj.FirstLine) ? obj.FirstLine : null;
|
|
} else {
|
|
this.Left = undefined;
|
|
this.Right = undefined;
|
|
this.FirstLine = undefined;
|
|
}
|
|
}
|
|
asc_CParagraphInd.prototype = {
|
|
asc_getLeft: function () {
|
|
return this.Left;
|
|
},
|
|
asc_putLeft: function (v) {
|
|
this.Left = v;
|
|
},
|
|
asc_getRight: function () {
|
|
return this.Right;
|
|
},
|
|
asc_putRight: function (v) {
|
|
this.Right = v;
|
|
},
|
|
asc_getFirstLine: function () {
|
|
return this.FirstLine;
|
|
},
|
|
asc_putFirstLine: function (v) {
|
|
this.FirstLine = v;
|
|
}
|
|
};
|
|
window["Asc"].asc_CParagraphInd = asc_CParagraphInd;
|
|
window["Asc"]["asc_CParagraphInd"] = asc_CParagraphInd;
|
|
prot = asc_CParagraphInd.prototype;
|
|
prot["asc_getLeft"] = prot.asc_getLeft;
|
|
prot["asc_putLeft"] = prot.asc_putLeft;
|
|
prot["asc_getRight"] = prot.asc_getRight;
|
|
prot["asc_putRight"] = prot.asc_putRight;
|
|
prot["asc_getFirstLine"] = prot.asc_getFirstLine;
|
|
prot["asc_getFirstLine"] = prot.asc_getFirstLine;
|
|
function asc_CParagraphSpacing(obj) {
|
|
if (obj) {
|
|
this.Line = (undefined != obj.Line) ? obj.Line : null;
|
|
this.LineRule = (undefined != obj.LineRule) ? obj.LineRule : null;
|
|
this.Before = (undefined != obj.Before) ? obj.Before : null;
|
|
this.After = (undefined != obj.After) ? obj.After : null;
|
|
} else {
|
|
this.Line = undefined;
|
|
this.LineRule = undefined;
|
|
this.Before = undefined;
|
|
this.After = undefined;
|
|
}
|
|
}
|
|
asc_CParagraphSpacing.prototype = {
|
|
asc_getLine: function () {
|
|
return this.Line;
|
|
},
|
|
asc_getLineRule: function () {
|
|
return this.LineRule;
|
|
},
|
|
asc_getBefore: function () {
|
|
return this.Before;
|
|
},
|
|
asc_getAfter: function () {
|
|
return this.After;
|
|
}
|
|
};
|
|
window["Asc"].asc_CParagraphSpacing = asc_CParagraphSpacing;
|
|
window["Asc"]["asc_CParagraphSpacing"] = asc_CParagraphSpacing;
|
|
prot = asc_CParagraphSpacing.prototype;
|
|
prot["asc_getLine"] = prot.asc_getLine;
|
|
prot["asc_getLineRule"] = prot.asc_getLineRule;
|
|
prot["asc_getBefore"] = prot.asc_getBefore;
|
|
prot["asc_getAfter"] = prot.asc_getAfter;
|
|
function asc_CParagraphShd(obj) {
|
|
if (obj) {
|
|
this.Value = (undefined != obj.Value) ? obj.Value : null;
|
|
this.Color = (undefined != obj.Color && null != obj.Color) ? CreateAscColorCustom(obj.Color.r, obj.Color.g, obj.Color.b) : null;
|
|
} else {
|
|
this.Value = shd_Nil;
|
|
this.Color = CreateAscColorCustom(255, 255, 255);
|
|
}
|
|
}
|
|
asc_CParagraphShd.prototype = {
|
|
asc_getValue: function () {
|
|
return this.Value;
|
|
},
|
|
asc_putValue: function (v) {
|
|
this.Value = v;
|
|
},
|
|
asc_getColor: function () {
|
|
return this.Color;
|
|
},
|
|
asc_putColor: function (v) {
|
|
this.Color = (v) ? v : null;
|
|
}
|
|
};
|
|
window["Asc"].asc_CParagraphShd = asc_CParagraphShd;
|
|
window["Asc"]["asc_CParagraphShd"] = asc_CParagraphShd;
|
|
prot = asc_CParagraphShd.prototype;
|
|
prot["asc_getValue"] = prot.asc_getValue;
|
|
prot["asc_putValue"] = prot.asc_putValue;
|
|
prot["asc_getColor"] = prot.asc_getColor;
|
|
prot["asc_putColor"] = prot.asc_putColor;
|
|
function asc_CParagraphTab(Pos, Value) {
|
|
this.Pos = Pos;
|
|
this.Value = Value;
|
|
}
|
|
asc_CParagraphTab.prototype = {
|
|
asc_getValue: function () {
|
|
return this.Value;
|
|
},
|
|
asc_putValue: function (v) {
|
|
this.Value = v;
|
|
},
|
|
asc_getPos: function () {
|
|
return this.Pos;
|
|
},
|
|
asc_putPos: function (v) {
|
|
this.Pos = v;
|
|
}
|
|
};
|
|
window["Asc"].asc_CParagraphTab = asc_CParagraphTab;
|
|
window["Asc"]["asc_CParagraphTab"] = asc_CParagraphTab;
|
|
prot = asc_CParagraphTab.prototype;
|
|
prot["asc_getValue"] = prot.asc_getValue;
|
|
prot["asc_putValue"] = prot.asc_putValue;
|
|
prot["asc_getPos"] = prot.asc_getPos;
|
|
prot["asc_putPos"] = prot.asc_putPos;
|
|
function asc_CParagraphTabs(obj) {
|
|
this.Tabs = new Array();
|
|
if (undefined != obj) {
|
|
var Count = obj.Tabs.length;
|
|
for (var Index = 0; Index < Count; Index++) {
|
|
this.Tabs.push(new asc_CParagraphTab(obj.Tabs[Index].Pos, obj.Tabs[Index].Value));
|
|
}
|
|
}
|
|
}
|
|
asc_CParagraphTabs.prototype = {
|
|
asc_getCount: function () {
|
|
return this.Tabs.length;
|
|
},
|
|
asc_getTab: function (Index) {
|
|
return this.Tabs[Index];
|
|
},
|
|
asc_addTab: function (Tab) {
|
|
this.Tabs.push(Tab);
|
|
},
|
|
asc_clear: function () {
|
|
this.Tabs.length = 0;
|
|
},
|
|
add_Tab: function (Tab) {
|
|
this.Tabs.push(Tab);
|
|
}
|
|
};
|
|
window["Asc"].asc_CParagraphTabs = asc_CParagraphTabs;
|
|
window["Asc"]["asc_CParagraphTabs"] = asc_CParagraphTabs;
|
|
prot = asc_CParagraphTabs.prototype;
|
|
prot["asc_getCount"] = prot.asc_getCount;
|
|
prot["asc_getTab"] = prot.asc_getTab;
|
|
prot["asc_addTab"] = prot.asc_addTab;
|
|
prot["asc_clear"] = prot.asc_clear;
|
|
prot["add_Tab"] = prot.add_Tab;
|
|
function asc_CParagraphBorders(obj) {
|
|
if (obj) {
|
|
this.Left = (undefined != obj.Left && null != obj.Left) ? new asc_CTextBorder(obj.Left) : null;
|
|
this.Top = (undefined != obj.Top && null != obj.Top) ? new asc_CTextBorder(obj.Top) : null;
|
|
this.Right = (undefined != obj.Right && null != obj.Right) ? new asc_CTextBorder(obj.Right) : null;
|
|
this.Bottom = (undefined != obj.Bottom && null != obj.Bottom) ? new asc_CTextBorder(obj.Bottom) : null;
|
|
this.Between = (undefined != obj.Between && null != obj.Between) ? new asc_CTextBorder(obj.Between) : null;
|
|
} else {
|
|
this.Left = null;
|
|
this.Top = null;
|
|
this.Right = null;
|
|
this.Bottom = null;
|
|
this.Between = null;
|
|
}
|
|
}
|
|
asc_CParagraphBorders.prototype = {
|
|
asc_getLeft: function () {
|
|
return this.Left;
|
|
},
|
|
asc_putLeft: function (v) {
|
|
this.Left = (v) ? new asc_CTextBorder(v) : null;
|
|
},
|
|
asc_getTop: function () {
|
|
return this.Top;
|
|
},
|
|
asc_putTop: function (v) {
|
|
this.Top = (v) ? new asc_CTextBorder(v) : null;
|
|
},
|
|
asc_getRight: function () {
|
|
return this.Right;
|
|
},
|
|
asc_putRight: function (v) {
|
|
this.Right = (v) ? new asc_CTextBorder(v) : null;
|
|
},
|
|
asc_getBottom: function () {
|
|
return this.Bottom;
|
|
},
|
|
asc_putBottom: function (v) {
|
|
this.Bottom = (v) ? new asc_CTextBorder(v) : null;
|
|
},
|
|
asc_getBetween: function () {
|
|
return this.Between;
|
|
},
|
|
asc_putBetween: function (v) {
|
|
this.Between = (v) ? new asc_CTextBorder(v) : null;
|
|
}
|
|
};
|
|
window["Asc"].asc_CParagraphBorders = asc_CParagraphBorders;
|
|
window["Asc"]["asc_CParagraphBorders"] = asc_CParagraphBorders;
|
|
prot = asc_CParagraphBorders.prototype;
|
|
prot["asc_getLeft"] = prot.asc_getLeft;
|
|
prot["asc_putLeft"] = prot.asc_putLeft;
|
|
prot["asc_getTop"] = prot.asc_getTop;
|
|
prot["asc_putTop"] = prot.asc_putTop;
|
|
prot["asc_getRight"] = prot.asc_getRight;
|
|
prot["asc_putRight"] = prot.asc_putRight;
|
|
prot["asc_getBottom"] = prot.asc_getBottom;
|
|
prot["asc_putBottom"] = prot.asc_putBottom;
|
|
prot["asc_getBetween"] = prot.asc_getBetween;
|
|
prot["asc_putBetween"] = prot.asc_putBetween;
|
|
function asc_CTextBorder(obj) {
|
|
if (obj) {
|
|
this.Color = (undefined != obj.Color && null != obj.Color) ? CreateAscColorCustomEx(obj.Color.r, obj.Color.g, obj.Color.b) : null;
|
|
this.Size = (undefined != obj.Size) ? obj.Size : null;
|
|
this.Value = (undefined != obj.Value) ? obj.Value : null;
|
|
this.Space = (undefined != obj.Space) ? obj.Space : null;
|
|
} else {
|
|
this.Color = CreateAscColorCustomEx(0, 0, 0);
|
|
this.Size = 0.5 * g_dKoef_pt_to_mm;
|
|
this.Value = border_Single;
|
|
this.Space = 0;
|
|
}
|
|
}
|
|
asc_CTextBorder.prototype = {
|
|
asc_getColor: function () {
|
|
return this.Color;
|
|
},
|
|
asc_putColor: function (v) {
|
|
this.Color = v;
|
|
},
|
|
asc_getSize: function () {
|
|
return this.Size;
|
|
},
|
|
asc_putSize: function (v) {
|
|
this.Size = v;
|
|
},
|
|
asc_getValue: function () {
|
|
return this.Value;
|
|
},
|
|
asc_putValue: function (v) {
|
|
this.Value = v;
|
|
},
|
|
asc_getSpace: function () {
|
|
return this.Space;
|
|
},
|
|
asc_putSpace: function (v) {
|
|
this.Space = v;
|
|
},
|
|
asc_getForSelectedCells: function () {
|
|
return this.ForSelectedCells;
|
|
},
|
|
asc_putForSelectedCells: function (v) {
|
|
this.ForSelectedCells = v;
|
|
}
|
|
};
|
|
window["Asc"].asc_CTextBorder = asc_CTextBorder;
|
|
window["Asc"]["asc_CTextBorder"] = asc_CTextBorder;
|
|
prot = asc_CTextBorder.prototype;
|
|
prot["asc_getColor"] = prot.asc_getColor;
|
|
prot["asc_putColor"] = prot.asc_putColor;
|
|
prot["asc_getSize"] = prot.asc_getSize;
|
|
prot["asc_putSize"] = prot.asc_putSize;
|
|
prot["asc_getValue"] = prot.asc_getValue;
|
|
prot["asc_putValue"] = prot.asc_putValue;
|
|
prot["asc_getSpace"] = prot.asc_getSpace;
|
|
prot["asc_putSpace"] = prot.asc_putSpace;
|
|
prot["asc_getForSelectedCells"] = prot.asc_getForSelectedCells;
|
|
prot["asc_putForSelectedCells"] = prot.asc_putForSelectedCells;
|
|
function asc_CListType(obj) {
|
|
if (obj) {
|
|
this.Type = (undefined == obj.Type) ? null : obj.Type;
|
|
this.SubType = (undefined == obj.Type) ? null : obj.SubType;
|
|
} else {
|
|
this.Type = null;
|
|
this.SubType = null;
|
|
}
|
|
}
|
|
asc_CListType.prototype = {
|
|
asc_getListType: function () {
|
|
return this.Type;
|
|
},
|
|
asc_getListSubType: function () {
|
|
return this.SubType;
|
|
}
|
|
};
|
|
window["Asc"].asc_CListType = asc_CListType;
|
|
window["Asc"]["asc_CListType"] = asc_CListType;
|
|
prot = asc_CListType.prototype;
|
|
prot["asc_getListType"] = prot.asc_getListType;
|
|
prot["asc_getListSubType"] = prot.asc_getListSubType;
|
|
function asc_CTextFontFamily(obj) {
|
|
if (obj) {
|
|
this.Name = (undefined != obj.Name) ? obj.Name : null;
|
|
this.Index = (undefined != obj.Index) ? obj.Index : null;
|
|
} else {
|
|
this.Name = "Times New Roman";
|
|
this.Index = -1;
|
|
}
|
|
}
|
|
asc_CTextFontFamily.prototype = {
|
|
asc_getName: function () {
|
|
return this.Name;
|
|
},
|
|
asc_getIndex: function () {
|
|
return this.Index;
|
|
}
|
|
};
|
|
window["Asc"].asc_CTextFontFamily = asc_CTextFontFamily;
|
|
window["Asc"]["asc_CTextFontFamily"] = asc_CTextFontFamily;
|
|
prot = asc_CTextFontFamily.prototype;
|
|
prot["asc_getName"] = prot.asc_getName;
|
|
prot["asc_getIndex"] = prot.asc_getIndex;
|
|
function Exception(error) {
|
|
var err = error;
|
|
}
|
|
function DrawingObjects() {
|
|
var ScrollOffset = function () {
|
|
this.getX = function () {
|
|
return -ptToPx((worksheet.cols[worksheet.visibleRange.c1].left - worksheet.cellsLeft)) + worksheet.getCellLeft(0, 0);
|
|
};
|
|
this.getY = function () {
|
|
return -ptToPx((worksheet.rows[worksheet.visibleRange.r1].top - worksheet.cellsTop)) + worksheet.getCellTop(0, 0);
|
|
};
|
|
};
|
|
var _this = this;
|
|
var asc = window["Asc"];
|
|
var api = asc["editor"];
|
|
var asc_Range = asc.Range;
|
|
var chartRender = null;
|
|
if (typeof ChartRender !== "undefined") {
|
|
chartRender = new ChartRender();
|
|
}
|
|
var worksheet = null;
|
|
var drawingCtx = null;
|
|
var overlayCtx = null;
|
|
var shapeCtx = null;
|
|
var shapeOverlayCtx = null;
|
|
var trackOverlay = null;
|
|
var autoShapeTrack = null;
|
|
var scrollOffset = new ScrollOffset();
|
|
var aObjects = null;
|
|
var aBoundsCheckers = [];
|
|
var userId = null;
|
|
var documentId = null;
|
|
_this.zoom = {
|
|
last: 1,
|
|
current: 1
|
|
};
|
|
_this.isViewerMode = null;
|
|
_this.objectLocker = null;
|
|
_this.coordsManager = null;
|
|
_this.drawingDocument = null;
|
|
_this.asyncImageEndLoaded = null;
|
|
_this.asyncImagesDocumentEndLoaded = null;
|
|
var wsCellCache = {
|
|
cols: null,
|
|
rows: null,
|
|
isInit: false
|
|
};
|
|
var aDrawTasks = [];
|
|
var drawTaskTimerId = null;
|
|
function drawTaskFunction() {
|
|
var taskLen = aDrawTasks.length;
|
|
if (taskLen) {
|
|
_this.showDrawingObjectsEx(aDrawTasks[taskLen - 1].params[0], aDrawTasks[taskLen - 1].params[1]);
|
|
aDrawTasks.splice(0, (taskLen - 1 > 0) ? taskLen - 1 : 1);
|
|
}
|
|
}
|
|
var DrawingBase = function (ws) {
|
|
var _t = this;
|
|
_t.worksheet = ws;
|
|
_t.imageUrl = "";
|
|
_t.Type = c_oAscCellAnchorType.cellanchorTwoCell;
|
|
_t.Pos = {
|
|
X: 0,
|
|
Y: 0
|
|
};
|
|
_t.from = {
|
|
col: 0,
|
|
colOff: 0,
|
|
row: 0,
|
|
rowOff: 0
|
|
};
|
|
_t.to = {
|
|
col: 0,
|
|
colOff: 0,
|
|
row: 0,
|
|
rowOff: 0
|
|
};
|
|
_t.ext = {
|
|
cx: 0,
|
|
cy: 0
|
|
};
|
|
_t.size = {
|
|
width: 0,
|
|
height: 0
|
|
};
|
|
_t.graphicObject = null;
|
|
_t.flags = {
|
|
anchorUpdated: false,
|
|
lockState: c_oAscLockTypes.kLockTypeNone
|
|
};
|
|
_t.getAllFonts = function (AllFonts) {
|
|
_t.graphicObject && _t.graphicObject.getAllFonts && _t.graphicObject.getAllFonts(AllFonts);
|
|
};
|
|
_t.isImage = function () {
|
|
return _t.graphicObject ? _t.graphicObject.isImage() : false;
|
|
};
|
|
_t.isShape = function () {
|
|
return _t.graphicObject ? _t.graphicObject.isShape() : false;
|
|
};
|
|
_t.isGroup = function () {
|
|
return _t.graphicObject ? _t.graphicObject.isGroup() : false;
|
|
};
|
|
_t.isChart = function () {
|
|
return _t.graphicObject ? _t.graphicObject.isChart() : false;
|
|
};
|
|
_t.isGraphicObject = function () {
|
|
return _t.graphicObject != null;
|
|
};
|
|
_t.isLocked = function () {
|
|
return ((_t.graphicObject.lockType != c_oAscLockTypes.kLockTypeNone) && (_t.graphicObject.lockType != c_oAscLockTypes.kLockTypeMine));
|
|
};
|
|
_t.getWorkbook = function () {
|
|
return (_t.worksheet ? _t.worksheet.model.workbook : null);
|
|
};
|
|
_t.getCanvasContext = function () {
|
|
return _this.drawingDocument.CanvasHitContext;
|
|
};
|
|
_t.getGraphicObjectMetrics = function () {
|
|
var metrics = {
|
|
x: 0,
|
|
y: 0,
|
|
extX: 0,
|
|
extY: 0
|
|
};
|
|
var coordsFrom = _this.coordsManager.calculateCoords(_t.from);
|
|
metrics.x = pxToMm(coordsFrom.x);
|
|
metrics.y = pxToMm(coordsFrom.y);
|
|
var coordsTo = _this.coordsManager.calculateCoords(_t.to);
|
|
metrics.extX = pxToMm(coordsTo.x - coordsFrom.x);
|
|
metrics.extY = pxToMm(coordsTo.y - coordsFrom.y);
|
|
return metrics;
|
|
};
|
|
_t.setGraphicObjectCoords = function () {
|
|
if (_t.isGraphicObject()) {
|
|
if ((_t.graphicObject.x < 0) || (_t.graphicObject.y < 0) || (_t.graphicObject.extX <= 0) || (_t.graphicObject.extY <= 0)) {
|
|
return;
|
|
}
|
|
var fromCell = _this.coordsManager.calculateCell(mmToPx(_t.graphicObject.x), mmToPx(_t.graphicObject.y));
|
|
var toCell = _this.coordsManager.calculateCell(mmToPx(_t.graphicObject.x + _t.graphicObject.extX), mmToPx(_t.graphicObject.y + _t.graphicObject.extY));
|
|
_t.from.col = fromCell.col;
|
|
_t.from.colOff = fromCell.colOff;
|
|
_t.from.row = fromCell.row;
|
|
_t.from.rowOff = fromCell.rowOff;
|
|
_t.to.col = toCell.col;
|
|
_t.to.colOff = toCell.colOff;
|
|
_t.to.row = toCell.row;
|
|
_t.to.rowOff = toCell.rowOff;
|
|
}
|
|
};
|
|
_t.inVisibleArea = function () {
|
|
var result = true;
|
|
var fvc = _t.worksheet.getFirstVisibleCol();
|
|
var fvr = _t.worksheet.getFirstVisibleRow();
|
|
var lvc = _t.worksheet.getLastVisibleCol();
|
|
var lvr = _t.worksheet.getLastVisibleRow();
|
|
var checker = _this.getBoundsChecker(_t);
|
|
var coords = _this.getBoundsCheckerCoords(checker);
|
|
if (coords) {
|
|
if ((fvr > coords.to.row + 1) || (lvr < coords.from.rom - 1) || (fvc > coords.to.col + 1) || (lvc < coords.from.col - 1)) {
|
|
result = false;
|
|
}
|
|
}
|
|
return result;
|
|
};
|
|
_t.updateAnchorPosition = function () {
|
|
switch (_t.Type) {
|
|
case c_oAscCellAnchorType.cellanchorOneCell:
|
|
var coordsFrom = _this.coordsManager.calculateCoords(_t.from);
|
|
var cellTo = _this.coordsManager.calculateCell(coordsFrom.x + mmToPx(_t.ext.cx), coordsFrom.y + mmToPx(_t.ext.cy));
|
|
_t.to.col = cellTo.col;
|
|
_t.to.colOff = cellTo.colOff;
|
|
_t.to.row = cellTo.row;
|
|
_t.to.rowOff = cellTo.rowOff;
|
|
break;
|
|
case c_oAscCellAnchorType.cellanchorAbsolute:
|
|
if (_t.Pos.X < 0) {
|
|
_t.Pos.X = 0;
|
|
}
|
|
if (_t.Pos.Y < 0) {
|
|
_t.Pos.Y = 0;
|
|
}
|
|
var cellFrom = _this.coordsManager.calculateCell(mmToPx(_t.Pos.X), mmToPx(_t.Pos.Y));
|
|
_t.from.col = cellFrom.col;
|
|
_t.from.colOff = cellFrom.colOff;
|
|
_t.from.row = cellFrom.row;
|
|
_t.from.rowOff = cellFrom.rowOff;
|
|
var cellTo = _this.coordsManager.calculateCell(mmToPx(_t.Pos.X + _t.ext.cx), mmToPx(_t.Pos.Y + _t.ext.cy));
|
|
_t.to.col = cellTo.col;
|
|
_t.to.colOff = cellTo.colOff;
|
|
_t.to.row = cellTo.row;
|
|
_t.to.rowOff = cellTo.rowOff;
|
|
break;
|
|
}
|
|
_t.flags.anchorUpdated = true;
|
|
};
|
|
_t.getRealTopOffset = function () {
|
|
var val = _t.worksheet.getCellTop(_t.from.row, 0) + mmToPx(_t.from.rowOff);
|
|
return asc.round(val);
|
|
};
|
|
_t.getRealLeftOffset = function () {
|
|
var val = _t.worksheet.getCellLeft(_t.from.col, 0) + mmToPx(_t.from.colOff);
|
|
return asc.round(val);
|
|
};
|
|
_t.getWidthFromTo = function () {
|
|
var val = _t.worksheet.getCellLeft(_t.to.col, 0) + mmToPx(_t.to.colOff) - _t.worksheet.getCellLeft(_t.from.col, 0) - mmToPx(_t.from.colOff);
|
|
return val;
|
|
};
|
|
_t.getHeightFromTo = function () {
|
|
var val = _t.worksheet.getCellTop(_t.to.row, 0) + mmToPx(_t.to.rowOff) - _t.worksheet.getCellTop(_t.from.row, 0) - mmToPx(_t.from.rowOff);
|
|
return val;
|
|
};
|
|
_t.getVisibleTopOffset = function (withHeader) {
|
|
var headerRowOff = _t.worksheet.getCellTop(0, 0);
|
|
var fvr = _t.worksheet.getCellTop(_t.worksheet.getFirstVisibleRow(), 0);
|
|
var off = _t.getRealTopOffset() - fvr;
|
|
var off = (off > 0) ? off : 0;
|
|
return withHeader ? headerRowOff + off : off;
|
|
};
|
|
_t.getVisibleLeftOffset = function (withHeader) {
|
|
var headerColOff = _t.worksheet.getCellLeft(0, 0);
|
|
var fvc = _t.worksheet.getCellLeft(_t.worksheet.getFirstVisibleCol(), 0);
|
|
var off = _t.getRealLeftOffset() - fvc;
|
|
var off = (off > 0) ? off : 0;
|
|
return withHeader ? headerColOff + off : off;
|
|
};
|
|
_t.getInnerOffsetTop = function () {
|
|
var fvr = _t.worksheet.getCellTop(_t.worksheet.getFirstVisibleRow(), 0);
|
|
var off = _t.getRealTopOffset() - fvr;
|
|
return (off > 0) ? 0 : asc.round(Math.abs(off));
|
|
};
|
|
_t.getInnerOffsetLeft = function () {
|
|
var fvc = _t.worksheet.getCellLeft(_t.worksheet.getFirstVisibleCol(), 0);
|
|
var off = _t.getRealLeftOffset() - fvc;
|
|
return (off > 0) ? 0 : asc.round(Math.abs(off));
|
|
};
|
|
_t.getDrawingObjects = function () {
|
|
return _this;
|
|
};
|
|
};
|
|
_this.createDrawingObject = function () {
|
|
var drawing = new DrawingBase(worksheet);
|
|
return drawing;
|
|
};
|
|
_this.cloneDrawingObject = function (obj) {
|
|
var copyObject = _this.createDrawingObject();
|
|
copyObject.Type = obj.Type;
|
|
copyObject.Pos.X = obj.Pos.X;
|
|
copyObject.Pos.Y = obj.Pos.Y;
|
|
copyObject.ext.cx = obj.ext.cx;
|
|
copyObject.ext.cy = obj.ext.cy;
|
|
copyObject.from.col = obj.from.col;
|
|
copyObject.from.colOff = obj.from.colOff;
|
|
copyObject.from.row = obj.from.row;
|
|
copyObject.from.rowOff = obj.from.rowOff;
|
|
copyObject.to.col = obj.to.col;
|
|
copyObject.to.colOff = obj.to.colOff;
|
|
copyObject.to.row = obj.to.row;
|
|
copyObject.to.rowOff = obj.to.rowOff;
|
|
copyObject.graphicObject = obj.graphicObject;
|
|
if (typeof CChartAsGroup !== "undefined" && copyObject.graphicObject instanceof CChartAsGroup) {
|
|
var chart = copyObject.graphicObject.chart;
|
|
var uniColors = chart.generateUniColors(chart.series.length);
|
|
if (chart.type == c_oAscChartType.hbar) {
|
|
uniColors = OfficeExcel.array_reverse(uniColors);
|
|
}
|
|
for (var i = 0; i < chart.series.length; i++) {
|
|
if (!chart.series[i].OutlineColor) {
|
|
chart.series[i].OutlineColor = uniColors[i];
|
|
}
|
|
if (!chart.series[i].Tx) {
|
|
chart.series[i].Tx = api.chartTranslate.series + " " + (i + 1);
|
|
}
|
|
}
|
|
}
|
|
return copyObject;
|
|
};
|
|
_this.init = function (currentSheet) {
|
|
var taskTimerId = setInterval(drawTaskFunction, 5);
|
|
userId = api.User.asc_getId();
|
|
documentId = api.documentId;
|
|
worksheet = currentSheet;
|
|
drawingCtx = currentSheet.drawingCtx;
|
|
overlayCtx = currentSheet.overlayCtx;
|
|
shapeCtx = currentSheet.shapeCtx;
|
|
shapeOverlayCtx = currentSheet.shapeOverlayCtx;
|
|
trackOverlay = new COverlay();
|
|
trackOverlay.init(shapeOverlayCtx.m_oContext, "ws-canvas-overlay", 0, 0, shapeOverlayCtx.m_lWidthPix, shapeOverlayCtx.m_lHeightPix, shapeOverlayCtx.m_dWidthMM, shapeOverlayCtx.m_dHeightMM);
|
|
autoShapeTrack = new CAutoshapeTrack();
|
|
autoShapeTrack.init(trackOverlay, 0, 0, shapeOverlayCtx.m_lWidthPix, shapeOverlayCtx.m_lHeightPix, shapeOverlayCtx.m_dWidthMM, shapeOverlayCtx.m_dHeightMM);
|
|
shapeCtx.m_oAutoShapesTrack = autoShapeTrack;
|
|
_this.objectLocker = new ObjectLocker(worksheet);
|
|
_this.coordsManager = new CoordsManager(worksheet, true);
|
|
_this.drawingDocument = new CDrawingDocument(this);
|
|
_this.drawingDocument.AutoShapesTrack = autoShapeTrack;
|
|
_this.drawingDocument.TargetHtmlElement = document.getElementById("id_target_cursor");
|
|
_this.drawingDocument.InitGuiCanvasShape(api.shapeElementId);
|
|
_this.isViewerMode = function () {
|
|
return worksheet._trigger("getViewerMode");
|
|
};
|
|
aObjects = [];
|
|
aImagesSync = [];
|
|
aObjectsSync = [];
|
|
var theme = api.wbModel.theme;
|
|
for (var i = 0; currentSheet.model.Drawings && (i < currentSheet.model.Drawings.length); i++) {
|
|
var drawingObject = _this.cloneDrawingObject(currentSheet.model.Drawings[i]);
|
|
drawingObject.updateAnchorPosition();
|
|
if (!worksheet.cols[drawingObject.to.col]) {
|
|
while (!worksheet.cols[drawingObject.to.col]) {
|
|
worksheet.expandColsOnScroll(true);
|
|
}
|
|
worksheet.expandColsOnScroll(true);
|
|
}
|
|
if (!worksheet.rows[drawingObject.to.row]) {
|
|
while (!worksheet.rows[drawingObject.to.row]) {
|
|
worksheet.expandRowsOnScroll(true);
|
|
}
|
|
worksheet.expandRowsOnScroll(true);
|
|
}
|
|
if (typeof CChartAsGroup !== "undefined" && drawingObject.graphicObject instanceof CChartAsGroup) {
|
|
_this.calcChartInterval(drawingObject.graphicObject.chart);
|
|
drawingObject.graphicObject.drawingBase = drawingObject;
|
|
drawingObject.graphicObject.setDrawingObjects(_this);
|
|
if (drawingObject.graphicObject.chartTitle) {
|
|
drawingObject.graphicObject.chartTitle.drawingObjects = _this;
|
|
}
|
|
drawingObject.graphicObject.chart.worksheet = worksheet;
|
|
drawingObject.graphicObject.chart.rebuildSeries();
|
|
drawingObject.graphicObject.init(theme);
|
|
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateAfterInit2Chart, null, null, new UndoRedoDataGraphicObjects(drawingObject.graphicObject.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
|
|
drawingObject.graphicObject.addToDrawingObjects(undefined, false);
|
|
var boundsChecker = _this.getBoundsChecker(drawingObject);
|
|
aBoundsCheckers.push(boundsChecker);
|
|
}
|
|
if (drawingObject.graphicObject instanceof CShape) {
|
|
drawingObject.graphicObject.drawingBase = drawingObject;
|
|
drawingObject.graphicObject.setDrawingObjects(_this);
|
|
drawingObject.graphicObject.setDrawingDocument(_this.drawingDocument);
|
|
var xfrm = drawingObject.graphicObject.spPr.xfrm;
|
|
if (!xfrm) {
|
|
drawingObject.graphicObject.setXfrmObject(new CXfrm());
|
|
}
|
|
if (isRealObject(drawingObject.graphicObject.drawingBase)) {
|
|
var metrics = drawingObject.graphicObject.drawingBase.getGraphicObjectMetrics();
|
|
drawingObject.graphicObject.spPr.xfrm.setPosition(metrics.x, metrics.y);
|
|
drawingObject.graphicObject.spPr.xfrm.setExtents(metrics.extX, metrics.extY);
|
|
}
|
|
drawingObject.graphicObject.recalculate(aImagesSync);
|
|
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateAfterInit, null, null, new UndoRedoDataGraphicObjects(drawingObject.graphicObject.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
|
|
drawingObject.graphicObject.addToDrawingObjects(undefined, false);
|
|
var boundsChecker = _this.getBoundsChecker(drawingObject);
|
|
aBoundsCheckers.push(boundsChecker);
|
|
}
|
|
if (drawingObject.graphicObject instanceof CImageShape) {
|
|
aObjectsSync[aObjectsSync.length] = drawingObject;
|
|
drawingObject.graphicObject.drawingBase = drawingObject;
|
|
drawingObject.graphicObject.setDrawingDocument(_this.drawingDocument);
|
|
drawingObject.graphicObject.setDrawingObjects(_this);
|
|
var xfrm = drawingObject.graphicObject.spPr.xfrm;
|
|
if (!xfrm) {
|
|
drawingObject.graphicObject.setXfrmObject(new CXfrm());
|
|
}
|
|
if (isRealObject(drawingObject.graphicObject.drawingBase)) {
|
|
var metrics = drawingObject.graphicObject.drawingBase.getGraphicObjectMetrics();
|
|
drawingObject.graphicObject.spPr.xfrm.setPosition(metrics.x, metrics.y);
|
|
drawingObject.graphicObject.spPr.xfrm.setExtents(metrics.extX, metrics.extY);
|
|
}
|
|
drawingObject.graphicObject.recalculate(aImagesSync);
|
|
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_GroupRecalculateAfterLoad, null, null, new UndoRedoDataGraphicObjects(drawingObject.graphicObject.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
|
|
drawingObject.graphicObject.addToDrawingObjects(undefined, false);
|
|
}
|
|
if (drawingObject.graphicObject instanceof CGroupShape) {
|
|
drawingObject.graphicObject.drawingBase = drawingObject;
|
|
drawingObject.graphicObject.setDrawingObjects(_this);
|
|
var xfrm = drawingObject.graphicObject.spPr.xfrm;
|
|
if (!xfrm) {
|
|
drawingObject.graphicObject.setXfrmObject(new CXfrm());
|
|
}
|
|
if (isRealObject(drawingObject.graphicObject.drawingBase)) {}
|
|
drawingObject.graphicObject.setDrawingDocument(this.drawingDocument);
|
|
var old_len = aImagesSync.length;
|
|
drawingObject.graphicObject.initCharts();
|
|
drawingObject.graphicObject.recalculate(aImagesSync);
|
|
if (aImagesSync.length > old_len) {
|
|
aObjectsSync[aObjectsSync.length] = drawingObject;
|
|
}
|
|
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_GroupRecalculateAfterLoad, null, null, new UndoRedoDataGraphicObjects(drawingObject.graphicObject.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
|
|
drawingObject.graphicObject.addToDrawingObjects(undefined, false);
|
|
var boundsChecker = _this.getBoundsChecker(drawingObject);
|
|
aBoundsCheckers.push(boundsChecker);
|
|
}
|
|
}
|
|
_this.asyncImagesDocumentEndLoaded = function () {
|
|
for (var i = 0; i < aObjectsSync.length; i++) {
|
|
var drawingObject = aObjectsSync[i];
|
|
var image = api.ImageLoader.LoadImage(aImagesSync[i], 1);
|
|
if (image != null) {
|
|
drawingObject.graphicObject.recalculate();
|
|
drawingObject.setGraphicObjectCoords();
|
|
drawingObject.graphicObject.draw(shapeCtx);
|
|
var boundsChecker = _this.getBoundsChecker(drawingObject);
|
|
aBoundsCheckers.push(boundsChecker);
|
|
}
|
|
}
|
|
};
|
|
api.ImageLoader.LoadDocumentImages(aImagesSync);
|
|
if (window.addEventListener) {
|
|
window.addEventListener("message", this._uploadMessage, false);
|
|
} else {
|
|
if (window.attachEvent) {
|
|
window.attachEvent("onmessage", this._uploadMessage);
|
|
}
|
|
}
|
|
_this.shiftMap = {};
|
|
worksheet.model.Drawings = aObjects;
|
|
};
|
|
_this.preCopy = function () {
|
|
_this.shiftMap = {};
|
|
var selected_objects = _this.controller.selectedObjects;
|
|
if (selected_objects.length > 0) {
|
|
var min_x, min_y;
|
|
min_x = selected_objects[0].x;
|
|
min_y = selected_objects[0].y;
|
|
for (var i = 1; i < selected_objects.length; ++i) {
|
|
if (selected_objects[i].x < min_x) {
|
|
min_x = selected_objects[i].x;
|
|
}
|
|
if (selected_objects[i].y < min_y) {
|
|
min_y = selected_objects[i].y;
|
|
}
|
|
}
|
|
for (var i = 0; i < selected_objects.length; ++i) {
|
|
_this.shiftMap[selected_objects[i].Get_Id()] = {
|
|
x: selected_objects[i].x - min_x,
|
|
y: selected_objects[i].y - min_y
|
|
};
|
|
}
|
|
}
|
|
};
|
|
_this.getAllFonts = function (AllFonts) {};
|
|
_this.getChartRender = function () {
|
|
return chartRender;
|
|
};
|
|
_this.getOverlay = function () {
|
|
return trackOverlay;
|
|
};
|
|
_this.OnUpdateOverlay = function (bFull) {
|
|
var overlay = trackOverlay;
|
|
var ctx = overlay.m_oContext;
|
|
var drDoc = this.drawingDocument;
|
|
overlay.Clear();
|
|
this.drawingDocument.Overlay = overlay;
|
|
var bFullClear = bFull || (_this.controller.curState.id != STATES_ID_TEXT_ADD) && (_this.controller.curState.id != STATES_ID_TEXT_ADD_IN_GROUP);
|
|
if (bFullClear) {
|
|
shapeOverlayCtx.m_oContext.clearRect(0, 0, shapeOverlayCtx.m_lWidthPix, shapeOverlayCtx.m_lHeightPix);
|
|
} else {
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
var boundsChecker = _this.getBoundsChecker(aObjects[i]);
|
|
var _w = boundsChecker.Bounds.max_x - boundsChecker.Bounds.min_x;
|
|
var _h = boundsChecker.Bounds.max_y - boundsChecker.Bounds.min_y;
|
|
shapeOverlayCtx.m_oContext.clearRect(mmToPx(boundsChecker.Bounds.min_x) + scrollOffset.getX(), mmToPx(boundsChecker.Bounds.min_y) + scrollOffset.getY(), mmToPx(_w), mmToPx(_h));
|
|
}
|
|
}
|
|
_this.clipGraphicsCanvas(shapeOverlayCtx);
|
|
worksheet._drawCollaborativeElements(false);
|
|
if (!_this.controller.selectedObjects.length && !api.isStartAddShape) {
|
|
worksheet._drawSelection();
|
|
}
|
|
var bRaise = false;
|
|
for (var i = 0; i < _this.controller.selectedObjects.length; i++) {
|
|
if (_this.controller.selectedObjects[i].isChart()) {
|
|
if (_this.selectDrawingObjectRange(_this.controller.selectedObjects[i].Id)) {
|
|
bRaise = true;
|
|
}
|
|
}
|
|
}
|
|
if (bRaise) {
|
|
_this.raiseLayerDrawingObjects();
|
|
}
|
|
if (null == drDoc.m_oDocumentRenderer) {
|
|
if (drDoc.m_bIsSelection) {
|
|
if (drDoc.m_bIsSelection) {
|
|
overlay.m_oControl.HtmlElement.style.display = "block";
|
|
if (null == overlay.m_oContext) {
|
|
overlay.m_oContext = overlay.m_oControl.HtmlElement.getContext("2d");
|
|
}
|
|
}
|
|
drDoc.private_StartDrawSelection(overlay);
|
|
this.controller.drawTextSelection();
|
|
drDoc.private_EndDrawSelection();
|
|
}
|
|
ctx.globalAlpha = 1;
|
|
this.controller.drawSelection(drDoc);
|
|
if (_this.controller.needUpdateOverlay()) {
|
|
overlay.Show();
|
|
shapeOverlayCtx.put_GlobalAlpha(true, 0.5);
|
|
_this.controller.drawTracks(shapeOverlayCtx);
|
|
shapeOverlayCtx.put_GlobalAlpha(true, 1);
|
|
}
|
|
} else {
|
|
ctx.fillStyle = "rgba(51,102,204,255)";
|
|
ctx.beginPath();
|
|
for (var i = drDoc.m_lDrawingFirst; i <= drDoc.m_lDrawingEnd; i++) {
|
|
var drawPage = drDoc.m_arrPages[i].drawingPage;
|
|
drDoc.m_oDocumentRenderer.DrawSelection(i, overlay, drawPage.left, drawPage.top, drawPage.right - drawPage.left, drawPage.bottom - drawPage.top);
|
|
}
|
|
ctx.globalAlpha = 0.2;
|
|
ctx.fill();
|
|
ctx.beginPath();
|
|
ctx.globalAlpha = 1;
|
|
}
|
|
_this.restoreGraphicsCanvas(shapeOverlayCtx);
|
|
return true;
|
|
};
|
|
_this.changeZoom = function (factor) {
|
|
_this.zoom.last = _this.zoom.current;
|
|
_this.zoom.current = factor;
|
|
_this.resizeCanvas();
|
|
_this.setScrollOffset();
|
|
_this.rebuildChartGraphicObjects();
|
|
};
|
|
_this.resizeCanvas = function () {
|
|
for (var i = 0; i < drawingCtx.fmgrGraphics.length; i++) {
|
|
drawingCtx.fmgrGraphics[i].ClearRasterMemory();
|
|
}
|
|
shapeCtx.init(drawingCtx.ctx, drawingCtx.getWidth(0), drawingCtx.getHeight(0), drawingCtx.getWidth(3), drawingCtx.getHeight(3));
|
|
shapeCtx.CalculateFullTransform();
|
|
shapeOverlayCtx.init(overlayCtx.ctx, overlayCtx.getWidth(0), overlayCtx.getHeight(0), overlayCtx.getWidth(3), overlayCtx.getHeight(3));
|
|
shapeOverlayCtx.CalculateFullTransform();
|
|
trackOverlay.init(shapeOverlayCtx.m_oContext, "ws-canvas-overlay", 0, 0, shapeOverlayCtx.m_lWidthPix, shapeOverlayCtx.m_lHeightPix, shapeOverlayCtx.m_dWidthMM, shapeOverlayCtx.m_dHeightMM);
|
|
autoShapeTrack.init(trackOverlay, 0, 0, shapeOverlayCtx.m_lWidthPix, shapeOverlayCtx.m_lHeightPix, shapeOverlayCtx.m_dWidthMM, shapeOverlayCtx.m_dHeightMM);
|
|
autoShapeTrack.Graphics.CalculateFullTransform();
|
|
};
|
|
_this.getWorkbook = function () {
|
|
return (worksheet ? worksheet.model.workbook : null);
|
|
};
|
|
_this.getCanvasContext = function () {
|
|
return _this.drawingDocument.CanvasHitContext;
|
|
};
|
|
_this.getDrawingObjects = function () {
|
|
return aObjects;
|
|
};
|
|
_this.getWorksheet = function () {
|
|
return worksheet;
|
|
};
|
|
_this._uploadMessage = function (event) {
|
|
if (null != event && null != event.data) {
|
|
try {
|
|
var data = JSON.parse(event.data);
|
|
if ((null != data) && (null != data["type"])) {
|
|
if (PostMessageType.UploadImage == data["type"]) {
|
|
if (c_oAscServerError.NoError == data["error"]) {
|
|
var sheetId = null;
|
|
if (null != data["input"]) {
|
|
sheetId = data["input"]["sheetId"];
|
|
}
|
|
var url = data["url"];
|
|
if (sheetId == worksheet.model.getId()) {
|
|
if (api.isImageChangeUrl || api.isShapeImageChangeUrl) {
|
|
_this.editImageDrawingObject(url);
|
|
} else {
|
|
_this.addImageDrawingObject(url, null);
|
|
}
|
|
} else {
|
|
worksheet.model.workbook.handlers.trigger("asc_onEndAction", c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage);
|
|
}
|
|
} else {
|
|
worksheet.model.workbook.handlers.trigger("asc_onError", api.asc_mapAscServerErrorToAscError(data["error"]), c_oAscError.Level.NoCritical);
|
|
worksheet.model.workbook.handlers.trigger("asc_onEndAction", c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage);
|
|
}
|
|
}
|
|
}
|
|
} catch(e) {
|
|
var msg = e.message;
|
|
}
|
|
}
|
|
};
|
|
_this.callTrigger = function (triggerName, param) {
|
|
if (triggerName) {
|
|
worksheet.model.workbook.handlers.trigger(triggerName, param);
|
|
}
|
|
};
|
|
_this.getBoundsChecker = function (drawingObject) {
|
|
if (drawingObject && drawingObject.graphicObject) {
|
|
var boundsChecker = new CSlideBoundsChecker();
|
|
boundsChecker.init(1, 1, 1, 1);
|
|
boundsChecker.transform3(drawingObject.graphicObject.transform);
|
|
boundsChecker.rect(0, 0, drawingObject.graphicObject.extX, drawingObject.graphicObject.extY);
|
|
drawingObject.graphicObject.draw(boundsChecker);
|
|
boundsChecker.CorrectBounds();
|
|
var delta = 4;
|
|
boundsChecker.Bounds.min_x = Math.max(1, boundsChecker.Bounds.min_x - delta);
|
|
boundsChecker.Bounds.min_y = Math.max(1, boundsChecker.Bounds.min_y - delta);
|
|
boundsChecker.Bounds.max_x += delta;
|
|
boundsChecker.Bounds.max_y += delta;
|
|
return boundsChecker;
|
|
}
|
|
return null;
|
|
};
|
|
_this.getBoundsCheckerCoords = function (checker) {
|
|
if (checker) {
|
|
var coords = {
|
|
from: null,
|
|
to: null
|
|
};
|
|
coords.from = _this.coordsManager.calculateCell(mmToPx(checker.Bounds.min_x), mmToPx(checker.Bounds.min_y));
|
|
coords.to = _this.coordsManager.calculateCell(mmToPx(checker.Bounds.max_x), mmToPx(checker.Bounds.max_y));
|
|
return coords;
|
|
}
|
|
return null;
|
|
};
|
|
_this.clearDrawingObjects = function () {
|
|
for (var i = 0; i < aBoundsCheckers.length; i++) {
|
|
_this.restoreSheetArea(aBoundsCheckers[i]);
|
|
}
|
|
aBoundsCheckers = [];
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
if (!aObjects[i].inVisibleArea()) {
|
|
continue;
|
|
}
|
|
var boundsChecker = _this.getBoundsChecker(aObjects[i]);
|
|
aBoundsCheckers.push(boundsChecker);
|
|
}
|
|
};
|
|
_this.restoreSheetArea = function (checker) {
|
|
var coords = _this.getBoundsCheckerCoords(checker);
|
|
if (coords) {
|
|
var range = asc_Range(coords.from.col, coords.from.row, coords.to.col, coords.to.row);
|
|
var r_ = range.intersection(worksheet.visibleRange);
|
|
if (r_) {
|
|
var offsetX = worksheet.cols[worksheet.visibleRange.c1].left - worksheet.cellsLeft;
|
|
var offsetY = worksheet.rows[worksheet.visibleRange.r1].top - worksheet.cellsTop;
|
|
while (!worksheet.cols[r_.c2 + 1]) {
|
|
worksheet.expandColsOnScroll(true);
|
|
}
|
|
while (!worksheet.rows[r_.r2 + 1]) {
|
|
worksheet.expandRowsOnScroll(true);
|
|
}
|
|
var x1 = worksheet.cols[r_.c1].left - offsetX;
|
|
var y1 = worksheet.rows[r_.r1].top - offsetY;
|
|
var x2 = worksheet.cols[r_.c2 + 1].left - offsetX;
|
|
var y2 = worksheet.rows[r_.r2 + 1].top - offsetY;
|
|
var w = x2 - x1;
|
|
var h = y2 - y1;
|
|
drawingCtx.clearRect(x1, y1, w, h);
|
|
drawingCtx.setFillStyle(worksheet.settings.cells.defaultState.background).fillRect(x1, y1, w, h);
|
|
worksheet._drawGrid(undefined, r_);
|
|
worksheet._drawCells(undefined, r_);
|
|
worksheet._drawCellsBorders(undefined, r_);
|
|
}
|
|
}
|
|
};
|
|
_this.raiseLayerDrawingObjects = function () {
|
|
var bRedraw = false;
|
|
var selection = worksheet.activeRange.clone(true);
|
|
function isRangeInObject(range) {
|
|
var result = false;
|
|
if (range) {
|
|
var x1 = worksheet.getCellLeft(range.c1, 3);
|
|
var y1 = worksheet.getCellTop(range.r1, 3);
|
|
var x2 = worksheet.getCellLeft(range.c2 + 1, 3);
|
|
var y2 = worksheet.getCellTop(range.r1, 3);
|
|
var x3 = worksheet.getCellLeft(range.c2 + 1, 3);
|
|
var y3 = worksheet.getCellTop(range.r2 + 1, 3);
|
|
var x4 = worksheet.getCellLeft(range.c1, 3);
|
|
var y4 = worksheet.getCellTop(range.r2 + 1, 3);
|
|
result = (_this.controller.isPointInDrawingObjects(x1, y1) != null) || (_this.controller.isPointInDrawingObjects(x2, y2) != null) || (_this.controller.isPointInDrawingObjects(x3, y3) != null) || (_this.controller.isPointInDrawingObjects(x4, y4) != null);
|
|
}
|
|
return result;
|
|
}
|
|
if (selection) {
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
var drawingObject = aObjects[i];
|
|
if ((selection.c2 < drawingObject.from.col) || (selection.c1 > drawingObject.to.col) || (selection.r2 < drawingObject.from.row) || (selection.r1 > drawingObject.to.row)) {
|
|
for (var j = 0; j < worksheet.arrActiveChartsRanges.length; j++) {
|
|
var range = worksheet.arrActiveChartsRanges[j];
|
|
if (! ((range.c2 < drawingObject.from.col) || (range.c1 > drawingObject.to.col) || (range.r2 < drawingObject.from.row) || (range.r1 > drawingObject.to.row))) {
|
|
bRedraw = true;
|
|
break;
|
|
}
|
|
}
|
|
continue;
|
|
} else {
|
|
bRedraw = true;
|
|
break;
|
|
}
|
|
}
|
|
if (!bRedraw) {
|
|
if (isRangeInObject(selection)) {
|
|
bRedraw = true;
|
|
} else {
|
|
for (var j = 0; j < worksheet.arrActiveChartsRanges.length; j++) {
|
|
if (isRangeInObject(selection)) {
|
|
bRedraw = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (bRedraw) {
|
|
shapeOverlayCtx.ClearMode = true;
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
aObjects[i].graphicObject.draw(shapeOverlayCtx);
|
|
}
|
|
shapeOverlayCtx.ClearMode = false;
|
|
}
|
|
};
|
|
_this.showDrawingObjects = function (clearCanvas, printOptions) {
|
|
var currDate = new Date();
|
|
var currTime = currDate.getTime();
|
|
if (aDrawTasks.length) {
|
|
if (currTime - aDrawTasks[aDrawTasks.length - 1].time < 40) {
|
|
return;
|
|
}
|
|
}
|
|
aDrawTasks.push({
|
|
time: currTime,
|
|
params: [clearCanvas, printOptions]
|
|
});
|
|
};
|
|
_this.showDrawingObjectsEx = function (clearCanvas, printOptions) {
|
|
if ((worksheet.model.index != api.wb.model.getActive()) && !printOptions) {
|
|
return;
|
|
}
|
|
if (drawingCtx) {
|
|
if (clearCanvas) {
|
|
_this.clearDrawingObjects();
|
|
}
|
|
if (aObjects.length) {
|
|
worksheet._drawGraphic();
|
|
_this.clipGraphicsCanvas(shapeCtx);
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
var index = i;
|
|
var drawingObject = aObjects[i];
|
|
if (drawingObject.graphicObject.isChart()) {
|
|
drawingObject.graphicObject.syncAscChart();
|
|
}
|
|
if (!printOptions) {
|
|
if (!drawingObject.inVisibleArea()) {
|
|
continue;
|
|
}
|
|
}
|
|
if (!drawingObject.flags.anchorUpdated) {
|
|
drawingObject.updateAnchorPosition();
|
|
}
|
|
if (drawingObject.isGraphicObject()) {
|
|
if (printOptions) {
|
|
var range = printOptions.printPagesData.pageRange;
|
|
var printPagesData = printOptions.printPagesData;
|
|
var offsetCols = printPagesData.startOffsetPt;
|
|
var left = worksheet.getCellLeft(range.c1, 3) - worksheet.getCellLeft(0, 3) - ptToMm(printPagesData.leftFieldInPt);
|
|
var top = worksheet.getCellTop(range.r1, 3) - worksheet.getCellTop(0, 3) - ptToMm(printPagesData.topFieldInPt);
|
|
_this.printGraphicObject(drawingObject.graphicObject, printOptions.ctx.DocumentRenderer, top, left);
|
|
if (printPagesData.pageHeadings) {
|
|
worksheet._drawColumnHeaders(printOptions.ctx, range.c1, range.c2, undefined, worksheet.cols[range.c1].left - printPagesData.leftFieldInPt + offsetCols, printPagesData.topFieldInPt - worksheet.cellsTop);
|
|
worksheet._drawRowHeaders(printOptions.ctx, range.r1, range.r2, undefined, printPagesData.leftFieldInPt - worksheet.cellsLeft, worksheet.rows[range.r1].top - printPagesData.topFieldInPt);
|
|
}
|
|
} else {
|
|
drawingObject.graphicObject.draw(shapeCtx);
|
|
}
|
|
}
|
|
}
|
|
_this.restoreGraphicsCanvas(shapeCtx);
|
|
}
|
|
worksheet.model.Drawings = aObjects;
|
|
}
|
|
if (!printOptions) {
|
|
if (aObjects.length) {
|
|
if (_this.controller.selectedObjects.length) {
|
|
_this.OnUpdateOverlay();
|
|
} else {
|
|
_this.raiseLayerDrawingObjects();
|
|
}
|
|
}
|
|
}
|
|
};
|
|
_this.printGraphicObject = function (graphicObject, ctx, top, left) {
|
|
if (graphicObject && ctx) {
|
|
if (graphicObject instanceof CImageShape) {
|
|
printImage(graphicObject, ctx, top, left);
|
|
} else {
|
|
if (graphicObject instanceof CShape) {
|
|
printShape(graphicObject, ctx, top, left);
|
|
} else {
|
|
if (typeof CChartAsGroup != "undefined" && graphicObject instanceof CChartAsGroup) {
|
|
printChart(graphicObject, ctx, top, left);
|
|
} else {
|
|
if (graphicObject instanceof CGroupShape) {
|
|
printGroup(graphicObject, ctx, top, left);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function printImage(graphicObject, ctx, top, left) {
|
|
if ((graphicObject instanceof CImageShape) && graphicObject && ctx) {
|
|
var tx = graphicObject.transform.tx;
|
|
var ty = graphicObject.transform.ty;
|
|
graphicObject.transform.tx -= left;
|
|
graphicObject.transform.ty -= top;
|
|
graphicObject.draw(ctx);
|
|
graphicObject.transform.tx = tx;
|
|
graphicObject.transform.ty = ty;
|
|
}
|
|
}
|
|
function printShape(graphicObject, ctx, top, left) {
|
|
if ((graphicObject instanceof CShape) && graphicObject && ctx) {
|
|
var tx = graphicObject.transform.tx;
|
|
var ty = graphicObject.transform.ty;
|
|
graphicObject.transform.tx -= left;
|
|
graphicObject.transform.ty -= top;
|
|
var txTxt, tyTxt;
|
|
if (graphicObject.txBody && graphicObject.transformText) {
|
|
txTxt = graphicObject.transformText.tx;
|
|
tyTxt = graphicObject.transformText.ty;
|
|
graphicObject.transformText.tx -= left;
|
|
graphicObject.transformText.ty -= top;
|
|
}
|
|
graphicObject.draw(ctx);
|
|
graphicObject.transform.tx = tx;
|
|
graphicObject.transform.ty = ty;
|
|
if (graphicObject.txBody && graphicObject.transformText) {
|
|
graphicObject.transformText.tx = txTxt;
|
|
graphicObject.transformText.ty = tyTxt;
|
|
}
|
|
}
|
|
}
|
|
function printChart(graphicObject, ctx, top, left) {
|
|
if (typeof CChartAsGroup != "undefined" && (graphicObject instanceof CChartAsGroup) && graphicObject && ctx) {
|
|
var tx = graphicObject.transform.tx;
|
|
var ty = graphicObject.transform.ty;
|
|
graphicObject.transform.tx -= left;
|
|
graphicObject.transform.ty -= top;
|
|
var chartTxtAreas = [],
|
|
aTxtTransform = [];
|
|
if (graphicObject.chartTitle && graphicObject.chartTitle.txBody && graphicObject.chartTitle.transformText) {
|
|
chartTxtAreas.push(graphicObject.chartTitle);
|
|
}
|
|
if (graphicObject.vAxisTitle && graphicObject.vAxisTitle.txBody && graphicObject.vAxisTitle.transformText) {
|
|
chartTxtAreas.push(graphicObject.vAxisTitle);
|
|
}
|
|
if (graphicObject.hAxisTitle && graphicObject.hAxisTitle.txBody && graphicObject.hAxisTitle.transformText) {
|
|
chartTxtAreas.push(graphicObject.hAxisTitle);
|
|
}
|
|
for (var i = 0; i < chartTxtAreas.length; i++) {
|
|
var item = chartTxtAreas[i];
|
|
aTxtTransform.push({
|
|
tx: item.transformText.tx,
|
|
ty: item.transformText.ty
|
|
});
|
|
item.transformText.tx -= left;
|
|
item.transformText.ty -= top;
|
|
}
|
|
graphicObject.draw(ctx);
|
|
graphicObject.transform.tx = tx;
|
|
graphicObject.transform.ty = ty;
|
|
for (var i = 0; i < chartTxtAreas.length; i++) {
|
|
var item = chartTxtAreas[i];
|
|
item.transformText.tx = aTxtTransform[i].tx;
|
|
item.transformText.ty = aTxtTransform[i].ty;
|
|
}
|
|
}
|
|
}
|
|
function printGroup(graphicObject, ctx, top, left) {
|
|
if ((graphicObject instanceof CGroupShape) && graphicObject && ctx) {
|
|
for (var i = 0; i < graphicObject.arrGraphicObjects.length; i++) {
|
|
var graphicItem = graphicObject.arrGraphicObjects[i];
|
|
if (graphicItem instanceof CImageShape) {
|
|
printImage(graphicItem, ctx, top, left);
|
|
} else {
|
|
if (graphicItem instanceof CShape) {
|
|
printShape(graphicItem, ctx, top, left);
|
|
} else {
|
|
if (typeof CChartAsGroup != "undefined" && graphicItem instanceof CChartAsGroup) {
|
|
printChart(graphicItem, ctx, top, left);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
_this.getDrawingAreaMetrics = function () {
|
|
var metrics = {
|
|
maxCol: 0,
|
|
maxRow: 0
|
|
};
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
var drawingObject = aObjects[i];
|
|
if (drawingObject.to.col >= metrics.maxCol) {
|
|
metrics.maxCol = drawingObject.to.col + 1;
|
|
}
|
|
if (drawingObject.to.row >= metrics.maxRow) {
|
|
metrics.maxRow = drawingObject.to.row + 1;
|
|
}
|
|
}
|
|
return metrics;
|
|
};
|
|
_this.clipGraphicsCanvas = function (canvas) {
|
|
if (canvas instanceof CGraphics) {
|
|
var x = worksheet.getCellLeft(0, 0);
|
|
var y = worksheet.getCellTop(0, 0);
|
|
var w = shapeCtx.m_lWidthPix - x;
|
|
var h = shapeCtx.m_lHeightPix - y;
|
|
canvas.m_oContext.save();
|
|
canvas.m_oContext.beginPath();
|
|
canvas.m_oContext.rect(x, y, w, h);
|
|
canvas.m_oContext.clip();
|
|
canvas.m_oContext.save();
|
|
}
|
|
};
|
|
_this.restoreGraphicsCanvas = function (canvas) {
|
|
if (canvas instanceof CGraphics) {
|
|
canvas.m_oContext.restore();
|
|
canvas.m_oContext.restore();
|
|
}
|
|
};
|
|
_this.addImageDrawingObject = function (imageUrl, options) {
|
|
_this.controller.resetSelection();
|
|
if (imageUrl && !_this.isViewerMode()) {
|
|
var _image = api.ImageLoader.LoadImage(imageUrl, 1);
|
|
var isOption = options && options.cell;
|
|
function calculateObjectMetrics(object, width, height) {
|
|
var metricCoeff = 1;
|
|
var coordsFrom = _this.coordsManager.calculateCoords(object.from);
|
|
var realTopOffset = coordsFrom.y;
|
|
var realLeftOffset = coordsFrom.x;
|
|
var areaWidth = worksheet.getCellLeft(worksheet.getLastVisibleCol(), 0) - worksheet.getCellLeft(worksheet.getFirstVisibleCol(), 0);
|
|
if (areaWidth < width) {
|
|
metricCoeff = width / areaWidth;
|
|
width = areaWidth;
|
|
height /= metricCoeff;
|
|
}
|
|
var areaHeight = worksheet.getCellTop(worksheet.getLastVisibleRow(), 0) - worksheet.getCellTop(worksheet.getFirstVisibleRow(), 0);
|
|
if (areaHeight < height) {
|
|
metricCoeff = height / areaHeight;
|
|
height = areaHeight;
|
|
width /= metricCoeff;
|
|
}
|
|
var cellTo = _this.coordsManager.calculateCell(realLeftOffset + width, realTopOffset + height);
|
|
object.to.col = cellTo.col;
|
|
object.to.colOff = cellTo.colOff;
|
|
object.to.row = cellTo.row;
|
|
object.to.rowOff = cellTo.rowOff;
|
|
worksheet._trigger("reinitializeScroll");
|
|
}
|
|
function addImageObject(_image) {
|
|
if (!_image.Image) {
|
|
worksheet.model.workbook.handlers.trigger("asc_onError", c_oAscError.ID.UplImageUrl, c_oAscError.Level.NoCritical);
|
|
} else {
|
|
var drawingObject = _this.createDrawingObject();
|
|
drawingObject.worksheet = worksheet;
|
|
drawingObject.from.col = isOption ? options.cell.col : worksheet.getSelectedColumnIndex();
|
|
drawingObject.from.row = isOption ? options.cell.row : worksheet.getSelectedRowIndex();
|
|
while (!worksheet.cols[drawingObject.from.col]) {
|
|
worksheet.expandColsOnScroll(true);
|
|
}
|
|
worksheet.expandColsOnScroll(true);
|
|
while (!worksheet.rows[drawingObject.from.row]) {
|
|
worksheet.expandRowsOnScroll(true);
|
|
}
|
|
worksheet.expandRowsOnScroll(true);
|
|
calculateObjectMetrics(drawingObject, isOption ? options.width : _image.Image.width, isOption ? options.height : _image.Image.height);
|
|
var coordsFrom = _this.coordsManager.calculateCoords(drawingObject.from);
|
|
var coordsTo = _this.coordsManager.calculateCoords(drawingObject.to);
|
|
History.Create_NewPoint();
|
|
drawingObject.graphicObject = new CImageShape(drawingObject, _this);
|
|
drawingObject.graphicObject.initDefault(pxToMm(coordsFrom.x), pxToMm(coordsFrom.y), pxToMm(coordsTo.x - coordsFrom.x), pxToMm(coordsTo.y - coordsFrom.y), _image.src);
|
|
drawingObject.graphicObject.select(_this.controller);
|
|
drawingObject.graphicObject.setDrawingObjects(_this);
|
|
drawingObject.graphicObject.addToDrawingObjects();
|
|
}
|
|
worksheet.model.workbook.handlers.trigger("asc_onEndAction", c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage);
|
|
worksheet.setSelectionShape(true);
|
|
}
|
|
if (null != _image) {
|
|
addImageObject(_image);
|
|
} else {
|
|
_this.asyncImageEndLoaded = function (_image) {
|
|
addImageObject(_image);
|
|
_this.asyncImageEndLoaded = null;
|
|
};
|
|
}
|
|
}
|
|
};
|
|
_this.editImageDrawingObject = function (imageUrl) {
|
|
if (imageUrl) {
|
|
var _image = api.ImageLoader.LoadImage(imageUrl, 1);
|
|
function addImageObject(_image) {
|
|
if (!_image.Image) {
|
|
worksheet.model.workbook.handlers.trigger("asc_onError", c_oAscError.ID.UplImageUrl, c_oAscError.Level.NoCritical);
|
|
} else {
|
|
if (api.isImageChangeUrl) {
|
|
var imageProp = new asc_CImgProperty();
|
|
imageProp.ImageUrl = _image.src;
|
|
_this.setGraphicObjectProps(imageProp);
|
|
api.isImageChangeUrl = false;
|
|
} else {
|
|
if (api.isShapeImageChangeUrl) {
|
|
var imgProps = new asc_CImgProperty();
|
|
var shapeProp = new asc_CShapeProperty();
|
|
imgProps.ShapeProperties = shapeProp;
|
|
shapeProp.fill = new asc_CShapeFill();
|
|
shapeProp.fill.type = c_oAscFill.FILL_TYPE_BLIP;
|
|
shapeProp.fill.fill = new asc_CFillBlip();
|
|
shapeProp.fill.fill.asc_putUrl(_image.src);
|
|
_this.setGraphicObjectProps(imgProps);
|
|
api.isShapeImageChangeUrl = false;
|
|
}
|
|
}
|
|
_this.showDrawingObjects(true);
|
|
}
|
|
worksheet.model.workbook.handlers.trigger("asc_onEndAction", c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage);
|
|
}
|
|
if (null != _image) {
|
|
addImageObject(_image);
|
|
} else {
|
|
_this.asyncImageEndLoaded = function (_image) {
|
|
addImageObject(_image);
|
|
_this.asyncImageEndLoaded = null;
|
|
};
|
|
}
|
|
}
|
|
};
|
|
_this.addChartDrawingObject = function (chart, options) {
|
|
if (_this.isViewerMode()) {
|
|
return;
|
|
}
|
|
worksheet.setSelectionShape(true);
|
|
if (chart instanceof asc_CChart) {
|
|
var _range = convertFormula(chart.range.interval, worksheet);
|
|
if (_range) {
|
|
chart.range.intervalObject = _range;
|
|
}
|
|
chart.rebuildSeries();
|
|
chart.worksheet = worksheet;
|
|
return this.controller.addChartDrawingObject(chart, options);
|
|
} else {
|
|
if (isObject(chart) && chart["binary"]) {
|
|
History.TurnOff();
|
|
var graphicObject = new CChartAsGroup(null, _this);
|
|
graphicObject.setChartBinary(chart["binary"]);
|
|
var seriesCount = graphicObject.chart.series.length;
|
|
if (seriesCount) {
|
|
var resultRef = parserHelp.parse3DRef(graphicObject.chart.series[0].Val.Formula);
|
|
worksheet.model.workbook.aWorksheets[0].sName = resultRef.sheet;
|
|
if (graphicObject.chart.range.interval) {
|
|
var _range = convertFormula(graphicObject.chart.range.interval, worksheet);
|
|
if (_range) {
|
|
graphicObject.chart.range.intervalObject = _range;
|
|
}
|
|
while (worksheet.cols.length < _range.bbox.c2) {
|
|
worksheet.expandColsOnScroll(true);
|
|
}
|
|
while (worksheet.rows.length < _range.bbox.r2) {
|
|
worksheet.expandRowsOnScroll(true);
|
|
}
|
|
}
|
|
}
|
|
if (graphicObject.chart.themeColors) {
|
|
api.GuiControlColorsMap = [];
|
|
for (var i = 0; i < graphicObject.chart.themeColors.length; i++) {
|
|
var color = new RGBColor(graphicObject.chart.themeColors[i]);
|
|
api.GuiControlColorsMap.push(new CColor(color.r, color.g, color.b));
|
|
}
|
|
api.chartStyleManager.init();
|
|
api.chartPreviewManager.init();
|
|
}
|
|
if (!wsCellCache.isInit) {
|
|
wsCellCache.cols = [];
|
|
wsCellCache.rows = [];
|
|
var colsCount = worksheet.cols.length;
|
|
var rowsCount = worksheet.rows.length;
|
|
for (var i = 0; i < colsCount; i++) {
|
|
wsCellCache.cols.push(worksheet.model.getColWidth(i));
|
|
}
|
|
for (var i = 0; i < rowsCount; i++) {
|
|
wsCellCache.rows.push(worksheet.model.getRowHeight(i));
|
|
}
|
|
wsCellCache.isInit = true;
|
|
}
|
|
if (graphicObject.chart.series.length) {
|
|
function restoreDataRange(data, bRows) {
|
|
if (data && data.Formula && data.NumCache.length) {
|
|
var range = convertFormula(data.Formula, worksheet);
|
|
if (range) {
|
|
if (bRows) {
|
|
var index = 0;
|
|
for (var j = range.bbox.c1; j <= range.bbox.c2; j++) {
|
|
var cell = graphicObject.chart.range.intervalObject.worksheet.getCell(new CellAddress(range.bbox.r1, j, 0));
|
|
cell.setNumFormat(data.NumCache[index].numFormatStr);
|
|
cell.setValue(data.NumCache[index].val);
|
|
index++;
|
|
}
|
|
} else {
|
|
var index = 0;
|
|
for (var j = range.bbox.r1; j <= range.bbox.r2; j++) {
|
|
var cell = graphicObject.chart.range.intervalObject.worksheet.getCell(new CellAddress(j, range.bbox.c1, 0));
|
|
cell.setNumFormat(data.NumCache[index].numFormatStr);
|
|
cell.setValue(data.NumCache[index].val);
|
|
index++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
for (var i = 0; i < seriesCount; i++) {
|
|
if (graphicObject.chart.series[i].TxCache.Formula) {
|
|
var range = convertFormula(graphicObject.chart.series[i].TxCache.Formula, worksheet);
|
|
if (range) {
|
|
var cell = graphicObject.chart.range.intervalObject.worksheet.getCell(new CellAddress(range.bbox.r1, range.bbox.c1, 0));
|
|
cell.setNumFormat("General");
|
|
cell.setValue(graphicObject.chart.series[i].TxCache.Tx);
|
|
}
|
|
}
|
|
restoreDataRange(graphicObject.chart.series[i].Val, graphicObject.chart.range.rows);
|
|
restoreDataRange(graphicObject.chart.series[i].xVal, graphicObject.chart.range.rows);
|
|
restoreDataRange(graphicObject.chart.series[i].Cat, graphicObject.chart.range.rows);
|
|
}
|
|
} else {
|
|
var aCells = graphicObject.chart.range.intervalObject.getCells();
|
|
for (var i = 0; i < aCells.length; i++) {
|
|
aCells[i].setValue((i + 1).toString());
|
|
}
|
|
}
|
|
worksheet._updateCellsRange(graphicObject.chart.range.intervalObject.getBBox0());
|
|
_this.showDrawingObjects(false);
|
|
History.TurnOn();
|
|
}
|
|
}
|
|
};
|
|
_this.editChartDrawingObject = function (chart) {
|
|
if (chart) {
|
|
_this.controller.editChartDrawingObjects(chart);
|
|
_this.showDrawingObjects(false);
|
|
}
|
|
};
|
|
_this.rebuildChartGraphicObjects = function () {
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
var graphicObject = aObjects[i].graphicObject;
|
|
if (graphicObject.isChart() && graphicObject.chart.range.intervalObject) {
|
|
graphicObject.chart.rebuildSeries();
|
|
graphicObject.recalculate();
|
|
}
|
|
}
|
|
};
|
|
_this.updateDrawingObject = function (bInsert, operType, updateRange) {
|
|
var changedRange = null;
|
|
var metrics = null;
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
var obj = aObjects[i];
|
|
if (!obj.isLocked()) {
|
|
var bbox = obj.isChart() ? obj.graphicObject.chart.range.intervalObject.getBBox0() : null;
|
|
if (obj.isChart() || obj.isImage() || obj.isShape()) {
|
|
metrics = {
|
|
from: {},
|
|
to: {}
|
|
};
|
|
metrics.from.col = obj.from.col;
|
|
metrics.to.col = obj.to.col;
|
|
metrics.from.colOff = obj.from.colOff;
|
|
metrics.to.colOff = obj.to.colOff;
|
|
metrics.from.row = obj.from.row;
|
|
metrics.to.row = obj.to.row;
|
|
metrics.from.rowOff = obj.from.rowOff;
|
|
metrics.to.rowOff = obj.to.rowOff;
|
|
if (bInsert) {
|
|
switch (operType) {
|
|
case c_oAscInsertOptions.InsertColumns:
|
|
var count = updateRange.c2 - updateRange.c1 + 1;
|
|
if (updateRange.c1 <= obj.from.col) {
|
|
metrics.from.col += count;
|
|
metrics.to.col += count;
|
|
} else {
|
|
if ((updateRange.c1 > obj.from.col) && (updateRange.c1 <= obj.to.col)) {
|
|
metrics.to.col += count;
|
|
} else {
|
|
metrics = null;
|
|
}
|
|
}
|
|
if (obj.isChart()) {
|
|
if (updateRange.c1 <= bbox.c1) {
|
|
changedRange = new Range(worksheet.model, bbox.r1, bbox.c1 + count, bbox.r2, bbox.c2 + count);
|
|
} else {
|
|
if (updateRange.c1 <= bbox.c2) {
|
|
changedRange = new Range(worksheet.model, bbox.r1, bbox.c1, bbox.r2, bbox.c2 + count);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case c_oAscInsertOptions.InsertCellsAndShiftRight:
|
|
if (obj.isChart()) {
|
|
if ((updateRange.r1 <= bbox.r1) && (updateRange.r2 >= bbox.r2) && (updateRange.c2 < bbox.c1)) {
|
|
var count = updateRange.c2 - updateRange.c1 + 1;
|
|
changedRange = new Range(worksheet.model, bbox.r1, bbox.c1 + count, bbox.r2, bbox.c2 + count);
|
|
}
|
|
}
|
|
break;
|
|
case c_oAscInsertOptions.InsertRows:
|
|
var count = updateRange.r2 - updateRange.r1 + 1;
|
|
if (updateRange.r1 <= obj.from.row) {
|
|
metrics.from.row += count;
|
|
metrics.to.row += count;
|
|
} else {
|
|
if ((updateRange.r1 > obj.from.row) && (updateRange.r1 <= obj.to.row)) {
|
|
metrics.to.row += count;
|
|
} else {
|
|
metrics = null;
|
|
}
|
|
}
|
|
if (obj.isChart()) {
|
|
if (updateRange.r1 <= bbox.r1) {
|
|
changedRange = new Range(worksheet.model, bbox.r1 + count, bbox.c1, bbox.r2 + count, bbox.c2);
|
|
} else {
|
|
if (updateRange.r1 <= bbox.r2) {
|
|
changedRange = new Range(worksheet.model, bbox.r1, bbox.c1, bbox.r2 + count, bbox.c2);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case c_oAscInsertOptions.InsertCellsAndShiftDown:
|
|
if (obj.isChart()) {
|
|
if ((updateRange.c1 <= bbox.c1) && (updateRange.c2 >= bbox.c2) && (updateRange.r2 < bbox.r1)) {
|
|
var count = updateRange.r2 - updateRange.r1 + 1;
|
|
changedRange = new Range(worksheet.model, bbox.r1 + count, bbox.c1, bbox.r2 + count, bbox.c2);
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
} else {
|
|
switch (operType) {
|
|
case c_oAscDeleteOptions.DeleteColumns:
|
|
var count = updateRange.c2 - updateRange.c1 + 1;
|
|
if (updateRange.c1 <= obj.from.col) {
|
|
if (updateRange.c2 < obj.from.col) {
|
|
metrics.from.col -= count;
|
|
metrics.to.col -= count;
|
|
} else {
|
|
metrics.from.col = updateRange.c1;
|
|
metrics.from.colOff = 0;
|
|
var offset = 0;
|
|
if (obj.to.col - updateRange.c2 - 1 > 0) {
|
|
offset = obj.to.col - updateRange.c2 - 1;
|
|
} else {
|
|
offset = 1;
|
|
metrics.to.colOff = 0;
|
|
}
|
|
metrics.to.col = metrics.from.col + offset;
|
|
}
|
|
} else {
|
|
if ((updateRange.c1 > obj.from.col) && (updateRange.c1 <= obj.to.col)) {
|
|
if (updateRange.c2 >= obj.to.col) {
|
|
metrics.to.col = updateRange.c1;
|
|
metrics.to.colOff = 0;
|
|
} else {
|
|
metrics.to.col -= count;
|
|
}
|
|
} else {
|
|
metrics = null;
|
|
}
|
|
}
|
|
if (obj.isChart()) {
|
|
var count = updateRange.c2 - updateRange.c1 + 1;
|
|
if (updateRange.c1 < bbox.c1) {
|
|
if (updateRange.c2 < bbox.c1) {
|
|
changedRange = new Range(worksheet.model, bbox.r1, bbox.c1 - count, bbox.r2, bbox.c2 - count);
|
|
} else {
|
|
if (updateRange.c2 > bbox.c2) {
|
|
changedRange = new Range(worksheet.model, bbox.r1, updateRange.c1, bbox.r2, updateRange.c1);
|
|
} else {
|
|
var offset = bbox.c2 - updateRange.c2;
|
|
changedRange = new Range(worksheet.model, bbox.r1, updateRange.c1, bbox.r2, updateRange.c1 + offset - 1);
|
|
}
|
|
}
|
|
} else {
|
|
if ((updateRange.c1 >= bbox.c1) && (updateRange.c1 <= bbox.c2)) {
|
|
if (updateRange.c2 > bbox.c2) {
|
|
var offset = (bbox.c1 + 1 > updateRange.c1) ? 1 : 0;
|
|
changedRange = new Range(worksheet.model, bbox.r1, bbox.c1, bbox.r2, updateRange.c1 + offset - 1);
|
|
} else {
|
|
var offset = bbox.c2 + 1 - bbox.c1 - count;
|
|
if (offset <= 0) {
|
|
offset = 1;
|
|
}
|
|
changedRange = new Range(worksheet.model, bbox.r1, bbox.c1, bbox.r2, bbox.c1 + offset - 1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case c_oAscDeleteOptions.DeleteCellsAndShiftLeft:
|
|
if (obj.isChart()) {
|
|
if ((updateRange.r1 <= bbox.r1) && (updateRange.r2 >= bbox.r2) && (updateRange.c2 < bbox.c1)) {
|
|
var count = updateRange.c2 - updateRange.c1 + 1;
|
|
changedRange = new Range(worksheet.model, bbox.r1, bbox.c1 - count, bbox.r2, bbox.c2 - count);
|
|
}
|
|
}
|
|
break;
|
|
case c_oAscDeleteOptions.DeleteRows:
|
|
var count = updateRange.r2 - updateRange.r1 + 1;
|
|
if (updateRange.r1 <= obj.from.row) {
|
|
if (updateRange.r2 < obj.from.row) {
|
|
metrics.from.row -= count;
|
|
metrics.to.row -= count;
|
|
} else {
|
|
metrics.from.row = updateRange.r1;
|
|
metrics.from.colOff = 0;
|
|
var offset = 0;
|
|
if (obj.to.row - updateRange.r2 - 1 > 0) {
|
|
offset = obj.to.row - updateRange.r2 - 1;
|
|
} else {
|
|
offset = 1;
|
|
metrics.to.colOff = 0;
|
|
}
|
|
metrics.to.row = metrics.from.row + offset;
|
|
}
|
|
} else {
|
|
if ((updateRange.r1 > obj.from.row) && (updateRange.r1 <= obj.to.row)) {
|
|
if (updateRange.r2 >= obj.to.row) {
|
|
metrics.to.row = updateRange.r1;
|
|
metrics.to.colOff = 0;
|
|
} else {
|
|
metrics.to.row -= count;
|
|
}
|
|
} else {
|
|
metrics = null;
|
|
}
|
|
}
|
|
if (obj.isChart()) {
|
|
var count = updateRange.r2 - updateRange.r1 + 1;
|
|
if (updateRange.r1 < bbox.r1) {
|
|
if (updateRange.r2 < bbox.r1) {
|
|
changedRange = new Range(worksheet.model, bbox.r1 - count, bbox.c1, bbox.r2 - count, bbox.c2);
|
|
} else {
|
|
if (updateRange.r2 >= bbox.r2) {
|
|
changedRange = new Range(worksheet.model, updateRange.r1, bbox.c1, updateRange.r1, bbox.c2);
|
|
} else {
|
|
var offset = bbox.r1 + 1 - updateRange.r2;
|
|
changedRange = new Range(worksheet.model, updateRange.r1, bbox.c1, updateRange.r1 + offset, bbox.c2);
|
|
}
|
|
}
|
|
} else {
|
|
if ((updateRange.r1 >= bbox.r1) && (updateRange.r1 <= bbox.r2)) {
|
|
if (updateRange.r2 > bbox.r2) {
|
|
var offset = (bbox.r1 + 1 > updateRange.r1) ? 1 : 0;
|
|
changedRange = new Range(worksheet.model, bbox.r1, bbox.c1, updateRange.r1 + offset - 1, bbox.c2);
|
|
} else {
|
|
var offset = bbox.r2 + 1 - bbox.r1 - count;
|
|
if (offset <= 0) {
|
|
offset = 1;
|
|
}
|
|
changedRange = new Range(worksheet.model, bbox.r1, bbox.c1, bbox.r1 + offset - 1, bbox.c2);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case c_oAscDeleteOptions.DeleteCellsAndShiftTop:
|
|
if (obj.isChart()) {
|
|
if ((updateRange.c1 <= bbox.c1) && (updateRange.c2 >= bbox.c2) && (updateRange.r2 < bbox.r1)) {
|
|
var count = updateRange.r2 - updateRange.r1 + 1;
|
|
changedRange = new Range(worksheet.model, bbox.r1 - count, bbox.c1, bbox.r2 - count, bbox.c2);
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
if (metrics) {
|
|
if (metrics.from.col < 0) {
|
|
metrics.from.col = 0;
|
|
metrics.from.colOff = 0;
|
|
}
|
|
if (metrics.to.col <= 0) {
|
|
metrics.to.col = 1;
|
|
metrics.to.colOff = 0;
|
|
}
|
|
if (metrics.from.row < 0) {
|
|
metrics.from.row = 0;
|
|
metrics.from.rowOff = 0;
|
|
}
|
|
if (metrics.to.row <= 0) {
|
|
metrics.to.row = 1;
|
|
metrics.to.rowOff = 0;
|
|
}
|
|
if (metrics.from.col == metrics.to.col) {
|
|
metrics.to.col++;
|
|
metrics.to.colOff = 0;
|
|
}
|
|
if (metrics.from.row == metrics.to.row) {
|
|
metrics.to.row++;
|
|
metrics.to.rowOff = 0;
|
|
}
|
|
}
|
|
if (changedRange) {
|
|
var bbox = changedRange.getBBox0();
|
|
var tmp;
|
|
if (bbox.c1 > bbox.c2) {
|
|
tmp = bbox.c1;
|
|
bbox.c1 = bbox.c2;
|
|
bbox.c2 = tmp;
|
|
}
|
|
if (bbox.r1 > bbox.r2) {
|
|
tmp = bbox.r1;
|
|
bbox.r1 = bbox.r2;
|
|
bbox.r2 = tmp;
|
|
}
|
|
changedRange = new Range(worksheet.model, bbox.r1, bbox.c1, bbox.r2, bbox.c2);
|
|
}
|
|
if (changedRange || metrics) {
|
|
if (obj.isChart() && changedRange) {
|
|
obj.graphicObject.chart.range.intervalObject = changedRange;
|
|
_this.calcChartInterval(obj.graphicObject.chart);
|
|
obj.graphicObject.chart.rebuildSeries();
|
|
obj.graphicObject.recalculate();
|
|
}
|
|
if (metrics) {
|
|
obj.from.col = metrics.from.col;
|
|
obj.from.colOff = metrics.from.colOff;
|
|
obj.from.row = metrics.from.row;
|
|
obj.from.rowOff = metrics.from.rowOff;
|
|
obj.to.col = metrics.to.col;
|
|
obj.to.colOff = metrics.to.colOff;
|
|
obj.to.row = metrics.to.row;
|
|
obj.to.rowOff = metrics.to.rowOff;
|
|
}
|
|
History.TurnOff();
|
|
var coords = _this.coordsManager.calculateCoords(obj.from);
|
|
obj.graphicObject.setPosition(pxToMm(coords.x), pxToMm(coords.y));
|
|
obj.graphicObject.recalculateTransform();
|
|
obj.graphicObject.calculateTransformTextMatrix();
|
|
History.TurnOn();
|
|
_this.showDrawingObjects(true);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
_this.moveRangeDrawingObject = function (oBBoxFrom, oBBoxTo, bResize) {
|
|
if (oBBoxFrom && oBBoxTo) {
|
|
function editChart(drawingObject) {
|
|
var _interval = drawingObject.graphicObject.chart.range.interval;
|
|
drawingObject.graphicObject.chart.range.intervalObject = worksheet._getRange(oBBoxTo.c1, oBBoxTo.r1, oBBoxTo.c2, oBBoxTo.r2);
|
|
_this.calcChartInterval(drawingObject.graphicObject.chart);
|
|
drawingObject.graphicObject.chart.rebuildSeries();
|
|
drawingObject.graphicObject.recalculate();
|
|
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(drawingObject.graphicObject.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
|
|
History.Add(g_oUndoRedoGraphicObjects, historyitem_Chart_RangeInterval, null, null, new UndoRedoDataGraphicObjects(drawingObject.graphicObject.chart.Get_Id(), new UndoRedoDataGOSingleProp(_interval, drawingObject.graphicObject.chart.range.interval)));
|
|
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(drawingObject.graphicObject.chart.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
|
|
}
|
|
var bRedraw = false;
|
|
History.Create_NewPoint();
|
|
History.StartTransaction();
|
|
var chartDrawings = [];
|
|
function callbackCheck(result) {
|
|
for (var i = 0; result && (i < chartDrawings.length); i++) {
|
|
editChart(chartDrawings[i]);
|
|
bRedraw = true;
|
|
}
|
|
if (bRedraw) {
|
|
_this.showDrawingObjects(true);
|
|
}
|
|
}
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
var drawingObject = aObjects[i];
|
|
if (drawingObject.isChart()) {
|
|
var bbox = drawingObject.graphicObject.chart.range.intervalObject.getBBox0();
|
|
if (oBBoxFrom.isEqual(bbox)) {
|
|
if (bResize) {
|
|
if (drawingObject.graphicObject.selected) {
|
|
chartDrawings.push(drawingObject);
|
|
break;
|
|
}
|
|
} else {
|
|
chartDrawings.push(drawingObject);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
this.objectLocker.reset();
|
|
for (var i = 0; i < chartDrawings.length; i++) {
|
|
this.objectLocker.addObjectId(chartDrawings[i].graphicObject.Get_Id());
|
|
}
|
|
this.objectLocker.checkObjects(callbackCheck);
|
|
History.EndTransaction();
|
|
}
|
|
};
|
|
_this.checkChartInterval = function (type, subtype, interval, isRows) {
|
|
var result = false;
|
|
if (interval && worksheet) {
|
|
var _range = convertFormula(interval, worksheet);
|
|
if (_range && checkDataRange(type, subtype, _range, isRows, worksheet)) {
|
|
result = true;
|
|
}
|
|
}
|
|
return result;
|
|
};
|
|
_this.calcChartInterval = function (chart) {
|
|
if (chart.range.intervalObject) {
|
|
var box = chart.range.intervalObject.getBBox0();
|
|
var startCell = new CellAddress(box.r1, box.c1, 0);
|
|
var endCell = new CellAddress(box.r2, box.c2, 0);
|
|
if (startCell && endCell) {
|
|
if (startCell.getID() == endCell.getID()) {
|
|
chart.range.interval = startCell.getID();
|
|
} else {
|
|
var wsName = chart.range.intervalObject.worksheet.sName;
|
|
if (!rx_test_ws_name.test(wsName)) {
|
|
wsName = "'" + wsName + "'";
|
|
}
|
|
chart.range.interval = wsName + "!" + startCell.getID() + ":" + endCell.getID();
|
|
}
|
|
}
|
|
}
|
|
};
|
|
_this.intervalToIntervalObject = function (chart) {
|
|
if (chart.range.interval && worksheet) {
|
|
var _range = convertFormula(chart.range.interval, worksheet);
|
|
if (_range) {
|
|
chart.range.intervalObject = _range;
|
|
}
|
|
}
|
|
};
|
|
_this.updateChartReferences = function (oldWorksheet, newWorksheet) {
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
var graphicObject = aObjects[i].graphicObject;
|
|
if (graphicObject.isChart() && (graphicObject.chart.range.interval.indexOf(oldWorksheet) == 0)) {
|
|
graphicObject.chart.range.interval = graphicObject.chart.range.interval.replace(oldWorksheet, newWorksheet);
|
|
var _range = convertFormula(graphicObject.chart.range.interval, worksheet);
|
|
if (_range) {
|
|
graphicObject.chart.range.intervalObject = _range;
|
|
graphicObject.chart.rebuildSeries();
|
|
graphicObject.recalculate();
|
|
}
|
|
}
|
|
}
|
|
};
|
|
_this.addGraphicObject = function (graphic, position, lockByDefault) {
|
|
worksheet.cleanSelection();
|
|
var drawingObject = _this.createDrawingObject();
|
|
drawingObject.graphicObject = graphic;
|
|
graphic.setDrawingBase(drawingObject);
|
|
var ret;
|
|
if (isRealNumber(position)) {
|
|
aObjects.splice(position, 0, drawingObject);
|
|
ret = position;
|
|
} else {
|
|
ret = aObjects.length;
|
|
aObjects.push(drawingObject);
|
|
}
|
|
drawingObject.setGraphicObjectCoords();
|
|
_this.showDrawingObjects(false);
|
|
worksheet.model.workbook.handlers.trigger("asc_onEndAddShape");
|
|
if (lockByDefault) {
|
|
_this.objectLocker.reset();
|
|
_this.objectLocker.addObjectId(drawingObject.graphicObject.Id);
|
|
_this.objectLocker.checkObjects(function (result) {});
|
|
_this.sendGraphicObjectProps();
|
|
worksheet.setSelectionShape(true);
|
|
}
|
|
var boundsChecker = _this.getBoundsChecker(drawingObject);
|
|
aBoundsCheckers.push(boundsChecker);
|
|
return ret;
|
|
};
|
|
_this.groupGraphicObjects = function () {
|
|
if (_this.controller.canGroup()) {
|
|
_this.controller.createGroup(null);
|
|
worksheet.setSelectionShape(true);
|
|
}
|
|
};
|
|
_this.unGroupGraphicObjects = function () {
|
|
if (_this.controller.canUnGroup()) {
|
|
_this.controller.unGroup();
|
|
worksheet.setSelectionShape(true);
|
|
api.isStartAddShape = false;
|
|
}
|
|
};
|
|
_this.insertUngroupedObjects = function (idGroup, aGraphics) {
|
|
if (idGroup && aGraphics.length) {
|
|
var aSingleObjects = [];
|
|
for (var i = 0; i < aGraphics.length; i++) {
|
|
var obj = _this.createDrawingObject();
|
|
obj.graphicObject = aGraphics[i];
|
|
aGraphics[i].setDrawingBase(obj);
|
|
obj.graphicObject.select(_this.controller);
|
|
obj.setGraphicObjectCoords();
|
|
aSingleObjects.push(obj);
|
|
}
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
if (idGroup == aObjects[i].graphicObject.Id) {
|
|
aObjects.splice(i, 1);
|
|
for (var j = aSingleObjects.length - 1; j > -1; j--) {
|
|
aObjects.splice(i, 0, aSingleObjects[j]);
|
|
}
|
|
_this.showDrawingObjects(true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
_this.getDrawingBase = function (graphicId) {
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
if (aObjects[i].graphicObject.Id == graphicId) {
|
|
return aObjects[i];
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
_this.deleteDrawingBase = function (graphicId) {
|
|
var position = null;
|
|
var bRedraw = false;
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
if (aObjects[i].graphicObject.Id == graphicId) {
|
|
aObjects[i].graphicObject.deselect(_this.controller);
|
|
if (aObjects[i].isChart()) {
|
|
worksheet.arrActiveChartsRanges = [];
|
|
}
|
|
aObjects.splice(i, 1);
|
|
bRedraw = true;
|
|
position = i;
|
|
break;
|
|
}
|
|
}
|
|
if (bRedraw) {
|
|
worksheet._checkSelectionShape();
|
|
_this.sendGraphicObjectProps();
|
|
_this.showDrawingObjects(true);
|
|
}
|
|
return position;
|
|
};
|
|
_this.checkGraphicObjectPosition = function (x, y, w, h) {
|
|
var response = {
|
|
result: true,
|
|
x: 0,
|
|
y: 0
|
|
};
|
|
var bottom = worksheet.getCellTop(worksheet.rows.length - 1, 3);
|
|
var right = worksheet.getCellLeft(worksheet.cols.length - 1, 3);
|
|
if (y < 0) {
|
|
response.result = false;
|
|
response.y = Math.abs(y);
|
|
}
|
|
if (x < 0) {
|
|
response.result = false;
|
|
response.x = Math.abs(x);
|
|
}
|
|
function isMaxCol() {
|
|
var result = false;
|
|
if (worksheet.cols.length >= gc_nMaxCol) {
|
|
var lastCol = worksheet.cols[gc_nMaxCol - 1];
|
|
if (mmToPt(x + w) + scrollX > lastCol.left) {
|
|
response.result = false;
|
|
response.x = ptToMm(lastCol.left - (mmToPt(x + w) + scrollX));
|
|
result = true;
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
function isMaxRow() {
|
|
var result = false;
|
|
if (worksheet.rows.length >= gc_nMaxRow) {
|
|
var lastRow = worksheet.rows[gc_nMaxRow - 1];
|
|
if (mmToPt(y + h) + scrollY > lastRow.top) {
|
|
response.result = false;
|
|
response.y = ptToMm(lastCol.top - (mmToPt(y + h) + scrollY));
|
|
result = true;
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
if (x + w > right) {
|
|
var scrollX = scrollOffset.getX();
|
|
var foundCol = worksheet._findColUnderCursor(mmToPt(x + w) + scrollX, true);
|
|
while (foundCol == null) {
|
|
if (isMaxCol()) {
|
|
break;
|
|
}
|
|
worksheet.expandColsOnScroll(true);
|
|
worksheet._trigger("reinitializeScrollX");
|
|
foundCol = worksheet._findColUnderCursor(mmToPt(x + w) + scrollX, true);
|
|
}
|
|
}
|
|
if (y + h > bottom) {
|
|
var scrollY = scrollOffset.getY();
|
|
var foundRow = worksheet._findRowUnderCursor(mmToPt(y + h) + scrollY, true);
|
|
while (foundRow == null) {
|
|
if (isMaxRow()) {
|
|
break;
|
|
}
|
|
worksheet.expandRowsOnScroll(true);
|
|
worksheet._trigger("reinitializeScrollY");
|
|
foundRow = worksheet._findRowUnderCursor(mmToPt(y + h) + scrollY, true);
|
|
}
|
|
}
|
|
return response;
|
|
};
|
|
_this.setGraphicObjectLockState = function (id, state) {
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
if (id == aObjects[i].graphicObject.Id) {
|
|
aObjects[i].graphicObject.lockType = state;
|
|
if (worksheet.model.index === worksheet.model.workbook.nActive) {
|
|
if (!shapeCtx.m_oContext.isOverlay) {
|
|
_this.clipGraphicsCanvas(shapeCtx);
|
|
shapeCtx.SetIntegerGrid(false);
|
|
shapeCtx.transform3(aObjects[i].graphicObject.transform, false);
|
|
shapeCtx.DrawLockObjectRect(aObjects[i].graphicObject.lockType, 0, 0, aObjects[i].graphicObject.extX, aObjects[i].graphicObject.extY);
|
|
shapeCtx.reset();
|
|
shapeCtx.SetIntegerGrid(true);
|
|
_this.restoreGraphicsCanvas(shapeCtx);
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
_this.resetLockedGraphicObjects = function () {
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
aObjects[i].graphicObject.lockType = c_oAscLockTypes.kLockTypeNone;
|
|
}
|
|
};
|
|
_this.tryResetLockedGraphicObject = function (id) {
|
|
var bObjectFound = false;
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
if (aObjects[i].graphicObject.Id == id) {
|
|
aObjects[i].graphicObject.lockType = c_oAscLockTypes.kLockTypeNone;
|
|
bObjectFound = true;
|
|
break;
|
|
}
|
|
}
|
|
return bObjectFound;
|
|
};
|
|
_this.setScrollOffset = function () {
|
|
if (shapeCtx && shapeOverlayCtx && autoShapeTrack) {
|
|
var x = scrollOffset.getX();
|
|
var y = scrollOffset.getY();
|
|
shapeCtx.m_oCoordTransform.tx = x;
|
|
shapeCtx.m_oCoordTransform.ty = y;
|
|
shapeCtx.CalculateFullTransform();
|
|
shapeOverlayCtx.m_oCoordTransform.tx = x;
|
|
shapeOverlayCtx.m_oCoordTransform.ty = y;
|
|
shapeOverlayCtx.CalculateFullTransform();
|
|
autoShapeTrack.Graphics.m_oCoordTransform.tx = x;
|
|
autoShapeTrack.Graphics.m_oCoordTransform.ty = y;
|
|
autoShapeTrack.Graphics.CalculateFullTransform();
|
|
this.controller.recalculateCurPos();
|
|
if (_this.selectedGraphicObjectsExists()) {
|
|
this.controller.updateSelectionState();
|
|
}
|
|
}
|
|
};
|
|
_this.convertMetric = function (val, from, to) {
|
|
return val * ascCvtRatio(from, to);
|
|
};
|
|
_this.getSelectedGraphicObjects = function () {
|
|
return _this.controller.selectedObjects;
|
|
};
|
|
_this.selectedGraphicObjectsExists = function () {
|
|
return _this.controller.selectedObjects.length > 0;
|
|
};
|
|
_this.loadImageRedraw = function (imageUrl) {
|
|
var _image = api.ImageLoader.LoadImage(imageUrl, 1);
|
|
if (null != _image) {
|
|
imageLoaded(_image);
|
|
} else {
|
|
_this.asyncImageEndLoaded = function (_image) {
|
|
imageLoaded(_image);
|
|
_this.asyncImageEndLoaded = null;
|
|
};
|
|
}
|
|
function imageLoaded(_image) {
|
|
if (!_image.Image) {
|
|
worksheet.model.workbook.handlers.trigger("asc_onError", c_oAscError.ID.UplImageUrl, c_oAscError.Level.NoCritical);
|
|
} else {
|
|
_this.showDrawingObjects(true);
|
|
}
|
|
}
|
|
};
|
|
_this.getOriginalImageSize = function () {
|
|
var selectedObjects = _this.controller.selectedObjects;
|
|
if ((selectedObjects.length == 1) && selectedObjects[0].isImage()) {
|
|
var imageUrl = selectedObjects[0].getImageUrl();
|
|
var _image = api.ImageLoader.map_image_index[getFullImageSrc(imageUrl)];
|
|
if (_image != undefined && _image.Image != null && _image.Status == ImageLoadStatus.Complete) {
|
|
var _w = 1,
|
|
_h = 1;
|
|
var bIsCorrect = false;
|
|
if (_image.Image != null) {
|
|
bIsCorrect = true;
|
|
_w = Math.max(pxToMm(_image.Image.width), 1);
|
|
_h = Math.max(pxToMm(_image.Image.height), 1);
|
|
}
|
|
return new asc_CImageSize(_w, _h, bIsCorrect);
|
|
}
|
|
}
|
|
return new asc_CImageSize(50, 50, false);
|
|
};
|
|
_this.sendGraphicObjectProps = function () {
|
|
if (worksheet) {
|
|
worksheet._trigger("selectionChanged", worksheet.getSelectionInfo());
|
|
}
|
|
};
|
|
_this.setGraphicObjectProps = function (props) {
|
|
var objectProperties = props;
|
|
if (!isNullOrEmptyString(objectProperties.ImageUrl)) {
|
|
var _img = api.ImageLoader.LoadImage(objectProperties.ImageUrl, 1);
|
|
if (null != _img) {
|
|
_this.controller.setGraphicObjectProps(objectProperties);
|
|
} else {
|
|
_this.asyncImageEndLoaded = function (_image) {
|
|
_this.controller.setGraphicObjectProps(objectProperties);
|
|
_this.asyncImageEndLoaded = null;
|
|
};
|
|
}
|
|
} else {
|
|
if (objectProperties.ShapeProperties && objectProperties.ShapeProperties.fill && objectProperties.ShapeProperties.fill.fill && !isNullOrEmptyString(objectProperties.ShapeProperties.fill.fill.url)) {
|
|
var _img = api.ImageLoader.LoadImage(objectProperties.ShapeProperties.fill.fill.url, 1);
|
|
if (null != _img) {
|
|
_this.controller.setGraphicObjectProps(objectProperties);
|
|
} else {
|
|
_this.asyncImageEndLoaded = function (_image) {
|
|
_this.controller.setGraphicObjectProps(objectProperties);
|
|
_this.asyncImageEndLoaded = null;
|
|
};
|
|
}
|
|
} else {
|
|
objectProperties.ImageUrl = null;
|
|
_this.controller.setGraphicObjectProps(objectProperties);
|
|
}
|
|
}
|
|
_this.sendGraphicObjectProps();
|
|
};
|
|
_this.showChartSettings = function () {
|
|
api.wb.handlers.trigger("asc_onShowChartDialog", true);
|
|
};
|
|
_this.setDrawImagePlaceParagraph = function (element_id, props) {
|
|
_this.drawingDocument.InitGuiCanvasTextProps(element_id);
|
|
_this.drawingDocument.DrawGuiCanvasTextProps(props);
|
|
};
|
|
_this.graphicObjectMouseDown = function (e, x, y) {
|
|
_this.controller.onMouseDown(e, pxToMm(x - scrollOffset.getX()), pxToMm(y - scrollOffset.getY()));
|
|
};
|
|
_this.graphicObjectMouseMove = function (e, x, y) {
|
|
_this.controller.onMouseMove(e, pxToMm(x - scrollOffset.getX()), pxToMm(y - scrollOffset.getY()));
|
|
};
|
|
_this.graphicObjectMouseUp = function (e, x, y) {
|
|
_this.controller.onMouseUp(e, pxToMm(x - scrollOffset.getX()), pxToMm(y - scrollOffset.getY()));
|
|
};
|
|
_this.graphicObjectKeyDown = function (e) {
|
|
return _this.controller.onKeyDown(e);
|
|
};
|
|
_this.graphicObjectKeyPress = function (e) {
|
|
return _this.controller.onKeyPress(e);
|
|
};
|
|
_this.cleanWorksheet = function () {
|
|
if (wsCellCache.isInit) {
|
|
for (var i = 0; i < wsCellCache.cols.length; i++) {
|
|
worksheet.model.setColWidth(wsCellCache.cols[i], i, i);
|
|
}
|
|
for (var i = 0; i < wsCellCache.rows.length; i++) {
|
|
worksheet.model.setRowHeight(wsCellCache.rows[i], i, i);
|
|
}
|
|
worksheet.changeWorksheet("update");
|
|
}
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
aObjects[i].graphicObject.deleteDrawingBase();
|
|
}
|
|
aBoundsCheckers = [];
|
|
worksheet._clean();
|
|
var listRange = new Range(worksheet.model, 0, 0, worksheet.nRowsCount - 1, worksheet.nColsCount - 1);
|
|
listRange.cleanAll();
|
|
_this.controller.resetSelection();
|
|
shapeCtx.m_oContext.clearRect(0, 0, shapeCtx.m_lWidthPix, shapeCtx.m_lHeightPix);
|
|
shapeOverlayCtx.m_oContext.clearRect(0, 0, shapeOverlayCtx.m_lWidthPix, shapeOverlayCtx.m_lHeightPix);
|
|
_this.OnUpdateOverlay();
|
|
History.Clear();
|
|
};
|
|
_this.getWordChartObject = function () {
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
var drawingObject = aObjects[i];
|
|
if (drawingObject.isChart()) {
|
|
var chart = new asc_CChartBinary(drawingObject.graphicObject);
|
|
_this.cleanWorksheet();
|
|
return chart;
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
_this.getAscChartObject = function () {
|
|
if (!api.chartStyleManager.isReady() || !api.chartPreviewManager.isReady()) {
|
|
api.chartStyleManager.init();
|
|
api.chartPreviewManager.init();
|
|
_this.callTrigger("asc_onUpdateChartStyles");
|
|
}
|
|
if (api.isChartEditor) {
|
|
if (aObjects.length && aObjects[0].isChart()) {
|
|
aObjects[0].graphicObject.syncAscChart();
|
|
return new asc_CChart(aObjects[0].graphicObject.chart);
|
|
}
|
|
}
|
|
var chart = this.controller.getAscChartObject();
|
|
if (!chart) {
|
|
History.Create_NewPoint();
|
|
chart = new asc_CChart();
|
|
chart.header.title = api.chartTranslate.title;
|
|
chart.xAxis.title = api.chartTranslate.xAxis;
|
|
chart.yAxis.title = api.chartTranslate.yAxis;
|
|
chart.range.interval = function () {
|
|
var result = "";
|
|
if (worksheet) {
|
|
var selectedRange = worksheet.getSelectedRange();
|
|
if (selectedRange) {
|
|
var box = selectedRange.getBBox0();
|
|
if (box.r2 - box.r1 < box.c2 - box.c1) {
|
|
chart.range.rows = true;
|
|
chart.range.columns = false;
|
|
} else {
|
|
chart.range.rows = false;
|
|
chart.range.columns = true;
|
|
}
|
|
var startCell = new CellAddress(box.r1, box.c1, 0);
|
|
var endCell = new CellAddress(box.r2, box.c2, 0);
|
|
if (startCell && endCell) {
|
|
var wsName = worksheet.model.sName;
|
|
if (!rx_test_ws_name.test(wsName)) {
|
|
wsName = "'" + wsName + "'";
|
|
}
|
|
if (startCell.getID() == endCell.getID()) {
|
|
result = wsName + "!" + startCell.getID();
|
|
} else {
|
|
result = wsName + "!" + startCell.getID() + ":" + endCell.getID();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return result;
|
|
} ();
|
|
chart.range.intervalObject = function () {
|
|
return worksheet ? worksheet.getSelectedRange() : null;
|
|
} ();
|
|
}
|
|
return chart;
|
|
};
|
|
_this.selectDrawingObjectRange = function (id) {
|
|
var strokeColor = "#ff0000";
|
|
worksheet.arrActiveChartsRanges = [];
|
|
function getRandomColor() {
|
|
var r = function () {
|
|
return Math.floor(Math.random() * 256);
|
|
};
|
|
return "rgb(" + r() + "," + r() + "," + r() + ")";
|
|
}
|
|
var bRaise = false;
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
var drawingObject = aObjects[i].graphicObject;
|
|
if (drawingObject.isChart() && (drawingObject.Id == id)) {
|
|
if (!drawingObject.chart.range.intervalObject) {
|
|
_this.intervalToIntervalObject(drawingObject.chart);
|
|
}
|
|
if (drawingObject.chart.range.intervalObject.worksheet.Id != worksheet.model.Id) {
|
|
return bRaise;
|
|
}
|
|
var BB = drawingObject.chart.range.intervalObject.getBBox0();
|
|
var range = asc.Range(BB.c1, BB.r1, BB.c2, BB.r2, true);
|
|
var fvr = worksheet.getFirstVisibleRow();
|
|
var fvc = worksheet.getFirstVisibleCol();
|
|
var headers = drawingObject.chart.parseSeriesHeaders();
|
|
var bbox = BB.clone();
|
|
if (headers.bTop && (bbox.r1 + 1 - fvr > 0) && (bbox.c2 + 1 - fvc > 0) && (bbox.r1 != bbox.r2)) {
|
|
var y = worksheet.getCellTop(bbox.r1 + 1, 1) - worksheet.getCellTop(fvr, 1) + worksheet.getCellTop(0, 1);
|
|
var bHide = bbox.c1 - fvc < 0;
|
|
var x = (bHide ? 0 : worksheet.getCellLeft(bbox.c1, 1) - worksheet.getCellLeft(fvc, 1)) + worksheet.getCellLeft(0, 1);
|
|
var w = worksheet.getCellLeft(bbox.c2 + 1, 1) - (bHide ? worksheet.getCellLeft(fvc, 1) : worksheet.getCellLeft(bbox.c1, 1));
|
|
overlayCtx.setStrokeStyle(strokeColor);
|
|
overlayCtx.beginPath();
|
|
overlayCtx.lineHor(x, y - worksheet.height_1px, x + w);
|
|
overlayCtx.stroke();
|
|
}
|
|
if (headers.bLeft && (bbox.c1 + 1 - fvc > 0) && (bbox.r2 + 1 - fvr > 0) && (bbox.c1 != bbox.c2)) {
|
|
var x = worksheet.getCellLeft(bbox.c1 + 1, 1) - worksheet.getCellLeft(fvc, 1) + worksheet.getCellLeft(0, 1);
|
|
var bHide = bbox.r1 - fvr < 0;
|
|
var y = (bHide ? 0 : worksheet.getCellTop(bbox.r1, 1) - worksheet.getCellTop(fvr, 1)) + worksheet.getCellTop(0, 1);
|
|
var h = worksheet.getCellTop(bbox.r2 + 1, 1) - (bHide ? worksheet.getCellTop(fvr, 1) : worksheet.getCellTop(bbox.r1, 1));
|
|
overlayCtx.setStrokeStyle(strokeColor);
|
|
overlayCtx.beginPath();
|
|
overlayCtx.lineVer(x - worksheet.width_1px, y, y + h);
|
|
overlayCtx.stroke();
|
|
}
|
|
worksheet.arrActiveChartsRanges.push(range);
|
|
worksheet.isChartAreaEditMode = true;
|
|
worksheet._drawFormulaRange(worksheet.arrActiveChartsRanges);
|
|
bRaise = true;
|
|
}
|
|
}
|
|
return bRaise;
|
|
};
|
|
_this.unselectDrawingObjects = function () {
|
|
if (worksheet.isChartAreaEditMode) {
|
|
worksheet.isChartAreaEditMode = false;
|
|
worksheet.arrActiveChartsRanges = [];
|
|
}
|
|
_this.controller.resetSelectionState();
|
|
_this.OnUpdateOverlay();
|
|
};
|
|
_this.getDrawingObject = function (id) {
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
if (aObjects[i].graphicObject.Id == id) {
|
|
return aObjects[i];
|
|
}
|
|
}
|
|
return null;
|
|
};
|
|
_this.getGraphicSelectionType = function (id) {
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
var obj = aObjects[i];
|
|
if (obj.graphicObject.Id == id) {
|
|
if (obj.isChart()) {
|
|
if (_this.controller.curState.id == STATES_ID_CHART_TEXT_ADD) {
|
|
return c_oAscSelectionType.RangeChartText;
|
|
}
|
|
return c_oAscSelectionType.RangeChart;
|
|
}
|
|
if (obj.graphicObject.isImage()) {
|
|
return c_oAscSelectionType.RangeImage;
|
|
}
|
|
if (obj.graphicObject.isShape() || obj.graphicObject.isGroup()) {
|
|
if (_this.controller.curState.id == STATES_ID_TEXT_ADD) {
|
|
return c_oAscSelectionType.RangeShapeText;
|
|
}
|
|
return c_oAscSelectionType.RangeShape;
|
|
}
|
|
}
|
|
}
|
|
return undefined;
|
|
};
|
|
_this.setGraphicObjectLayer = function (layerType) {
|
|
_this.controller.setGraphicObjectLayer(layerType);
|
|
};
|
|
_this.saveSizeDrawingObjects = function () {
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
var obj = aObjects[i];
|
|
obj.size.width = obj.getWidthFromTo();
|
|
obj.size.height = obj.getHeightFromTo();
|
|
}
|
|
};
|
|
_this.updateSizeDrawingObjects = function () {
|
|
for (var i = 0; i < aObjects.length; i++) {
|
|
var drawingObject = aObjects[i];
|
|
var coords = _this.coordsManager.calculateCoords(drawingObject.from);
|
|
var cellTo = _this.coordsManager.calculateCell(coords.x + drawingObject.size.width, coords.y + drawingObject.size.height);
|
|
drawingObject.to.col = cellTo.col;
|
|
drawingObject.to.colOff = cellTo.colOff;
|
|
drawingObject.to.row = cellTo.row;
|
|
drawingObject.to.rowOff = cellTo.rowOff;
|
|
drawingObject.graphicObject.setPosition(pxToMm(coords.x), pxToMm(coords.y));
|
|
drawingObject.graphicObject.recalculateTransform();
|
|
drawingObject.graphicObject.calculateTransformTextMatrix();
|
|
}
|
|
_this.showDrawingObjects(true);
|
|
};
|
|
_this.checkCursorDrawingObject = function (x, y) {
|
|
var objectInfo = {
|
|
cursor: null,
|
|
id: null,
|
|
object: null
|
|
};
|
|
var graphicObjectInfo = _this.controller.isPointInDrawingObjects(pxToMm(x - scrollOffset.getX()), pxToMm(y - scrollOffset.getY()));
|
|
if (graphicObjectInfo && graphicObjectInfo.objectId) {
|
|
objectInfo.id = graphicObjectInfo.objectId;
|
|
objectInfo.object = _this.getDrawingBase(graphicObjectInfo.objectId);
|
|
objectInfo.cursor = graphicObjectInfo.cursorType;
|
|
objectInfo.hyperlink = graphicObjectInfo.hyperlink;
|
|
return objectInfo;
|
|
}
|
|
return null;
|
|
};
|
|
_this.getPositionInfo = function (x, y) {
|
|
var info = {
|
|
col: 0,
|
|
colOff: 0,
|
|
row: 0,
|
|
rowOff: 0
|
|
};
|
|
var tmp = worksheet._findColUnderCursor(pxToPt(x), true);
|
|
if (tmp) {
|
|
info.col = tmp.col;
|
|
info.colOff = pxToMm(x - worksheet.getCellLeft(info.col, 0));
|
|
}
|
|
tmp = worksheet._findRowUnderCursor(pxToPt(y), true);
|
|
if (tmp) {
|
|
info.row = tmp.row;
|
|
info.rowOff = pxToMm(y - worksheet.getCellTop(info.row, 0));
|
|
}
|
|
return info;
|
|
};
|
|
_this.showImageFileDialog = function (documentId, documentFormat) {
|
|
if (_this.isViewerMode()) {
|
|
return;
|
|
}
|
|
var frameWindow = GetUploadIFrame();
|
|
var content = '<html><head></head><body><form action="' + g_sUploadServiceLocalUrl + "?sheetId=" + worksheet.model.getId() + "&key=" + documentId + '" method="POST" enctype="multipart/form-data"><input id="apiiuFile" name="apiiuFile" type="file" accept="image/*" size="1"><input id="apiiuSubmit" name="apiiuSubmit" type="submit" style="display:none;"></form></body></html>';
|
|
frameWindow.document.open();
|
|
frameWindow.document.write(content);
|
|
frameWindow.document.close();
|
|
var fileName = frameWindow.document.getElementById("apiiuFile");
|
|
var fileSubmit = frameWindow.document.getElementById("apiiuSubmit");
|
|
fileName.onchange = function (e) {
|
|
var bNeedSubmit = true;
|
|
if (e && e.target && e.target.files) {
|
|
var nError = ValidateUploadImage(e.target.files);
|
|
if (c_oAscServerError.NoError != nError) {
|
|
bNeedSubmit = false;
|
|
worksheet.model.workbook.handlers.trigger("asc_onError", api.asc_mapAscServerErrorToAscError(nError), c_oAscError.Level.NoCritical);
|
|
}
|
|
}
|
|
if (bNeedSubmit) {
|
|
worksheet.model.workbook.handlers.trigger("asc_onStartAction", c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage);
|
|
fileSubmit.click();
|
|
}
|
|
};
|
|
if (window.opera != undefined) {
|
|
setTimeout(function () {
|
|
fileName.click();
|
|
},
|
|
0);
|
|
} else {
|
|
fileName.click();
|
|
}
|
|
};
|
|
_this.controller = new DrawingObjectsController(_this);
|
|
function guid() {
|
|
function S4() {
|
|
return (((1 + Math.random()) * 65536) | 0).toString(16).substring(1);
|
|
}
|
|
return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
|
|
}
|
|
function ascCvtRatio(fromUnits, toUnits) {
|
|
return asc.getCvtRatio(fromUnits, toUnits, drawingCtx.getPPIX());
|
|
}
|
|
function setCanvasZIndex(canvas, value) {
|
|
if (canvas && (value >= 0) && (value <= 1)) {
|
|
canvas.globalAlpha = value;
|
|
}
|
|
}
|
|
function emuToPx(emu) {
|
|
var tmp = emu * 20 * 96 / 2.54 / 72 / 100 / 1000;
|
|
return Math.floor(tmp);
|
|
}
|
|
function pxToEmu(px) {
|
|
var tmp = px * 2.54 * 72 * 100 * 1000 / 20 / 96;
|
|
return Math.floor(tmp);
|
|
}
|
|
function pxToPt(val) {
|
|
var tmp = asc.round(val) * ascCvtRatio(0, 1);
|
|
return tmp > 0 ? tmp : 0;
|
|
}
|
|
function ptToPx(val) {
|
|
var tmp = val * ascCvtRatio(1, 0);
|
|
return tmp;
|
|
}
|
|
function ptToMm(val) {
|
|
var tmp = val * ascCvtRatio(1, 3);
|
|
return tmp;
|
|
}
|
|
function mmToPx(val) {
|
|
var tmp = val * ascCvtRatio(3, 0);
|
|
return tmp;
|
|
}
|
|
function mmToPt(val) {
|
|
var tmp = val * ascCvtRatio(3, 1);
|
|
return tmp;
|
|
}
|
|
function pxToMm(val) {
|
|
var tmp = val * ascCvtRatio(0, 3);
|
|
return tmp;
|
|
}
|
|
}
|
|
function ObjectLocker(ws) {
|
|
var _t = this;
|
|
var aObjectId = [];
|
|
var worksheet = ws;
|
|
_t.reset = function () {
|
|
aObjectId = [];
|
|
};
|
|
_t.addObjectId = function (id) {
|
|
aObjectId.push(id);
|
|
};
|
|
_t.checkObjects = function (callback) {
|
|
function callbackEx(result) {
|
|
worksheet._drawCollaborativeElements(true);
|
|
if (callback) {
|
|
callback(result);
|
|
}
|
|
}
|
|
if (!aObjectId.length || (false === worksheet.collaborativeEditing.isCoAuthoringExcellEnable())) {
|
|
if ($.isFunction(callback)) {
|
|
callbackEx(true);
|
|
}
|
|
return;
|
|
}
|
|
var sheetId = worksheet.model.getId();
|
|
worksheet.collaborativeEditing.onStartCheckLock();
|
|
for (var i = 0; i < aObjectId.length; i++) {
|
|
var lockInfo = worksheet.collaborativeEditing.getLockInfo(c_oAscLockTypeElem.Object, null, sheetId, aObjectId[i]);
|
|
if (false === worksheet.collaborativeEditing.getCollaborativeEditing()) {
|
|
if ($.isFunction(callback)) {
|
|
callbackEx(true);
|
|
}
|
|
callback = undefined;
|
|
}
|
|
if (false !== worksheet.collaborativeEditing.getLockIntersection(lockInfo, c_oAscLockTypes.kLockTypeMine)) {
|
|
continue;
|
|
} else {
|
|
if (false !== worksheet.collaborativeEditing.getLockIntersection(lockInfo, c_oAscLockTypes.kLockTypeOther)) {
|
|
if ($.isFunction(callback)) {
|
|
callbackEx(false);
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
worksheet.collaborativeEditing.addCheckLock(lockInfo);
|
|
}
|
|
worksheet.collaborativeEditing.onEndCheckLock(callbackEx);
|
|
};
|
|
}
|
|
function ClickCounter() {
|
|
var _this = this;
|
|
_this.x = 0;
|
|
_this.y = 0;
|
|
_this.button = 0;
|
|
_this.time = 0;
|
|
_this.clickCount = 0;
|
|
_this.log = false;
|
|
_this.mouseDownEvent = function (x, y, button) {
|
|
var currTime = getCurrentTime();
|
|
if ((_this.button === button) && (_this.x === x) && (_this.y === y) && (currTime - _this.time < 500)) {
|
|
_this.clickCount = _this.clickCount + 1;
|
|
_this.clickCount = Math.min(_this.clickCount, 3);
|
|
} else {
|
|
_this.clickCount = 1;
|
|
}
|
|
if (_this.log) {
|
|
console.log("-----");
|
|
console.log("x-> " + _this.x + " : " + x);
|
|
console.log("y-> " + _this.y + " : " + y);
|
|
console.log("Time: " + (currTime - _this.time));
|
|
console.log("Count: " + _this.clickCount);
|
|
console.log("");
|
|
}
|
|
_this.time = currTime;
|
|
};
|
|
_this.mouseMoveEvent = function (x, y) {
|
|
if ((_this.x != x) || (_this.y != y)) {
|
|
_this.x = x;
|
|
_this.y = y;
|
|
_this.clickCount = 0;
|
|
if (_this.log) {
|
|
console.log("Reset counter");
|
|
}
|
|
}
|
|
};
|
|
_this.getClickCount = function () {
|
|
return _this.clickCount;
|
|
};
|
|
}
|
|
function CoordsManager(ws, bLog) {
|
|
var _t = this;
|
|
var log = bLog;
|
|
var worksheet = ws;
|
|
_t.calculateCell = function (x, y) {
|
|
var cell = {
|
|
col: 0,
|
|
colOff: 0,
|
|
colOffPx: 0,
|
|
row: 0,
|
|
rowOff: 0,
|
|
rowOffPx: 0
|
|
};
|
|
var _x = x + worksheet.getCellLeft(0, 0);
|
|
var _y = y + worksheet.getCellTop(0, 0);
|
|
var xPt = worksheet.objectRender.convertMetric(_x, 0, 1);
|
|
var yPt = worksheet.objectRender.convertMetric(_y, 0, 1);
|
|
var offsetX = worksheet.cols[worksheet.visibleRange.c1].left - worksheet.cellsLeft;
|
|
var offsetY = worksheet.rows[worksheet.visibleRange.r1].top - worksheet.cellsTop;
|
|
function isMaxCol() {
|
|
var result = false;
|
|
if (worksheet.cols.length >= gc_nMaxCol) {
|
|
result = true;
|
|
}
|
|
return result;
|
|
}
|
|
function isMaxRow() {
|
|
var result = false;
|
|
if (worksheet.rows.length >= gc_nMaxRow) {
|
|
result = true;
|
|
}
|
|
return result;
|
|
}
|
|
var delta = 0;
|
|
var col = worksheet._findColUnderCursor(xPt - offsetX, true);
|
|
while (col == null) {
|
|
if (isMaxCol()) {
|
|
col = worksheet._findColUnderCursor(worksheet.cols[gc_nMaxCol - 1].left - 1, true);
|
|
break;
|
|
}
|
|
worksheet.expandColsOnScroll(true);
|
|
worksheet._trigger("reinitializeScrollX");
|
|
col = worksheet._findColUnderCursor(xPt - offsetX + delta, true);
|
|
if (xPt - offsetX < 0) {
|
|
delta++;
|
|
}
|
|
}
|
|
cell.col = col.col;
|
|
cell.colOffPx = Math.max(0, _x - worksheet.getCellLeft(cell.col, 0));
|
|
cell.colOff = worksheet.objectRender.convertMetric(cell.colOffPx, 0, 3);
|
|
delta = 0;
|
|
var row = worksheet._findRowUnderCursor(yPt - offsetY, true);
|
|
while (row == null) {
|
|
if (isMaxRow()) {
|
|
row = worksheet._findRowUnderCursor(worksheet.rows[gc_nMaxRow - 1].top - 1, true);
|
|
break;
|
|
}
|
|
worksheet.expandRowsOnScroll(true);
|
|
worksheet._trigger("reinitializeScrollY");
|
|
row = worksheet._findRowUnderCursor(yPt - offsetY + delta, true);
|
|
if (yPt - offsetY < 0) {
|
|
delta++;
|
|
}
|
|
}
|
|
cell.row = row.row;
|
|
cell.rowOffPx = Math.max(0, _y - worksheet.getCellTop(cell.row, 0));
|
|
cell.rowOff = worksheet.objectRender.convertMetric(cell.rowOffPx, 0, 3);
|
|
return cell;
|
|
};
|
|
_t.calculateCoords = function (cell) {
|
|
var coords = {
|
|
x: 0,
|
|
y: 0
|
|
};
|
|
if (cell) {
|
|
coords.y = worksheet.getCellTop(cell.row, 0) + worksheet.objectRender.convertMetric(cell.rowOff, 3, 0) - worksheet.getCellTop(0, 0);
|
|
coords.x = worksheet.getCellLeft(cell.col, 0) + worksheet.objectRender.convertMetric(cell.colOff, 3, 0) - worksheet.getCellLeft(0, 0);
|
|
}
|
|
return coords;
|
|
};
|
|
}
|
|
function writeToBinaryDocContent(docContent, w) {
|
|
w.WriteBool(docContent.TurnOffInnerWrap);
|
|
w.WriteBool(docContent.Split);
|
|
var Count = docContent.Content.length;
|
|
w.WriteLong(Count);
|
|
for (var Index = 0; Index < Count; Index++) {
|
|
writeToBinaryParagraph(docContent.Content[Index], w);
|
|
}
|
|
}
|
|
function readFromBinaryDocContent(docContent, r) {
|
|
docContent.TurnOffInnerWrap = r.GetBool();
|
|
docContent.Split = r.GetBool();
|
|
var Count = r.GetLong();
|
|
docContent.Content = new Array();
|
|
for (var Index = 0; Index < Count; Index++) {
|
|
var p = new Paragraph(docContent.DrawingDocument, docContent, 0, 0, 0, 0, 0);
|
|
readFromBinaryParagraph(p, r);
|
|
docContent.Content.push(p);
|
|
}
|
|
}
|
|
function writeToBinaryParagraph(p, w) {
|
|
p.Pr.Write_ToBinary(w);
|
|
var StartPos = w.GetCurPosition();
|
|
w.Skip(4);
|
|
var Len = p.Content.length;
|
|
var Count = 0;
|
|
for (var Index = 0; Index < Len; Index++) {
|
|
var Item = p.Content[Index];
|
|
if (true === Item.Is_RealContent()) {
|
|
writeToBinaryParagraphContent(Item, w);
|
|
w.WriteLong(Index);
|
|
Count++;
|
|
}
|
|
}
|
|
var EndPos = w.GetCurPosition();
|
|
w.Seek(StartPos);
|
|
w.WriteLong(Count);
|
|
w.Seek(EndPos);
|
|
}
|
|
function readFromBinaryParagraph(p, r) {
|
|
p.Pr = new CParaPr();
|
|
p.Pr.Read_FromBinary(r);
|
|
p.TextPr = new ParaTextPr();
|
|
p.Content = new Array();
|
|
var Count = r.GetLong();
|
|
for (var Index = 0; Index < Count; Index++) {
|
|
var Element = readFromBinaryParagraphContent(r);
|
|
var index_test = r.GetLong();
|
|
if (null != Element) {
|
|
p.Content.push(Element);
|
|
}
|
|
}
|
|
}
|
|
function writeToBinaryParagraphContent(Element, w) {
|
|
var ElementType = Element.Type;
|
|
switch (ElementType) {
|
|
case para_TextPr:
|
|
w.WriteLong(ElementType);
|
|
Element.Value.Write_ToBinary(w);
|
|
break;
|
|
case para_HyperlinkStart:
|
|
w.WriteLong(Element.Type);
|
|
w.WriteString2(Element.Id);
|
|
w.WriteString2(Element.Value);
|
|
w.WriteString2(Element.ToolTip);
|
|
break;
|
|
case para_Text:
|
|
case para_Space:
|
|
case para_End:
|
|
case para_NewLine:
|
|
case para_NewLineRendered:
|
|
case para_InlineBreak:
|
|
case para_PageBreakRendered:
|
|
case para_Empty:
|
|
case para_Numbering:
|
|
case para_Tab:
|
|
case para_PageNum:
|
|
case para_FlowObjectAnchor:
|
|
case para_HyperlinkEnd:
|
|
case para_CommentStart:
|
|
case para_CommentEnd:
|
|
case para_PresentationNumbering:
|
|
Element.Write_ToBinary(w);
|
|
break;
|
|
}
|
|
return Element;
|
|
}
|
|
function readFromBinaryParagraphContent(r) {
|
|
var ElementType = r.GetLong();
|
|
var Element = null;
|
|
switch (ElementType) {
|
|
case para_TextPr:
|
|
Element = new ParaTextPr();
|
|
Element.Value = new CTextPr();
|
|
Element.Value.Read_FromBinary(r);
|
|
return Element;
|
|
case para_HyperlinkStart:
|
|
Element = new ParaHyperlinkStart();
|
|
Element.Id = r.GetString2();
|
|
Element.Value = r.GetString2();
|
|
Element.ToolTip = r.GetString2();
|
|
return Element;
|
|
case para_Text:
|
|
Element = new ParaText();
|
|
break;
|
|
case para_Space:
|
|
Element = new ParaSpace();
|
|
break;
|
|
case para_End:
|
|
Element = new ParaEnd();
|
|
break;
|
|
case para_NewLine:
|
|
Element = new ParaNewLine();
|
|
break;
|
|
case para_NewLineRendered:
|
|
Element = new ParaNewLineRendered();
|
|
break;
|
|
case para_InlineBreak:
|
|
Element = new ParaInlineBreak();
|
|
break;
|
|
case para_PageBreakRendered:
|
|
Element = new ParaPageBreakRenderer();
|
|
break;
|
|
case para_Empty:
|
|
Element = new ParaEmpty();
|
|
break;
|
|
case para_Numbering:
|
|
Element = new ParaNumbering();
|
|
break;
|
|
case para_Tab:
|
|
Element = new ParaTab();
|
|
break;
|
|
case para_PageNum:
|
|
Element = new ParaPageNum();
|
|
break;
|
|
case para_FlowObjectAnchor:
|
|
Element = new ParaFlowObjectAnchor();
|
|
break;
|
|
case para_HyperlinkEnd:
|
|
Element = new ParaHyperlinkEnd();
|
|
break;
|
|
case para_CommentStart:
|
|
Element = new ParaCommentStart();
|
|
break;
|
|
case para_CommentEnd:
|
|
Element = new ParaCommentEnd();
|
|
break;
|
|
case para_PresentationNumbering:
|
|
Element = new ParaPresentationNumbering();
|
|
break;
|
|
}
|
|
if (null != Element) {
|
|
Element.Read_FromBinary(r);
|
|
}
|
|
return Element;
|
|
}
|
|
var CARD_DIRECTION_N = 0;
|
|
var CARD_DIRECTION_NE = 1;
|
|
var CARD_DIRECTION_E = 2;
|
|
var CARD_DIRECTION_SE = 3;
|
|
var CARD_DIRECTION_S = 4;
|
|
var CARD_DIRECTION_SW = 5;
|
|
var CARD_DIRECTION_W = 6;
|
|
var CARD_DIRECTION_NW = 7;
|
|
var CURSOR_TYPES_BY_CARD_DIRECTION = [];
|
|
CURSOR_TYPES_BY_CARD_DIRECTION[CARD_DIRECTION_N] = "n-resize";
|
|
CURSOR_TYPES_BY_CARD_DIRECTION[CARD_DIRECTION_NE] = "ne-resize";
|
|
CURSOR_TYPES_BY_CARD_DIRECTION[CARD_DIRECTION_E] = "e-resize";
|
|
CURSOR_TYPES_BY_CARD_DIRECTION[CARD_DIRECTION_SE] = "se-resize";
|
|
CURSOR_TYPES_BY_CARD_DIRECTION[CARD_DIRECTION_S] = "s-resize";
|
|
CURSOR_TYPES_BY_CARD_DIRECTION[CARD_DIRECTION_SW] = "sw-resize";
|
|
CURSOR_TYPES_BY_CARD_DIRECTION[CARD_DIRECTION_W] = "w-resize";
|
|
CURSOR_TYPES_BY_CARD_DIRECTION[CARD_DIRECTION_NW] = "nw-resize";
|
|
function CreateParagraphContent(s) {
|
|
if (s != " ") {
|
|
return new ParaText(s);
|
|
}
|
|
return new ParaSpace(1);
|
|
}
|
|
function getTextString(docContent) {
|
|
var ret = "";
|
|
for (var i = 0; i < docContent.Content.length; ++i) {
|
|
for (var j = 0; j < docContent.Content[i].Content.length; ++j) {
|
|
if (docContent.Content[i].Content[j].Type === para_Text) {
|
|
ret += docContent.Content[i].Content[j].Value;
|
|
}
|
|
if (docContent.Content[i].Content[j].Type === para_Space) {
|
|
ret += " ";
|
|
}
|
|
}
|
|
}
|
|
return ret;
|
|
}
|
|
function checkNumberInt(n) {
|
|
if ((/[^[0-9]/.test(n + ""))) {
|
|
return NaN;
|
|
}
|
|
return parseInt(n);
|
|
} |