[SSE] Slicer settings: set position, lock size controls.

This commit is contained in:
Julia Radzhabova 2020-05-29 19:21:19 +03:00
parent 84ef09df8b
commit 6d4113fe3e

View file

@ -80,10 +80,12 @@ define([
SortOrder: Asc.ST_tabularSlicerCacheSortOrder.Ascending, SortOrder: Asc.ST_tabularSlicerCacheSortOrder.Ascending,
IndNoData: false, IndNoData: false,
ShowNoData: false, ShowNoData: false,
HideNoData: false HideNoData: false,
DisabledSizeControls: false
}; };
this.spinners = []; this.spinners = [];
this.lockedControls = []; this.lockedControls = [];
this.sizeControls = [];
this._locked = false; this._locked = false;
this._noApply = false; this._noApply = false;
@ -135,7 +137,7 @@ define([
minValue: 0 minValue: 0
}); });
this.spinners.push(this.spnWidth); this.spinners.push(this.spnWidth);
this.lockedControls.push(this.spnWidth); this.sizeControls.push(this.spnWidth);
this.spnHeight = new Common.UI.MetricSpinner({ this.spnHeight = new Common.UI.MetricSpinner({
el: $('#slicer-spin-height'), el: $('#slicer-spin-height'),
@ -147,7 +149,7 @@ define([
minValue: 0 minValue: 0
}); });
this.spinners.push(this.spnHeight); this.spinners.push(this.spnHeight);
this.lockedControls.push(this.spnHeight); this.sizeControls.push(this.spnHeight);
this.btnRatio = new Common.UI.Button({ this.btnRatio = new Common.UI.Button({
parentEl: $('#slicer-button-ratio'), parentEl: $('#slicer-button-ratio'),
@ -157,7 +159,7 @@ define([
enableToggle: true, enableToggle: true,
hint: this.textKeepRatio hint: this.textKeepRatio
}); });
this.lockedControls.push(this.btnRatio); this.sizeControls.push(this.btnRatio);
this.btnRatio.on('click', _.bind(function(btn, e) { this.btnRatio.on('click', _.bind(function(btn, e) {
if (btn.pressed && this.spnHeight.getNumberValue()>0) { if (btn.pressed && this.spnHeight.getNumberValue()>0) {
@ -169,6 +171,7 @@ define([
this.api.asc_setGraphicObjectProps(this._originalProps); this.api.asc_setGraphicObjectProps(this._originalProps);
} }
} }
Common.NotificationCenter.trigger('edit:complete', this);
}, this)); }, this));
this.spnWidth.on('change', _.bind(this.onWidthChange, this)); this.spnWidth.on('change', _.bind(this.onWidthChange, this));
@ -186,7 +189,7 @@ define([
minValue: 0 minValue: 0
}); });
this.spinners.push(this.spnHor); this.spinners.push(this.spnHor);
this.lockedControls.push(this.spnHor); this.sizeControls.push(this.spnHor);
this.spnVert = new Common.UI.MetricSpinner({ this.spnVert = new Common.UI.MetricSpinner({
el: $('#slicer-spin-vert'), el: $('#slicer-spin-vert'),
@ -198,10 +201,10 @@ define([
minValue: 0 minValue: 0
}); });
this.spinners.push(this.spnVert); this.spinners.push(this.spnVert);
this.lockedControls.push(this.spnVert); this.sizeControls.push(this.spnVert);
// this.spnHor.on('change', _.bind(this.onHorChange, this)); this.spnHor.on('change', _.bind(this.onHorChange, this));
// this.spnVert.on('change', _.bind(this.onVertChange, this)); this.spnVert.on('change', _.bind(this.onVertChange, this));
this.spnHor.on('inputleave', function(){ Common.NotificationCenter.trigger('edit:complete', me);}); this.spnHor.on('inputleave', function(){ Common.NotificationCenter.trigger('edit:complete', me);});
this.spnVert.on('inputleave', function(){ Common.NotificationCenter.trigger('edit:complete', me);}); this.spnVert.on('inputleave', function(){ Common.NotificationCenter.trigger('edit:complete', me);});
@ -223,7 +226,7 @@ define([
minValue: 0 minValue: 0
}); });
this.spinners.push(this.spnColWidth); this.spinners.push(this.spnColWidth);
this.lockedControls.push(this.spnColWidth); this.sizeControls.push(this.spnColWidth);
this.spnColHeight = new Common.UI.MetricSpinner({ this.spnColHeight = new Common.UI.MetricSpinner({
el: $('#slicer-spin-col-height'), el: $('#slicer-spin-col-height'),
@ -235,7 +238,7 @@ define([
minValue: 0 minValue: 0
}); });
this.spinners.push(this.spnColHeight); this.spinners.push(this.spnColHeight);
this.lockedControls.push(this.spnColHeight); this.sizeControls.push(this.spnColHeight);
this.numCols = new Common.UI.MetricSpinner({ this.numCols = new Common.UI.MetricSpinner({
el: $('#slicer-spin-cols'), el: $('#slicer-spin-cols'),
@ -248,7 +251,7 @@ define([
maxValue: 20000, maxValue: 20000,
minValue: 1 minValue: 1
}); });
this.lockedControls.push(this.numCols); this.sizeControls.push(this.numCols);
this.spnColWidth.on('change', _.bind(this.onColWidthChange, this)); this.spnColWidth.on('change', _.bind(this.onColWidthChange, this));
this.spnColHeight.on('change', _.bind(this.onColHeightChange, this)); this.spnColHeight.on('change', _.bind(this.onColHeightChange, this));
@ -271,6 +274,7 @@ define([
this._originalProps.asc_getSlicerProperties().asc_setSortOrder(Asc.ST_tabularSlicerCacheSortOrder.Ascending); this._originalProps.asc_getSlicerProperties().asc_setSortOrder(Asc.ST_tabularSlicerCacheSortOrder.Ascending);
this.api.asc_setGraphicObjectProps(this._originalProps); this.api.asc_setGraphicObjectProps(this._originalProps);
} }
Common.NotificationCenter.trigger('edit:complete', this);
} }
}, this)); }, this));
this.lockedControls.push(this.radioAsc); this.lockedControls.push(this.radioAsc);
@ -287,6 +291,7 @@ define([
this._originalProps.asc_getSlicerProperties().asc_setSortOrder(Asc.ST_tabularSlicerCacheSortOrder.Descending); this._originalProps.asc_getSlicerProperties().asc_setSortOrder(Asc.ST_tabularSlicerCacheSortOrder.Descending);
this.api.asc_setGraphicObjectProps(this._originalProps); this.api.asc_setGraphicObjectProps(this._originalProps);
} }
Common.NotificationCenter.trigger('edit:complete', this);
} }
}, this)); }, this));
this.lockedControls.push(this.radioDesc); this.lockedControls.push(this.radioDesc);
@ -297,13 +302,11 @@ define([
}); });
this.chHideNoData.on('change', _.bind(function(field, newValue, oldValue, eOpts){ this.chHideNoData.on('change', _.bind(function(field, newValue, oldValue, eOpts){
var checked = (field.getValue()=='checked'); var checked = (field.getValue()=='checked');
this.chIndNoData.setDisabled(checked);
this.chShowNoData.setDisabled(checked || (this.chIndNoData.getValue()!='checked'));
this.chShowDel.setDisabled(checked);
if (this._originalProps && this.api) { if (this._originalProps && this.api) {
this._originalProps.asc_getSlicerProperties().asc_setHideItemsWithNoData(checked); this._originalProps.asc_getSlicerProperties().asc_setHideItemsWithNoData(checked);
this.api.asc_setGraphicObjectProps(this._originalProps); this.api.asc_setGraphicObjectProps(this._originalProps);
} }
Common.NotificationCenter.trigger('edit:complete', this);
}, this)); }, this));
this.lockedControls.push(this.chHideNoData); this.lockedControls.push(this.chHideNoData);
@ -313,11 +316,11 @@ define([
}); });
this.chIndNoData.on('change', _.bind(function(field, newValue, oldValue, eOpts){ this.chIndNoData.on('change', _.bind(function(field, newValue, oldValue, eOpts){
var checked = (field.getValue()=='checked'); var checked = (field.getValue()=='checked');
this.chShowNoData.setDisabled(!checked);
if (this._originalProps && this.api) { if (this._originalProps && this.api) {
this._originalProps.asc_getSlicerProperties().asc_setIndicateItemsWithNoData(checked); this._originalProps.asc_getSlicerProperties().asc_setIndicateItemsWithNoData(checked);
this.api.asc_setGraphicObjectProps(this._originalProps); this.api.asc_setGraphicObjectProps(this._originalProps);
} }
Common.NotificationCenter.trigger('edit:complete', this);
}, this)); }, this));
this.lockedControls.push(this.chIndNoData); this.lockedControls.push(this.chIndNoData);
@ -331,6 +334,7 @@ define([
this._originalProps.asc_getSlicerProperties().asc_setShowItemsWithNoDataLast(field.getValue()=='checked'); this._originalProps.asc_getSlicerProperties().asc_setShowItemsWithNoDataLast(field.getValue()=='checked');
this.api.asc_setGraphicObjectProps(this._originalProps); this.api.asc_setGraphicObjectProps(this._originalProps);
} }
Common.NotificationCenter.trigger('edit:complete', this);
}, this)); }, this));
this.lockedControls.push(this.chShowNoData); this.lockedControls.push(this.chShowNoData);
@ -387,7 +391,6 @@ define([
me.api.asc_setGraphicObjectProps(value.imageProps); me.api.asc_setGraphicObjectProps(value.imageProps);
} }
} }
Common.NotificationCenter.trigger('edit:complete', me); Common.NotificationCenter.trigger('edit:complete', me);
} }
})).show(); })).show();
@ -402,8 +405,6 @@ define([
if (this._initSettings) if (this._initSettings)
this.createDelayedElements(); this.createDelayedElements();
this.disableControls(this._locked);
if (props ){ if (props ){
this._originalProps = new Asc.asc_CImgProperty(props); this._originalProps = new Asc.asc_CImgProperty(props);
@ -430,7 +431,19 @@ define([
this._state.keepRatio=value; this._state.keepRatio=value;
} }
value = props.get_Position();
if (value) {
var Position = {X: value.get_X(), Y: value.get_Y()};
this.spnHor.setValue((Position.X !== null && Position.X !== undefined) ? Common.Utils.Metric.fnRecalcFromMM(Position.X) : '', true);
this.spnVert.setValue((Position.Y !== null && Position.Y !== undefined) ? Common.Utils.Metric.fnRecalcFromMM(Position.Y) : '', true);
} else {
this.spnHor.setValue('', true);
this.spnVert.setValue('', true);
}
var slicerprops = props.asc_getSlicerProperties(); var slicerprops = props.asc_getSlicerProperties();
this.disableControls(this._locked, slicerprops ? slicerprops.asc_getLockedPosition() : false);
if (slicerprops) { if (slicerprops) {
value = slicerprops.asc_getColumnCount(); value = slicerprops.asc_getColumnCount();
if ( Math.abs(this._state.ColCount-value)>0.1 || if ( Math.abs(this._state.ColCount-value)>0.1 ||
@ -470,19 +483,13 @@ define([
this._isTemplatesChanged = false; this._isTemplatesChanged = false;
value = slicerprops.asc_getLockedPosition(); value = slicerprops.asc_getLockedPosition();
if ( this._state.PosLocked!==value ) {
this.chLock.setValue((value !== null && value !== undefined) ? !!value : 'indeterminate', true); this.chLock.setValue((value !== null && value !== undefined) ? !!value : 'indeterminate', true);
this._state.PosLocked=value;
}
// depends of data type // depends of data type
// this.radioAsc.setCaption(this.textAsc + ' (' + this.textAZ + ')' ); // this.radioAsc.setCaption(this.textAsc + ' (' + this.textAZ + ')' );
// this.radioDesc.setCaption(this.textDesc + ' (' + this.textZA + ')' ); // this.radioDesc.setCaption(this.textDesc + ' (' + this.textZA + ')' );
value = slicerprops.asc_getSortOrder(); value = slicerprops.asc_getSortOrder();
if ( this._state.SortOrder!==value ) {
(value==Asc.ST_tabularSlicerCacheSortOrder.Ascending) ? this.radioAsc.setValue(true, true) : this.radioDesc.setValue(true, true); (value==Asc.ST_tabularSlicerCacheSortOrder.Ascending) ? this.radioAsc.setValue(true, true) : this.radioDesc.setValue(true, true);
this._state.SortOrder=value;
}
value = slicerprops.asc_getIndicateItemsWithNoData(); value = slicerprops.asc_getIndicateItemsWithNoData();
if ( this._state.IndNoData!==value ) { if ( this._state.IndNoData!==value ) {
@ -502,9 +509,9 @@ define([
this._state.HideNoData=value; this._state.HideNoData=value;
} }
this.chIndNoData.setDisabled(value); this.chIndNoData.setDisabled(value || this._locked);
this.chShowNoData.setDisabled(value || (this.chIndNoData.getValue()!='checked')); this.chShowNoData.setDisabled(value || (this.chIndNoData.getValue()!='checked') || this._locked);
this.chShowDel.setDisabled(value); this.chShowDel.setDisabled(value || this._locked);
// value = slicerprops.asc_getShowDeleted(); // value = slicerprops.asc_getShowDeleted();
// if ( this._state.ShowDel!==value ) { // if ( this._state.ShowDel!==value ) {
@ -534,6 +541,7 @@ define([
this.api.asc_setGraphicObjectProps(this._originalProps); this.api.asc_setGraphicObjectProps(this._originalProps);
} }
} }
Common.NotificationCenter.trigger('edit:complete', this);
}, },
onHeightChange: function(field, newValue, oldValue, eOpts){ onHeightChange: function(field, newValue, oldValue, eOpts){
@ -554,6 +562,39 @@ define([
this.api.asc_setGraphicObjectProps(this._originalProps); this.api.asc_setGraphicObjectProps(this._originalProps);
} }
} }
Common.NotificationCenter.trigger('edit:complete', this);
},
onHorChange: function(field, newValue, oldValue, eOpts){
var Position = new Asc.CPosition();
if (field.getValue() !== '')
Position.put_X(Common.Utils.Metric.fnRecalcToMM(field.getNumberValue()));
if (this.spnVert.getValue() !== '')
Position.put_Y(Common.Utils.Metric.fnRecalcToMM(this.spnVert.getNumberValue()));
if (this.api) {
if (this._originalProps) {
this._originalProps.put_Position(Position);
this.api.asc_setGraphicObjectProps(this._originalProps);
}
}
Common.NotificationCenter.trigger('edit:complete', this);
},
onVertChange: function(field, newValue, oldValue, eOpts){
var Position = new Asc.CPosition();
if (this.spnHor.getValue() !== '')
Position.put_X(Common.Utils.Metric.fnRecalcToMM(this.spnHor.getNumberValue()));
if (field.getValue() !== '')
Position.put_Y(Common.Utils.Metric.fnRecalcToMM(field.getNumberValue()));
if (this.api) {
if (this._originalProps) {
this._originalProps.put_Position(Position);
this.api.asc_setGraphicObjectProps(this._originalProps);
}
}
Common.NotificationCenter.trigger('edit:complete', this);
}, },
onColWidthChange: function(field, newValue, oldValue, eOpts){ onColWidthChange: function(field, newValue, oldValue, eOpts){
@ -563,6 +604,7 @@ define([
this.api.asc_setGraphicObjectProps(this._originalProps); this.api.asc_setGraphicObjectProps(this._originalProps);
} }
} }
Common.NotificationCenter.trigger('edit:complete', this);
}, },
onColHeightChange: function(field, newValue, oldValue, eOpts){ onColHeightChange: function(field, newValue, oldValue, eOpts){
@ -572,6 +614,7 @@ define([
this.api.asc_setGraphicObjectProps(this._originalProps); this.api.asc_setGraphicObjectProps(this._originalProps);
} }
} }
Common.NotificationCenter.trigger('edit:complete', this);
}, },
onColChange: function(field, newValue, oldValue, eOpts){ onColChange: function(field, newValue, oldValue, eOpts){
@ -581,6 +624,7 @@ define([
this.api.asc_setGraphicObjectProps(this._originalProps); this.api.asc_setGraphicObjectProps(this._originalProps);
} }
} }
Common.NotificationCenter.trigger('edit:complete', this);
}, },
onInitStyles: function(Templates){ onInitStyles: function(Templates){
@ -647,6 +691,7 @@ define([
this._originalProps.asc_getSlicerProperties().asc_setStyle(record.get('type')); this._originalProps.asc_getSlicerProperties().asc_setStyle(record.get('type'));
this.api.asc_setGraphicObjectProps(this._originalProps); this.api.asc_setGraphicObjectProps(this._originalProps);
} }
Common.NotificationCenter.trigger('edit:complete', this);
}, },
onLockSlicerChange: function(field, newValue, oldValue, eOpts){ onLockSlicerChange: function(field, newValue, oldValue, eOpts){
@ -656,15 +701,17 @@ define([
this.api.asc_setGraphicObjectProps(this._originalProps); this.api.asc_setGraphicObjectProps(this._originalProps);
} }
} }
Common.NotificationCenter.trigger('edit:complete', this);
}, },
setLocked: function (locked) { setLocked: function (locked) {
this._locked = locked; this._locked = locked;
}, },
disableControls: function(disable) { disableControls: function(disable, disableSize) {
if (this._initSettings) return; if (this._initSettings) return;
this.disableSizeControls(disable || disableSize);
if (this._state.DisabledControls!==disable) { if (this._state.DisabledControls!==disable) {
this._state.DisabledControls = disable; this._state.DisabledControls = disable;
_.each(this.lockedControls, function(item) { _.each(this.lockedControls, function(item) {
@ -674,6 +721,15 @@ define([
} }
}, },
disableSizeControls: function(disable) {
if (this._state.DisabledSizeControls!==disable) {
this._state.DisabledSizeControls = disable;
_.each(this.sizeControls, function(item) {
item.setDisabled(disable);
});
}
},
textKeepRatio: 'Constant Proportions', textKeepRatio: 'Constant Proportions',
textSize: 'Size', textSize: 'Size',
textWidth: 'Width', textWidth: 'Width',