1386 lines
61 KiB
JavaScript
1386 lines
61 KiB
JavaScript
/*
|
|
* (c) Copyright Ascensio System SIA 2010-2015
|
|
*
|
|
* This program is a free software product. You can redistribute it and/or
|
|
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
|
* version 3 as published by the Free Software Foundation. In accordance with
|
|
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
|
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
|
* of any third-party rights.
|
|
*
|
|
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
|
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
|
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
|
*
|
|
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
|
* EU, LV-1021.
|
|
*
|
|
* The interactive user interfaces in modified source and object code versions
|
|
* of the Program must display Appropriate Legal Notices, as required under
|
|
* Section 5 of the GNU AGPL version 3.
|
|
*
|
|
* Pursuant to Section 7(b) of the License you must retain the original Product
|
|
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
|
* grant you any rights under trademark law for use of our trademarks.
|
|
*
|
|
* All the Product's GUI elements, including illustrations and icon sets, as
|
|
* well as technical writing content are licensed under the terms of the
|
|
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
|
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
|
*
|
|
*/
|
|
define(["text!spreadsheeteditor/main/app/template/ChartSettingsDlg.template", "common/main/lib/view/AdvancedSettingsWindow", "common/main/lib/component/CheckBox", "common/main/lib/component/InputField", "spreadsheeteditor/main/app/view/CellRangeDialog"], function (contentTemplate) {
|
|
SSE.Views.ChartSettingsDlg = Common.Views.AdvancedSettingsWindow.extend(_.extend({
|
|
options: {
|
|
contentWidth: 320,
|
|
height: 535,
|
|
toggleGroup: "chart-settings-dlg-group"
|
|
},
|
|
initialize: function (options) {
|
|
_.extend(this.options, {
|
|
title: this.textTitle,
|
|
items: [{
|
|
panelId: "id-chart-settings-dlg-style",
|
|
panelCaption: this.textTypeData
|
|
},
|
|
{
|
|
panelId: "id-chart-settings-dlg-layout",
|
|
panelCaption: this.textLayout
|
|
},
|
|
{
|
|
panelId: "id-chart-settings-dlg-vert",
|
|
panelCaption: this.textVertAxis
|
|
},
|
|
{
|
|
panelId: "id-chart-settings-dlg-hor",
|
|
panelCaption: this.textHorAxis
|
|
}],
|
|
contentTemplate: _.template(contentTemplate)({
|
|
scope: this
|
|
})
|
|
},
|
|
options);
|
|
this.options.handler = function (result, value) {
|
|
if (result != "ok" || this.isRangeValid()) {
|
|
if (options.handler) {
|
|
options.handler.call(this, result, value);
|
|
}
|
|
return;
|
|
}
|
|
return true;
|
|
};
|
|
Common.Views.AdvancedSettingsWindow.prototype.initialize.call(this, this.options);
|
|
this._state = {
|
|
ChartStyle: 1,
|
|
ChartType: c_oAscChartTypeSettings.barNormal
|
|
};
|
|
this._noApply = true;
|
|
this.api = this.options.api;
|
|
this.chartSettings = this.options.chartSettings;
|
|
this.vertAxisProps = null;
|
|
this.horAxisProps = null;
|
|
this.currentAxisProps = null;
|
|
this.dataRangeValid = "";
|
|
},
|
|
render: function () {
|
|
Common.Views.AdvancedSettingsWindow.prototype.render.call(this);
|
|
var me = this;
|
|
var $window = this.getChild();
|
|
this.btnChartType = new Common.UI.Button({
|
|
cls: "btn-large-dataview",
|
|
iconCls: "item-chartlist bar-normal",
|
|
menu: new Common.UI.Menu({
|
|
style: "width: 330px;",
|
|
items: [{
|
|
template: _.template('<div id="id-chart-dlg-menu-type" class="menu-insertchart" style="margin: 5px 5px 5px 10px;"></div>')
|
|
}]
|
|
})
|
|
});
|
|
this.btnChartType.on("render:after", function (btn) {
|
|
me.mnuChartTypePicker = new Common.UI.DataView({
|
|
el: $("#id-chart-dlg-menu-type"),
|
|
parentMenu: btn.menu,
|
|
restoreHeight: 411,
|
|
groups: new Common.UI.DataViewGroupStore([{
|
|
id: "menu-chart-group-bar",
|
|
caption: me.textColumn
|
|
},
|
|
{
|
|
id: "menu-chart-group-line",
|
|
caption: me.textLine
|
|
},
|
|
{
|
|
id: "menu-chart-group-pie",
|
|
caption: me.textPie
|
|
},
|
|
{
|
|
id: "menu-chart-group-hbar",
|
|
caption: me.textBar
|
|
},
|
|
{
|
|
id: "menu-chart-group-area",
|
|
caption: me.textArea
|
|
},
|
|
{
|
|
id: "menu-chart-group-scatter",
|
|
caption: me.textPoint
|
|
},
|
|
{
|
|
id: "menu-chart-group-stock",
|
|
caption: me.textStock
|
|
}]),
|
|
store: new Common.UI.DataViewStore([{
|
|
group: "menu-chart-group-bar",
|
|
type: c_oAscChartTypeSettings.barNormal,
|
|
iconCls: "column-normal",
|
|
selected: true
|
|
},
|
|
{
|
|
group: "menu-chart-group-bar",
|
|
type: c_oAscChartTypeSettings.barStacked,
|
|
iconCls: "column-stack"
|
|
},
|
|
{
|
|
group: "menu-chart-group-bar",
|
|
type: c_oAscChartTypeSettings.barStackedPer,
|
|
iconCls: "column-pstack"
|
|
},
|
|
{
|
|
group: "menu-chart-group-line",
|
|
type: c_oAscChartTypeSettings.lineNormal,
|
|
iconCls: "line-normal"
|
|
},
|
|
{
|
|
group: "menu-chart-group-line",
|
|
type: c_oAscChartTypeSettings.lineStacked,
|
|
iconCls: "line-stack"
|
|
},
|
|
{
|
|
group: "menu-chart-group-line",
|
|
type: c_oAscChartTypeSettings.lineStackedPer,
|
|
iconCls: "line-pstack"
|
|
},
|
|
{
|
|
group: "menu-chart-group-pie",
|
|
type: c_oAscChartTypeSettings.pie,
|
|
iconCls: "pie-normal"
|
|
},
|
|
{
|
|
group: "menu-chart-group-pie",
|
|
type: c_oAscChartTypeSettings.doughnut,
|
|
iconCls: "pie-doughnut"
|
|
},
|
|
{
|
|
group: "menu-chart-group-hbar",
|
|
type: c_oAscChartTypeSettings.hBarNormal,
|
|
iconCls: "bar-normal"
|
|
},
|
|
{
|
|
group: "menu-chart-group-hbar",
|
|
type: c_oAscChartTypeSettings.hBarStacked,
|
|
iconCls: "bar-stack"
|
|
},
|
|
{
|
|
group: "menu-chart-group-hbar",
|
|
type: c_oAscChartTypeSettings.hBarStackedPer,
|
|
iconCls: "bar-pstack"
|
|
},
|
|
{
|
|
group: "menu-chart-group-area",
|
|
type: c_oAscChartTypeSettings.areaNormal,
|
|
iconCls: "area-normal"
|
|
},
|
|
{
|
|
group: "menu-chart-group-area",
|
|
type: c_oAscChartTypeSettings.areaStacked,
|
|
iconCls: "area-stack"
|
|
},
|
|
{
|
|
group: "menu-chart-group-area",
|
|
type: c_oAscChartTypeSettings.areaStackedPer,
|
|
iconCls: "area-pstack"
|
|
},
|
|
{
|
|
group: "menu-chart-group-scatter",
|
|
type: c_oAscChartTypeSettings.scatter,
|
|
iconCls: "point-normal"
|
|
},
|
|
{
|
|
group: "menu-chart-group-stock",
|
|
type: c_oAscChartTypeSettings.stock,
|
|
iconCls: "stock-normal"
|
|
}]),
|
|
itemTemplate: _.template('<div id="<%= id %>" class="item-chartlist <%= iconCls %>"></div>')
|
|
});
|
|
});
|
|
this.btnChartType.render($("#chart-dlg-button-type"));
|
|
this.mnuChartTypePicker.on("item:click", _.bind(this.onSelectType, this, this.btnChartType));
|
|
this.btnChartStyle = new Common.UI.Button({
|
|
cls: "btn-large-dataview",
|
|
iconCls: "item-wrap",
|
|
menu: new Common.UI.Menu({
|
|
items: [{
|
|
template: _.template('<div id="id-chart-dlg-menu-style" style="width: 245px; margin: 0 5px;"></div>')
|
|
}]
|
|
})
|
|
});
|
|
this.btnChartStyle.on("render:after", function (btn) {
|
|
me.mnuChartStylePicker = new Common.UI.DataView({
|
|
el: $("#id-chart-dlg-menu-style"),
|
|
parentMenu: btn.menu,
|
|
style: "max-height: 411px;",
|
|
store: new Common.UI.DataViewStore(),
|
|
itemTemplate: _.template('<div id="<%= id %>" class="item-wrap" style="background-image: url(<%= imageUrl %>); background-position: 0 0;"></div>')
|
|
});
|
|
if (me.btnChartStyle.menu) {
|
|
me.btnChartStyle.menu.on("show:after", function () {
|
|
me.mnuChartStylePicker.scroller.update({
|
|
alwaysVisibleY: true
|
|
});
|
|
});
|
|
}
|
|
});
|
|
this.btnChartStyle.render($("#chart-dlg-button-style"));
|
|
this.mnuChartStylePicker.on("item:click", _.bind(this.onSelectStyle, this, this.btnChartStyle));
|
|
this.cmbDataDirect = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-range"),
|
|
menuStyle: "min-width: 120px;",
|
|
editable: false,
|
|
cls: "input-group-nr",
|
|
data: [{
|
|
value: 0,
|
|
displayValue: this.textDataRows
|
|
},
|
|
{
|
|
value: 1,
|
|
displayValue: this.textDataColumns
|
|
}]
|
|
});
|
|
this.txtDataRange = new Common.UI.InputField({
|
|
el: $("#chart-dlg-txt-range"),
|
|
name: "range",
|
|
style: "width: 100%;",
|
|
allowBlank: true,
|
|
blankError: this.txtEmpty,
|
|
validateOnChange: true
|
|
});
|
|
this.btnSelectData = new Common.UI.Button({
|
|
el: $("#chart-dlg-btn-data")
|
|
});
|
|
this.btnSelectData.on("click", _.bind(this.onSelectData, this));
|
|
this.cmbChartTitle = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-chart-title"),
|
|
menuStyle: "min-width: 140px;",
|
|
editable: false,
|
|
cls: "input-group-nr",
|
|
data: [{
|
|
value: c_oAscChartTitleShowSettings.none,
|
|
displayValue: this.textNone
|
|
},
|
|
{
|
|
value: c_oAscChartTitleShowSettings.overlay,
|
|
displayValue: this.textOverlay
|
|
},
|
|
{
|
|
value: c_oAscChartTitleShowSettings.noOverlay,
|
|
displayValue: this.textNoOverlay
|
|
}]
|
|
});
|
|
this.cmbLegendPos = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-legend-pos"),
|
|
menuStyle: "min-width: 140px;",
|
|
editable: false,
|
|
cls: "input-group-nr",
|
|
data: [{
|
|
value: c_oAscChartLegendShowSettings.none,
|
|
displayValue: this.textNone
|
|
},
|
|
{
|
|
value: c_oAscChartLegendShowSettings.bottom,
|
|
displayValue: this.textLegendBottom
|
|
},
|
|
{
|
|
value: c_oAscChartLegendShowSettings.top,
|
|
displayValue: this.textLegendTop
|
|
},
|
|
{
|
|
value: c_oAscChartLegendShowSettings.right,
|
|
displayValue: this.textLegendRight
|
|
},
|
|
{
|
|
value: c_oAscChartLegendShowSettings.left,
|
|
displayValue: this.textLegendLeft
|
|
},
|
|
{
|
|
value: c_oAscChartLegendShowSettings.leftOverlay,
|
|
displayValue: this.textLeftOverlay
|
|
},
|
|
{
|
|
value: c_oAscChartLegendShowSettings.rightOverlay,
|
|
displayValue: this.textRightOverlay
|
|
}]
|
|
});
|
|
this.cmbHorTitle = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-hor-title"),
|
|
menuStyle: "min-width: 140px;",
|
|
editable: false,
|
|
cls: "input-group-nr",
|
|
data: [{
|
|
value: c_oAscChartHorAxisLabelShowSettings.none,
|
|
displayValue: this.textNone
|
|
},
|
|
{
|
|
value: c_oAscChartHorAxisLabelShowSettings.noOverlay,
|
|
displayValue: this.textNoOverlay
|
|
}]
|
|
});
|
|
this.cmbVertTitle = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-vert-title"),
|
|
menuStyle: "min-width: 140px;",
|
|
editable: false,
|
|
cls: "input-group-nr",
|
|
data: [{
|
|
value: c_oAscChartVertAxisLabelShowSettings.none,
|
|
displayValue: this.textNone
|
|
},
|
|
{
|
|
value: c_oAscChartVertAxisLabelShowSettings.rotated,
|
|
displayValue: this.textRotated
|
|
},
|
|
{
|
|
value: c_oAscChartVertAxisLabelShowSettings.horizontal,
|
|
displayValue: this.textHorizontal
|
|
}]
|
|
});
|
|
this.cmbHorGrid = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-hor-grid"),
|
|
menuStyle: "min-width: 140px;",
|
|
editable: false,
|
|
cls: "input-group-nr",
|
|
data: [{
|
|
value: c_oAscGridLinesSettings.none,
|
|
displayValue: this.textNone
|
|
},
|
|
{
|
|
value: c_oAscGridLinesSettings.major,
|
|
displayValue: this.textMajor
|
|
},
|
|
{
|
|
value: c_oAscGridLinesSettings.minor,
|
|
displayValue: this.textMinor
|
|
},
|
|
{
|
|
value: c_oAscGridLinesSettings.majorMinor,
|
|
displayValue: this.textMajorMinor
|
|
}]
|
|
});
|
|
this.cmbVertGrid = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-vert-grid"),
|
|
menuStyle: "min-width: 140px;",
|
|
editable: false,
|
|
cls: "input-group-nr",
|
|
data: [{
|
|
value: c_oAscGridLinesSettings.none,
|
|
displayValue: this.textNone
|
|
},
|
|
{
|
|
value: c_oAscGridLinesSettings.major,
|
|
displayValue: this.textMajor
|
|
},
|
|
{
|
|
value: c_oAscGridLinesSettings.minor,
|
|
displayValue: this.textMinor
|
|
},
|
|
{
|
|
value: c_oAscGridLinesSettings.majorMinor,
|
|
displayValue: this.textMajorMinor
|
|
}]
|
|
});
|
|
this.cmbDataLabels = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-data-labels"),
|
|
menuStyle: "min-width: 140px;",
|
|
editable: false,
|
|
cls: "input-group-nr",
|
|
data: [{
|
|
value: c_oAscChartDataLabelsPos.none,
|
|
displayValue: this.textNone
|
|
},
|
|
{
|
|
value: c_oAscChartDataLabelsPos.ctr,
|
|
displayValue: this.textCenter
|
|
},
|
|
{
|
|
value: c_oAscChartDataLabelsPos.inBase,
|
|
displayValue: this.textInnerBottom
|
|
},
|
|
{
|
|
value: c_oAscChartDataLabelsPos.inEnd,
|
|
displayValue: this.textInnerTop
|
|
},
|
|
{
|
|
value: c_oAscChartDataLabelsPos.outEnd,
|
|
displayValue: this.textOuterTop
|
|
}]
|
|
});
|
|
this.cmbDataLabels.on("selected", _.bind(me.onSelectDataLabels, this));
|
|
this.txtSeparator = new Common.UI.InputField({
|
|
el: $("#chart-dlg-txt-separator"),
|
|
name: "range",
|
|
style: "width: 100%;",
|
|
allowBlank: true,
|
|
blankError: this.txtEmpty
|
|
});
|
|
this.chSeriesName = new Common.UI.CheckBox({
|
|
el: $("#chart-dlg-check-series"),
|
|
labelText: this.textSeriesName
|
|
});
|
|
this.chCategoryName = new Common.UI.CheckBox({
|
|
el: $("#chart-dlg-check-category"),
|
|
labelText: this.textCategoryName
|
|
});
|
|
this.chValue = new Common.UI.CheckBox({
|
|
el: $("#chart-dlg-check-value"),
|
|
labelText: this.textValue
|
|
});
|
|
this.cmbLines = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-lines"),
|
|
menuStyle: "min-width: 140px;",
|
|
editable: false,
|
|
cls: "input-group-nr",
|
|
data: [{
|
|
value: 0,
|
|
displayValue: this.textNone
|
|
},
|
|
{
|
|
value: 1,
|
|
displayValue: this.textStraight
|
|
},
|
|
{
|
|
value: 2,
|
|
displayValue: this.textSmooth
|
|
}]
|
|
});
|
|
this.chMarkers = new Common.UI.CheckBox({
|
|
el: $("#chart-dlg-check-markers"),
|
|
labelText: this.textMarkers
|
|
});
|
|
this.lblLines = $("#chart-dlg-label-lines");
|
|
this.cmbMinType = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-mintype"),
|
|
cls: "input-group-nr",
|
|
menuStyle: "min-width: 100px;",
|
|
editable: false,
|
|
data: [{
|
|
displayValue: this.textAuto,
|
|
value: c_oAscValAxisRule.auto
|
|
},
|
|
{
|
|
displayValue: this.textFixed,
|
|
value: c_oAscValAxisRule.fixed
|
|
}]
|
|
}).on("selected", _.bind(function (combo, record) {
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putMinValRule(record.value);
|
|
}
|
|
},
|
|
this));
|
|
this.spnMinValue = new Common.UI.MetricSpinner({
|
|
el: $("#chart-dlg-input-min-value"),
|
|
maxValue: 1000000,
|
|
minValue: -1000000,
|
|
step: 0.1,
|
|
defaultUnit: "",
|
|
defaultValue: 0,
|
|
value: ""
|
|
}).on("change", _.bind(function (field, newValue, oldValue) {
|
|
this.cmbMinType.suspendEvents();
|
|
this.cmbMinType.setValue(c_oAscValAxisRule.fixed);
|
|
this.cmbMinType.resumeEvents();
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putMinValRule(c_oAscValAxisRule.fixed);
|
|
this.currentAxisProps.putMinVal(field.getNumberValue());
|
|
}
|
|
},
|
|
this));
|
|
this.cmbMaxType = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-maxtype"),
|
|
cls: "input-group-nr",
|
|
menuStyle: "min-width: 100px;",
|
|
editable: false,
|
|
data: [{
|
|
displayValue: this.textAuto,
|
|
value: c_oAscValAxisRule.auto
|
|
},
|
|
{
|
|
displayValue: this.textFixed,
|
|
value: c_oAscValAxisRule.fixed
|
|
}]
|
|
}).on("selected", _.bind(function (combo, record) {
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putMaxValRule(record.value);
|
|
}
|
|
},
|
|
this));
|
|
this.spnMaxValue = new Common.UI.MetricSpinner({
|
|
el: $("#chart-dlg-input-max-value"),
|
|
maxValue: 1000000,
|
|
minValue: -1000000,
|
|
step: 0.1,
|
|
defaultUnit: "",
|
|
defaultValue: 0,
|
|
value: ""
|
|
}).on("change", _.bind(function (field, newValue, oldValue) {
|
|
this.cmbMaxType.suspendEvents();
|
|
this.cmbMaxType.setValue(c_oAscValAxisRule.fixed);
|
|
this.cmbMaxType.resumeEvents();
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putMaxValRule(c_oAscValAxisRule.fixed);
|
|
this.currentAxisProps.putMaxVal(field.getNumberValue());
|
|
}
|
|
},
|
|
this));
|
|
this.cmbVCrossType = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-v-crosstype"),
|
|
cls: "input-group-nr",
|
|
menuStyle: "min-width: 100px;",
|
|
editable: false,
|
|
data: [{
|
|
displayValue: this.textAuto,
|
|
value: c_oAscCrossesRule.auto
|
|
},
|
|
{
|
|
displayValue: this.textValue,
|
|
value: c_oAscCrossesRule.value
|
|
},
|
|
{
|
|
displayValue: this.textMinValue,
|
|
value: c_oAscCrossesRule.minValue
|
|
},
|
|
{
|
|
displayValue: this.textMaxValue,
|
|
value: c_oAscCrossesRule.maxValue
|
|
}]
|
|
}).on("selected", _.bind(function (combo, record) {
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putCrossesRule(record.value);
|
|
}
|
|
},
|
|
this));
|
|
this.spnVAxisCrosses = new Common.UI.MetricSpinner({
|
|
el: $("#chart-dlg-input-v-axis-crosses"),
|
|
maxValue: 1000000,
|
|
minValue: -1000000,
|
|
step: 0.1,
|
|
defaultUnit: "",
|
|
defaultValue: 0,
|
|
value: ""
|
|
}).on("change", _.bind(function (field, newValue, oldValue) {
|
|
this.cmbVCrossType.suspendEvents();
|
|
this.cmbVCrossType.setValue(c_oAscCrossesRule.value);
|
|
this.cmbVCrossType.resumeEvents();
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putCrossesRule(c_oAscCrossesRule.value);
|
|
this.currentAxisProps.putCrosses(field.getNumberValue());
|
|
}
|
|
},
|
|
this));
|
|
this.cmbUnits = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-units"),
|
|
cls: "input-group-nr",
|
|
menuStyle: "min-width: 140px;",
|
|
editable: false,
|
|
data: [{
|
|
displayValue: this.textNone,
|
|
value: c_oAscValAxUnits.none
|
|
},
|
|
{
|
|
displayValue: this.textHundreds,
|
|
value: c_oAscValAxUnits.HUNDREDS
|
|
},
|
|
{
|
|
displayValue: this.textThousands,
|
|
value: c_oAscValAxUnits.THOUSANDS
|
|
},
|
|
{
|
|
displayValue: this.textTenThousands,
|
|
value: c_oAscValAxUnits.TEN_THOUSANDS
|
|
},
|
|
{
|
|
displayValue: this.textHundredThousands,
|
|
value: c_oAscValAxUnits.HUNDRED_THOUSANDS
|
|
},
|
|
{
|
|
displayValue: this.textMillions,
|
|
value: c_oAscValAxUnits.MILLIONS
|
|
},
|
|
{
|
|
displayValue: this.textTenMillions,
|
|
value: c_oAscValAxUnits.TEN_MILLIONS
|
|
},
|
|
{
|
|
displayValue: this.textHundredMil,
|
|
value: c_oAscValAxUnits.HUNDRED_MILLIONS
|
|
},
|
|
{
|
|
displayValue: this.textBillions,
|
|
value: c_oAscValAxUnits.BILLIONS
|
|
},
|
|
{
|
|
displayValue: this.textTrillions,
|
|
value: c_oAscValAxUnits.TRILLIONS
|
|
}]
|
|
}).on("selected", _.bind(function (combo, record) {
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putDispUnitsRule(record.value);
|
|
}
|
|
},
|
|
this));
|
|
this.chVReverse = new Common.UI.CheckBox({
|
|
el: $("#chart-dlg-check-v-reverse"),
|
|
labelText: this.textReverse
|
|
}).on("change", _.bind(function (checkbox, state) {
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putInvertValOrder(state == "checked");
|
|
}
|
|
},
|
|
this));
|
|
this.cmbVMajorType = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-v-major-type"),
|
|
cls: "input-group-nr",
|
|
menuStyle: "min-width: 140px;",
|
|
editable: false,
|
|
data: [{
|
|
displayValue: this.textNone,
|
|
value: c_oAscTickMark.TICK_MARK_NONE
|
|
},
|
|
{
|
|
displayValue: this.textCross,
|
|
value: c_oAscTickMark.TICK_MARK_CROSS
|
|
},
|
|
{
|
|
displayValue: this.textIn,
|
|
value: c_oAscTickMark.TICK_MARK_IN
|
|
},
|
|
{
|
|
displayValue: this.textOut,
|
|
value: c_oAscTickMark.TICK_MARK_OUT
|
|
}]
|
|
}).on("selected", _.bind(function (combo, record) {
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putMajorTickMark(record.value);
|
|
}
|
|
},
|
|
this));
|
|
this.cmbVMinorType = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-v-minor-type"),
|
|
cls: "input-group-nr",
|
|
menuStyle: "min-width: 140px;",
|
|
editable: false,
|
|
data: [{
|
|
displayValue: this.textNone,
|
|
value: c_oAscTickMark.TICK_MARK_NONE
|
|
},
|
|
{
|
|
displayValue: this.textCross,
|
|
value: c_oAscTickMark.TICK_MARK_CROSS
|
|
},
|
|
{
|
|
displayValue: this.textIn,
|
|
value: c_oAscTickMark.TICK_MARK_IN
|
|
},
|
|
{
|
|
displayValue: this.textOut,
|
|
value: c_oAscTickMark.TICK_MARK_OUT
|
|
}]
|
|
}).on("selected", _.bind(function (combo, record) {
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putMinorTickMark(record.value);
|
|
}
|
|
},
|
|
this));
|
|
this.cmbVLabelPos = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-v-label-pos"),
|
|
cls: "input-group-nr",
|
|
menuStyle: "min-width: 140px;",
|
|
editable: false,
|
|
data: [{
|
|
displayValue: this.textNone,
|
|
value: c_oAscTickLabelsPos.TICK_LABEL_POSITION_NONE
|
|
},
|
|
{
|
|
displayValue: this.textLow,
|
|
value: c_oAscTickLabelsPos.TICK_LABEL_POSITION_LOW
|
|
},
|
|
{
|
|
displayValue: this.textHigh,
|
|
value: c_oAscTickLabelsPos.TICK_LABEL_POSITION_HIGH
|
|
},
|
|
{
|
|
displayValue: this.textNextToAxis,
|
|
value: c_oAscTickLabelsPos.TICK_LABEL_POSITION_NEXT_TO
|
|
}]
|
|
}).on("selected", _.bind(function (combo, record) {
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putTickLabelsPos(record.value);
|
|
}
|
|
},
|
|
this));
|
|
this.cmbHCrossType = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-h-crosstype"),
|
|
cls: "input-group-nr",
|
|
menuStyle: "min-width: 100px;",
|
|
editable: false,
|
|
data: [{
|
|
displayValue: this.textAuto,
|
|
value: c_oAscCrossesRule.auto
|
|
},
|
|
{
|
|
displayValue: this.textValue,
|
|
value: c_oAscCrossesRule.value
|
|
},
|
|
{
|
|
displayValue: this.textMinValue,
|
|
value: c_oAscCrossesRule.minValue
|
|
},
|
|
{
|
|
displayValue: this.textMaxValue,
|
|
value: c_oAscCrossesRule.maxValue
|
|
}]
|
|
}).on("selected", _.bind(function (combo, record) {
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putCrossesRule(record.value);
|
|
}
|
|
},
|
|
this));
|
|
this.spnHAxisCrosses = new Common.UI.MetricSpinner({
|
|
el: $("#chart-dlg-input-h-axis-crosses"),
|
|
maxValue: 1000000,
|
|
minValue: -1000000,
|
|
step: 0.1,
|
|
defaultUnit: "",
|
|
defaultValue: 0,
|
|
value: ""
|
|
}).on("change", _.bind(function (field, newValue, oldValue) {
|
|
this.cmbHCrossType.suspendEvents();
|
|
this.cmbHCrossType.setValue(c_oAscCrossesRule.value);
|
|
this.cmbHCrossType.resumeEvents();
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putCrossesRule(c_oAscCrossesRule.value);
|
|
this.currentAxisProps.putCrosses(field.getNumberValue());
|
|
}
|
|
},
|
|
this));
|
|
this.cmbAxisPos = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-axis-pos"),
|
|
cls: "input-group-nr",
|
|
menuStyle: "min-width: 140px;",
|
|
editable: false,
|
|
data: [{
|
|
displayValue: this.textOnTickMarks,
|
|
value: c_oAscLabelsPosition.byDivisions
|
|
},
|
|
{
|
|
displayValue: this.textBetweenTickMarks,
|
|
value: c_oAscLabelsPosition.betweenDivisions
|
|
}]
|
|
}).on("selected", _.bind(function (combo, record) {
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putLabelsPosition(record.value);
|
|
}
|
|
},
|
|
this));
|
|
this.chHReverse = new Common.UI.CheckBox({
|
|
el: $("#chart-dlg-check-h-reverse"),
|
|
labelText: this.textReverse
|
|
}).on("change", _.bind(function (checkbox, state) {
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putInvertCatOrder(state == "checked");
|
|
}
|
|
},
|
|
this));
|
|
this.cmbHMajorType = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-h-major-type"),
|
|
cls: "input-group-nr",
|
|
menuStyle: "min-width: 140px;",
|
|
editable: false,
|
|
data: [{
|
|
displayValue: this.textNone,
|
|
value: c_oAscTickMark.TICK_MARK_NONE
|
|
},
|
|
{
|
|
displayValue: this.textCross,
|
|
value: c_oAscTickMark.TICK_MARK_CROSS
|
|
},
|
|
{
|
|
displayValue: this.textIn,
|
|
value: c_oAscTickMark.TICK_MARK_IN
|
|
},
|
|
{
|
|
displayValue: this.textOut,
|
|
value: c_oAscTickMark.TICK_MARK_OUT
|
|
}]
|
|
}).on("selected", _.bind(function (combo, record) {
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putMajorTickMark(record.value);
|
|
}
|
|
},
|
|
this));
|
|
this.cmbHMinorType = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-h-minor-type"),
|
|
cls: "input-group-nr",
|
|
menuStyle: "min-width: 140px;",
|
|
editable: false,
|
|
data: [{
|
|
displayValue: this.textNone,
|
|
value: c_oAscTickMark.TICK_MARK_NONE
|
|
},
|
|
{
|
|
displayValue: this.textCross,
|
|
value: c_oAscTickMark.TICK_MARK_CROSS
|
|
},
|
|
{
|
|
displayValue: this.textIn,
|
|
value: c_oAscTickMark.TICK_MARK_IN
|
|
},
|
|
{
|
|
displayValue: this.textOut,
|
|
value: c_oAscTickMark.TICK_MARK_OUT
|
|
}]
|
|
}).on("selected", _.bind(function (combo, record) {
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putMinorTickMark(record.value);
|
|
}
|
|
},
|
|
this));
|
|
this.spnMarksInterval = new Common.UI.MetricSpinner({
|
|
el: $("#chart-dlg-input-marks-interval"),
|
|
width: 140,
|
|
maxValue: 1000000,
|
|
minValue: 1,
|
|
step: 1,
|
|
defaultUnit: "",
|
|
value: ""
|
|
}).on("change", _.bind(function (field, newValue, oldValue) {
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putIntervalBetweenTick(field.getNumberValue());
|
|
}
|
|
},
|
|
this));
|
|
this.cmbHLabelPos = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-h-label-pos"),
|
|
cls: "input-group-nr",
|
|
menuStyle: "min-width: 140px;",
|
|
editable: false,
|
|
data: [{
|
|
displayValue: this.textNone,
|
|
value: c_oAscTickLabelsPos.TICK_LABEL_POSITION_NONE
|
|
},
|
|
{
|
|
displayValue: this.textLow,
|
|
value: c_oAscTickLabelsPos.TICK_LABEL_POSITION_LOW
|
|
},
|
|
{
|
|
displayValue: this.textHigh,
|
|
value: c_oAscTickLabelsPos.TICK_LABEL_POSITION_HIGH
|
|
},
|
|
{
|
|
displayValue: this.textNextToAxis,
|
|
value: c_oAscTickLabelsPos.TICK_LABEL_POSITION_NEXT_TO
|
|
}]
|
|
}).on("selected", _.bind(function (combo, record) {
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putTickLabelsPos(record.value);
|
|
}
|
|
},
|
|
this));
|
|
this.spnLabelDist = new Common.UI.MetricSpinner({
|
|
el: $("#chart-dlg-input-label-dist"),
|
|
width: 140,
|
|
maxValue: 1000,
|
|
minValue: 0,
|
|
step: 1,
|
|
defaultUnit: "",
|
|
value: ""
|
|
}).on("change", _.bind(function (field, newValue, oldValue) {
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putLabelsAxisDistance(field.getNumberValue());
|
|
}
|
|
},
|
|
this));
|
|
this.spnLabelInterval = new Common.UI.MetricSpinner({
|
|
el: $("#chart-dlg-input-label-int"),
|
|
width: 140,
|
|
maxValue: 1000000,
|
|
minValue: 1,
|
|
step: 1,
|
|
defaultUnit: "",
|
|
value: ""
|
|
}).on("change", _.bind(function (field, newValue, oldValue) {
|
|
this.cmbLabelInterval.suspendEvents();
|
|
this.cmbLabelInterval.setValue(c_oAscBetweenLabelsRule.manual);
|
|
this.cmbLabelInterval.resumeEvents();
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putIntervalBetweenLabelsRule(c_oAscBetweenLabelsRule.manual);
|
|
this.currentAxisProps.putIntervalBetweenLabels(field.getNumberValue());
|
|
}
|
|
},
|
|
this));
|
|
this.cmbLabelInterval = new Common.UI.ComboBox({
|
|
el: $("#chart-dlg-combo-label-int"),
|
|
cls: "input-group-nr",
|
|
menuStyle: "min-width: 140px;",
|
|
editable: false,
|
|
data: [{
|
|
displayValue: this.textAuto,
|
|
value: c_oAscBetweenLabelsRule.auto
|
|
},
|
|
{
|
|
displayValue: this.textManual,
|
|
value: c_oAscBetweenLabelsRule.manual
|
|
}]
|
|
}).on("selected", _.bind(function (combo, record) {
|
|
if (this.currentAxisProps) {
|
|
this.currentAxisProps.putIntervalBetweenLabelsRule(record.value);
|
|
}
|
|
},
|
|
this));
|
|
this.btnsCategory[2].on("click", _.bind(this.onVCategoryClick, this));
|
|
this.btnsCategory[3].on("click", _.bind(this.onHCategoryClick, this));
|
|
this.afterRender();
|
|
},
|
|
afterRender: function () {
|
|
if (this.api) {
|
|
this.updateChartStyles(this.api.asc_getChartPreviews(this._state.ChartType));
|
|
}
|
|
this._setDefaults(this.chartSettings);
|
|
},
|
|
onSelectType: function (btn, picker, itemView, record) {
|
|
if (this._noApply) {
|
|
return;
|
|
}
|
|
var rawData = {},
|
|
isPickerSelect = _.isFunction(record.toJSON);
|
|
if (isPickerSelect) {
|
|
if (record.get("selected")) {
|
|
rawData = record.toJSON();
|
|
} else {
|
|
return;
|
|
}
|
|
} else {
|
|
rawData = record;
|
|
}
|
|
this.btnChartType.setIconCls("item-chartlist " + rawData.iconCls);
|
|
this.updateChartStyles(this.api.asc_getChartPreviews(rawData.type));
|
|
this.updateAxisProps(rawData.type, true);
|
|
this.chartSettings.changeType(rawData.type);
|
|
this.vertAxisProps = this.chartSettings.getVertAxisProps();
|
|
this.horAxisProps = this.chartSettings.getHorAxisProps();
|
|
},
|
|
updateAxisProps: function (type, isDefault) {
|
|
var value = (type == c_oAscChartTypeSettings.lineNormal || type == c_oAscChartTypeSettings.lineStacked || type == c_oAscChartTypeSettings.lineStackedPer || type == c_oAscChartTypeSettings.scatter);
|
|
this.chMarkers.setVisible(value);
|
|
this.cmbLines.setVisible(value);
|
|
this.lblLines.toggleClass("hidden", !value);
|
|
value = (type == c_oAscChartTypeSettings.pie || type == c_oAscChartTypeSettings.doughnut);
|
|
this.btnsCategory[2].setDisabled(value);
|
|
this.btnsCategory[3].setDisabled(value);
|
|
this.cmbHorTitle.setDisabled(value);
|
|
this.cmbVertTitle.setDisabled(value);
|
|
this.cmbHorGrid.setDisabled(value);
|
|
this.cmbVertGrid.setDisabled(value);
|
|
value = (type == c_oAscChartTypeSettings.hBarNormal || type == c_oAscChartTypeSettings.hBarStacked || type == c_oAscChartTypeSettings.hBarStackedPer);
|
|
this.btnsCategory[2].options.contentTarget = (value) ? "id-chart-settings-dlg-hor" : "id-chart-settings-dlg-vert";
|
|
this.btnsCategory[3].options.contentTarget = (value || type == c_oAscChartTypeSettings.scatter) ? "id-chart-settings-dlg-vert" : "id-chart-settings-dlg-hor";
|
|
if (isDefault) {
|
|
if (value) {
|
|
this.cmbHorGrid.setValue(c_oAscGridLinesSettings.none);
|
|
this.cmbVertGrid.setValue(c_oAscGridLinesSettings.major);
|
|
} else {
|
|
if (type == c_oAscChartTypeSettings.scatter) {
|
|
this.cmbHorGrid.setValue(c_oAscGridLinesSettings.major);
|
|
this.cmbVertGrid.setValue(c_oAscGridLinesSettings.major);
|
|
this.chMarkers.setValue(true, true);
|
|
this.cmbLines.setValue(0);
|
|
} else {
|
|
if (type == c_oAscChartTypeSettings.barNormal || type == c_oAscChartTypeSettings.barStacked || type == c_oAscChartTypeSettings.barStackedPer || type == c_oAscChartTypeSettings.lineNormal || type == c_oAscChartTypeSettings.lineStacked || type == c_oAscChartTypeSettings.lineStackedPer || type == c_oAscChartTypeSettings.areaNormal || type == c_oAscChartTypeSettings.areaStacked || type == c_oAscChartTypeSettings.areaStackedPer || type == c_oAscChartTypeSettings.stock) {
|
|
this.cmbHorGrid.setValue(c_oAscGridLinesSettings.major);
|
|
this.cmbVertGrid.setValue(c_oAscGridLinesSettings.none);
|
|
if (type == c_oAscChartTypeSettings.lineNormal || type == c_oAscChartTypeSettings.lineStacked || type == c_oAscChartTypeSettings.lineStackedPer) {
|
|
this.chMarkers.setValue(false, true);
|
|
this.cmbLines.setValue(1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
onVCategoryClick: function () {
|
|
(this.vertAxisProps.getAxisType() == c_oAscAxisType.val) ? this.fillVProps(this.vertAxisProps) : this.fillHProps(this.vertAxisProps);
|
|
},
|
|
onHCategoryClick: function () {
|
|
(this.horAxisProps.getAxisType() == c_oAscAxisType.val) ? this.fillVProps(this.horAxisProps) : this.fillHProps(this.horAxisProps);
|
|
},
|
|
fillVProps: function (props) {
|
|
if (props.getAxisType() !== c_oAscAxisType.val) {
|
|
return;
|
|
}
|
|
var value = props.getMinValRule();
|
|
this.cmbMinType.setValue(value);
|
|
this.spnMinValue.setValue((value === c_oAscValAxisRule.fixed) ? props.getMinVal() : "", true);
|
|
value = props.getMaxValRule();
|
|
this.cmbMaxType.setValue(value);
|
|
this.spnMaxValue.setValue((value === c_oAscValAxisRule.fixed) ? props.getMaxVal() : "", true);
|
|
value = props.getCrossesRule();
|
|
this.cmbVCrossType.setValue(value);
|
|
this.spnVAxisCrosses.setValue((value === c_oAscCrossesRule.value) ? props.getCrosses() : "", true);
|
|
this.cmbUnits.setValue(props.getDispUnitsRule());
|
|
this.chVReverse.setValue(props.getInvertValOrder(), true);
|
|
this.cmbVMajorType.setValue(props.getMajorTickMark());
|
|
this.cmbVMinorType.setValue(props.getMinorTickMark());
|
|
this.cmbVLabelPos.setValue(props.getTickLabelsPos());
|
|
this.currentAxisProps = props;
|
|
},
|
|
fillHProps: function (props) {
|
|
if (props.getAxisType() !== c_oAscAxisType.cat) {
|
|
return;
|
|
}
|
|
var value = props.getCrossesRule();
|
|
this.cmbHCrossType.setValue(value);
|
|
this.spnHAxisCrosses.setValue((value === c_oAscCrossesRule.value) ? props.getCrosses() : "", true);
|
|
this.cmbAxisPos.setValue(props.getLabelsPosition());
|
|
this.chHReverse.setValue(props.getInvertCatOrder(), true);
|
|
this.cmbHMajorType.setValue(props.getMajorTickMark());
|
|
this.cmbHMinorType.setValue(props.getMinorTickMark());
|
|
this.spnMarksInterval.setValue(props.getIntervalBetweenTick(), true);
|
|
this.cmbHLabelPos.setValue(props.getTickLabelsPos());
|
|
this.spnLabelDist.setValue(props.getLabelsAxisDistance(), true);
|
|
value = props.getIntervalBetweenLabelsRule();
|
|
this.cmbLabelInterval.setValue(value);
|
|
this.spnLabelInterval.setValue((value === c_oAscBetweenLabelsRule.manual) ? props.getIntervalBetweenLabels() : "", true);
|
|
this.currentAxisProps = props;
|
|
},
|
|
onSelectStyle: function (btn, picker, itemView, record) {
|
|
if (this._noApply) {
|
|
return;
|
|
}
|
|
var rawData = {},
|
|
isPickerSelect = _.isFunction(record.toJSON);
|
|
if (isPickerSelect) {
|
|
if (record.get("selected")) {
|
|
rawData = record.toJSON();
|
|
} else {
|
|
return;
|
|
}
|
|
} else {
|
|
rawData = record;
|
|
}
|
|
var style = "url(" + rawData.imageUrl + ")";
|
|
var btnIconEl = this.btnChartStyle.cmpEl.find("span.btn-icon");
|
|
btnIconEl.css("background-image", style);
|
|
this._state.ChartStyle = rawData.data;
|
|
},
|
|
updateChartStyles: function (styles) {
|
|
var me = this;
|
|
if (styles && styles.length > 0) {
|
|
var stylesStore = this.mnuChartStylePicker.store;
|
|
if (stylesStore) {
|
|
var stylearray = [],
|
|
selectedIdx = -1,
|
|
selectedUrl;
|
|
_.each(styles, function (item, index) {
|
|
stylearray.push({
|
|
imageUrl: item.asc_getImageUrl(),
|
|
data: item.asc_getStyle(),
|
|
tip: me.textStyle + " " + item.asc_getStyle()
|
|
});
|
|
if (me._state.ChartStyle == item.asc_getStyle()) {
|
|
selectedIdx = index;
|
|
selectedUrl = item.asc_getImageUrl();
|
|
}
|
|
});
|
|
stylesStore.reset(stylearray, {
|
|
silent: false
|
|
});
|
|
}
|
|
}
|
|
this.mnuChartStylePicker.selectByIndex(selectedIdx, true);
|
|
if (selectedIdx >= 0 && this.btnChartStyle.cmpEl) {
|
|
var style = "url(" + selectedUrl + ")";
|
|
var btnIconEl = this.btnChartStyle.cmpEl.find("span.btn-icon");
|
|
btnIconEl.css("background-image", style);
|
|
}
|
|
},
|
|
_setDefaults: function (props) {
|
|
var me = this;
|
|
if (props) {
|
|
this.chartSettings = props;
|
|
this._state.ChartType = props.getType();
|
|
this._noApply = true;
|
|
var record = this.mnuChartTypePicker.store.findWhere({
|
|
type: this._state.ChartType
|
|
});
|
|
this.mnuChartTypePicker.selectRecord(record, true);
|
|
if (record) {
|
|
this.btnChartType.setIconCls("item-chartlist " + record.get("iconCls"));
|
|
}
|
|
this.updateChartStyles(this.api.asc_getChartPreviews(this._state.ChartType));
|
|
this._noApply = false;
|
|
this._state.ChartStyle = props.getStyle();
|
|
record = this.mnuChartStylePicker.store.findWhere({
|
|
data: this._state.ChartStyle
|
|
});
|
|
this.mnuChartStylePicker.selectRecord(record, true);
|
|
if (record) {
|
|
var btnIconEl = this.btnChartStyle.cmpEl.find("span.btn-icon");
|
|
btnIconEl.css("background-image", "url(" + record.get("imageUrl") + ")");
|
|
}
|
|
var value = props.getRange();
|
|
this.txtDataRange.setValue((value) ? value : "");
|
|
this.dataRangeValid = value;
|
|
this.txtDataRange.validation = function (value) {
|
|
if (_.isEmpty(value)) {
|
|
if (!me.cmbDataDirect.isDisabled()) {
|
|
me.cmbDataDirect.setDisabled(true);
|
|
}
|
|
return true;
|
|
}
|
|
if (me.cmbDataDirect.isDisabled()) {
|
|
me.cmbDataDirect.setDisabled(false);
|
|
}
|
|
var isvalid = me.api.asc_checkDataRange(c_oAscSelectionDialogType.Chart, value, false);
|
|
return (isvalid == c_oAscError.ID.DataRangeError) ? me.textInvalidRange : true;
|
|
};
|
|
this.cmbDataDirect.setDisabled(value === null);
|
|
this.cmbDataDirect.setValue(props.getInColumns() ? 1 : 0);
|
|
this.cmbChartTitle.setValue(props.getTitle());
|
|
this.cmbLegendPos.setValue(props.getLegendPos());
|
|
this.cmbHorTitle.setValue(props.getHorAxisLabel());
|
|
this.cmbVertTitle.setValue(props.getVertAxisLabel());
|
|
this.cmbHorGrid.setValue(props.getHorGridLines());
|
|
this.cmbVertGrid.setValue(props.getVertGridLines());
|
|
this.cmbDataLabels.setValue(props.getDataLabelsPos());
|
|
this.onSelectDataLabels(this.cmbDataLabels, {
|
|
value: props.getDataLabelsPos()
|
|
});
|
|
this.chSeriesName.setValue(this.chartSettings.getShowSerName(), true);
|
|
this.chCategoryName.setValue(this.chartSettings.getShowCatName(), true);
|
|
this.chValue.setValue(this.chartSettings.getShowVal(), true);
|
|
value = props.getSeparator();
|
|
this.txtSeparator.setValue((value) ? value : "");
|
|
value = (this._state.ChartType == c_oAscChartTypeSettings.lineNormal || this._state.ChartType == c_oAscChartTypeSettings.lineStacked || this._state.ChartType == c_oAscChartTypeSettings.lineStackedPer || this._state.ChartType == c_oAscChartTypeSettings.scatter);
|
|
this.chMarkers.setVisible(value);
|
|
this.cmbLines.setVisible(value);
|
|
this.lblLines.toggleClass("hidden", !value);
|
|
if (value) {
|
|
this.chMarkers.setValue(this.chartSettings.getShowMarker(), true);
|
|
this.cmbLines.setValue(props.getLine() ? (props.getSmooth() ? 2 : 1) : 0);
|
|
}
|
|
this.vertAxisProps = props.getVertAxisProps();
|
|
this.horAxisProps = props.getHorAxisProps();
|
|
this.updateAxisProps(this._state.ChartType);
|
|
}
|
|
},
|
|
getSettings: function () {
|
|
var value, type = this.mnuChartTypePicker.getSelectedRec()[0].get("type");
|
|
this.chartSettings.putType(type);
|
|
this.chartSettings.putStyle(this._state.ChartStyle);
|
|
this.chartSettings.putInColumns(this.cmbDataDirect.getValue() == 1);
|
|
this.chartSettings.putRange(this.txtDataRange.getValue());
|
|
this.chartSettings.putTitle(this.cmbChartTitle.getValue());
|
|
this.chartSettings.putLegendPos(this.cmbLegendPos.getValue());
|
|
this.chartSettings.putHorAxisLabel(this.cmbHorTitle.getValue());
|
|
this.chartSettings.putVertAxisLabel(this.cmbVertTitle.getValue());
|
|
this.chartSettings.putHorGridLines(this.cmbHorGrid.getValue());
|
|
this.chartSettings.putVertGridLines(this.cmbVertGrid.getValue());
|
|
this.chartSettings.putDataLabelsPos(this.cmbDataLabels.getValue());
|
|
this.chartSettings.putShowSerName(this.chSeriesName.getValue() == "checked");
|
|
this.chartSettings.putShowCatName(this.chCategoryName.getValue() == "checked");
|
|
this.chartSettings.putShowVal(this.chValue.getValue() == "checked");
|
|
this.chartSettings.putSeparator(_.isEmpty(this.txtSeparator.getValue()) ? " " : this.txtSeparator.getValue());
|
|
this.chartSettings.putShowMarker(this.chMarkers.getValue() == "checked");
|
|
value = (type == c_oAscChartTypeSettings.lineNormal || type == c_oAscChartTypeSettings.lineStacked || type == c_oAscChartTypeSettings.lineStackedPer || type == c_oAscChartTypeSettings.scatter);
|
|
if (value) {
|
|
value = this.cmbLines.getValue();
|
|
this.chartSettings.putLine(value !== 0);
|
|
if (value > 0) {
|
|
this.chartSettings.putSmooth(value == 2);
|
|
}
|
|
}
|
|
this.chartSettings.putVertAxisProps(this.vertAxisProps);
|
|
this.chartSettings.putHorAxisProps(this.horAxisProps);
|
|
return {
|
|
chartSettings: this.chartSettings
|
|
};
|
|
},
|
|
isRangeValid: function () {
|
|
var isvalid;
|
|
if (!_.isEmpty(this.txtDataRange.getValue())) {
|
|
isvalid = this.api.asc_checkDataRange(c_oAscSelectionDialogType.Chart, this.txtDataRange.getValue(), true, this.cmbDataDirect.getValue() == 0, this.mnuChartTypePicker.getSelectedRec()[0].get("type"));
|
|
if (isvalid == c_oAscError.ID.No) {
|
|
return true;
|
|
}
|
|
} else {
|
|
this.txtDataRange.showError([this.txtEmpty]);
|
|
}
|
|
this.btnsCategory[0].toggle(true);
|
|
this.onCategoryClick(this.btnsCategory[0]);
|
|
if (isvalid == c_oAscError.ID.StockChartError) {
|
|
Common.UI.warning({
|
|
msg: this.errorStockChart
|
|
});
|
|
} else {
|
|
if (isvalid == c_oAscError.ID.MaxDataSeriesError) {
|
|
Common.UI.warning({
|
|
msg: this.errorMaxRows
|
|
});
|
|
} else {
|
|
this.txtDataRange.cmpEl.find("input").focus();
|
|
}
|
|
}
|
|
return false;
|
|
},
|
|
onSelectData: function () {
|
|
var me = this;
|
|
if (me.api) {
|
|
var handlerDlg = function (dlg, result) {
|
|
if (result == "ok") {
|
|
me.dataRangeValid = dlg.getSettings();
|
|
me.txtDataRange.setValue(me.dataRangeValid);
|
|
me.txtDataRange.checkValidate();
|
|
}
|
|
};
|
|
var win = new SSE.Views.CellRangeDialog({
|
|
handler: handlerDlg
|
|
}).on("close", function () {
|
|
me.show();
|
|
});
|
|
var xy = me.$window.offset();
|
|
me.hide();
|
|
win.show(xy.left + 160, xy.top + 125);
|
|
win.setSettings({
|
|
api: me.api,
|
|
isRows: (me.cmbDataDirect.getValue() == 0),
|
|
range: (!_.isEmpty(me.txtDataRange.getValue()) && (me.txtDataRange.checkValidate() == true)) ? me.txtDataRange.getValue() : me.dataRangeValid
|
|
});
|
|
}
|
|
},
|
|
onSelectDataLabels: function (obj, rec, e) {
|
|
var disable = rec.value == c_oAscChartDataLabelsPos.none;
|
|
this.chSeriesName.setDisabled(disable);
|
|
this.chCategoryName.setDisabled(disable);
|
|
this.chValue.setDisabled(disable);
|
|
this.txtSeparator.setDisabled(disable);
|
|
},
|
|
show: function () {
|
|
Common.Views.AdvancedSettingsWindow.prototype.show.apply(this, arguments);
|
|
var me = this;
|
|
_.delay(function () {
|
|
me.txtDataRange.cmpEl.find("input").focus();
|
|
},
|
|
50);
|
|
},
|
|
textTitle: "Chart - Advanced Settings",
|
|
textShowValues: "Display chart values",
|
|
textShowBorders: "Display chart borders",
|
|
textLine: "Line",
|
|
textColumn: "Column",
|
|
textBar: "Bar",
|
|
textArea: "Area",
|
|
textPie: "Pie",
|
|
textPoint: "Point",
|
|
textStock: "Stock",
|
|
textDataRows: "in rows",
|
|
textDataColumns: "in columns",
|
|
textDisplayLegend: "Display Legend",
|
|
textLegendBottom: "Bottom",
|
|
textLegendTop: "Top",
|
|
textLegendRight: "Right",
|
|
textLegendLeft: "Left",
|
|
textShowAxis: "Display Axis",
|
|
textShowGrid: "Grid Lines",
|
|
textDataRange: "Data Range",
|
|
textChartTitle: "Chart Title",
|
|
textXAxisTitle: "X Axis Title",
|
|
textYAxisTitle: "Y Axis Title",
|
|
txtEmpty: "This field is required",
|
|
textInvalidRange: "ERROR! Invalid cells range",
|
|
cancelButtonText: "Cancel",
|
|
textTypeStyle: "Chart Type, Style &<br/>Data Range",
|
|
textChartElementsLegend: "Chart Elements &<br/>Chart Legend",
|
|
textLayout: "Layout",
|
|
textLegendPos: "Legend",
|
|
textHorTitle: "Horizontal Axis Title",
|
|
textVertTitle: "Vertical Axis Title",
|
|
textDataLabels: "Data Labels",
|
|
textSeparator: "Data Labels Separator",
|
|
textSeriesName: "Series Name",
|
|
textCategoryName: "Category Name",
|
|
textValue: "Value",
|
|
textAxisOptions: "Axis Options",
|
|
textMinValue: "Minimum Value",
|
|
textMaxValue: "Maximum Value",
|
|
textAxisCrosses: "Axis Crosses",
|
|
textUnits: "Display Units",
|
|
textTickOptions: "Tick Options",
|
|
textMajorType: "Major Type",
|
|
textMinorType: "Minor Type",
|
|
textLabelOptions: "Label Options",
|
|
textLabelPos: "Label Position",
|
|
textReverse: "Values in reverse order",
|
|
textVertAxis: "Vertical Axis",
|
|
textHorAxis: "Horizontal Axis",
|
|
textMarksInterval: "Interval between Marks",
|
|
textLabelDist: "Axis Label Distance",
|
|
textLabelInterval: "Interval between Labels",
|
|
textAxisPos: "Axis Position",
|
|
textLeftOverlay: "Left Overlay",
|
|
textRightOverlay: "Right Overlay",
|
|
textOverlay: "Overlay",
|
|
textNoOverlay: "No Overlay",
|
|
textRotated: "Rotated",
|
|
textHorizontal: "Horizontal",
|
|
textInnerBottom: "Inner Bottom",
|
|
textInnerTop: "Inner Top",
|
|
textOuterTop: "Outer Top",
|
|
textNone: "None",
|
|
textCenter: "Center",
|
|
textFixed: "Fixed",
|
|
textAuto: "Auto",
|
|
textCross: "Cross",
|
|
textIn: "In",
|
|
textOut: "Out",
|
|
textLow: "Low",
|
|
textHigh: "High",
|
|
textNextToAxis: "Next to axis",
|
|
textHundreds: "Hundreds",
|
|
textThousands: "Thousands",
|
|
textTenThousands: "10 000",
|
|
textHundredThousands: "100 000",
|
|
textMillions: "Millions",
|
|
textTenMillions: "10 000 000",
|
|
textHundredMil: "100 000 000",
|
|
textBillions: "Billions",
|
|
textTrillions: "Trillions",
|
|
textCustom: "Custom",
|
|
textManual: "Manual",
|
|
textBetweenTickMarks: "Between Tick Marks",
|
|
textOnTickMarks: "On Tick Marks",
|
|
textHorGrid: "Horizontal Gridlines",
|
|
textVertGrid: "Vertical Gridlines",
|
|
textLines: "Lines",
|
|
textMarkers: "Markers",
|
|
textMajor: "Major",
|
|
textMinor: "Minor",
|
|
textMajorMinor: "Major and Minor",
|
|
textStraight: "Straight",
|
|
textSmooth: "Smooth",
|
|
textType: "Type",
|
|
textTypeData: "Type & Data",
|
|
textStyle: "Style",
|
|
textSelectData: "Select Data",
|
|
textDataSeries: "Data series",
|
|
errorMaxRows: "ERROR! The maximum number of data series per chart is 255.",
|
|
errorStockChart: "Incorrect row order. To build a stock chart place the data on the sheet in the following order:<br> opening price, max price, min price, closing price."
|
|
},
|
|
SSE.Views.ChartSettingsDlg || {}));
|
|
}); |