2183 lines
110 KiB
JavaScript
2183 lines
110 KiB
JavaScript
/*
|
|
*
|
|
* (c) Copyright Ascensio System SIA 2010-2019
|
|
*
|
|
* 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 20A-12 Ernesta Birznieka-Upisha
|
|
* street, Riga, Latvia, EU, LV-1050.
|
|
*
|
|
* 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
|
|
*
|
|
*/
|
|
/**
|
|
* TableSettingsAdvanced.js
|
|
*
|
|
* Created by Julia Radzhabova on 2/27/14
|
|
* Copyright (c) 2018 Ascensio System SIA. All rights reserved.
|
|
*
|
|
*/
|
|
|
|
define([ 'text!documenteditor/main/app/template/TableSettingsAdvanced.template',
|
|
'common/main/lib/view/AdvancedSettingsWindow',
|
|
'common/main/lib/component/ComboBox',
|
|
'common/main/lib/component/MetricSpinner',
|
|
'common/main/lib/component/CheckBox',
|
|
'common/main/lib/component/RadioBox',
|
|
'common/main/lib/component/ThemeColorPalette',
|
|
'common/main/lib/component/ColorButton',
|
|
'common/main/lib/component/ListView',
|
|
'common/main/lib/component/TableStyler'
|
|
], function (contentTemplate) {
|
|
'use strict';
|
|
|
|
DE.Views.TableSettingsAdvanced = Common.Views.AdvancedSettingsWindow.extend(_.extend({
|
|
options: {
|
|
contentWidth: 340,
|
|
height: 436,
|
|
toggleGroup: 'table-adv-settings-group',
|
|
storageName: 'de-table-settings-adv-category'
|
|
},
|
|
|
|
initialize : function(options) {
|
|
_.extend(this.options, {
|
|
title: this.textTitle,
|
|
items: [
|
|
{panelId: 'id-adv-table-width', panelCaption: this.textTable},
|
|
{panelId: 'id-adv-table-cell-props', panelCaption: this.textCellProps},
|
|
{panelId: 'id-adv-table-borders', panelCaption: this.textBordersBackgroung},
|
|
{panelId: 'id-adv-table-position', panelCaption: this.textTablePosition},
|
|
{panelId: 'id-adv-table-wrap', panelCaption: this.textWrap},
|
|
{panelId: 'id-adv-table-alttext', panelCaption: this.textAlt}
|
|
],
|
|
contentTemplate: _.template(contentTemplate)({
|
|
scope: this
|
|
})
|
|
}, options);
|
|
Common.Views.AdvancedSettingsWindow.prototype.initialize.call(this, this.options);
|
|
|
|
this.spinners = [];
|
|
|
|
this._changedProps = null;
|
|
this._cellBackground = null;
|
|
|
|
this._state = {
|
|
HAlignType: Asc.c_oAscXAlign.Left,
|
|
HAlignFrom: Asc.c_oAscHAnchor.Margin,
|
|
HPositionFrom: Asc.c_oAscHAnchor.Margin,
|
|
VAlignType: Asc.c_oAscYAlign.Top,
|
|
VAlignFrom: Asc.c_oAscVAnchor.Margin,
|
|
VPositionFrom: Asc.c_oAscVAnchor.Margin,
|
|
spnXChanged: false,
|
|
spnYChanged: false,
|
|
fromWrapInline: false,
|
|
verticalPropChanged: false,
|
|
horizontalPropChanged: false,
|
|
alignChanged: false
|
|
};
|
|
|
|
this._allTable = false;
|
|
this.TableMargins = {
|
|
Left : 0.19,
|
|
Right : 0.19,
|
|
Top : 0,
|
|
Bottom : 0
|
|
};
|
|
this.CellMargins = {
|
|
Left : 0.19,
|
|
Right : 0.19,
|
|
Top : null,
|
|
Bottom : null,
|
|
Flag : 0 // 0(checked) - как в таблице, 1(indeterminate) - разные значения, не определено, 2 (unchecked) - собственные
|
|
};
|
|
|
|
this.TableBorders = {};
|
|
this.CellBorders = {};
|
|
this.ChangedTableBorders = undefined; // undefined - не менялись, null - применялись пресеты, отправлять TableBorders, object - менялись отдельные границы, отправлять ChangedTableBorders
|
|
this.ChangedCellBorders = undefined; // undefined - не менялись, null - применялись пресеты, отправлять CellBorders, object - менялись отдельные границы, отправлять ChangedCellBorders
|
|
this.BorderSize = {ptValue: 0, pxValue: 0};
|
|
|
|
this.TableColor = {Value: 1, Color: 'transparent'}; // value=1 - цвет определен - прозрачный или другой
|
|
this.CellColor = {Value: 1, Color: 'transparent'}; // value=1 - цвет определен - прозрачный или другой, value=0 - цвет не определен, рисуем прозрачным
|
|
this.IndeterminateColor = '#C8C8C8';
|
|
this.IndeterminateSize = 4.5;
|
|
|
|
this.tableStylerRows = this.options.tableStylerRows;
|
|
this.tableStylerColumns = this.options.tableStylerColumns;
|
|
this.borderProps = this.options.borderProps;
|
|
this.pageWidth = 210;
|
|
this._originalProps = new Asc.CTableProp(this.options.tableProps);
|
|
},
|
|
|
|
render: function() {
|
|
Common.Views.AdvancedSettingsWindow.prototype.render.call(this);
|
|
|
|
var me = this;
|
|
|
|
this._marginsChange = function(field, newValue, oldValue, eOpts, source, property){
|
|
if (source=='table')
|
|
this.TableMargins[property] = field.getNumberValue();
|
|
else
|
|
this.CellMargins[property] = field.getNumberValue();
|
|
};
|
|
|
|
this.chWidth = new Common.UI.CheckBox({
|
|
el: $('#tableadv-checkbox-width'),
|
|
value: true,
|
|
labelText: ''
|
|
});
|
|
this.chWidth.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
var value = (newValue=='checked');
|
|
this.nfWidth.setDisabled(!value);
|
|
this.cmbUnit.setDisabled(!value);
|
|
if (this._changedProps) {
|
|
if (value && this.nfWidth.getNumberValue()>0)
|
|
this._changedProps.put_Width(this.cmbUnit.getValue() ? -field.getNumberValue() : Common.Utils.Metric.fnRecalcToMM(this.nfWidth.getNumberValue()));
|
|
else
|
|
this._changedProps.put_Width(null);
|
|
}
|
|
}, this));
|
|
|
|
this.nfWidth = new Common.UI.MetricSpinner({
|
|
el: $('#tableadv-number-width'),
|
|
step: .1,
|
|
width: 115,
|
|
defaultUnit : "cm",
|
|
value: '10 cm',
|
|
maxValue: 55.88,
|
|
minValue: 0
|
|
});
|
|
this.nfWidth.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
if (this._changedProps)
|
|
this._changedProps.put_Width(this.cmbUnit.getValue() ? -field.getNumberValue() : Common.Utils.Metric.fnRecalcToMM(field.getNumberValue()));
|
|
}, this));
|
|
|
|
var currmetric = Common.Utils.Metric.getCurrentMetric();
|
|
this.cmbUnit = new Common.UI.ComboBox({
|
|
el : $('#tableadv-cmb-unit'),
|
|
style : 'width: 115px;',
|
|
menuStyle : 'min-width: 115px;',
|
|
editable : false,
|
|
cls : 'input-group-nr',
|
|
data : [
|
|
{ value: 0, displayValue: (currmetric == Common.Utils.Metric.c_MetricUnits.pt) ? this.txtPt : ((currmetric == Common.Utils.Metric.c_MetricUnits.inch) ? this.txtInch : this.txtCm) },
|
|
{ value: 1, displayValue: this.txtPercent }
|
|
]
|
|
});
|
|
this.cmbUnit.on('selected', _.bind(function(combo, record) {
|
|
if (this._changedProps) {
|
|
var maxwidth = Common.Utils.Metric.fnRecalcFromMM(558);
|
|
this.nfWidth.setDefaultUnit(record.value ? '%' : Common.Utils.Metric.getCurrentMetricName());
|
|
this.nfWidth.setMaxValue(record.value ? parseFloat((100 * maxwidth/this.pageWidth).toFixed(2)) : maxwidth);
|
|
this.nfWidth.setStep((record.value || Common.Utils.Metric.getCurrentMetric()==Common.Utils.Metric.c_MetricUnits.pt) ? 1 : 0.1);
|
|
this.nfWidth.setValue((record.value) ? 100*this.nfWidth.getNumberValue()/this.pageWidth : this.pageWidth*this.nfWidth.getNumberValue()/100);
|
|
this._changedProps.put_Width(record.value ? -this.nfWidth.getNumberValue() : Common.Utils.Metric.fnRecalcToMM(this.nfWidth.getNumberValue()));
|
|
}
|
|
}, this));
|
|
|
|
this.chAllowSpacing = new Common.UI.CheckBox({
|
|
el: $('#tableadv-checkbox-spacing'),
|
|
value: true,
|
|
labelText: ''
|
|
});
|
|
this.chAllowSpacing.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
var value = (newValue=='checked');
|
|
if (this._changedProps) {
|
|
this.nfSpacing.setDisabled(!value);
|
|
this.ShowHideSpacing(value);
|
|
|
|
if (this._changedProps) {
|
|
if (value && this.nfSpacing.getNumberValue()>0)
|
|
this._changedProps.put_Spacing(Common.Utils.Metric.fnRecalcToMM(this.nfSpacing.getNumberValue()));
|
|
else
|
|
this._changedProps.put_Spacing(null);
|
|
}
|
|
}
|
|
}, this));
|
|
|
|
this.nfSpacing = new Common.UI.MetricSpinner({
|
|
el: $('#tableadv-number-spacing'),
|
|
step: .1,
|
|
width: 115,
|
|
defaultUnit : "cm",
|
|
value: '0.5 cm',
|
|
maxValue: 2.14,
|
|
minValue: 0
|
|
});
|
|
this.nfSpacing.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
if (this._changedProps)
|
|
this._changedProps.put_Spacing(Common.Utils.Metric.fnRecalcToMM(field.getNumberValue()));
|
|
}, this));
|
|
this.spinners.push(this.nfSpacing);
|
|
|
|
this.chAutofit = new Common.UI.CheckBox({
|
|
el: $('#tableadv-checkbox-autofit'),
|
|
value: true,
|
|
labelText: this.textAutofit
|
|
});
|
|
this.chAutofit.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
if (this._changedProps) {
|
|
this._changedProps.put_TableLayout((field.getValue()=='checked') ? Asc.c_oAscTableLayout.AutoFit : Asc.c_oAscTableLayout. Fixed);
|
|
}
|
|
}, this));
|
|
|
|
// Margins
|
|
this.spnTableMarginTop = new Common.UI.MetricSpinner({
|
|
el: $('#tableadv-number-margin-table-top'),
|
|
step: .1,
|
|
width: 85,
|
|
defaultUnit : "cm",
|
|
value: '0 cm',
|
|
maxValue: 55.87,
|
|
minValue: 0
|
|
});
|
|
this.spnTableMarginTop.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
this._marginsChange( field, newValue, oldValue, eOpts, 'table', 'Top');
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_DefaultMargins()===undefined)
|
|
this._changedProps.put_DefaultMargins(new Asc.asc_CPaddings());
|
|
this._changedProps.get_DefaultMargins().put_Top((this.TableMargins.Top!==null) ? Common.Utils.Metric.fnRecalcToMM(this.TableMargins.Top) : null);
|
|
this.TableMargins.isChanged = true;
|
|
}
|
|
}, this));
|
|
this.spinners.push(this.spnTableMarginTop);
|
|
|
|
this.spnTableMarginBottom = new Common.UI.MetricSpinner({
|
|
el: $('#tableadv-number-margin-table-bottom'),
|
|
step: .1,
|
|
width: 85,
|
|
defaultUnit : "cm",
|
|
value: '0 cm',
|
|
maxValue: 55.87,
|
|
minValue: 0
|
|
});
|
|
this.spnTableMarginBottom.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
this._marginsChange( field, newValue, oldValue, eOpts, 'table', 'Bottom');
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_DefaultMargins()===undefined)
|
|
this._changedProps.put_DefaultMargins(new Asc.asc_CPaddings());
|
|
this._changedProps.get_DefaultMargins().put_Bottom((this.TableMargins.Bottom!==null) ? Common.Utils.Metric.fnRecalcToMM(this.TableMargins.Bottom) : null);
|
|
this.TableMargins.isChanged = true;
|
|
}
|
|
}, this));
|
|
this.spinners.push(this.spnTableMarginBottom);
|
|
|
|
this.spnTableMarginLeft = new Common.UI.MetricSpinner({
|
|
el: $('#tableadv-number-margin-table-left'),
|
|
step: .1,
|
|
width: 85,
|
|
defaultUnit : "cm",
|
|
value: '0.19 cm',
|
|
maxValue: 9.34,
|
|
minValue: 0
|
|
});
|
|
this.spnTableMarginLeft.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
this._marginsChange( field, newValue, oldValue, eOpts, 'table', 'Left');
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_DefaultMargins()===undefined)
|
|
this._changedProps.put_DefaultMargins(new Asc.asc_CPaddings());
|
|
this._changedProps.get_DefaultMargins().put_Left((this.TableMargins.Left!==null) ? Common.Utils.Metric.fnRecalcToMM(this.TableMargins.Left) : null);
|
|
this.TableMargins.isChanged = true;
|
|
}
|
|
}, this));
|
|
this.spinners.push(this.spnTableMarginLeft);
|
|
|
|
this.spnTableMarginRight = new Common.UI.MetricSpinner({
|
|
el: $('#tableadv-number-margin-table-right'),
|
|
step: .1,
|
|
width: 85,
|
|
defaultUnit : "cm",
|
|
value: '0.19 cm',
|
|
maxValue: 9.34,
|
|
minValue: 0
|
|
});
|
|
this.spnTableMarginRight.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
this._marginsChange( field, newValue, oldValue, eOpts, 'table', 'Right');
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_DefaultMargins()===undefined)
|
|
this._changedProps.put_DefaultMargins(new Asc.asc_CPaddings());
|
|
this._changedProps.get_DefaultMargins().put_Right((this.TableMargins.Right!==null) ? Common.Utils.Metric.fnRecalcToMM(this.TableMargins.Right) : null);
|
|
this.TableMargins.isChanged = true;
|
|
}
|
|
}, this));
|
|
this.spinners.push(this.spnTableMarginRight);
|
|
|
|
// Cell Margins
|
|
var setCellFlag = function() {
|
|
if (me.CellMargins.Flag=='indeterminate')
|
|
me._changedProps.get_CellMargins().put_Flag(1);
|
|
else if (me.CellMargins.Flag=='checked')
|
|
me._changedProps.get_CellMargins().put_Flag(0);
|
|
else
|
|
me._changedProps.get_CellMargins().put_Flag(2);
|
|
};
|
|
|
|
this.chCellMargins = new Common.UI.CheckBox({
|
|
el: $('#tableadv-checkbox-margins'),
|
|
value: true,
|
|
labelText: this.textCheckMargins
|
|
});
|
|
this.chCellMargins.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
if ( oldValue=='checked' && this._originalProps && this._originalProps.get_CellMargins().get_Flag()==1 ) { // позволяем выставлять значение indeterminate только если исходные значения не совпадали
|
|
field.setValue('indeterminate', true);
|
|
}
|
|
this.fillMargins.call( this, field.getValue());
|
|
this.CellMargins.Flag = field.getValue();
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_CellMargins()===undefined)
|
|
this._changedProps.put_CellMargins(new Asc.CMargins());
|
|
this._changedProps.get_CellMargins().put_Left( ( this.CellMargins.Left!== null) ? Common.Utils.Metric.fnRecalcToMM(this.CellMargins.Left) : null);
|
|
this._changedProps.get_CellMargins().put_Top((this.CellMargins.Top!==null) ? Common.Utils.Metric.fnRecalcToMM(this.CellMargins.Top) : null);
|
|
this._changedProps.get_CellMargins().put_Bottom((this.CellMargins.Bottom!==null) ? Common.Utils.Metric.fnRecalcToMM(this.CellMargins.Bottom) : null);
|
|
this._changedProps.get_CellMargins().put_Right((this.CellMargins.Right!==null) ? Common.Utils.Metric.fnRecalcToMM(this.CellMargins.Right) : null);
|
|
setCellFlag();
|
|
}
|
|
}, this));
|
|
|
|
this.spnMarginTop = new Common.UI.MetricSpinner({
|
|
el: $('#tableadv-number-margin-top'),
|
|
step: .1,
|
|
width: 85,
|
|
defaultUnit : "cm",
|
|
value: '0 cm',
|
|
maxValue: 55.87,
|
|
minValue: 0
|
|
});
|
|
this.spnMarginTop.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
this._marginsChange( field, newValue, oldValue, eOpts, 'cell', 'Top');
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_CellMargins()===undefined)
|
|
this._changedProps.put_CellMargins(new Asc.CMargins());
|
|
this._changedProps.get_CellMargins().put_Top((this.CellMargins.Top!==null) ? Common.Utils.Metric.fnRecalcToMM(this.CellMargins.Top) : null);
|
|
setCellFlag();
|
|
}
|
|
}, this));
|
|
this.spinners.push(this.spnMarginTop);
|
|
|
|
this.spnMarginBottom = new Common.UI.MetricSpinner({
|
|
el: $('#tableadv-number-margin-bottom'),
|
|
step: .1,
|
|
width: 85,
|
|
defaultUnit : "cm",
|
|
value: '0 cm',
|
|
maxValue: 55.87,
|
|
minValue: 0
|
|
});
|
|
this.spnMarginBottom.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
this._marginsChange( field, newValue, oldValue, eOpts, 'cell', 'Bottom');
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_CellMargins()===undefined)
|
|
this._changedProps.put_CellMargins(new Asc.CMargins());
|
|
this._changedProps.get_CellMargins().put_Bottom((this.CellMargins.Bottom!==null) ? Common.Utils.Metric.fnRecalcToMM(this.CellMargins.Bottom) : null);
|
|
setCellFlag();
|
|
}
|
|
}, this));
|
|
this.spinners.push(this.spnMarginBottom);
|
|
|
|
this.spnMarginLeft = new Common.UI.MetricSpinner({
|
|
el: $('#tableadv-number-margin-left'),
|
|
step: .1,
|
|
width: 85,
|
|
defaultUnit : "cm",
|
|
value: '0.19 cm',
|
|
maxValue: 9.34,
|
|
minValue: 0
|
|
});
|
|
this.spnMarginLeft.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
this._marginsChange( field, newValue, oldValue, eOpts, 'cell', 'Left');
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_CellMargins()===undefined)
|
|
this._changedProps.put_CellMargins(new Asc.CMargins());
|
|
this._changedProps.get_CellMargins().put_Left((this.CellMargins.Left!==null) ? Common.Utils.Metric.fnRecalcToMM(this.CellMargins.Left) : null);
|
|
setCellFlag();
|
|
}
|
|
}, this));
|
|
this.spinners.push(this.spnMarginLeft);
|
|
|
|
this.spnMarginRight = new Common.UI.MetricSpinner({
|
|
el: $('#tableadv-number-margin-right'),
|
|
step: .1,
|
|
width: 85,
|
|
defaultUnit : "cm",
|
|
value: '0.19 cm',
|
|
maxValue: 9.34,
|
|
minValue: 0
|
|
});
|
|
this.spnMarginRight.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
this._marginsChange( field, newValue, oldValue, eOpts, 'cell', 'Right');
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_CellMargins()===undefined)
|
|
this._changedProps.put_CellMargins(new Asc.CMargins());
|
|
this._changedProps.get_CellMargins().put_Right((this.CellMargins.Right!==null) ? Common.Utils.Metric.fnRecalcToMM(this.CellMargins.Right) : null);
|
|
setCellFlag();
|
|
}
|
|
}, this));
|
|
this.spinners.push(this.spnMarginRight);
|
|
|
|
// Cell Size
|
|
this.chPrefWidth = new Common.UI.CheckBox({
|
|
el: $('#tableadv-checkbox-prefwidth'),
|
|
value: false,
|
|
labelText: ''
|
|
});
|
|
this.chPrefWidth.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
var value = (newValue=='checked');
|
|
this.nfPrefWidth.setDisabled(!value);
|
|
this.cmbPrefWidthUnit.setDisabled(!value);
|
|
if (this._changedProps) {
|
|
if (value && this.nfPrefWidth.getNumberValue()>0)
|
|
this._changedProps.put_CellsWidth(this.cmbPrefWidthUnit.getValue() ? -field.getNumberValue() : Common.Utils.Metric.fnRecalcToMM(this.nfPrefWidth.getNumberValue()));
|
|
else
|
|
this._changedProps.put_CellsWidth(null);
|
|
}
|
|
}, this));
|
|
|
|
this.nfPrefWidth = new Common.UI.MetricSpinner({
|
|
el: $('#tableadv-number-prefwidth'),
|
|
step: .1,
|
|
width: 115,
|
|
defaultUnit : "cm",
|
|
value: '10 cm',
|
|
maxValue: 55.88,
|
|
minValue: 0
|
|
});
|
|
this.nfPrefWidth.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
if (this._changedProps)
|
|
this._changedProps.put_CellsWidth(this.cmbPrefWidthUnit.getValue() ? -field.getNumberValue() : Common.Utils.Metric.fnRecalcToMM(field.getNumberValue()));
|
|
}, this));
|
|
|
|
this.cmbPrefWidthUnit = new Common.UI.ComboBox({
|
|
el : $('#tableadv-combo-prefwidth-unit'),
|
|
style : 'width: 115px;',
|
|
menuStyle : 'min-width: 115px;',
|
|
editable : false,
|
|
cls : 'input-group-nr',
|
|
data : [
|
|
{ value: 0, displayValue: (currmetric == Common.Utils.Metric.c_MetricUnits.pt) ? this.txtPt : ((currmetric == Common.Utils.Metric.c_MetricUnits.inch) ? this.txtInch : this.txtCm) },
|
|
{ value: 1, displayValue: this.txtPercent }
|
|
]
|
|
});
|
|
this.cmbPrefWidthUnit.on('selected', _.bind(function(combo, record) {
|
|
if (this._changedProps) {
|
|
var defUnit = (record.value) ? '%' : Common.Utils.Metric.getCurrentMetricName();
|
|
if (this.nfPrefWidth.getUnitValue() !== defUnit) {
|
|
var maxwidth = Common.Utils.Metric.fnRecalcFromMM(558);
|
|
this.nfPrefWidth.setDefaultUnit(defUnit);
|
|
this.nfPrefWidth.setMaxValue(record.value ? parseFloat((100 * maxwidth/this.pageWidth).toFixed(2)) : maxwidth);
|
|
this.nfPrefWidth.setStep((record.value || Common.Utils.Metric.getCurrentMetric()==Common.Utils.Metric.c_MetricUnits.pt) ? 1 : 0.1);
|
|
this.nfPrefWidth.setValue((record.value) ? 100*this.nfPrefWidth.getNumberValue()/this.pageWidth : this.pageWidth*this.nfPrefWidth.getNumberValue()/100);
|
|
this._changedProps.put_CellsWidth(record.value ? -this.nfPrefWidth.getNumberValue() : Common.Utils.Metric.fnRecalcToMM(this.nfPrefWidth.getNumberValue()));
|
|
}
|
|
}
|
|
}, this));
|
|
|
|
this.chWrapText = new Common.UI.CheckBox({
|
|
el: $('#tableadv-checkbox-wrap'),
|
|
value: false,
|
|
labelText: this.textWrapText
|
|
});
|
|
this.chWrapText.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
if (this._changedProps) {
|
|
this._changedProps.put_CellsNoWrap((field.getValue()!='checked'));
|
|
}
|
|
}, this));
|
|
|
|
// Wrapping
|
|
|
|
this.btnWrapNone = new Common.UI.Button({
|
|
cls: 'btn-options huge',
|
|
iconCls: 'icon-right-panel btn-wrap-none',
|
|
posId: c_tableWrap.TABLE_WRAP_NONE,
|
|
hint: this.textWrapNoneTooltip,
|
|
enableToggle: true,
|
|
allowDepress: false,
|
|
toggleGroup : 'advtablewrapGroup'
|
|
});
|
|
this.btnWrapNone.render( $('#tableadv-button-wrap-none')) ;
|
|
this.btnWrapNone.on('click', _.bind(this.onBtnInlineWrapClick, this));
|
|
|
|
this.btnWrapParallel = new Common.UI.Button({
|
|
cls: 'btn-options huge',
|
|
iconCls: 'icon-right-panel btn-wrap-parallel',
|
|
posId: c_tableWrap.TABLE_WRAP_PARALLEL,
|
|
hint: this.textWrapParallelTooltip,
|
|
enableToggle: true,
|
|
allowDepress: false,
|
|
toggleGroup : 'advtablewrapGroup'
|
|
});
|
|
this.btnWrapParallel.render( $('#tableadv-button-wrap-parallel')) ;
|
|
this.btnWrapParallel.on('click', _.bind(this.onBtnFlowWrapClick, this));
|
|
|
|
this.btnAlignLeft = new Common.UI.Button({
|
|
cls: 'btn-options huge',
|
|
iconCls: 'icon-right-panel btn-table-align-left',
|
|
posId: c_tableAlign.TABLE_ALIGN_LEFT,
|
|
hint: this.textLeftTooltip,
|
|
enableToggle: true,
|
|
allowDepress: false,
|
|
toggleGroup : 'advtablealignGroup'
|
|
});
|
|
this.btnAlignLeft.render( $('#tableadv-button-align-left')) ;
|
|
this.btnAlignLeft.on('click', _.bind(function(btn){
|
|
if (this._changedProps && btn.pressed) {
|
|
this._changedProps.put_TableAlignment(btn.options.posId);
|
|
this._changedProps.put_TableIndent(Common.Utils.Metric.fnRecalcToMM(this.spnIndentLeft.getNumberValue()));
|
|
this.spnIndentLeft.setDisabled(!btn.pressed);
|
|
this._state.alignChanged = true;
|
|
}
|
|
}, this));
|
|
|
|
this.btnAlignCenter = new Common.UI.Button({
|
|
cls: 'btn-options huge',
|
|
iconCls: 'icon-right-panel btn-table-align-center',
|
|
posId: c_tableAlign.TABLE_ALIGN_CENTER,
|
|
hint: this.textCenterTooltip,
|
|
enableToggle: true,
|
|
allowDepress: false,
|
|
toggleGroup : 'advtablealignGroup'
|
|
});
|
|
this.btnAlignCenter.render( $('#tableadv-button-align-center')) ;
|
|
this.btnAlignCenter.on('click', _.bind(function(btn){
|
|
if (this._changedProps && btn.pressed) {
|
|
this._changedProps.put_TableAlignment(btn.options.posId);
|
|
this._changedProps.put_TableIndent(0);
|
|
this.spnIndentLeft.setDisabled(btn.pressed);
|
|
this._state.alignChanged = true;
|
|
}
|
|
}, this));
|
|
|
|
this.btnAlignRight = new Common.UI.Button({
|
|
cls: 'btn-options huge',
|
|
iconCls: 'icon-right-panel btn-table-align-right',
|
|
posId: c_tableAlign.TABLE_ALIGN_RIGHT,
|
|
hint: this.textRightTooltip,
|
|
enableToggle: true,
|
|
allowDepress: false,
|
|
toggleGroup : 'advtablealignGroup'
|
|
});
|
|
this.btnAlignRight.render( $('#tableadv-button-align-right')) ;
|
|
this.btnAlignRight.on('click', _.bind(function(btn){
|
|
if (this._changedProps && btn.pressed) {
|
|
this._changedProps.put_TableAlignment(btn.options.posId);
|
|
this._changedProps.put_TableIndent(0);
|
|
this.spnIndentLeft.setDisabled(btn.pressed);
|
|
this._state.alignChanged = true;
|
|
}
|
|
}, this));
|
|
|
|
this.spnIndentLeft = new Common.UI.MetricSpinner({
|
|
el: $('#tableadv-number-indent'),
|
|
step: .1,
|
|
width: 85,
|
|
defaultUnit : "cm",
|
|
defaultValue : 0,
|
|
value: '0 cm',
|
|
maxValue: 38.09,
|
|
minValue: -38.09
|
|
});
|
|
this.spnIndentLeft.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
if (this._changedProps) {
|
|
this._changedProps.put_TableIndent(Common.Utils.Metric.fnRecalcToMM(field.getNumberValue()));
|
|
}
|
|
}, this));
|
|
this.spinners.push(this.spnIndentLeft);
|
|
|
|
this.spnDistanceTop = new Common.UI.MetricSpinner({
|
|
el: $('#tableadv-number-distance-top'),
|
|
step: .1,
|
|
width: 85,
|
|
defaultUnit : "cm",
|
|
value: '1 cm',
|
|
maxValue: 55.87,
|
|
minValue: 0
|
|
});
|
|
this.spnDistanceTop.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_TablePaddings()===undefined)
|
|
this._changedProps.put_TablePaddings(new Asc.asc_CPaddings());
|
|
this._changedProps.get_TablePaddings().put_Top(Common.Utils.Metric.fnRecalcToMM(field.getNumberValue()));
|
|
}
|
|
}, this));
|
|
this.spinners.push(this.spnDistanceTop);
|
|
|
|
this.spnDistanceBottom = new Common.UI.MetricSpinner({
|
|
el: $('#tableadv-number-distance-bottom'),
|
|
step: .1,
|
|
width: 85,
|
|
defaultUnit : "cm",
|
|
value: '1 cm',
|
|
maxValue: 55.87,
|
|
minValue: 0
|
|
});
|
|
this.spnDistanceBottom.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_TablePaddings()===undefined)
|
|
this._changedProps.put_TablePaddings(new Asc.asc_CPaddings());
|
|
this._changedProps.get_TablePaddings().put_Bottom(Common.Utils.Metric.fnRecalcToMM(field.getNumberValue()));
|
|
}
|
|
}, this));
|
|
this.spinners.push(this.spnDistanceBottom);
|
|
|
|
this.spnDistanceLeft = new Common.UI.MetricSpinner({
|
|
el: $('#tableadv-number-distance-left'),
|
|
step: .1,
|
|
width: 85,
|
|
defaultUnit : "cm",
|
|
value: '1 cm',
|
|
maxValue: 9.34,
|
|
minValue: 0
|
|
});
|
|
this.spnDistanceLeft.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_TablePaddings()===undefined)
|
|
this._changedProps.put_TablePaddings(new Asc.asc_CPaddings());
|
|
this._changedProps.get_TablePaddings().put_Left(Common.Utils.Metric.fnRecalcToMM(field.getNumberValue()));
|
|
}
|
|
}, this));
|
|
this.spinners.push(this.spnDistanceLeft);
|
|
|
|
this.spnDistanceRight = new Common.UI.MetricSpinner({
|
|
el: $('#tableadv-number-distance-right'),
|
|
step: .1,
|
|
width: 85,
|
|
defaultUnit : "cm",
|
|
value: '0.19 cm',
|
|
maxValue: 9.34,
|
|
minValue: 0
|
|
});
|
|
this.spnDistanceRight.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_TablePaddings()===undefined)
|
|
this._changedProps.put_TablePaddings(new Asc.asc_CPaddings());
|
|
this._changedProps.get_TablePaddings().put_Right(Common.Utils.Metric.fnRecalcToMM(field.getNumberValue()));
|
|
}
|
|
}, this));
|
|
this.spinners.push(this.spnDistanceRight);
|
|
|
|
// Position
|
|
|
|
this.spnX = new Common.UI.MetricSpinner({
|
|
el: $('#tableadv-spin-x'),
|
|
step: .1,
|
|
width: 115,
|
|
disabled: true,
|
|
defaultUnit : "cm",
|
|
defaultValue : 0,
|
|
value: '1 cm',
|
|
maxValue: 55.87,
|
|
minValue: -55.87
|
|
});
|
|
this.spnX.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_PositionH()===null || this._changedProps.get_PositionH()===undefined)
|
|
this._changedProps.put_PositionH(new Asc.CTablePositionH());
|
|
|
|
this._changedProps.get_PositionH().put_UseAlign(false);
|
|
this._changedProps.get_PositionH().put_RelativeFrom(this._state.HPositionFrom);
|
|
this._changedProps.get_PositionH().put_Value(Common.Utils.Metric.fnRecalcToMM(field.getNumberValue()));
|
|
this._state.spnXChanged = true;
|
|
}
|
|
}, this));
|
|
this.spinners.push(this.spnX);
|
|
|
|
this.spnY = new Common.UI.MetricSpinner({
|
|
el: $('#tableadv-spin-y'),
|
|
step: .1,
|
|
width: 115,
|
|
disabled: true,
|
|
defaultUnit : "cm",
|
|
defaultValue : 0,
|
|
value: '1 cm',
|
|
maxValue: 55.87,
|
|
minValue: -55.87
|
|
});
|
|
this.spnY.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_PositionV()===null || this._changedProps.get_PositionV()===undefined)
|
|
this._changedProps.put_PositionV(new Asc.CTablePositionV());
|
|
|
|
this._changedProps.get_PositionV().put_UseAlign(false);
|
|
this._changedProps.get_PositionV().put_RelativeFrom(this._state.VPositionFrom);
|
|
this._changedProps.get_PositionV().put_Value(Common.Utils.Metric.fnRecalcToMM(field.getNumberValue()));
|
|
this._state.spnYChanged = true;
|
|
}
|
|
}, this));
|
|
this.spinners.push(this.spnY);
|
|
|
|
// Horizontal
|
|
this._arrHAlign = [
|
|
{displayValue: this.textLeft, value: Asc.c_oAscXAlign.Left},
|
|
{displayValue: this.textCenter, value: Asc.c_oAscXAlign.Center},
|
|
{displayValue: this.textRight, value: Asc.c_oAscXAlign.Right}
|
|
];
|
|
|
|
this.cmbHAlign = new Common.UI.ComboBox({
|
|
el: $('#tableadv-combo-halign'),
|
|
cls: 'input-group-nr',
|
|
menuStyle: 'min-width: 115px;',
|
|
editable: false,
|
|
data: this._arrHAlign
|
|
});
|
|
this.cmbHAlign.setValue(this._state.HAlignType);
|
|
this.cmbHAlign.on('selected', _.bind(this.onHAlignSelect, this));
|
|
|
|
this._arrHRelative = [
|
|
{displayValue: this.textMargin, value: Asc.c_oAscHAnchor.Margin},
|
|
{displayValue: this.textPage, value: Asc.c_oAscHAnchor.Page},
|
|
{displayValue: this.textAnchorText, value: Asc.c_oAscHAnchor.Text}
|
|
];
|
|
|
|
this.cmbHRelative = new Common.UI.ComboBox({
|
|
el: $('#tableadv-combo-hrelative'),
|
|
cls: 'input-group-nr',
|
|
menuStyle: 'min-width: 115px;',
|
|
editable: false,
|
|
data: this._arrHRelative
|
|
});
|
|
this.cmbHRelative.setValue(this._state.HAlignFrom);
|
|
this.cmbHRelative.on('selected', _.bind(this.onHRelativeSelect, this));
|
|
|
|
this.cmbHPosition = new Common.UI.ComboBox({
|
|
el: $('#tableadv-combo-hposition'),
|
|
cls: 'input-group-nr',
|
|
menuStyle: 'min-width: 115px;',
|
|
editable: false,
|
|
data: this._arrHRelative
|
|
});
|
|
this.cmbHPosition.setDisabled(true);
|
|
this.cmbHPosition.setValue(this._state.HPositionFrom);
|
|
this.cmbHPosition.on('selected', _.bind(this.onHPositionSelect, this));
|
|
|
|
// Vertical
|
|
this._arrVAlign = [
|
|
{displayValue: this.textTop, value: Asc.c_oAscYAlign.Top},
|
|
{displayValue: this.textCenter, value: Asc.c_oAscYAlign.Center},
|
|
{displayValue: this.textBottom, value: Asc.c_oAscYAlign.Bottom}
|
|
];
|
|
|
|
this.cmbVAlign = new Common.UI.ComboBox({
|
|
el: $('#tableadv-combo-valign'),
|
|
cls: 'input-group-nr',
|
|
menuStyle: 'min-width: 115px;',
|
|
editable: false,
|
|
data: this._arrVAlign
|
|
});
|
|
this.cmbVAlign.setValue(this._state.VAlignType);
|
|
this.cmbVAlign.on('selected', _.bind(this.onVAlignSelect, this));
|
|
|
|
this._arrVRelative = [
|
|
{displayValue: this.textMargin, value: Asc.c_oAscVAnchor.Margin},
|
|
{displayValue: this.textPage, value: Asc.c_oAscVAnchor.Page},
|
|
{displayValue: this.textAnchorText, value: Asc.c_oAscVAnchor.Text}
|
|
];
|
|
|
|
this.cmbVRelative = new Common.UI.ComboBox({
|
|
el: $('#tableadv-combo-vrelative'),
|
|
cls: 'input-group-nr',
|
|
menuStyle: 'min-width: 115px;',
|
|
editable: false,
|
|
data: this._arrVRelative
|
|
});
|
|
this.cmbVRelative.setValue(this._state.VAlignFrom);
|
|
this.cmbVRelative.on('selected', _.bind(this.onVRelativeSelect, this));
|
|
|
|
this.cmbVPosition = new Common.UI.ComboBox({
|
|
el: $('#tableadv-combo-vposition'),
|
|
cls: 'input-group-nr',
|
|
menuStyle: 'min-width: 115px;',
|
|
editable: false,
|
|
data: this._arrVRelative
|
|
});
|
|
this.cmbVPosition.setDisabled(true);
|
|
this.cmbVPosition.setValue(this._state.VPositionFrom);
|
|
this.cmbVPosition.on('selected', _.bind(this.onVPositionSelect, this));
|
|
|
|
this.radioHAlign = new Common.UI.RadioBox({
|
|
el: $('#tableadv-radio-halign'),
|
|
name: 'asc-radio-horizontal',
|
|
checked: true
|
|
});
|
|
this.radioHAlign.on('change', _.bind(this.onRadioHAlignChange, this));
|
|
|
|
this.radioHPosition = new Common.UI.RadioBox({
|
|
el: $('#tableadv-radio-hposition'),
|
|
name: 'asc-radio-horizontal'
|
|
});
|
|
this.radioHPosition.on('change', _.bind(this.onRadioHPositionChange, this));
|
|
|
|
this.radioVAlign = new Common.UI.RadioBox({
|
|
el: $('#tableadv-radio-valign'),
|
|
name: 'asc-radio-vertical',
|
|
checked: true
|
|
});
|
|
this.radioVAlign.on('change', _.bind(this.onRadioVAlignChange, this));
|
|
|
|
this.radioVPosition = new Common.UI.RadioBox({
|
|
el: $('#tableadv-radio-vposition'),
|
|
name: 'asc-radio-vertical'
|
|
});
|
|
this.radioVPosition.on('change', _.bind(this.onRadioVPositionChange, this));
|
|
|
|
this.chMove = new Common.UI.CheckBox({
|
|
el: $('#tableadv-checkbox-move'),
|
|
labelText: this.textMove
|
|
});
|
|
this.chMove.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
if (this._changedProps) {
|
|
var value = this._arrVRelative[(field.getValue()=='checked') ? 2 : 1].value;
|
|
if (this.cmbVRelative.isDisabled()) {
|
|
this.cmbVPosition.setValue(value);
|
|
var rec = this.cmbVPosition.getSelectedRecord();
|
|
if (rec) this.onVPositionSelect(this.cmbVPosition, rec);
|
|
} else {
|
|
this.cmbVRelative.setValue(value);
|
|
var rec = this.cmbVRelative.getSelectedRecord();
|
|
if (rec) this.onVRelativeSelect(this.cmbVRelative, rec);
|
|
}
|
|
}
|
|
}, this));
|
|
|
|
this.chOverlap = new Common.UI.CheckBox({
|
|
el: $('#tableadv-checkbox-overlap'),
|
|
labelText: this.textOverlap
|
|
});
|
|
this.chOverlap.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
|
if (this._changedProps) {
|
|
this._changedProps.put_AllowOverlap(field.getValue()=='checked');
|
|
}
|
|
}, this));
|
|
|
|
// Borders
|
|
|
|
this.cmbBorderSize = new Common.UI.ComboBorderSize({
|
|
el: $('#tableadv-combo-border-size'),
|
|
style: "width: 93px;"
|
|
});
|
|
var rec = this.cmbBorderSize.store.at(1);
|
|
this.BorderSize = {ptValue: rec.get('value'), pxValue: rec.get('pxValue')};
|
|
this.cmbBorderSize.setValue(this.BorderSize.ptValue);
|
|
this.cmbBorderSize.on('selected', _.bind(this.onBorderSizeSelect, this));
|
|
|
|
this.btnBorderColor = new Common.UI.ColorButton({
|
|
style: "width:45px;",
|
|
menu : new Common.UI.Menu({
|
|
additionalAlign: this.menuAddAlign,
|
|
items: [
|
|
{ template: _.template('<div id="tableadv-border-color-menu" style="width: 169px; height: 220px; margin: 10px;"></div>') },
|
|
{ template: _.template('<a id="tableadv-border-color-new" style="padding-left:12px;">' + me.textNewColor + '</a>') }
|
|
]
|
|
})
|
|
});
|
|
|
|
this.btnBorderColor.on('render:after', function(btn) {
|
|
me.colorsBorder = new Common.UI.ThemeColorPalette({
|
|
el: $('#tableadv-border-color-menu')
|
|
});
|
|
me.colorsBorder.on('select', _.bind(me.onColorsBorderSelect, me));
|
|
});
|
|
this.btnBorderColor.render( $('#tableadv-border-color-btn'));
|
|
this.btnBorderColor.setColor('000000');
|
|
$('#tableadv-border-color-new').on('click', _.bind(this.addNewColor, this, this.colorsBorder, this.btnBorderColor));
|
|
|
|
this.btnBackColor = new Common.UI.ColorButton({
|
|
style: "width:45px;",
|
|
menu : new Common.UI.Menu({
|
|
additionalAlign: this.menuAddAlign,
|
|
items: [
|
|
{ template: _.template('<div id="tableadv-back-color-menu" style="width: 169px; height: 220px; margin: 10px;"></div>') },
|
|
{ template: _.template('<a id="tableadv-back-color-new" style="padding-left:12px;">' + me.textNewColor + '</a>') }
|
|
]
|
|
})
|
|
});
|
|
|
|
this.btnBackColor.on('render:after', function(btn) {
|
|
me.colorsBack = new Common.UI.ThemeColorPalette({
|
|
el: $('#tableadv-back-color-menu'),
|
|
transparent: true
|
|
});
|
|
me.colorsBack.on('select', _.bind(me.onColorsBackSelect, me));
|
|
});
|
|
this.btnBackColor.render( $('#tableadv-button-back-color'));
|
|
$('#tableadv-back-color-new').on('click', _.bind(this.addNewColor, this, this.colorsBack, this.btnBackColor));
|
|
|
|
this.btnTableBackColor = new Common.UI.ColorButton({
|
|
style: "width:45px;",
|
|
menu : new Common.UI.Menu({
|
|
additionalAlign: this.menuAddAlign,
|
|
items: [
|
|
{ template: _.template('<div id="tableadv-table-back-color-menu" style="width: 169px; height: 220px; margin: 10px;"></div>') },
|
|
{ template: _.template('<a id="tableadv-table-back-color-new" style="padding-left:12px;">' + me.textNewColor + '</a>') }
|
|
]
|
|
})
|
|
});
|
|
|
|
this.btnTableBackColor.on('render:after', function(btn) {
|
|
me.colorsTableBack = new Common.UI.ThemeColorPalette({
|
|
el: $('#tableadv-table-back-color-menu'),
|
|
transparent: true
|
|
});
|
|
me.colorsTableBack.on('select', _.bind(me.onColorsTableBackSelect, me));
|
|
});
|
|
this.btnTableBackColor.render( $('#tableadv-button-table-back-color'));
|
|
$('#tableadv-table-back-color-new').on('click', _.bind(this.addNewColor, this, this.colorsTableBack, this.btnTableBackColor));
|
|
|
|
this.tableBordersImageSpacing = new Common.UI.TableStyler({
|
|
el: $('#id-detablestyler-spacing'),
|
|
width: 200,
|
|
height: 200,
|
|
rows: this.tableStylerRows,
|
|
columns: this.tableStylerColumns,
|
|
spacingMode: true
|
|
});
|
|
|
|
this.tableBordersImage = new Common.UI.TableStyler({
|
|
el: $('#id-detablestyler'),
|
|
width: 200,
|
|
height: 200,
|
|
rows: this.tableStylerRows,
|
|
columns: this.tableStylerColumns,
|
|
spacingMode: false
|
|
});
|
|
|
|
var _arrBorderPresets = [
|
|
['cm', 'btn-borders-large btn-adv-position-inner', 'tableadv-button-border-inner', this.tipInner],
|
|
['lrtb', 'btn-borders-large btn-adv-position-outer', 'tableadv-button-border-outer', this.tipOuter],
|
|
['lrtbcm', 'btn-borders-large btn-adv-position-all', 'tableadv-button-border-all', this.tipAll],
|
|
['', 'btn-borders-large btn-adv-position-none', 'tableadv-button-border-none', this.tipNone]
|
|
];
|
|
|
|
this._btnsBorderPosition = [];
|
|
_.each(_arrBorderPresets, function(item, index, list){
|
|
var _btn = new Common.UI.Button({
|
|
style: 'margin-left: 5px; margin-bottom: 4px;',
|
|
cls: 'btn-options large',
|
|
iconCls: item[1],
|
|
strId :item[0],
|
|
hint: item[3]
|
|
});
|
|
_btn.render( $('#'+item[2])) ;
|
|
_btn.on('click', _.bind(this._ApplyBorderPreset, this));
|
|
this._btnsBorderPosition.push( _btn );
|
|
}, this);
|
|
|
|
|
|
var _arrTableBorderPresets = [
|
|
['cm', '', 'btn-borders-large btn-adv-position-inner-none', 'tableadv-button-border-inner-none', this.tipCellInner],
|
|
['lrtb', '', 'btn-borders-large btn-adv-position-outer-none', 'tableadv-button-border-outer-none', this.tipCellOuter],
|
|
['lrtbcm', '', 'btn-borders-large btn-adv-position-all-none', 'tableadv-button-border-all-none', this.tipCellAll],
|
|
['', '', 'btn-borders-large btn-adv-position-none-none', 'tableadv-button-border-none-none', this.tipNone],
|
|
['lrtbcm', 'lrtb', 'btn-borders-large btn-adv-position-all-table', 'tableadv-button-border-all-table', this.tipTableOuterCellAll],
|
|
['', 'lrtb', 'btn-borders-large btn-adv-position-none-table', 'tableadv-button-border-none-table', this.tipOuter],
|
|
['cm', 'lrtb', 'btn-borders-large btn-adv-position-inner-table', 'tableadv-button-border-inner-table', this.tipTableOuterCellInner],
|
|
['lrtb', 'lrtb', 'btn-borders-large btn-adv-position-outer-table', 'tableadv-button-border-outer-table', this.tipTableOuterCellOuter]
|
|
];
|
|
|
|
this._btnsTableBorderPosition = [];
|
|
_.each(_arrTableBorderPresets, function(item, index, list){
|
|
var _btn = new Common.UI.Button({
|
|
style: 'margin-left: 5px; margin-bottom: 4px;',
|
|
cls: 'btn-options large',
|
|
iconCls: item[2],
|
|
strCellId :item[0],
|
|
strTableId :item[1],
|
|
hint: item[4]
|
|
});
|
|
_btn.render( $('#'+item[3])) ;
|
|
_btn.on('click', _.bind(this._ApplyBorderPreset, this));
|
|
this._btnsTableBorderPosition.push( _btn );
|
|
}, this);
|
|
|
|
// Alt Text
|
|
|
|
this.inputAltTitle = new Common.UI.InputField({
|
|
el : $('#table-advanced-alt-title'),
|
|
allowBlank : true,
|
|
validateOnBlur: false,
|
|
style : 'width: 100%;'
|
|
}).on('changed:after', function() {
|
|
me.isAltTitleChanged = true;
|
|
});
|
|
|
|
this.textareaAltDescription = this.$window.find('textarea');
|
|
this.textareaAltDescription.keydown(function (event) {
|
|
if (event.keyCode == Common.UI.Keys.RETURN) {
|
|
event.stopPropagation();
|
|
}
|
|
me.isAltDescChanged = true;
|
|
});
|
|
|
|
this.AlignContainer = $('#tableadv-panel-align');
|
|
this.DistanceContainer = $('#tableadv-panel-distance');
|
|
|
|
this.BordersContainer = $('#tableadv-panel-borders');
|
|
this.BordersSpacingContainer = $('#tableadv-panel-borders-spacing');
|
|
this.CellBackContainer = $('#tableadv-panel-cell-back');
|
|
this.TableBackContainer = $('#tableadv-panel-table-back');
|
|
|
|
this.btnsCategory[1].on('click', _.bind(this.onCellCategoryClick, this));
|
|
this.afterRender();
|
|
},
|
|
|
|
afterRender: function() {
|
|
this.updateMetricUnit();
|
|
this.updateThemeColors();
|
|
|
|
this._setDefaults(this._originalProps);
|
|
|
|
if (this.borderProps !== undefined) {
|
|
this.btnBorderColor.setColor(this.borderProps.borderColor);
|
|
var colorstr = (typeof(this.borderProps.borderColor) == 'object') ? this.borderProps.borderColor.color : this.borderProps.borderColor;
|
|
this.tableBordersImageSpacing.setVirtualBorderColor(colorstr);
|
|
this.tableBordersImage.setVirtualBorderColor(colorstr);
|
|
|
|
this.cmbBorderSize.setValue(this.borderProps.borderSize.ptValue);
|
|
var rec = this.cmbBorderSize.getSelectedRecord();
|
|
if (rec)
|
|
this.onBorderSizeSelect(this.cmbBorderSize, rec);
|
|
|
|
this.colorsBorder.select(this.borderProps.borderColor, true);
|
|
}
|
|
|
|
for (var i=0; i<this.tableBordersImageSpacing.rows; i++) {
|
|
for (var j=0; j<this.tableBordersImageSpacing.columns; j++) {
|
|
this.tableBordersImageSpacing.getCell(j, i).on('borderclick', function(ct, border, size, color){
|
|
if (this.ChangedCellBorders===undefined) {
|
|
this.ChangedCellBorders = new Asc.CBorders();
|
|
}
|
|
this._UpdateCellBordersStyle(ct, border, size, color, this.CellBorders, this.ChangedCellBorders);
|
|
}, this);
|
|
}
|
|
}
|
|
this.tableBordersImageSpacing.on('borderclick', function(ct, border, size, color){
|
|
if (this.ChangedTableBorders===undefined) {
|
|
this.ChangedTableBorders = new Asc.CBorders();
|
|
}
|
|
this._UpdateTableBordersStyle(ct, border, size, color, this.TableBorders, this.ChangedTableBorders);
|
|
}, this);
|
|
|
|
for (i=0; i<this.tableBordersImage.rows; i++) {
|
|
for (j=0; j<this.tableBordersImage.columns; j++) {
|
|
this.tableBordersImage.getCell(j, i).on('borderclick', function(ct, border, size, color){
|
|
if (this._allTable) {
|
|
if (this.ChangedTableBorders===undefined) {
|
|
this.ChangedTableBorders = new Asc.CBorders();
|
|
}
|
|
} else {
|
|
if (this.ChangedCellBorders===undefined) {
|
|
this.ChangedCellBorders = new Asc.CBorders();
|
|
}
|
|
}
|
|
this._UpdateCellBordersStyle(ct, border, size, color, (this._allTable) ? this.TableBorders : this.CellBorders, (this._allTable) ? this.ChangedTableBorders : this.ChangedCellBorders);
|
|
}, this);
|
|
}
|
|
}
|
|
this.tableBordersImage.on('borderclick', function(ct, border, size, color){
|
|
if (this._allTable) {
|
|
if (this.ChangedTableBorders===undefined) {
|
|
this.ChangedTableBorders = new Asc.CBorders();
|
|
}
|
|
} else {
|
|
if (this.ChangedCellBorders===undefined) {
|
|
this.ChangedCellBorders = new Asc.CBorders();
|
|
}
|
|
}
|
|
this._UpdateTableBordersStyle(ct, border, size, color, (this._allTable) ? this.TableBorders : this.CellBorders, (this._allTable) ? this.ChangedTableBorders : this.ChangedCellBorders);
|
|
}, this);
|
|
|
|
var cellcolorstr = (typeof(this.CellColor.Color) == 'object') ? this.CellColor.Color.color : this.CellColor.Color,
|
|
tablecolorstr = (typeof(this.TableColor.Color) == 'object') ? this.TableColor.Color.color : this.TableColor.Color;
|
|
this.tableBordersImageSpacing.setTableColor(tablecolorstr);
|
|
this.tableBordersImage.setTableColor(tablecolorstr);
|
|
this.tableBordersImageSpacing.setCellsColor(cellcolorstr);
|
|
this.tableBordersImage.setCellsColor((this._allTable) ? tablecolorstr : cellcolorstr);
|
|
|
|
if (this.storageName) {
|
|
var value = Common.localStorage.getItem(this.storageName);
|
|
this.setActiveCategory((value!==null) ? parseInt(value) : 0);
|
|
}
|
|
},
|
|
|
|
getSettings: function() {
|
|
if (this._cellBackground) {
|
|
if (this._allTable) {
|
|
if ( this._changedProps.get_Spacing() === null || (this._changedProps.get_Spacing() === undefined && this._originalProps.get_Spacing()===null))
|
|
this._changedProps.put_CellsBackground(null);
|
|
else
|
|
this._changedProps.put_CellsBackground(this._cellBackground);
|
|
} else
|
|
this._changedProps.put_CellsBackground(this._cellBackground);
|
|
}
|
|
|
|
if ( this.ChangedTableBorders === null ) {
|
|
this._changedProps.put_TableBorders(this.TableBorders);
|
|
} else if (this.ChangedTableBorders !== undefined) {
|
|
this._changedProps.put_TableBorders(this.ChangedTableBorders);
|
|
}
|
|
|
|
if ( this.ChangedCellBorders === null ) {
|
|
this._changedProps.put_CellBorders(this.CellBorders);
|
|
} else if (this.ChangedCellBorders !== undefined) {
|
|
this._changedProps.put_CellBorders(this.ChangedCellBorders);
|
|
}
|
|
|
|
if (this.isAltTitleChanged)
|
|
this._changedProps.put_TableCaption(this.inputAltTitle.getValue());
|
|
|
|
if (this.isAltDescChanged)
|
|
this._changedProps.put_TableDescription(this.textareaAltDescription.val());
|
|
|
|
return { tableProps: this._changedProps, borderProps: {borderSize: this.BorderSize, borderColor: this.btnBorderColor.color} };
|
|
},
|
|
|
|
_setDefaults: function(props) {
|
|
if (props ){
|
|
this._allTable = !props.get_CellSelect();
|
|
this.pageWidth = Common.Utils.Metric.fnRecalcFromMM(props.get_PercentFullWidth());
|
|
|
|
var value,
|
|
TableWidth = props.get_Width(),
|
|
currmetric = Common.Utils.Metric.getCurrentMetric();
|
|
|
|
// main props
|
|
this.cmbUnit.store.at(0).set('displayValue', (currmetric == Common.Utils.Metric.c_MetricUnits.pt) ? this.txtPt : ((currmetric == Common.Utils.Metric.c_MetricUnits.inch) ? this.txtInch : this.txtCm));
|
|
this.cmbUnit.setValue(TableWidth<0 ? 1 : 0);
|
|
this.nfWidth.setDefaultUnit(TableWidth<0 ? '%' : Common.Utils.Metric.getCurrentMetricName());
|
|
if (TableWidth<0) //%
|
|
this.nfWidth.setMaxValue(parseFloat((100 * Common.Utils.Metric.fnRecalcFromMM(558)/this.pageWidth).toFixed(2)));
|
|
this.nfWidth.setStep((TableWidth<0 || Common.Utils.Metric.getCurrentMetric()==Common.Utils.Metric.c_MetricUnits.pt) ? 1 : 0.1);
|
|
if (TableWidth !== null)
|
|
this.nfWidth.setValue(TableWidth>0 ? Common.Utils.Metric.fnRecalcFromMM(TableWidth) : -TableWidth , true);
|
|
|
|
this.chWidth.setValue(TableWidth !== null, true);
|
|
value = (this.chWidth.getValue()!=='checked');
|
|
this.nfWidth.setDisabled(value);
|
|
this.cmbUnit.setDisabled(value);
|
|
|
|
var TableSpacing = props.get_Spacing();
|
|
if (TableSpacing !== null) {
|
|
this.nfSpacing.setValue(Common.Utils.Metric.fnRecalcFromMM(TableSpacing), true);
|
|
}
|
|
|
|
this.chAllowSpacing.setValue(TableSpacing !== null, true);
|
|
this.nfSpacing.setDisabled(this.chAllowSpacing.getValue()!=='checked');
|
|
|
|
var autoFit = props.get_TableLayout();
|
|
this.chAutofit.setDisabled(autoFit===undefined);
|
|
this.chAutofit.setValue(autoFit===Asc.c_oAscTableLayout.AutoFit, true);
|
|
|
|
// margins
|
|
var margins = props.get_DefaultMargins();
|
|
if (margins) {
|
|
this.TableMargins = {
|
|
Left : (margins.get_Left() !==null) ? Common.Utils.Metric.fnRecalcFromMM(margins.get_Left()) : null,
|
|
Right : (margins.get_Right() !==null) ? Common.Utils.Metric.fnRecalcFromMM(margins.get_Right()) : null,
|
|
Top : (margins.get_Top() !==null) ? Common.Utils.Metric.fnRecalcFromMM(margins.get_Top()) : null,
|
|
Bottom : (margins.get_Bottom() !==null) ? Common.Utils.Metric.fnRecalcFromMM(margins.get_Bottom()) : null
|
|
};
|
|
}
|
|
|
|
margins = props.get_CellMargins();
|
|
var flag = undefined;
|
|
if (margins) {
|
|
this.CellMargins = {
|
|
Left : (margins.get_Left() !==null) ? Common.Utils.Metric.fnRecalcFromMM(margins.get_Left()) : null,
|
|
Right : (margins.get_Right() !==null) ? Common.Utils.Metric.fnRecalcFromMM(margins.get_Right()) : null,
|
|
Top : (margins.get_Top() !==null) ? Common.Utils.Metric.fnRecalcFromMM(margins.get_Top()) : null,
|
|
Bottom : (margins.get_Bottom() !==null) ? Common.Utils.Metric.fnRecalcFromMM(margins.get_Bottom()) : null
|
|
};
|
|
flag = margins.get_Flag();
|
|
this.CellMargins.Flag = (flag==1) ? 'indeterminate' : ((flag==0) ? 'checked' : 'unchecked');
|
|
this.chCellMargins.setValue( this.CellMargins.Flag, true);
|
|
}
|
|
|
|
if ( flag===0 ) {
|
|
// Если для всех выделенных ячеек пришло одинаковое значение Flag=0 (Use Default Margins), выставим в поля для Cell Margins значения DefaultMargins
|
|
if (this.CellMargins.Left=== null) this.CellMargins.Left = this.TableMargins.Left;
|
|
if (this.CellMargins.Top=== null) this.CellMargins.Top = this.TableMargins.Top;
|
|
if (this.CellMargins.Right=== null) this.CellMargins.Right = this.TableMargins.Right;
|
|
if (this.CellMargins.Bottom=== null) this.CellMargins.Bottom = this.TableMargins.Bottom;
|
|
}
|
|
|
|
this.fillMargins(this.CellMargins.Flag);
|
|
|
|
// Cell Size
|
|
var cellWidth = props.get_CellsWidth();
|
|
|
|
this.cmbPrefWidthUnit.store.at(0).set('displayValue', (currmetric == Common.Utils.Metric.c_MetricUnits.pt) ? this.txtPt : ((currmetric == Common.Utils.Metric.c_MetricUnits.inch) ? this.txtInch : this.txtCm));
|
|
this.cmbPrefWidthUnit.setValue(cellWidth<0 ? 1 : 0);
|
|
this.nfPrefWidth.setDefaultUnit(cellWidth<0 ? '%' : Common.Utils.Metric.getCurrentMetricName());
|
|
if (cellWidth<0) //%
|
|
this.nfPrefWidth.setMaxValue(parseFloat((100 * Common.Utils.Metric.fnRecalcFromMM(558)/this.pageWidth).toFixed(2)));
|
|
this.nfPrefWidth.setStep((cellWidth<0 || Common.Utils.Metric.getCurrentMetric()==Common.Utils.Metric.c_MetricUnits.pt) ? 1 : 0.1);
|
|
if (cellWidth !== null)
|
|
this.nfPrefWidth.setValue(cellWidth>0 ? Common.Utils.Metric.fnRecalcFromMM(cellWidth) : -cellWidth , true);
|
|
|
|
this.chPrefWidth.setValue((props.get_CellsWidthNotEqual()) ? 'indeterminate' : (cellWidth !== null), true);
|
|
value = (this.chPrefWidth.getValue()!=='checked');
|
|
this.nfPrefWidth.setDisabled(value);
|
|
this.cmbPrefWidthUnit.setDisabled(value);
|
|
|
|
var wrapText = !props.get_CellsNoWrap();
|
|
this.chWrapText.setValue(wrapText, true);
|
|
|
|
// wrapping props
|
|
this._TblWrapStyleChanged(props.get_TableWrap());
|
|
this.ShowHideWrap(props.get_TableWrap()===c_tableWrap.TABLE_WRAP_NONE);
|
|
this.btnWrapParallel.setDisabled(!props.get_CanBeFlow());
|
|
// align props
|
|
var tableAlign = props.get_TableAlignment();
|
|
if ( tableAlign !== null ) {
|
|
this._TblAlignChanged(tableAlign);
|
|
this.spnIndentLeft.setValue(tableAlign !== c_tableAlign.TABLE_ALIGN_LEFT ? 0 : Common.Utils.Metric.fnRecalcFromMM(props.get_TableIndent()), true);
|
|
this.spnIndentLeft.setDisabled(tableAlign !== c_tableAlign.TABLE_ALIGN_LEFT);
|
|
}
|
|
this._state.alignChanged = false;
|
|
|
|
// distances & position
|
|
var paddings = props.get_TablePaddings();
|
|
if (paddings) {
|
|
this.spnDistanceTop.setValue(Common.Utils.Metric.fnRecalcFromMM(paddings.get_Top()), true);
|
|
this.spnDistanceLeft.setValue(Common.Utils.Metric.fnRecalcFromMM(paddings.get_Left()), true);
|
|
this.spnDistanceBottom.setValue(Common.Utils.Metric.fnRecalcFromMM(paddings.get_Bottom()), true);
|
|
this.spnDistanceRight.setValue(Common.Utils.Metric.fnRecalcFromMM(paddings.get_Right()), true);
|
|
}
|
|
|
|
var Position = props.get_PositionH();
|
|
if (Position) {
|
|
value = Position.get_RelativeFrom();
|
|
for (var i=0; i<this._arrHRelative.length; i++) {
|
|
if (value == this._arrHRelative[i].value) {
|
|
this.cmbHRelative.setValue(value);
|
|
this.cmbHPosition.setValue(value);
|
|
this._state.HPositionFrom = value;
|
|
this._state.HAlignFrom = value;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (Position.get_UseAlign()) {
|
|
value = Position.get_Align();
|
|
for (var i=0; i<this._arrHAlign.length; i++) {
|
|
if (value == this._arrHAlign[i].value) {
|
|
this.cmbHAlign.setValue(value);
|
|
this._state.HAlignType = value;
|
|
break;
|
|
}
|
|
}
|
|
value = this._originalProps.get_Value_X(this._state.HPositionFrom);
|
|
this.spnX.setValue(Common.Utils.Metric.fnRecalcFromMM(value));
|
|
} else {
|
|
this.radioHPosition.setValue(true);
|
|
value = Position.get_Value();
|
|
this.spnX.setValue(Common.Utils.Metric.fnRecalcFromMM(value));
|
|
}
|
|
} else {
|
|
value = this._originalProps.get_Value_X(this._state.HPositionFrom);
|
|
this.spnX.setValue(Common.Utils.Metric.fnRecalcFromMM(value));
|
|
}
|
|
|
|
Position = props.get_PositionV();
|
|
if (Position) {
|
|
value = Position.get_RelativeFrom();
|
|
for (i=0; i<this._arrVRelative.length; i++) {
|
|
if (value == this._arrVRelative[i].value) {
|
|
this.cmbVRelative.setValue(value);
|
|
this.cmbVPosition.setValue(value);
|
|
this._state.VAlignFrom = value;
|
|
this._state.VPositionFrom = value;
|
|
break;
|
|
}
|
|
}
|
|
if (value==Asc.c_oAscVAnchor.Text)
|
|
this.chMove.setValue(true, true);
|
|
|
|
if (Position.get_UseAlign()) {
|
|
value = Position.get_Align();
|
|
for (i=0; i<this._arrVAlign.length; i++) {
|
|
if (value == this._arrVAlign[i].value) {
|
|
this.cmbVAlign.setValue(value);
|
|
this._state.VAlignType = value;
|
|
break;
|
|
}
|
|
}
|
|
value = props.get_Value_Y(this._state.VPositionFrom);
|
|
this.spnY.setValue(Common.Utils.Metric.fnRecalcFromMM(value));
|
|
} else {
|
|
this.radioVPosition.setValue(true);
|
|
value = Position.get_Value();
|
|
this.spnY.setValue(Common.Utils.Metric.fnRecalcFromMM(value));
|
|
}
|
|
} else {
|
|
value = props.get_Value_Y(this._state.VPositionFrom);
|
|
this.spnY.setValue(Common.Utils.Metric.fnRecalcFromMM(value));
|
|
}
|
|
|
|
this.chOverlap.setValue((props.get_AllowOverlap() !== null ) ? props.get_AllowOverlap() : 'indeterminate', true);
|
|
this._state.verticalPropChanged = false;
|
|
this._state.horizontalPropChanged = false;
|
|
|
|
// borders
|
|
this.TableBorders = new Asc.CBorders(props.get_TableBorders());
|
|
|
|
this.CellBorders = new Asc.CBorders(props.get_CellBorders());
|
|
|
|
this._UpdateBordersNoSpacing_();
|
|
this._UpdateBordersSpacing_();
|
|
|
|
var disable_inner = (this.CellBorders.get_InsideV()=== null && this.CellBorders.get_InsideH()=== null);
|
|
this._btnsBorderPosition[0].setDisabled(disable_inner && !this._allTable);
|
|
this._btnsTableBorderPosition[0].setDisabled(disable_inner && !this._allTable);
|
|
this._btnsTableBorderPosition[6].setDisabled(disable_inner && !this._allTable);
|
|
|
|
// background colors
|
|
var background = props.get_TableBackground();
|
|
if (background && background.get_Value()==0) {
|
|
var color = background.get_Color();
|
|
if (color) {
|
|
if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) {
|
|
this.TableColor = {Value: 1, Color: {color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), effectValue: color.get_value() }};
|
|
} else {
|
|
this.TableColor = {Value: 1, Color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b())};
|
|
}
|
|
} else
|
|
this.TableColor = {Value: 1, Color: 'transparent'};
|
|
} else
|
|
this.TableColor = {Value: 0, Color: 'transparent'};
|
|
|
|
background = props.get_CellsBackground();
|
|
if (background) {
|
|
if (background.get_Value()==0) {
|
|
var color = background.get_Color();
|
|
if (color) {
|
|
if (color.get_type() == Asc.c_oAscColor.COLOR_TYPE_SCHEME) {
|
|
this.CellColor = {Value: 1, Color: {color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()), effectValue: color.get_value() }};
|
|
} else {
|
|
this.CellColor = {Value: 1, Color: Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b())};
|
|
}
|
|
} else
|
|
this.CellColor = {Value: 1, Color: 'transparent'};
|
|
} else
|
|
this.CellColor = {Value: 1, Color: 'transparent'};
|
|
} else
|
|
this.CellColor = {Value: 0, Color: 'transparent'};
|
|
|
|
this.btnBackColor.setColor(this.CellColor.Color);
|
|
if ( typeof(this.CellColor.Color) == 'object' ) {
|
|
var isselected = false;
|
|
for (var i=0; i<10; i++) {
|
|
if ( Common.Utils.ThemeColor.ThemeValues[i] == this.CellColor.Color.effectValue ) {
|
|
this.colorsBack.select(this.CellColor.Color,true);
|
|
isselected = true;
|
|
break;
|
|
}
|
|
}
|
|
if (!isselected) this.colorsBack.clearSelection();
|
|
} else
|
|
this.colorsBack.select(this.CellColor.Color,true);
|
|
|
|
this.btnTableBackColor.setColor(this.TableColor.Color);
|
|
if ( typeof(this.TableColor.Color) == 'object' ) {
|
|
var isselected = false;
|
|
for (var i=0; i<10; i++) {
|
|
if ( Common.Utils.ThemeColor.ThemeValues[i] == this.TableColor.Color.effectValue ) {
|
|
this.colorsTableBack.select(this.TableColor.Color,true);
|
|
isselected = true;
|
|
break;
|
|
}
|
|
}
|
|
if (!isselected) this.colorsTableBack.clearSelection();
|
|
} else
|
|
this.colorsTableBack.select(this.TableColor.Color,true);
|
|
|
|
this.ShowHideSpacing(this.chAllowSpacing.getValue()==='checked');
|
|
|
|
value = props.get_TableCaption();
|
|
this.inputAltTitle.setValue(value ? value : '');
|
|
|
|
value = props.get_TableDescription();
|
|
this.textareaAltDescription.val(value ? value : '');
|
|
}
|
|
this._changedProps = new Asc.CTableProp();
|
|
this._changedProps.put_CellSelect(!this._allTable);
|
|
this._cellBackground = null;
|
|
this.ChangedTableBorders = undefined;
|
|
this.ChangedCellBorders = undefined;
|
|
},
|
|
|
|
fillMargins : function (checkMarginsState) {
|
|
this.spnMarginLeft.setValue((this.CellMargins.Left!== null) ? this.CellMargins.Left : '', true);
|
|
this.spnMarginTop.setValue((this.CellMargins.Top!== null) ? this.CellMargins.Top : '', true);
|
|
this.spnMarginRight.setValue((this.CellMargins.Right!== null) ? this.CellMargins.Right : '', true);
|
|
this.spnMarginBottom.setValue((this.CellMargins.Bottom!== null) ? this.CellMargins.Bottom : '', true);
|
|
var disabled = (checkMarginsState=='checked');
|
|
this.spnMarginTop.setDisabled(disabled);
|
|
this.spnMarginBottom.setDisabled(disabled);
|
|
this.spnMarginLeft.setDisabled(disabled);
|
|
this.spnMarginRight.setDisabled(disabled);
|
|
this.spnTableMarginLeft.setValue((this.TableMargins.Left!== null) ? this.TableMargins.Left : '', true);
|
|
this.spnTableMarginTop.setValue((this.TableMargins.Top!== null) ? this.TableMargins.Top : '', true);
|
|
this.spnTableMarginRight.setValue((this.TableMargins.Right!== null) ? this.TableMargins.Right : '', true);
|
|
this.spnTableMarginBottom.setValue((this.TableMargins.Bottom!== null) ? this.TableMargins.Bottom : '', true);
|
|
},
|
|
|
|
_TblWrapStyleChanged: function(style) {
|
|
if (style==c_tableWrap.TABLE_WRAP_NONE)
|
|
this.btnWrapNone.toggle(true);
|
|
else
|
|
this.btnWrapParallel.toggle(true);
|
|
this._state.fromWrapInline = (style==c_tableWrap.TABLE_WRAP_NONE);
|
|
},
|
|
|
|
_TblAlignChanged: function(style) {
|
|
if (style==c_tableAlign.TABLE_ALIGN_LEFT)
|
|
this.btnAlignLeft.toggle(true, true);
|
|
else if (style==c_tableAlign.TABLE_ALIGN_CENTER)
|
|
this.btnAlignCenter.toggle(true, true);
|
|
else
|
|
this.btnAlignRight.toggle(true, true);
|
|
},
|
|
|
|
onBtnInlineWrapClick: function(btn, e) {
|
|
this.ShowHideWrap(true);
|
|
if (this._changedProps && btn.pressed) {
|
|
if (this._state.alignChanged) {
|
|
if (this._state.HAlignType===Asc.c_oAscXAlign.Left)
|
|
this.btnAlignLeft.toggle(true);
|
|
else if (this._state.HAlignType==Asc.c_oAscXAlign.Center)
|
|
this.btnAlignCenter.toggle(true);
|
|
else if (this._state.HAlignType==Asc.c_oAscXAlign.Right)
|
|
this.btnAlignRight.toggle(true);
|
|
this._state.alignChanged = false;
|
|
}
|
|
|
|
this._changedProps.put_TableWrap(btn.options.posId);
|
|
if (this.btnAlignLeft.pressed) this._changedProps.put_TableAlignment(c_tableAlign.TABLE_ALIGN_LEFT);
|
|
else if (this.btnAlignCenter.pressed) this._changedProps.put_TableAlignment(c_tableAlign.TABLE_ALIGN_CENTER);
|
|
else this._changedProps.put_TableAlignment(c_tableAlign.TABLE_ALIGN_RIGHT);
|
|
this.spnIndentLeft.setDisabled(!this.btnAlignLeft.pressed);
|
|
this._changedProps.put_TableIndent(Common.Utils.Metric.fnRecalcToMM(this.spnIndentLeft.getNumberValue()));
|
|
}
|
|
},
|
|
|
|
onBtnFlowWrapClick: function(btn, e) {
|
|
this.ShowHideWrap(false);
|
|
if (this._changedProps && btn.pressed) {
|
|
this._changedProps.put_TableWrap(btn.options.posId);
|
|
this._changedProps.put_TableAlignment(null);
|
|
this._changedProps.put_TableIndent(null);
|
|
if (this._state.fromWrapInline && !this._state.verticalPropChanged) {
|
|
this.radioVPosition.setValue(true);
|
|
}
|
|
if (this._state.alignChanged) {
|
|
if (this.btnAlignLeft.pressed) this._state.HAlignType = Asc.c_oAscXAlign.Left;
|
|
else if (this.btnAlignCenter.pressed) this._state.HAlignType = Asc.c_oAscXAlign.Center;
|
|
else this._state.HAlignType = Asc.c_oAscXAlign.Right;
|
|
this.cmbHAlign.setValue(this._state.HAlignType);
|
|
this.radioHAlign.setValue(true);
|
|
if (this._changedProps.get_PositionH()===null || this._changedProps.get_PositionH()===undefined)
|
|
this._changedProps.put_PositionH(new Asc.CTablePositionH());
|
|
|
|
this._changedProps.get_PositionH().put_UseAlign(true);
|
|
this._changedProps.get_PositionH().put_Align(this._state.HAlignType);
|
|
this._changedProps.get_PositionH().put_RelativeFrom(this._state.HAlignFrom);
|
|
this._state.alignChanged = false;
|
|
this._state.horizontalPropChanged = true;
|
|
} else if (this._state.fromWrapInline && !this._state.horizontalPropChanged) {
|
|
this.radioHPosition.setValue(true);
|
|
}
|
|
}
|
|
},
|
|
|
|
onHAlignSelect: function(combo, record){
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_PositionH()===null || this._changedProps.get_PositionH()===undefined)
|
|
this._changedProps.put_PositionH(new Asc.CTablePositionH());
|
|
|
|
this._state.HAlignType = record.value;
|
|
this._changedProps.get_PositionH().put_UseAlign(true);
|
|
this._changedProps.get_PositionH().put_RelativeFrom(this._state.HAlignFrom);
|
|
this._changedProps.get_PositionH().put_Align(this._state.HAlignType);
|
|
this._state.alignChanged = true;
|
|
}
|
|
},
|
|
|
|
onHRelativeSelect: function(combo, record){
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_PositionH()===null || this._changedProps.get_PositionH()===undefined)
|
|
this._changedProps.put_PositionH(new Asc.CTablePositionH());
|
|
|
|
this._state.HAlignFrom = record.value;
|
|
this._changedProps.get_PositionH().put_UseAlign(true);
|
|
this._changedProps.get_PositionH().put_RelativeFrom(this._state.HAlignFrom);
|
|
this._changedProps.get_PositionH().put_Align(this._state.HAlignType);
|
|
}
|
|
},
|
|
|
|
onHPositionSelect: function(combo, record){
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_PositionH()===null || this._changedProps.get_PositionH()===undefined)
|
|
this._changedProps.put_PositionH(new Asc.CTablePositionH());
|
|
|
|
this._state.HPositionFrom = record.value;
|
|
this._changedProps.get_PositionH().put_UseAlign(false);
|
|
this._changedProps.get_PositionH().put_RelativeFrom(this._state.HPositionFrom);
|
|
if (!this._state.spnXChanged) {
|
|
var val = this._originalProps.get_Value_X(this._state.HPositionFrom);
|
|
this.spnX.setValue(Common.Utils.Metric.fnRecalcFromMM(val), true);
|
|
}
|
|
this._changedProps.get_PositionH().put_Value(Common.Utils.Metric.fnRecalcToMM(this.spnX.getNumberValue()));
|
|
}
|
|
},
|
|
|
|
onVAlignSelect: function(combo, record){
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_PositionV()===null || this._changedProps.get_PositionV()===undefined)
|
|
this._changedProps.put_PositionV(new Asc.CTablePositionV());
|
|
|
|
this._state.VAlignType = record.value;
|
|
this._changedProps.get_PositionV().put_UseAlign(true);
|
|
this._changedProps.get_PositionV().put_RelativeFrom(this._state.VAlignFrom);
|
|
this._changedProps.get_PositionV().put_Align(this._state.VAlignType);
|
|
}
|
|
},
|
|
|
|
onVRelativeSelect: function(combo, record){
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_PositionV()===null || this._changedProps.get_PositionV()===undefined)
|
|
this._changedProps.put_PositionV(new Asc.CTablePositionV());
|
|
|
|
this._state.VAlignFrom = record.value;
|
|
this._changedProps.get_PositionV().put_UseAlign(true);
|
|
this._changedProps.get_PositionV().put_RelativeFrom(this._state.VAlignFrom);
|
|
this._changedProps.get_PositionV().put_Align(this._state.VAlignType);
|
|
|
|
this.chMove.setValue(this._state.VAlignFrom==Asc.c_oAscVAnchor.Text, true);
|
|
}
|
|
},
|
|
|
|
onVPositionSelect: function(combo, record){
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_PositionV()===null || this._changedProps.get_PositionV()===undefined)
|
|
this._changedProps.put_PositionV(new Asc.CTablePositionV());
|
|
|
|
this._state.VPositionFrom = record.value;
|
|
this._changedProps.get_PositionV().put_UseAlign(false);
|
|
this._changedProps.get_PositionV().put_RelativeFrom(this._state.VPositionFrom);
|
|
if (!this._state.spnYChanged) {
|
|
var val = this._originalProps.get_Value_Y(this._state.VPositionFrom);
|
|
this.spnY.setValue(Common.Utils.Metric.fnRecalcFromMM(val), true);
|
|
}
|
|
this._changedProps.get_PositionV().put_Value(Common.Utils.Metric.fnRecalcToMM(this.spnY.getNumberValue()));
|
|
this.chMove.setValue(this._state.VPositionFrom==Asc.c_oAscVAnchor.Text, true);
|
|
}
|
|
},
|
|
|
|
onRadioHAlignChange: function(field, newValue, eOpts) {
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_PositionH()===null || this._changedProps.get_PositionH()===undefined)
|
|
this._changedProps.put_PositionH(new Asc.CTablePositionH());
|
|
|
|
this._changedProps.get_PositionH().put_UseAlign(newValue);
|
|
if (newValue) {
|
|
this._changedProps.get_PositionH().put_Align(this._state.HAlignType);
|
|
this._changedProps.get_PositionH().put_RelativeFrom(this._state.HAlignFrom);
|
|
}
|
|
}
|
|
if (newValue) {
|
|
this.cmbHAlign.setDisabled(false);
|
|
this.cmbHRelative.setDisabled(false);
|
|
this.spnX.setDisabled(true);
|
|
this.cmbHPosition.setDisabled(true);
|
|
this._state.horizontalPropChanged = true;
|
|
this._state.alignChanged = true;
|
|
}
|
|
},
|
|
|
|
onRadioHPositionChange: function(field, newValue, eOpts) {
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_PositionH()===null || this._changedProps.get_PositionH()===undefined)
|
|
this._changedProps.put_PositionH(new Asc.CTablePositionH());
|
|
|
|
this._changedProps.get_PositionH().put_UseAlign(!newValue);
|
|
if (newValue) {
|
|
if (!this._state.spnXChanged) {
|
|
var val = this._originalProps.get_Value_X(this._state.HPositionFrom);
|
|
this.spnX.setValue(Common.Utils.Metric.fnRecalcFromMM(val));
|
|
}
|
|
this._changedProps.get_PositionH().put_Value(Common.Utils.Metric.fnRecalcToMM(this.spnX.getNumberValue()));
|
|
this._changedProps.get_PositionH().put_RelativeFrom(this._state.HPositionFrom);
|
|
}
|
|
}
|
|
if (newValue) {
|
|
this.cmbHAlign.setDisabled(true);
|
|
this.cmbHRelative.setDisabled(true);
|
|
this.spnX.setDisabled(false);
|
|
this.cmbHPosition.setDisabled(false);
|
|
this._state.alignChanged = false;
|
|
}
|
|
},
|
|
|
|
onRadioVAlignChange: function(field, newValue, eOpts) {
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_PositionV()===null || this._changedProps.get_PositionV()===undefined)
|
|
this._changedProps.put_PositionV(new Asc.CTablePositionV());
|
|
|
|
this._changedProps.get_PositionV().put_UseAlign(newValue);
|
|
if (newValue) {
|
|
this._changedProps.get_PositionV().put_Align(this._state.VAlignType);
|
|
this._changedProps.get_PositionV().put_RelativeFrom(this._state.VAlignFrom);
|
|
this._state.verticalPropChanged = true;
|
|
}
|
|
}
|
|
if (newValue) {
|
|
this.cmbVAlign.setDisabled(false);
|
|
this.cmbVRelative.setDisabled(false);
|
|
this.spnY.setDisabled(true);
|
|
this.cmbVPosition.setDisabled(true);
|
|
this.chMove.setValue(this._state.VAlignFrom==Asc.c_oAscVAnchor.Text, true);
|
|
}
|
|
},
|
|
|
|
onRadioVPositionChange: function(field, newValue, eOpts) {
|
|
if (this._changedProps) {
|
|
if (this._changedProps.get_PositionV()===null || this._changedProps.get_PositionV()===undefined)
|
|
this._changedProps.put_PositionV(new Asc.CTablePositionV());
|
|
|
|
this._changedProps.get_PositionV().put_UseAlign(!newValue);
|
|
if (newValue) {
|
|
if (!this._state.spnYChanged) {
|
|
var val = this._originalProps.get_Value_Y(this._state.VPositionFrom);
|
|
this.spnY.setValue(Common.Utils.Metric.fnRecalcFromMM(val));
|
|
}
|
|
this._changedProps.get_PositionV().put_Value(Common.Utils.Metric.fnRecalcToMM(this.spnY.getNumberValue()));
|
|
this._changedProps.get_PositionV().put_RelativeFrom(this._state.VPositionFrom);
|
|
}
|
|
}
|
|
if (newValue) {
|
|
this.cmbVAlign.setDisabled(true);
|
|
this.cmbVRelative.setDisabled(true);
|
|
this.spnY.setDisabled(false);
|
|
this.cmbVPosition.setDisabled(false);
|
|
this.chMove.setValue(this._state.VPositionFrom==Asc.c_oAscVAnchor.Text, true);
|
|
}
|
|
},
|
|
|
|
onBorderSizeSelect: function(combo, record) {
|
|
this.BorderSize = {ptValue: record.value, pxValue: record.pxValue};
|
|
this.tableBordersImage.setVirtualBorderSize( this.BorderSize.pxValue );
|
|
this.tableBordersImageSpacing.setVirtualBorderSize( this.BorderSize.pxValue );
|
|
},
|
|
|
|
addNewColor: function(picker, btn) {
|
|
picker.addNewColor((typeof(btn.color) == 'object') ? btn.color.color : btn.color);
|
|
},
|
|
|
|
onColorsBorderSelect: function(picker, color) {
|
|
this.btnBorderColor.setColor(color);
|
|
var colorstr = (typeof(color) == 'object') ? color.color : color;
|
|
this.tableBordersImage.setVirtualBorderColor(colorstr);
|
|
this.tableBordersImageSpacing.setVirtualBorderColor(colorstr);
|
|
},
|
|
|
|
onColorsBackSelect: function(picker, color) {
|
|
this.btnBackColor.setColor(color);
|
|
this.CellColor = {Value: 1, Color: color};
|
|
|
|
if (this._cellBackground === null)
|
|
this._cellBackground = new Asc.CBackground();
|
|
|
|
if (this.CellColor.Color=='transparent') {
|
|
this._cellBackground.put_Value(1);
|
|
this._cellBackground.put_Color(new Asc.asc_CColor(0,0,0));
|
|
} else {
|
|
this._cellBackground.put_Value(0);
|
|
this._cellBackground.put_Color(Common.Utils.ThemeColor.getRgbColor(this.CellColor.Color));
|
|
}
|
|
var colorstr = (typeof(color) == 'object') ? color.color : color;
|
|
this.tableBordersImageSpacing.setCellsColor(colorstr);
|
|
if (!this._allTable)
|
|
this.tableBordersImage.setCellsColor(colorstr);
|
|
},
|
|
|
|
onColorsTableBackSelect: function(picker, color) {
|
|
this.btnTableBackColor.setColor(color);
|
|
this.TableColor.Color = color;
|
|
|
|
if (this._changedProps) {
|
|
var background = this._changedProps.get_TableBackground();
|
|
if (background===undefined) {
|
|
background = new Asc.CBackground();
|
|
this._changedProps.put_TableBackground(background);
|
|
}
|
|
if (this.TableColor.Color=='transparent') {
|
|
background.put_Value(1);
|
|
background.put_Color(new Asc.asc_CColor(0, 0,0));
|
|
} else {
|
|
background.put_Value(0);
|
|
background.put_Color(Common.Utils.ThemeColor.getRgbColor(this.TableColor.Color));
|
|
}
|
|
}
|
|
var colorstr = (typeof(color) == 'object') ? color.color : color;
|
|
this.tableBordersImageSpacing.setTableColor(colorstr);
|
|
this.tableBordersImage.setTableColor(colorstr);
|
|
if (this._allTable)
|
|
this.tableBordersImage.setCellsColor(colorstr);
|
|
},
|
|
|
|
_UpdateBordersSpacing_: function (){
|
|
var source = this.TableBorders;
|
|
|
|
var oldSize = this.BorderSize;
|
|
var oldColor = this.btnBorderColor.color;
|
|
|
|
this._UpdateTableBorderSpacing_(source.get_Left(), 'l');
|
|
this._UpdateTableBorderSpacing_(source.get_Top(), 't');
|
|
this._UpdateTableBorderSpacing_(source.get_Right(), 'r');
|
|
this._UpdateTableBorderSpacing_(source.get_Bottom(), 'b');
|
|
|
|
source = this.CellBorders;
|
|
|
|
for (var i=0; i<this.tableBordersImageSpacing.rows; i++) {
|
|
this._UpdateCellBorderSpacing_(source.get_Left(), 'l', this.tableBordersImageSpacing.getCell(0, i));
|
|
}
|
|
|
|
for (i=0; i<this.tableBordersImageSpacing.rows; i++) {
|
|
this._UpdateCellBorderSpacing_(source.get_Right(), 'r', this.tableBordersImageSpacing.getCell(this.tableBordersImageSpacing.columns-1, i));
|
|
}
|
|
|
|
for (i=0; i<this.tableBordersImageSpacing.columns; i++) {
|
|
this._UpdateCellBorderSpacing_(source.get_Top(), 't', this.tableBordersImageSpacing.getCell(i, 0));
|
|
}
|
|
|
|
for (i=0; i<this.tableBordersImageSpacing.columns; i++) {
|
|
this._UpdateCellBorderSpacing_(source.get_Bottom(), 'b', this.tableBordersImageSpacing.getCell(i, this.tableBordersImageSpacing.rows-1));
|
|
}
|
|
if (this._allTable && source.get_InsideV() === null) {
|
|
source.put_InsideV(new Asc.asc_CTextBorder());
|
|
}
|
|
if (source.get_InsideV() !== null) {
|
|
for (i=0; i<this.tableBordersImageSpacing.rows; i++) {
|
|
this._UpdateCellBorderSpacing_(source.get_InsideV(), 'r', this.tableBordersImageSpacing.getCell(0, i));
|
|
this._UpdateCellBorderSpacing_(source.get_InsideV(), 'l', this.tableBordersImageSpacing.getCell(1, i));
|
|
}
|
|
}
|
|
|
|
if (this._allTable && source.get_InsideH() === null) {
|
|
source.put_InsideH(new Asc.asc_CTextBorder());
|
|
}
|
|
if (source.get_InsideH() !== null) {
|
|
for (i=0; i<this.tableBordersImageSpacing.columns; i++) {
|
|
this._UpdateCellBorderSpacing_(source.get_InsideH(), 'b', this.tableBordersImageSpacing.getCell(i, 0));
|
|
this._UpdateCellBorderSpacing_(source.get_InsideH(), 't', this.tableBordersImageSpacing.getCell(i, 1));
|
|
}
|
|
}
|
|
|
|
this.tableBordersImageSpacing.setVirtualBorderSize(oldSize.pxValue);
|
|
this.tableBordersImageSpacing.setVirtualBorderColor((typeof(oldColor) == 'object') ? oldColor.color : oldColor);
|
|
},
|
|
|
|
_UpdateCellBorderSpacing_: function(BorderParam, borderName, cell){
|
|
if (null !== BorderParam && undefined !== BorderParam){
|
|
if (null !== BorderParam.get_Value() && null !== BorderParam.get_Size() && null !== BorderParam.get_Color()){
|
|
if (1 == BorderParam.get_Value()) {
|
|
cell.setBordersSize(borderName, this._BorderPt2Px(BorderParam.get_Size() * 72 / 25.4));
|
|
cell.setBordersColor(borderName, 'rgb(' + BorderParam.get_Color().get_r() + ',' + BorderParam.get_Color().get_g() + ',' + BorderParam.get_Color().get_b() + ')');
|
|
} else
|
|
cell.setBordersSize(borderName, 0);
|
|
} else {
|
|
cell.setBordersSize(borderName, this.IndeterminateSize);
|
|
cell.setBordersColor(borderName, this.IndeterminateColor);
|
|
}
|
|
}
|
|
else {
|
|
cell.setBordersSize(borderName, this.IndeterminateSize);
|
|
cell.setBordersColor(borderName, this.IndeterminateColor);
|
|
}
|
|
},
|
|
|
|
_UpdateTableBorderSpacing_: function(BorderParam, borderName){
|
|
if (null !== BorderParam && undefined !== BorderParam){
|
|
if (null !== BorderParam.get_Value() && null !== BorderParam.get_Size() && null !== BorderParam.get_Color()){
|
|
if (1 == BorderParam.get_Value()) {
|
|
this.tableBordersImageSpacing.setBordersSize(borderName, this._BorderPt2Px(BorderParam.get_Size() * 72 / 25.4));
|
|
this.tableBordersImageSpacing.setBordersColor(borderName, 'rgb(' + BorderParam.get_Color().get_r() + ',' + BorderParam.get_Color().get_g() + ',' + BorderParam.get_Color().get_b() + ')');
|
|
} else
|
|
this.tableBordersImageSpacing.setBordersSize(borderName, 0);
|
|
} else {
|
|
this.tableBordersImageSpacing.setBordersSize(borderName, this.IndeterminateSize);
|
|
this.tableBordersImageSpacing.setBordersColor(borderName, this.IndeterminateColor);
|
|
}
|
|
}
|
|
else {
|
|
this.tableBordersImageSpacing.setBordersSize(borderName, this.IndeterminateSize);
|
|
this.tableBordersImageSpacing.setBordersColor(borderName, this.IndeterminateColor);
|
|
}
|
|
},
|
|
|
|
_UpdateBordersNoSpacing_: function (){
|
|
var source = (this._allTable) ? this.TableBorders : this.CellBorders;
|
|
|
|
var oldSize = this.BorderSize;
|
|
var oldColor = this.btnBorderColor.color;
|
|
|
|
this._UpdateTableBorderNoSpacing_(source.get_Left(), 'l');
|
|
this._UpdateTableBorderNoSpacing_(source.get_Top(), 't');
|
|
this._UpdateTableBorderNoSpacing_(source.get_Right(), 'r');
|
|
this._UpdateTableBorderNoSpacing_(source.get_Bottom(), 'b');
|
|
|
|
if (this._allTable && source.get_InsideV() == null) {
|
|
source.put_InsideV(new Asc.asc_CTextBorder());
|
|
}
|
|
if (source.get_InsideV() !== null) {
|
|
for (var i=0; i<this.tableBordersImage.rows; i++) {
|
|
this._UpdateCellBorderNoSpacing_(source.get_InsideV(), 'r', this.tableBordersImage.getCell(0, i));
|
|
this._UpdateCellBorderNoSpacing_(source.get_InsideV(), 'l', this.tableBordersImage.getCell(1, i));
|
|
}
|
|
}
|
|
|
|
if (this._allTable && source.get_InsideH() == null) {
|
|
source.put_InsideH(new Asc.asc_CTextBorder());
|
|
}
|
|
if (source.get_InsideH() !== null) {
|
|
for (i=0; i<this.tableBordersImage.columns; i++) {
|
|
this._UpdateCellBorderNoSpacing_(source.get_InsideH(), 'b', this.tableBordersImage.getCell(i, 0));
|
|
this._UpdateCellBorderNoSpacing_(source.get_InsideH(), 't', this.tableBordersImage.getCell(i, 1));
|
|
}
|
|
}
|
|
|
|
this.tableBordersImage.setVirtualBorderSize(oldSize.pxValue);
|
|
this.tableBordersImage.setVirtualBorderColor((typeof(oldColor) == 'object') ? oldColor.color : oldColor);
|
|
},
|
|
|
|
_UpdateCellBorderNoSpacing_: function(BorderParam, borderName, cell){
|
|
if (null !== BorderParam && undefined !== BorderParam){
|
|
if (null !== BorderParam.get_Value() && null !== BorderParam.get_Size() && null !== BorderParam.get_Color()){
|
|
if (1 == BorderParam.get_Value()) {
|
|
cell.setBordersSize(borderName, this._BorderPt2Px(BorderParam.get_Size() * 72 / 25.4));
|
|
cell.setBordersColor(borderName, 'rgb(' + BorderParam.get_Color().get_r() + ',' + BorderParam.get_Color().get_g() + ',' + BorderParam.get_Color().get_b() + ')');
|
|
} else
|
|
cell.setBordersSize(borderName, 0);
|
|
} else {
|
|
cell.setBordersSize(borderName, this.IndeterminateSize);
|
|
cell.setBordersColor(borderName, this.IndeterminateColor);
|
|
}
|
|
}
|
|
else {
|
|
cell.setBordersSize(borderName, this.IndeterminateSize);
|
|
cell.setBordersColor(borderName, this.IndeterminateColor);
|
|
}
|
|
},
|
|
|
|
_UpdateTableBorderNoSpacing_: function(BorderParam, borderName){
|
|
if (null !== BorderParam && undefined !== BorderParam){
|
|
if (null !== BorderParam.get_Value() && null !== BorderParam.get_Size() && null !== BorderParam.get_Color() ){
|
|
if (1 == BorderParam.get_Value()) {
|
|
this.tableBordersImage.setBordersSize(borderName, this._BorderPt2Px(BorderParam.get_Size() * 72 / 25.4));
|
|
this.tableBordersImage.setBordersColor(borderName, 'rgb(' + BorderParam.get_Color().get_r() + ',' + BorderParam.get_Color().get_g() + ',' + BorderParam.get_Color().get_b() + ')');
|
|
} else
|
|
this.tableBordersImage.setBordersSize(borderName, 0);
|
|
} else {
|
|
this.tableBordersImage.setBordersSize(borderName, this.IndeterminateSize);
|
|
this.tableBordersImage.setBordersColor(borderName, this.IndeterminateColor);
|
|
}
|
|
}
|
|
else {
|
|
this.tableBordersImage.setBordersSize(borderName, this.IndeterminateSize);
|
|
this.tableBordersImage.setBordersColor(borderName, this.IndeterminateColor);
|
|
}
|
|
},
|
|
|
|
_BorderPt2Px: function(value) {
|
|
if (value==0) return 0;
|
|
if (value <0.6) return 0.5;
|
|
if (value <=1) return 1;
|
|
if (value <=1.5) return 2;
|
|
if (value <=2.25) return 3;
|
|
if (value <=3) return 4;
|
|
if (value <=4.5) return 5;
|
|
return 6;
|
|
},
|
|
|
|
_ApplyBorderPreset: function(btn) {
|
|
var cellborder = (btn.options.strId !== undefined) ? btn.options.strId : btn.options.strCellId;
|
|
var tableborder = btn.options.strTableId;
|
|
|
|
var updateBorders;
|
|
if (this._allTable && tableborder===undefined) {
|
|
updateBorders = this.TableBorders;
|
|
this.ChangedTableBorders = null;
|
|
} else {
|
|
updateBorders = this.CellBorders;
|
|
this.ChangedCellBorders = null;
|
|
}
|
|
|
|
this._UpdateBorderStyle(updateBorders.get_Left(), (cellborder.indexOf('l') > -1));
|
|
this._UpdateBorderStyle(updateBorders.get_Top(), (cellborder.indexOf('t') > -1));
|
|
this._UpdateBorderStyle(updateBorders.get_Right(), (cellborder.indexOf('r') > -1));
|
|
this._UpdateBorderStyle(updateBorders.get_Bottom(), (cellborder.indexOf('b') > -1));
|
|
this._UpdateBorderStyle(updateBorders.get_InsideV(), (cellborder.indexOf('c') > -1));
|
|
this._UpdateBorderStyle(updateBorders.get_InsideH(), (cellborder.indexOf('m') > -1));
|
|
|
|
if (tableborder===undefined) {
|
|
this._UpdateBordersNoSpacing_();
|
|
|
|
if (this._allTable) {
|
|
updateBorders = this.CellBorders;
|
|
this.ChangedCellBorders = null;
|
|
this._UpdateBorderStyle(updateBorders.get_Left(), (cellborder.indexOf('l') > -1));
|
|
this._UpdateBorderStyle(updateBorders.get_Top(), (cellborder.indexOf('t') > -1));
|
|
this._UpdateBorderStyle(updateBorders.get_Right(), (cellborder.indexOf('r') > -1));
|
|
this._UpdateBorderStyle(updateBorders.get_Bottom(), (cellborder.indexOf('b') > -1));
|
|
this._UpdateBorderStyle(updateBorders.get_InsideV(), (cellborder.indexOf('c') > -1));
|
|
this._UpdateBorderStyle(updateBorders.get_InsideH(), (cellborder.indexOf('m') > -1));
|
|
}
|
|
return;
|
|
}
|
|
|
|
updateBorders = this.TableBorders;
|
|
this.ChangedTableBorders = null;
|
|
|
|
this._UpdateBorderStyle (updateBorders.get_Left(), (tableborder.indexOf('l') > -1));
|
|
this._UpdateBorderStyle (updateBorders.get_Top(), (tableborder.indexOf('t') > -1));
|
|
this._UpdateBorderStyle (updateBorders.get_Right(), (tableborder.indexOf('r') > -1));
|
|
this._UpdateBorderStyle (updateBorders.get_Bottom(), (tableborder.indexOf('b') > -1));
|
|
|
|
this._UpdateBordersSpacing_();
|
|
},
|
|
|
|
_UpdateCellBordersStyle: function(ct, border, size, color, destination, changed_destination) {
|
|
var updateBorders = destination;
|
|
|
|
if ( ct.col==0 && border.indexOf('l') > -1 ) {
|
|
this._UpdateBorderStyle(updateBorders.get_Left(), (size>0));
|
|
if (changed_destination) {
|
|
changed_destination.put_Left(new Asc.asc_CTextBorder(updateBorders.get_Left()));
|
|
}
|
|
}
|
|
|
|
if ( ct.col== this.tableStylerColumns-1 && border.indexOf('r') > -1 ) {
|
|
this._UpdateBorderStyle(updateBorders.get_Right(), (size>0));
|
|
if (changed_destination) {
|
|
changed_destination.put_Right(new Asc.asc_CTextBorder(updateBorders.get_Right()));
|
|
}
|
|
}
|
|
|
|
if ( ct.row==0 && border.indexOf('t') > -1 ) {
|
|
this._UpdateBorderStyle(updateBorders.get_Top(), (size>0));
|
|
if (changed_destination) {
|
|
changed_destination.put_Top(new Asc.asc_CTextBorder(updateBorders.get_Top()));
|
|
}
|
|
}
|
|
|
|
if ( ct.row== this.tableStylerRows-1 && border.indexOf('b') > -1 ) {
|
|
this._UpdateBorderStyle(updateBorders.get_Bottom(), (size>0));
|
|
if (changed_destination) {
|
|
changed_destination.put_Bottom(new Asc.asc_CTextBorder(updateBorders.get_Bottom()));
|
|
}
|
|
}
|
|
|
|
if ( ct.col==0 && border.indexOf('r') > -1 || ct.col== this.tableStylerColumns-1 && border.indexOf('l') > -1) {
|
|
this._UpdateBorderStyle(updateBorders.get_InsideV(), (size>0));
|
|
if (changed_destination) {
|
|
changed_destination.put_InsideV(new Asc.asc_CTextBorder(updateBorders.get_InsideV()));
|
|
}
|
|
}
|
|
|
|
if ( ct.row==0 && border.indexOf('b') > -1 || ct.row== this.tableStylerRows-1 && border.indexOf('t') > -1) {
|
|
this._UpdateBorderStyle(updateBorders.get_InsideH(), (size>0));
|
|
if (changed_destination) {
|
|
changed_destination.put_InsideH(new Asc.asc_CTextBorder(updateBorders.get_InsideH()));
|
|
}
|
|
}
|
|
},
|
|
|
|
_UpdateTableBordersStyle: function(ct, border, size, color, destination, changed_destination) {
|
|
var updateBorders = destination;
|
|
|
|
if (border.indexOf('l') > -1) {
|
|
this._UpdateBorderStyle(updateBorders.get_Left(), (size>0));
|
|
if (changed_destination) {
|
|
changed_destination.put_Left(new Asc.asc_CTextBorder(updateBorders.get_Left()));
|
|
}
|
|
}
|
|
if (border.indexOf('t') > -1) {
|
|
this._UpdateBorderStyle(updateBorders.get_Top(), (size>0));
|
|
if (changed_destination) {
|
|
changed_destination.put_Top(new Asc.asc_CTextBorder(updateBorders.get_Top()));
|
|
}
|
|
}
|
|
if (border.indexOf('r') > -1) {
|
|
this._UpdateBorderStyle(updateBorders.get_Right(), (size>0));
|
|
if (changed_destination) {
|
|
changed_destination.put_Right(new Asc.asc_CTextBorder(updateBorders.get_Right()));
|
|
}
|
|
}
|
|
if (border.indexOf('b') > -1) {
|
|
this._UpdateBorderStyle(updateBorders.get_Bottom(), (size>0));
|
|
if (changed_destination) {
|
|
changed_destination.put_Bottom(new Asc.asc_CTextBorder(updateBorders.get_Bottom()));
|
|
}
|
|
}
|
|
},
|
|
|
|
_UpdateBorderStyle: function(border, visible) {
|
|
if (null == border)
|
|
return 0;
|
|
if (visible && this.BorderSize.ptValue > 0){
|
|
var size = parseFloat(this.BorderSize.ptValue);
|
|
border.put_Value(1);
|
|
border.put_Size(size * 25.4 / 72.0);
|
|
var color = Common.Utils.ThemeColor.getRgbColor(this.btnBorderColor.color);
|
|
border.put_Color(color);
|
|
}
|
|
else {
|
|
border.put_Color(new Asc.asc_CColor());
|
|
border.put_Value(0);
|
|
}
|
|
return border.get_Value();
|
|
},
|
|
|
|
onCellCategoryClick: function(btn) {
|
|
if (this.CellMargins.Flag=='checked' && this.TableMargins.isChanged) {
|
|
this.CellMargins.Left = this.TableMargins.Left;
|
|
this.CellMargins.Top = this.TableMargins.Top;
|
|
this.CellMargins.Right = this.TableMargins.Right;
|
|
this.CellMargins.Bottom = this.TableMargins.Bottom;
|
|
this.spnMarginRight.setValue(this.CellMargins.Right, true);
|
|
this.spnMarginLeft.setValue(this.CellMargins.Left, true);
|
|
this.spnMarginBottom.setValue(this.CellMargins.Bottom, true);
|
|
this.spnMarginTop.setValue(this.CellMargins.Top, true);
|
|
}
|
|
this.TableMargins.isChanged = false;
|
|
},
|
|
|
|
updateMetricUnit: function() {
|
|
if (this.spinners) {
|
|
for (var i=0; i<this.spinners.length; i++) {
|
|
var spinner = this.spinners[i];
|
|
spinner.setDefaultUnit(Common.Utils.Metric.getCurrentMetricName());
|
|
spinner.setStep(Common.Utils.Metric.getCurrentMetric()==Common.Utils.Metric.c_MetricUnits.pt ? 1 : 0.1);
|
|
}
|
|
}
|
|
},
|
|
|
|
updateThemeColors: function() {
|
|
this.colorsBorder.updateColors(Common.Utils.ThemeColor.getEffectColors(), Common.Utils.ThemeColor.getStandartColors());
|
|
this.colorsBack.updateColors(Common.Utils.ThemeColor.getEffectColors(), Common.Utils.ThemeColor.getStandartColors());
|
|
this.colorsTableBack.updateColors(Common.Utils.ThemeColor.getEffectColors(), Common.Utils.ThemeColor.getStandartColors());
|
|
},
|
|
|
|
ShowHideWrap: function(inline) {
|
|
this.AlignContainer.toggleClass('settings-hidden', !inline);
|
|
this.DistanceContainer.toggleClass('settings-hidden', inline);
|
|
this.btnsCategory[3].setDisabled(inline);
|
|
},
|
|
|
|
ShowHideSpacing: function(spacing) {
|
|
this.BordersContainer.toggleClass('settings-hidden', spacing);
|
|
this.BordersSpacingContainer.toggleClass('settings-hidden', !spacing);
|
|
this.TableBackContainer.css('display', (!spacing && !this._allTable) ? 'none' : 'inline-block');
|
|
this.CellBackContainer.css('display', (!spacing && this._allTable) ? 'none' : 'inline-block');
|
|
this.TableBackContainer.css('float', (!spacing && this._allTable) ? 'none' : 'right');
|
|
(spacing) ? this._UpdateBordersSpacing_() : this._UpdateBordersNoSpacing_();
|
|
},
|
|
|
|
textWidth: 'Width',
|
|
textAllowSpacing: 'Spacing between cells',
|
|
textAlign: 'Alignment',
|
|
textIndLeft: 'Indent from Left',
|
|
textWidthSpaces: 'Width & Spaces',
|
|
textWrap: 'Text Wrapping',
|
|
textMargins: 'Cell Margins',
|
|
textTop: 'Top',
|
|
textLeft: 'Left',
|
|
textBottom: 'Bottom',
|
|
textRight: 'Right',
|
|
textDistance: 'Distance From Text',
|
|
textPosition: 'Position',
|
|
textWrapParallelTooltip: 'Flow table',
|
|
textWrapNoneTooltip: 'Inline table',
|
|
textLeftTooltip: 'Left',
|
|
textRightTooltip: 'Right',
|
|
textCenterTooltip: 'Center',
|
|
textTitle: 'Table - Advanced Settings',
|
|
textDefaultMargins: 'Default Cell Margins',
|
|
textCheckMargins: 'Use default margins',
|
|
textBordersBackgroung: 'Borders & Background',
|
|
textOnlyCells: 'For selected cells only',
|
|
textBorderWidth: 'Border Size',
|
|
textBorderColor: 'Border Color',
|
|
textBackColor: 'Cell Background',
|
|
textPreview: 'Preview',
|
|
textBorderDesc: 'Click on diagramm or use buttons to select borders',
|
|
textTableBackColor: 'Table Background',
|
|
cancelButtonText: 'Cancel',
|
|
okButtonText: 'Ok',
|
|
txtNoBorders: 'No borders',
|
|
textNewColor: 'Add New Custom Color',
|
|
textCenter: 'Center',
|
|
textMargin: 'Margin',
|
|
textPage: 'Page',
|
|
textHorizontal: 'Horizontal',
|
|
textVertical: 'Vertical',
|
|
textAlignment: 'Alignment',
|
|
textRelative: 'relative to',
|
|
textRightOf: 'to the right Of',
|
|
textBelow: 'below',
|
|
textOverlap: 'Allow overlap',
|
|
textMove: 'Move object with text',
|
|
textOptions: 'Options',
|
|
textAnchorText: 'Text',
|
|
textAutofit: 'Automatically resize to fit contents',
|
|
textCellProps: 'Cell',
|
|
tipAll: 'Set Outer Border and All Inner Lines',
|
|
tipNone: 'Set No Borders',
|
|
tipInner: 'Set Inner Lines Only',
|
|
tipOuter: 'Set Outer Border Only',
|
|
tipCellAll: 'Set Borders for Inner Cells Only',
|
|
tipTableOuterCellAll: 'Set Outer Border and Borders for All Inner Cells',
|
|
tipCellInner: 'Set Vertical and Horizontal Lines for Inner Cells Only',
|
|
tipTableOuterCellInner: 'Set Outer Border and Vertical and Horizontal Lines for Inner Cells',
|
|
tipCellOuter: 'Set Outer Borders for Inner Cells Only',
|
|
tipTableOuterCellOuter: 'Set Table Outer Border and Outer Borders for Inner Cells',
|
|
txtPercent: 'Percent',
|
|
txtCm: 'Centimeter',
|
|
txtPt: 'Point',
|
|
txtInch: 'Inch',
|
|
textCellSize: 'Cell Size',
|
|
textPrefWidth: 'Preferred width',
|
|
textMeasure: 'Measure in',
|
|
textCellOptions: 'Cell Options',
|
|
textWrapText: 'Wrap text',
|
|
textTable: 'Table',
|
|
textTableSize: 'Table Size',
|
|
textTablePosition: 'Table Position',
|
|
textWrappingStyle: 'Wrapping Style',
|
|
textAlt: 'Alternative Text',
|
|
textAltTitle: 'Title',
|
|
textAltDescription: 'Description',
|
|
textAltTip: 'The alternative text-based representation of the visual object information, which will be read to the people with vision or cognitive impairments to help them better understand what information there is in the image, autoshape, chart or table.'
|
|
|
|
}, DE.Views.TableSettingsAdvanced || {}));
|
|
});
|