Support toggle+widget buttons in plugin-framework

Change-Id: Ibf2b80efc1eeda2f51dedf4a7f3cd5ac67325ef9
diff --git a/dev/demo/plugin-serverdemo.js b/dev/demo/plugin-serverdemo.js
index 6540591..406ea2b 100644
--- a/dev/demo/plugin-serverdemo.js
+++ b/dev/demo/plugin-serverdemo.js
@@ -17,6 +17,7 @@
     'classes' : [ 'button-icon', 'plugin', 'export' ],
     'onClick' : {
       'action' : 'addWidget',
+      'active' : true,
       'template' : 'http://localhost:3003/demo/plugin-client.html',
       "permissions": [
         "forms",
@@ -51,10 +52,28 @@
       ]
     },
   }]
+},{
+    "name": "Koral-Mapper",
+    "desc": "Mapping Service",
+    "embed": [
+      {
+        "classes": [
+          "termmapper"
+        ],
+      	"onClick" : {
+          "action"     : "setWidget",
+          "active" : false,
+          "template"   : "http://localhost:5725",
+          "permissions": ["forms", "scripts", "downloads"]
+        },
+        "panel": "query",
+        "title": "Map"
+      }
+    ]
 }]; 
 
 
-define(['plugin/server', 'lib/domReady', 'app/en', 'init'], function(pluginClass, domReady) {
+define(['plugin/server', 'pipe', 'lib/domReady', 'app/en', 'init'], function(pluginClass, pipeClass, domReady) {
     domReady(function (event) {
         if (KorAP.Plugin === undefined) {
             // Load Plugin Server first
@@ -62,6 +81,16 @@
             // Add services container to head
             document.head.appendChild(KorAP.Plugin.element());
         };
+
+        if (KorAP.Pipe === undefined) {
+            KorAP.Pipe = pipeClass.create("pipe");
+            let searchF = document.getElementById("searchform");
+            searchF.appendChild(KorAP.Pipe.element());
+
+            KorAP.ResponsePipe = pipeClass.create("response-pipe");
+            searchF.appendChild(KorAP.ResponsePipe.element());
+        };
+
         KorAP.Plugins.forEach(i => KorAP.Plugin.register(i));
     });
 });