diff --git a/dist/contactJS.js b/dist/contactJS.js index f7ae694a0d61ae69d8dcfb52ac95a31bfa595fd8..99f43bf4e1628bd0294a0d11f6c01a953d146725 100644 --- a/dist/contactJS.js +++ b/dist/contactJS.js @@ -5423,13 +5423,19 @@ define('aggregator',['easejs', 'MathUuid','widget', 'widgetHandle', 'widgetHandl * @public * @alias addWidgetSubscription * @memberof Aggregator# - * @param {WidgetHandle} _widgetHandle Widget that should be subscribed. - * @param {CallbackList} _callbacks required Callbacks + * @param {WidgetHandle|Widget} _widgetHandleOrWidget Widget that should be subscribed. + * @param {CallbackList} _callbackList required Callbacks */ - 'public addWidgetSubscription' : function(_widgetHandle, _callbackList){ - if(Class.isA(WidgetHandle, _widgetHandle) && Class.isA(CallbackList, _callbackList)){ - var widget = this.discoverer.getComponent(_widgetHandle.getId()); - if(widget && widget.getName() === _widgetHandle.getName()){ + 'public addWidgetSubscription' : function(_widgetHandleOrWidget, _callbackList){ + if (Class.isA(Widget, _widgetHandleOrWidget)) { + if (!_callbackList || !Class.isA(CallbackList, _callbackList)) { + _callbackList = _widgetHandleOrWidget.getCallbackList(); + } + _widgetHandleOrWidget = _widgetHandleOrWidget.getHandle(); + } + if(Class.isA(WidgetHandle, _widgetHandleOrWidget) && Class.isA(CallbackList, _callbackList)){ + var widget = this.discoverer.getComponent(_widgetHandleOrWidget.getId()); + if(widget && widget.getName() === _widgetHandleOrWidget.getName()){ this.subscribeTo(widget, _callbackList); this.callbacks.putAll(_callbackList); var callsList = _callbackList.getItems(); @@ -5441,7 +5447,7 @@ define('aggregator',['easejs', 'MathUuid','widget', 'widgetHandle', 'widgetHandl this.addAttributeType(singleType); } } - this.addWidget(_widgetHandle); + this.addWidget(_widgetHandleOrWidget); } } }, diff --git a/js/modules/aggregator/aggregator.js b/js/modules/aggregator/aggregator.js index 3e88cc2063ee781a32cc07f8cbfeced292d82b83..11fcce22a022216bae0c49106442b347f2453f6a 100644 --- a/js/modules/aggregator/aggregator.js +++ b/js/modules/aggregator/aggregator.js @@ -357,13 +357,19 @@ define(['easejs', 'MathUuid','widget', 'widgetHandle', 'widgetHandleList', * @public * @alias addWidgetSubscription * @memberof Aggregator# - * @param {WidgetHandle} _widgetHandle Widget that should be subscribed. - * @param {CallbackList} _callbacks required Callbacks + * @param {WidgetHandle|Widget} _widgetHandleOrWidget Widget that should be subscribed. + * @param {CallbackList} _callbackList required Callbacks */ - 'public addWidgetSubscription' : function(_widgetHandle, _callbackList){ - if(Class.isA(WidgetHandle, _widgetHandle) && Class.isA(CallbackList, _callbackList)){ - var widget = this.discoverer.getComponent(_widgetHandle.getId()); - if(widget && widget.getName() === _widgetHandle.getName()){ + 'public addWidgetSubscription' : function(_widgetHandleOrWidget, _callbackList){ + if (Class.isA(Widget, _widgetHandleOrWidget)) { + if (!_callbackList || !Class.isA(CallbackList, _callbackList)) { + _callbackList = _widgetHandleOrWidget.getCallbackList(); + } + _widgetHandleOrWidget = _widgetHandleOrWidget.getHandle(); + } + if(Class.isA(WidgetHandle, _widgetHandleOrWidget) && Class.isA(CallbackList, _callbackList)){ + var widget = this.discoverer.getComponent(_widgetHandleOrWidget.getId()); + if(widget && widget.getName() === _widgetHandleOrWidget.getName()){ this.subscribeTo(widget, _callbackList); this.callbacks.putAll(_callbackList); var callsList = _callbackList.getItems(); @@ -375,7 +381,7 @@ define(['easejs', 'MathUuid','widget', 'widgetHandle', 'widgetHandleList', this.addAttributeType(singleType); } } - this.addWidget(_widgetHandle); + this.addWidget(_widgetHandleOrWidget); } } },