Commit 0cfa0cf2 authored by Sergey.Luzyanin's avatar Sergey.Luzyanin Committed by Alexander.Trofimov

git-svn-id:...

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@48322 954022d7-b5bf-4e40-9824-e11837661b57
parent c96e5e81
......@@ -2443,11 +2443,11 @@ function DrawingObjects() {
// Свойства
_t.isImage = function() {
return !_t.isChart();
return _t.graphicObject ? _t.graphicObject.isImage() : false;
}
_t.isChart = function() {
return _t.chart.type ? true : false;
return _t.graphicObject ? _t.graphicObject.isChart() : false;
}
_t.isGraphicObject = function() {
......@@ -2933,6 +2933,11 @@ function DrawingObjects() {
copyObject.chart = new asc_CChart(obj.chart);
copyObject.graphicObject = obj.graphicObject;
if(isRealObject(copyObject.graphicObject) && typeof copyObject.graphicObject.setDrawingObjects === "function")
{
copyObject.graphicObject.setDrawingObjects(_this);
}
copyObject.chart.worksheet = obj.chart.worksheet;
return copyObject;
......@@ -2982,11 +2987,26 @@ function DrawingObjects() {
aObjects.push( clone );
}
if ( currentSheet.model.Drawings[i].isImage() ) {
if ( currentSheet.model.Drawings[i].imageUrl) {
aObjectsSync[aObjectsSync.length] = clone;
aImagesSync[aImagesSync.length] = clone.imageUrl;
}
if (clone.graphicObject instanceof CChartAsGroup) {
_this.calcChartInterval(clone.chart);
clone.worksheet = worksheet;
clone.graphicObject.drawingBase = clone;
clone.graphicObject.drawingObjects = _this;
if(clone.graphicObject.chartTitle)
clone.graphicObject.chartTitle.drawingObjects = _this;
clone.graphicObject.chart.worksheet = worksheet;
clone.graphicObject.init(aImagesSync);
aObjects.push( clone );
}
}
// Загружаем все картинки листа
......@@ -3031,6 +3051,11 @@ function DrawingObjects() {
}
}
_this.getChartRender = function()
{
return chartRender;
};
_this.getOverlay = function() {
return trackOverlay;
};
......@@ -3796,7 +3821,10 @@ function DrawingObjects() {
if (isViewerMode())
return;
var wordChart = null;
var bWordChart = chart["bChartEditor"];
if ( bWordChart ) {
......@@ -3863,7 +3891,8 @@ function DrawingObjects() {
var chartBase64 = chartRender.insertChart(chart, null, bWordChart ? wordChart.width : c_oAscChartDefines.defaultChartWidth, bWordChart ? wordChart.height : c_oAscChartDefines.defaultChartHeight, isNewChart);
if ( !chartBase64 )
return false;
return this.controller.addChartDrawingObject(chart, bWithoutHistory, options);
imageLoader.addImage(chartBase64);
// draw
......@@ -3928,6 +3957,8 @@ function DrawingObjects() {
_this.editChartDrawingObject = function(chart) {
return this.controller.editChartDrawingObjects(chart);
var index = _this.getSelectedDrawingObjectIndex();
// Check iframe chart editor
......@@ -4756,6 +4787,9 @@ function DrawingObjects() {
}
_this.getAscChartObject = function() { // Return new or existing chart. For image return null
return this.controller.getAscChartObject();
var index = _this.getSelectedDrawingObjectIndex();
if (index >= 0) {
if (aObjects[index].isChart())
......
......@@ -526,90 +526,145 @@ function calcAllMargin(isFormatCell,isformatCellScOy,minX,maxX,minY,maxY, chart)
left += 12;//width '%'
}
}
if(bar.type == 'pie')
{
var left = 0;
var bottom = 0;
var right = 0;
var top = 0;
}
else
if(chart.margins)
{
if (bar._yAxisTitle._align == 'rev')
if(bar.type == 'pie')
{
var font = getFontProperties("yTitle");
var axisTitleProp = getMaxPropertiesText(context,font, bar._yAxisTitle._text);
var heigthText = (context.getHeightText()/0.75);
//прибавляем высоту текста названия + стандартный маргин
left += heigthText + 12;
var left = 0;
var bottom = 0;
var right = 0;
var top = 0;
}
else if (bar._yAxisTitle._align == 'hor')
left += 95;
else if (bar._yAxisTitle._align == 'ver')
left += 0;
else
{
//+ширина названия OY
left += chart.margins.yAxisTitle.w;
var right = 0;
var top = 0;
var bottom = 0;
if (bar._xAxisTitle._text != '')
var right = 0;
var top = 0;
var bottom = 0;
//+выоста названия OX
bottom += chart.margins.xAxisTitle.h;
}
//+высота названия диаграммы
top += chart.margins.title.h;
//+ высота легенды
var positionKey = chart.margins.key.position;
if(positionKey == 'top' || positionKey == 'bottom')
{
var font = getFontProperties("xTitle");
var axisTitleProp = getMaxPropertiesText(context,font, bar._xAxisTitle._text);
var heigthText = (context.getHeightText()/0.75);
//прибавляем высоту текста названия + стандартный маргин
bottom += heigthText + 14;
var kF = 1;
if(bar.type == 'pie')
kF = 2;
if(positionKey == 'top')
top += (chart.margins.key.h)*kF;
else
bottom += (chart.margins.key.h)*kF;
}
//+ ширина легенды
if (positionKey == 'left' || positionKey == 'right')
{
//в MSExcel справа от легенды всегда остаётся такой маргин
if(positionKey == 'left')
left += chart.margins.key.w;
else
right += chart.margins.key.w;
}
if ((min >= 0 || bar.type == 'hbar') && bar._otherProps._xlabels)
{
bottom +=20;
bottom +=25;
}
if(bar._xAxisTitle._text == '' && (min >= 0 || bar.type == 'hbar') && bar._otherProps._xlabels)
bottom += 7;
}
//+высота названия диаграммы
if (bar._chartTitle._text != null && bar._chartTitle._text != '')
{
var font = getFontProperties("title");
var axisTitleProp = getMaxPropertiesText(context,font, bar._chartTitle._text);
var heigthText = (context.getHeightText()/0.75);
//прибавляем высоту текста названия + стандартный маргин
top += heigthText + 7;
}
//+ высота легенды
if(bar._otherProps._key_halign == 'top' || bar._otherProps._key_halign == 'bottom')
else
{
var font = getFontProperties("key");
var props = getMaxPropertiesText(context,font,bar._otherProps._key);
var heigthTextKey = (context.getHeightText()/0.75);
var kF = 1;
if(bar.type == 'pie')
kF = 2;
if(bar._otherProps._key_halign == 'top')
top += (heigthTextKey + 7)*kF;
else
bottom += (heigthTextKey + 7)*kF;
}
//+ ширина легенды
if (bar._otherProps._key_halign == 'left' || bar._otherProps._key_halign == 'right')
{
var widthLine = 28;
//находим ширину текста легенды(то есть её максимального элемента), в дальнейшем будем возвращать ширину автофигуры
var font = getFontProperties("key");
var widthText = getMaxPropertiesText(context,font,bar._otherProps._key);
var widthKey = widthText.width/scale + 2 + widthLine;
//в MSExcel справа от легенды всегда остаётся такой маргин
if(bar._otherProps._key_halign == 'left')
left += widthKey + 7;
{
var left = 0;
var bottom = 0;
var right = 0;
var top = 0;
}
else
right += widthKey + 7;
{
if (bar._yAxisTitle._align == 'rev')
{
var font = getFontProperties("yTitle");
var axisTitleProp = getMaxPropertiesText(context,font, bar._yAxisTitle._text);
var heigthText = (context.getHeightText()/0.75);
//прибавляем высоту текста названия + стандартный маргин
left += heigthText + 12;
}
else if (bar._yAxisTitle._align == 'hor')
left += 95;
else if (bar._yAxisTitle._align == 'ver')
left += 0;
var right = 0;
var top = 0;
var bottom = 0;
if (bar._xAxisTitle._text != '')
{
var font = getFontProperties("xTitle");
var axisTitleProp = getMaxPropertiesText(context,font, bar._xAxisTitle._text);
var heigthText = (context.getHeightText()/0.75);
//прибавляем высоту текста названия + стандартный маргин
bottom += heigthText + 14;
}
if ((min >= 0 || bar.type == 'hbar') && bar._otherProps._xlabels)
{
bottom +=20;
}
if(bar._xAxisTitle._text == '' && (min >= 0 || bar.type == 'hbar') && bar._otherProps._xlabels)
bottom += 7;
}
//+высота названия диаграммы
if (bar._chartTitle._text != null && bar._chartTitle._text != '')
{
var font = getFontProperties("title");
var axisTitleProp = getMaxPropertiesText(context,font, bar._chartTitle._text);
var heigthText = (context.getHeightText()/0.75);
//прибавляем высоту текста названия + стандартный маргин
top += heigthText + 7;
}
//+ высота легенды
if(bar._otherProps._key_halign == 'top' || bar._otherProps._key_halign == 'bottom')
{
var font = getFontProperties("key");
var props = getMaxPropertiesText(context,font,bar._otherProps._key);
var heigthTextKey = (context.getHeightText()/0.75);
var kF = 1;
if(bar.type == 'pie')
kF = 2;
if(bar._otherProps._key_halign == 'top')
top += (heigthTextKey + 7)*kF;
else
bottom += (heigthTextKey + 7)*kF;
}
//+ ширина легенды
if (bar._otherProps._key_halign == 'left' || bar._otherProps._key_halign == 'right')
{
var widthLine = 28;
//находим ширину текста легенды(то есть её максимального элемента), в дальнейшем будем возвращать ширину автофигуры
var font = getFontProperties("key");
var widthText = getMaxPropertiesText(context,font,bar._otherProps._key);
var widthKey = widthText.width/scale + 2 + widthLine;
//в MSExcel справа от легенды всегда остаётся такой маргин
if(bar._otherProps._key_halign == 'left')
left += widthKey + 7;
else
right += widthKey + 7;
}
}
if(bottom == 0)
bottom = standartMargin;
var standartMarginTop = standartMargin;
if(bar.type == 'pie' && bar._otherProps._key_halign == 'top')
if(bar.type == 'pie' && (bar._otherProps._key_halign == 'top' || (positionKey && positionKey == 'top')))
standartMarginTop = 0;
bar._chartGutter._left = (left)*scale + standartMargin;
bar._chartGutter._right = (standartMargin + right)*scale;
......@@ -1543,7 +1598,7 @@ function drawChart(chart, arrValues, width, height) {
if(chart.skipSeries)
{
var skipSeries = chart.skipSeries;
if(chart.type == 'Scatter' && chart.series && chart.series[0].xVal.Formula == null)
if(chart.type == 'Scatter' && chart.series && chart.series[0].xVal.Formula == null && chart.series.length != 1)
{
bar._otherProps._key.splice(bar._otherProps._key.length - 1, 1);
bar._otherProps._colors.splice(bar._otherProps._colors.length - 1, 1);
......@@ -2361,7 +2416,7 @@ function getMaxPropertiesText(context, font, text)
{
context.setFont(font);
var result = 0;
if(typeof text == "object")
if(typeof text == "object" && text.length != 0)
{
// в данном случае ищем максимальную ширину текста
var maxLength = 0;
......
......@@ -5729,6 +5729,7 @@ function BinaryPPTYLoader()
{
History.TurnOff();
}
if(!txbody.content)
txbody.content = new CDocumentContent(shape, this.presentation.DrawingDocument, 0, 0, 0, 0, 0, 0);
if(_c>0)
{
......@@ -5826,7 +5827,7 @@ function BinaryPPTYLoader()
this.ReadParagraph = function(DocumentContent)
{
var par = new Paragraph(this.presentation.DrawingDocument, DocumentContent, 0, 0, 0, 0, 0);
var par = new Paragraph(DocumentContent.DrawingDocument, DocumentContent, 0, 0, 0, 0, 0);
var EndPos = par.Internal_GetEndPos();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment