From 9d5b52979f5ecdd760efbf0e1db24c40ad2791f3 Mon Sep 17 00:00:00 2001
From: Tobias Moebert <moebert@uni-potsdam.de>
Date: Thu, 12 Mar 2015 17:13:49 +0100
Subject: [PATCH] # [Aggregator] addWidgetSubscription -> now takes a widget as
 a single argument (additionally to the existing way of taking a widget handle
 and a callback list)

---
 dist/contactJS.js                   | 20 +++++++++++++-------
 js/modules/aggregator/aggregator.js | 20 +++++++++++++-------
 2 files changed, 26 insertions(+), 14 deletions(-)

diff --git a/dist/contactJS.js b/dist/contactJS.js
index f7ae694..99f43bf 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 3e88cc2..11fcce2 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);
                 }
             }
         },
-- 
GitLab