You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by li...@apache.org on 2010/01/01 19:56:19 UTC

svn commit: r895054 - in /incubator/shindig/trunk: features/src/main/javascript/features/pubsub/ javascript/samplecontainer/ javascript/samplecontainer/examples/

Author: lindner
Date: Fri Jan  1 18:56:18 2010
New Revision: 895054

URL: http://svn.apache.org/viewvc?rev=895054&view=rev
Log:
SHINDIG-1249 | Patch from Tim Thelin | Allow a container to publish messages to gadgets using pubsub

Added:
    incubator/shindig/trunk/javascript/samplecontainer/examples/ContainerPublish.xml
Modified:
    incubator/shindig/trunk/features/src/main/javascript/features/pubsub/pubsub-router.js
    incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html
    incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.js

Modified: incubator/shindig/trunk/features/src/main/javascript/features/pubsub/pubsub-router.js
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/features/src/main/javascript/features/pubsub/pubsub-router.js?rev=895054&r1=895053&r2=895054&view=diff
==============================================================================
--- incubator/shindig/trunk/features/src/main/javascript/features/pubsub/pubsub-router.js (original)
+++ incubator/shindig/trunk/features/src/main/javascript/features/pubsub/pubsub-router.js Fri Jan  1 18:56:18 2010
@@ -37,7 +37,7 @@
 
   function router(command, channel, message) {
     var gadgetId = this.f;
-    var sender = gadgetIdToSpecUrl(gadgetId);
+    var sender = gadgetId === '..' ? 'container' : gadgetIdToSpecUrl(gadgetId);
     if (sender) {
       switch (command) {
       case 'subscribe':
@@ -101,6 +101,15 @@
       }
       gadgetIdToSpecUrl = gadgetIdToSpecUrlHandler;
       gadgets.rpc.register('pubsub', router);
+    },
+
+    /**
+     * Publishes a message to a channel.
+     * @param {string} channel Channel name.
+     * @param {string} message Message to publish.
+     */
+    publish: function(channel, message) {
+      router.call({f: '..'}, 'publish', channel, message);
     }
   };
 }();

Added: incubator/shindig/trunk/javascript/samplecontainer/examples/ContainerPublish.xml
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/javascript/samplecontainer/examples/ContainerPublish.xml?rev=895054&view=auto
==============================================================================
--- incubator/shindig/trunk/javascript/samplecontainer/examples/ContainerPublish.xml (added)
+++ incubator/shindig/trunk/javascript/samplecontainer/examples/ContainerPublish.xml Fri Jan  1 18:56:18 2010
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Module>
+  <ModulePrefs title="Container Publish Example">
+    <Require feature="pubsub"></Require>
+  </ModulePrefs>
+
+  <Content type="html" view="default">
+    <![CDATA[
+      <div>Container Message: <span id="message_display"></span></div>
+
+      <script type="text/javascript">
+        function handleHelloWorld(sender, message) {
+          document.getElementById('message_display').appendChild(
+              document.createTextNode(message))
+        }
+
+        gadgets.pubsub.subscribe('helloworld', handleHelloWorld);
+      </script>
+    ]]>
+  </Content>
+</Module>

Modified: incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html?rev=895054&r1=895053&r2=895054&view=diff
==============================================================================
--- incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html (original)
+++ incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html Fri Jan  1 18:56:18 2010
@@ -51,7 +51,7 @@
 
 </style>
 
-<script type="text/javascript" src="../../js/core:rpc?debug=1"></script>
+<script type="text/javascript" src="../../js/core:rpc:pubsub?c=1&debug=1"></script>
 <script type="text/javascript" src="../container/cookies.js"></script>
 <script type="text/javascript" src="../container/util.js"></script>
 <script type="text/javascript" src="../container/gadgets.js"></script>
@@ -87,6 +87,7 @@
 
       <input type="button" value="reset all" onclick="shindig.samplecontainer.changeGadgetUrl();"/>
       <input type="button" value="dump state" onclick="shindig.samplecontainer.dumpStateFile();"/>
+      <input type="button" value="Send Hello" onclick="shindig.samplecontainer.sendHello();"/>
     </div>
     <div style="clear:both; height: 1px;">&nbsp;</div>
   </div>

Modified: incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.js
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.js?rev=895054&r1=895053&r2=895054&view=diff
==============================================================================
--- incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.js (original)
+++ incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.js Fri Jan  1 18:56:18 2010
@@ -209,6 +209,7 @@
      if (cacheUrlMatches && cacheUrlMatches[1] == "0") {
        document.getElementById("useCacheCheckbox").checked = false;
      }
+     gadgets.pubsubrouter.init(function() { return gadgetUrl; });
   };
 
   shindig.samplecontainer.initGadget = function() {
@@ -273,6 +274,10 @@
     );
   };
 
+  shindig.samplecontainer.sendHello = function() {
+    gadgets.pubsubrouter.publish('helloworld', 'hello from the container');
+  };
+
   osapi.messages = {};
   osapi.messages.requestSend = function(request, callback) {
     alert("osapi.messages.requestSend called");