/* * (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 * */ function ChartEditor() { var _iframeName = "chartEditorFrame"; var _chartType = null; var _chartSubType = null; var _chartList = []; var _chartObject = function () { return { wbBin: null, imageBase64: null }; }; var _this = this; _this.api = null; _this.setChartOptions = function (chartType, chartSubType) { _chartType = chartType; _chartSubType = chartSubType; }; _this.getFrame = function (chartIndex) { this._chartIndex = chartIndex; var spreadsheetReady = function (type, id) { if (type === c_oAscAsyncActionType.BlockInteraction) { switch (id) { case c_oAscAsyncAction.Open: var iframe = window.frames[_iframeName]; var inputFrame = iframe.document.getElementById(_this.api.topLineEditorName); inputFrame.focus(); if (_this._chartIndex == undefined) { _this.initChartData(); } else { _this._chartIndex = undefined; } break; } } }; var onloadFrame = function () { var iframe = window.frames[_iframeName]; _this.api = iframe["Asc"].editor; if (_this.api) { _this.api.asc_registerCallback("asc_onEndAction", spreadsheetReady); if (_this._chartIndex != undefined) { _this.api.asc_openChartSpreadsheet(_chartList[_this._chartIndex].wbBin); } else { _this.api.asc_openChartSpreadsheet(); } } }; var iframe = document.createElement("iframe"); iframe.onload = onloadFrame; iframe.setAttribute("id", _iframeName); iframe.setAttribute("name", _iframeName); iframe.setAttribute("src", "http://192.168.3.20/Excel/Spreadsheettestmenu.html?doctype=spreadsheet&charteditor=1"); iframe.setAttribute("width", "100%"); iframe.setAttribute("height", "100%"); return iframe; }; _this.removeFrame = function () { if ( !! window.frames[_iframeName]) { delete window.frames[_iframeName]; } }; _this.initChartData = function () { var worksheet = _this.api.wb.wsViews[_this.api.wb.wsActive]; var chart = _this.api.asc_getChartObject(); chart.bChartEditor = true; chart.worksheet = worksheet; chart.type = _chartType; chart.subType = _chartSubType; chart.title = "Chart"; chart.xAxis.title = "axis Х"; chart.xAxis.show = true; chart.yAxis.title = "axis У"; chart.yAxis.show = true; chart.legend.position = c_oAscChartLegend.right; chart.legend.show = true; chart.range.intervalObject = chart.worksheet.objectRender.formulaToRange("Sheet1!A1:C3"); chart.range.calcInterval(); chart.buildSeries(); var aCells = chart.range.intervalObject.getCells(); for (var i = 0; i < aCells.length; i++) { aCells[i].setValue(i + 1); } worksheet._updateCellsRange(chart.range.intervalObject.getBBox0()); worksheet.objectRender.addChartDrawingObject(chart, true); }; _this.getChartEditorInfo = function () { var info = new _chartObject(); var oBinaryFileWriter = _this.api.asc_getBinaryFileWriter(); info.wbBin = oBinaryFileWriter.Write(); info.imageBase64 = _this.api.asc_getChartEditorImg(); _chartList.push(info); return info; }; _this.getChartCount = function () { return _chartList.length; }; }