Team now has has m_widgets hash, mapping type to widget object.
authorMike Taylor <mike@indexdata.com>
Tue, 15 Apr 2014 15:26:20 +0000 (16:26 +0100)
committerMike Taylor <mike@indexdata.com>
Tue, 15 Apr 2014 15:26:20 +0000 (16:26 +0100)
New method team.registerWidget adds a widget to the register.
New method team.widget returns the widget of a specified type,
or a count if there is more than one such widget.

src/mkws-team.js

index d6fc49f..1ea6a63 100644 (file)
@@ -28,6 +28,7 @@ function team($, teamName) {
     var m_paz; // will be initialised below
     var m_template = {};
     var m_config = mkws.objectInheritingFrom(mkws.config);
+    var m_widgets = {}; // Maps widget-type to object
 
     that.toString = function() { return '[Team ' + teamName + ']'; };
 
@@ -741,6 +742,22 @@ function team($, teamName) {
        return s;
     }
 
+    that.addWidget = function(w) {
+        if (!m_widgets[w.type]) {
+            m_widgets[w.type] = widget;
+            log("Registered '" + w.type + "' widget in team '" + m_teamName + "'");
+        } else if (typeof(m_widgets[w.type]) !== 'number') {
+            m_widgets[w.type] = 2;
+            log("Registered duplicate '" + w.type + "' widget in team '" + m_teamName + "'");
+        } else {
+            m_widgets[w.type] += 1;
+            log("Registered '" + w.type + "' widget #" + m_widgets[w.type] + "' in team '" + m_teamName + "'");
+        }
+    }
+
+    that.widget =function(type) {
+        return m_widgets[type];
+    }
 
     mkwsHtmlAll()