/** * @private * @author Sergei Lissovski <sergei.lissovski@modera.org> */ Ext.define('MF.activation.executioncontext.NestedExecutionContext', { extend: 'MF.activation.executioncontext.AbstractContext', requires: [ 'MF.Util' ], /** * @param {Object} config */ constructor: function(config) { MF.Util.validateRequiredConfigParams(this, config, ['parentActivity', 'owningActivity']); Ext.apply(this, config); this.callParent(arguments); }, // override bootstrap: function(callback) { var me = this; this.callParent([function() { var ec = me.parentActivity.getExecutionContext(); var activityParams = Ext.clone(ec.getParams(me.parentActivity)); delete activityParams[me.controllingParam]; var params = {}; params[me.owningActivity.getId()] = activityParams; me.stateObject = { section: '', params: params }; me.on('transactioncommitted', function(ec, stateObject, token) { me.parentActivity.getExecutionContext().updateParams( me.parentActivity, stateObject.params[me.owningActivity.getId()] ); }); // TODO if some parameter is for nested activity is changed in URL (in case of BrowserHistoryContext) // then we need to fire "statechanged" event if (Ext.isFunction(callback)) { callback(); } }]); } });