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() { ...@@ -2443,11 +2443,11 @@ function DrawingObjects() {
// Свойства // Свойства
_t.isImage = function() { _t.isImage = function() {
return !_t.isChart(); return _t.graphicObject ? _t.graphicObject.isImage() : false;
} }
_t.isChart = function() { _t.isChart = function() {
return _t.chart.type ? true : false; return _t.graphicObject ? _t.graphicObject.isChart() : false;
} }
_t.isGraphicObject = function() { _t.isGraphicObject = function() {
...@@ -2933,6 +2933,11 @@ function DrawingObjects() { ...@@ -2933,6 +2933,11 @@ function DrawingObjects() {
copyObject.chart = new asc_CChart(obj.chart); copyObject.chart = new asc_CChart(obj.chart);
copyObject.graphicObject = obj.graphicObject; copyObject.graphicObject = obj.graphicObject;
if(isRealObject(copyObject.graphicObject) && typeof copyObject.graphicObject.setDrawingObjects === "function")
{
copyObject.graphicObject.setDrawingObjects(_this);
}
copyObject.chart.worksheet = obj.chart.worksheet; copyObject.chart.worksheet = obj.chart.worksheet;
return copyObject; return copyObject;
...@@ -2982,11 +2987,26 @@ function DrawingObjects() { ...@@ -2982,11 +2987,26 @@ function DrawingObjects() {
aObjects.push( clone ); aObjects.push( clone );
} }
if ( currentSheet.model.Drawings[i].isImage() ) { if ( currentSheet.model.Drawings[i].imageUrl) {
aObjectsSync[aObjectsSync.length] = clone; aObjectsSync[aObjectsSync.length] = clone;
aImagesSync[aImagesSync.length] = clone.imageUrl; 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() { ...@@ -3031,6 +3051,11 @@ function DrawingObjects() {
} }
} }
_this.getChartRender = function()
{
return chartRender;
};
_this.getOverlay = function() { _this.getOverlay = function() {
return trackOverlay; return trackOverlay;
}; };
...@@ -3796,7 +3821,10 @@ function DrawingObjects() { ...@@ -3796,7 +3821,10 @@ function DrawingObjects() {
if (isViewerMode()) if (isViewerMode())
return; return;
var wordChart = null; var wordChart = null;
var bWordChart = chart["bChartEditor"]; var bWordChart = chart["bChartEditor"];
if ( bWordChart ) { if ( bWordChart ) {
...@@ -3863,7 +3891,8 @@ function DrawingObjects() { ...@@ -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); var chartBase64 = chartRender.insertChart(chart, null, bWordChart ? wordChart.width : c_oAscChartDefines.defaultChartWidth, bWordChart ? wordChart.height : c_oAscChartDefines.defaultChartHeight, isNewChart);
if ( !chartBase64 ) if ( !chartBase64 )
return false; return false;
return this.controller.addChartDrawingObject(chart, bWithoutHistory, options);
imageLoader.addImage(chartBase64); imageLoader.addImage(chartBase64);
// draw // draw
...@@ -3928,6 +3957,8 @@ function DrawingObjects() { ...@@ -3928,6 +3957,8 @@ function DrawingObjects() {
_this.editChartDrawingObject = function(chart) { _this.editChartDrawingObject = function(chart) {
return this.controller.editChartDrawingObjects(chart);
var index = _this.getSelectedDrawingObjectIndex(); var index = _this.getSelectedDrawingObjectIndex();
// Check iframe chart editor // Check iframe chart editor
...@@ -4756,6 +4787,9 @@ function DrawingObjects() { ...@@ -4756,6 +4787,9 @@ function DrawingObjects() {
} }
_this.getAscChartObject = function() { // Return new or existing chart. For image return null _this.getAscChartObject = function() { // Return new or existing chart. For image return null
return this.controller.getAscChartObject();
var index = _this.getSelectedDrawingObjectIndex(); var index = _this.getSelectedDrawingObjectIndex();
if (index >= 0) { if (index >= 0) {
if (aObjects[index].isChart()) if (aObjects[index].isChart())
......
...@@ -526,90 +526,145 @@ function calcAllMargin(isFormatCell,isformatCellScOy,minX,maxX,minY,maxY, chart) ...@@ -526,90 +526,145 @@ function calcAllMargin(isFormatCell,isformatCellScOy,minX,maxX,minY,maxY, chart)
left += 12;//width '%' left += 12;//width '%'
} }
} }
if(bar.type == 'pie') if(chart.margins)
{
var left = 0;
var bottom = 0;
var right = 0;
var top = 0;
}
else
{ {
if (bar._yAxisTitle._align == 'rev') if(bar.type == 'pie')
{ {
var font = getFontProperties("yTitle"); var left = 0;
var axisTitleProp = getMaxPropertiesText(context,font, bar._yAxisTitle._text); var bottom = 0;
var heigthText = (context.getHeightText()/0.75); var right = 0;
//прибавляем высоту текста названия + стандартный маргин var top = 0;
left += heigthText + 12;
} }
else if (bar._yAxisTitle._align == 'hor') else
left += 95; {
else if (bar._yAxisTitle._align == 'ver') //+ширина названия OY
left += 0; left += chart.margins.yAxisTitle.w;
var right = 0; var right = 0;
var top = 0; var top = 0;
var bottom = 0; var bottom = 0;
if (bar._xAxisTitle._text != '')
//+выоста названия 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 kF = 1;
var axisTitleProp = getMaxPropertiesText(context,font, bar._xAxisTitle._text); if(bar.type == 'pie')
var heigthText = (context.getHeightText()/0.75); kF = 2;
//прибавляем высоту текста названия + стандартный маргин if(positionKey == 'top')
bottom += heigthText + 14; 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) 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;
} }
else
//+высота названия диаграммы
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') if(bar.type == 'pie')
kF = 2; {
if(bar._otherProps._key_halign == 'top') var left = 0;
top += (heigthTextKey + 7)*kF; var bottom = 0;
else var right = 0;
bottom += (heigthTextKey + 7)*kF; var top = 0;
} }
//+ ширина легенды
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 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) if(bottom == 0)
bottom = standartMargin; bottom = standartMargin;
var standartMarginTop = 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; standartMarginTop = 0;
bar._chartGutter._left = (left)*scale + standartMargin; bar._chartGutter._left = (left)*scale + standartMargin;
bar._chartGutter._right = (standartMargin + right)*scale; bar._chartGutter._right = (standartMargin + right)*scale;
...@@ -1543,7 +1598,7 @@ function drawChart(chart, arrValues, width, height) { ...@@ -1543,7 +1598,7 @@ function drawChart(chart, arrValues, width, height) {
if(chart.skipSeries) if(chart.skipSeries)
{ {
var skipSeries = 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._key.splice(bar._otherProps._key.length - 1, 1);
bar._otherProps._colors.splice(bar._otherProps._colors.length - 1, 1); bar._otherProps._colors.splice(bar._otherProps._colors.length - 1, 1);
...@@ -2361,7 +2416,7 @@ function getMaxPropertiesText(context, font, text) ...@@ -2361,7 +2416,7 @@ function getMaxPropertiesText(context, font, text)
{ {
context.setFont(font); context.setFont(font);
var result = 0; var result = 0;
if(typeof text == "object") if(typeof text == "object" && text.length != 0)
{ {
// в данном случае ищем максимальную ширину текста // в данном случае ищем максимальную ширину текста
var maxLength = 0; var maxLength = 0;
......
...@@ -5729,6 +5729,7 @@ function BinaryPPTYLoader() ...@@ -5729,6 +5729,7 @@ function BinaryPPTYLoader()
{ {
History.TurnOff(); History.TurnOff();
} }
if(!txbody.content)
txbody.content = new CDocumentContent(shape, this.presentation.DrawingDocument, 0, 0, 0, 0, 0, 0); txbody.content = new CDocumentContent(shape, this.presentation.DrawingDocument, 0, 0, 0, 0, 0, 0);
if(_c>0) if(_c>0)
{ {
...@@ -5826,7 +5827,7 @@ function BinaryPPTYLoader() ...@@ -5826,7 +5827,7 @@ function BinaryPPTYLoader()
this.ReadParagraph = function(DocumentContent) 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(); 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