diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-04-22 14:02:03 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-04-22 14:02:03 (GMT) |
commit | 1fb6bcf30f954e426f2d3002d14887574fb941dd (patch) | |
tree | 08cff7f2b879c50efe79e3c04d255075522af862 /test/samples/uscxml/templates/mc-html.html | |
parent | 71c334bf4e35559496feac3f3cf00b72ceb88812 (diff) | |
download | uscxml-1fb6bcf30f954e426f2d3002d14887574fb941dd.zip uscxml-1fb6bcf30f954e426f2d3002d14887574fb941dd.tar.gz uscxml-1fb6bcf30f954e426f2d3002d14887574fb941dd.tar.bz2 |
Major refactoring
- Moved tests
- Changes to promela datamodel
- Implemented Trie
Diffstat (limited to 'test/samples/uscxml/templates/mc-html.html')
-rw-r--r-- | test/samples/uscxml/templates/mc-html.html | 348 |
1 files changed, 0 insertions, 348 deletions
diff --git a/test/samples/uscxml/templates/mc-html.html b/test/samples/uscxml/templates/mc-html.html deleted file mode 100644 index 33eac77..0000000 --- a/test/samples/uscxml/templates/mc-html.html +++ /dev/null @@ -1,348 +0,0 @@ -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> - <script type="text/javascript"> - // see http://stackoverflow.com/questions/1206937/javascript-domready - var domLoaded = function(callback) { - /* Internet Explorer */ - /*@cc_on - @if (@_win32 || @_win64) - document.write('<script id="ieScriptLoad" defer src="//:"><\/script>'); - document.getElementById('ieScriptLoad').onreadystatechange = function() { - if (this.readyState == 'complete') { - callback(); - } - }; - @end @*/ - /* Mozilla, Chrome, Opera */ - if (document.addEventListener) { - document.addEventListener('DOMContentLoaded', callback, false); - return; - } - /* Safari, iCab, Konqueror */ - if (/KHTML|WebKit|iCab/i.test(navigator.userAgent)) { - var DOMLoadTimer = setInterval(function () { - if (/loaded|complete/i.test(document.readyState)) { - callback(); - clearInterval(DOMLoadTimer); - } - }, 10); - return; - } - /* Other web browsers */ - window.onload = callback; - }; - - </script> - <script type="text/javascript"> - - function CometSession(options) { - /** - * Support for two-channel asynchronous http communication - */ - for (var key in options) { - if (options.hasOwnProperty(key)) { - this[key] = options[key]; - } - } - var self = this; - - this.xhr = (window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP.3.0")); - this.cometPoll = (window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP.3.0")); - - this.createUUID = function() { - // http://www.ietf.org/rfc/rfc4122.txt - var s = []; - var hexDigits = "0123456789abcdef"; - for (var i = 0; i < 36; i++) { - s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1); - } - s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010 - s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01 - s[8] = s[13] = s[18] = s[23] = "-"; - var uuid = s.join(""); - return uuid; - } - - this.longpoll = function() { - self.cometPoll.onreadystatechange = function() { - if (self.cometPoll.readyState === 4) { - if (self.cometPoll.status !== 200) { - self.longpoll(); - return; - } - self.onRcvd(self.cometPoll); - self.longpoll(); - } - }; - // use token until we have a context - self.cometPoll.open("GET", self.server + (self.query ? "?" + self.query : "")); - self.cometPoll.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); - self.cometPoll.send(null); - }; - - this.post = function(data) { - self.xhr.open("POST", self.server + (self.query ? "?" + self.query : "")); - self.xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); - self.xhr.send(data); - } - } - - </script> - <script type="text/javascript"> - - function MMISession(element, imURL, params) { - // copy all attributes passe as params - for (var key in params) { - if (params.hasOwnProperty(key)) { - this[key] = params[key]; - } - } - var self = this; - - // initialize base class with onData handler - this.__proto__ = new CometSession({ - server: imURL, - onRcvd: function(data) { - var mmiEvent = data.responseXML.documentElement.firstChild; - var handler; - var replier; - switch (mmiEvent.localName) { - case "NewContextResponse": - self.context = mmiEvent.getAttribute("Context"); - self.comet.query = "context=" + self.context; - break; - case "PrepareRequest": - handler = self.onPrepare; - replier = function(attrs) { sendMMIEvent("DoneNotification", attrs) }; - break; - case "StartRequest": - handler = self.onStart; - replier = function(attrs) { sendMMIEvent("StartResponse", attrs) }; - break; - case "CancelRequest": - handler = self.onCancel; - replier = function(attrs) { sendMMIEvent("CancelResponse", attrs) }; - break; - case "PauseRequest": - handler = self.onPause; - replier = function(attrs) { sendMMIEvent("PauseResponse", attrs) }; - break; - case "ResumeRequest": - handler = self.onResume; - replier = function(attrs) { sendMMIEvent("ResumeResponse", attrs) }; - break; - case "ClearContextRequest": - handler = self.onClearContext; - replier = function(attrs) { sendMMIEvent("ClearContextResponse", attrs) }; - break; - case "StatusRequest": - handler = self.onStatus; - replier = function(attrs) { sendMMIEvent("StatusResponse", attrs) }; - break; - case "ExtensionNotification": - handler = self.onExtension; - break; - } - if (typeof handler === "function") { - var rc = handler(mmiEvent); - if (typeof replier === "function") { - if (rc === false) { - replier({ Status: "Failure"}); - } else if (typeof rc === "object") { - replier(rc); - } else { - replier({ Status: "Success"}); - } - } - } - } - }); - this.comet = this.__proto__; - - // get element as an HTML Node - if (typeof(element) === 'string') { - element = document.getElementById(element); - } - - // assign attributes - this.mmiNS = "http://www.w3.org/2008/04/mmi-arch"; - this.comet.query = "token=" + this.createUUID(); - this.element = element; - - this.init = function() { - sendMMIEvent("NewContextRequest"); - self.longpoll(); - } - - // helper function to determine whether something is a html node - var isNode = function(o){ - return ( - typeof Node === "object" ? o instanceof Node : - o && typeof o === "object" && typeof o.nodeType === "number" && typeof o.nodeName==="string" - ); - } - - // helper function to determine whether something is a window - var isWindow = function(o){ - return ( - typeof Window === "object" ? o instanceof Window : - o && typeof o === "object" && typeof o.menubar === "object" - ); - } - - // serialize an object to be send - this.send = function(attr) { - // see also: https://raw.github.com/douglascrockford/JSON-js/master/cycle.js - var data = attr.Data; - // dispatch over thingy type here - if (typeof data === "object") { - var seen = []; - data = JSON.stringify(attr.Data, function(key, val) { - if (isNode(val)) { - // return a selection of attributes - return { - id: val.id, - tagName: val.tagName, - localName: val.localName, - }; - -/* - // return everything that is atomic - this is a lot with all the HTML inside - var nodeAttr = {}; - for (var key in val) { - if ( - key !== "outerHTML" && - val.hasOwnProperty(key) && - typeof val[key] !== "object" && - typeof val[key] !== "function" - ) { - nodeAttr[key] = val[key]; - } - } - return nodeAttr; -*/ - } - if (isWindow(val)) { - return; - } - if (typeof val === "object") { - if (seen.indexOf(val) >= 0) - return; - seen.push(val) - } - return val - }); - - } - attr.Data = data; - sendMMIEvent("ExtensionNotification", attr); - } - - // register event handler if not given per constructor - if(typeof this.onStart !== "function") { - this.onStart = function(mmiEvent) { - var content = mmiEvent.firstChild; - var fromStartRequest = document.importNode(content.firstChild, true); - self.element.appendChild(fromStartRequest); - } - } - if(typeof this.onStatus !== "function") { - this.onStatus = function(mmiEvent) { - return true; - } - } - if(typeof this.onPrepare !== "function") { - this.onPrepare = function(mmiEvent) { - return true; - } - } - if(typeof this.onCancel !== "function") { - this.onCancel = function(mmiEvent) { - return true; - } - } - if(typeof this.onPause !== "function") { - this.onPause = function(mmiEvent) { - return true; - } - } - if(typeof this.onResume !== "function") { - this.onResume = function(mmiEvent) { - return true; - } - } - if(typeof this.onExtension !== "function") { - this.onExtension = function(mmiEvent) { - return true; - } - } - if(typeof this.onClearContext !== "function") { - this.onClearContext = function(mmiEvent) { - return true; - } - } - - if(typeof this.onDone !== "function") { - this.onDone = function(mmiEvent) { - return true; - } - } - - window.onbeforeunload=function(){ - this.onDone(); - sendMMIEvent("DoneNotification", attrs); - }; - - var sendMMIEvent = function(type, attrs) { - if (!attrs) - attrs = {}; - if (!attrs["Source"]) // default for Source - attrs["Source"] = "HTML"; - if (!attrs["Target"]) // default for Target - attrs["Target"] = self.imURL; - if (!attrs["RequestID"]) // default for RequestID - attrs["RequestID"] = self.createUUID(); - var mmiDocument = '<mmi:mmi xmlns:mmi="' + self.mmiNS + '" version="1.0">' + - '<mmi:' + type + ' '; - if (self.context) - mmiDocument += 'mmi:Context="' + self.context + '" '; - for (attr in attrs) { - if (attr === "Data") - continue; - if (attr === "Content") - continue; - mmiDocument += 'mmi:' + attr + '="' + attrs[attr] + '" '; - } - mmiDocument += '>'; - - if (attrs["Data"]) - mmiDocument += '<mmi:Data>' + "\n<![CDATA[\n" + attrs["Data"] + "\n]]>\n" + '</mmi:Data>'; - if (attrs["Content"]) - mmiDocument += '<mmi:Content>' + "\n<![CDATA[\n" + attrs["Content"] + "\n]]>\n" + '</mmi:Content>'; - - mmiDocument += '</mmi:' + type +'></mmi:mmi>', - self.post(mmiDocument); - } - - }; - - </script> - - <script type="text/javascript"> - var mmiSession; - domLoaded(function () { - mmiSession = new MMISession("foo", "${im.url}", { - onExtension : function(mmiEvent) { - console.log(mmiEvent); - } - }); - mmiSession.init(); - }); - </script> - - </head> - <body class="tundra"> - <div id="foo"></div> - </body> -</html> |