UNPKG

kekule

Version:

Open source JavaScript toolkit for chemoinformatics

67 lines (63 loc) 2.14 kB
/** * @fileoverview * Operations for property modifications in object inspector. * @author Partridge Jiang */ /* * requires /lan/classes.js * requires /utils/kekule.utils.js * requires /widgets/operation/kekule.operations.js * requires /widgets/advCtrls/objInspector/kekule.widget.propEditors.js * requires /localization/ */ (function(){ "use strict" /** * Operation of change a property by property editor in object inspector. * @class * @augments Kekule.Operation * * @param {Kekule.PropertyEditor.BaseEditor} propEditor Target property editor. * @param {Variant} newValue New value set to property editor. * @param {Variant} oldValue Old value of property. * * @property {Kekule.PropertyEditor.BaseEditor} propEditor Target property editor. * @property {Variant} newValue New value set to property editor. * @property {Variant} oldValue Old value of property. * If not set, this value will be caculated automatically when setting new value. */ Kekule.Widget.PropEditorModifyOperation = Class.create(Kekule.Operation, /** @lends Kekule.Widget.PropEditorModifyOperation# */ { /** @private */ CLASS_NAME: 'Kekule.Widget.PropEditorModifyOperation', /** @constructs */ initialize: function(/*$super, */propEditor, newValue, oldValue) { this.tryApplySuper('initialize') /* $super() */; this.setPropEditor(propEditor); this.setNewValue(newValue); this.setOldValue(oldValue); }, /** @private */ initProperties: function() { this.defineProp('propEditor', {'dataType': 'Kekule.PropertyEditor.BaseEditor', 'serializable': false}); this.defineProp('newValue', {'dataType': DataType.VARIANT, 'serializable': false}); this.defineProp('oldValue', {'dataType': DataType.VARIANT, 'serializable': false}); }, /** @private */ doExecute: function() { var propEditor = this.getPropEditor(); if (this.getOldValue() === undefined) this.setOldValue(propEditor.getValue()); propEditor.setValue(this.getNewValue()); }, /** @private */ doReverse: function() { this.getPropEditor().setValue(this.getOldValue()); } }); })();