|
| 1 | +CLASS z2ui5add_cl_cc_websocket DEFINITION |
| 2 | + PUBLIC |
| 3 | + FINAL |
| 4 | + CREATE PUBLIC . |
| 5 | + |
| 6 | + PUBLIC SECTION. |
| 7 | + |
| 8 | + CLASS-METHODS get_js |
| 9 | + RETURNING |
| 10 | + VALUE(result) TYPE string. |
| 11 | + |
| 12 | + PROTECTED SECTION. |
| 13 | + PRIVATE SECTION. |
| 14 | +ENDCLASS. |
| 15 | + |
| 16 | + |
| 17 | + |
| 18 | +CLASS z2ui5add_cl_cc_websocket IMPLEMENTATION. |
| 19 | + |
| 20 | + METHOD get_js. |
| 21 | + |
| 22 | + result = `if (!z2ui5.Timer) {sap.ui.define("z2ui5/Websocket" , [` && |\n| && |
| 23 | + ` "sap/ui/core/Control"` && |\n| && |
| 24 | + `], (Control) => {` && |\n| && |
| 25 | + ` "use strict";` && |\n| && |
| 26 | + |\n| && |
| 27 | + ` return Control.extend("z2ui5.Websocket", {` && |\n| && |
| 28 | + ` metadata : {` && |\n| && |
| 29 | + ` properties: {` && |\n| && |
| 30 | + ` value: {` && |\n| && |
| 31 | + ` type: "string",` && |\n| && |
| 32 | + ` defaultValue: ""` && |\n| && |
| 33 | + ` },` && |\n| && |
| 34 | + ` path: {` && |\n| && |
| 35 | + ` type: "string",` && |\n| && |
| 36 | + ` defaultValue: "` && z2ui5add_cl_ws_channel_wrapper=>cv_ws_path && `"` && |\n| && |
| 37 | + ` },` && |\n| && |
| 38 | + ` checkActive: {` && |\n| && |
| 39 | + ` type: "boolean",` && |\n| && |
| 40 | + ` defaultValue: true` && |\n| && |
| 41 | + ` },` && |\n| && |
| 42 | + ` checkRepeat: {` && |\n| && |
| 43 | + ` type: "boolean",` && |\n| && |
| 44 | + ` defaultValue: false` && |\n| && |
| 45 | + ` },` && |\n| && |
| 46 | + ` },` && |\n| && |
| 47 | + ` events: {` && |\n| && |
| 48 | + ` "received": { ` && |\n| && |
| 49 | + ` allowPreventDefault: true,` && |\n| && |
| 50 | + ` parameters: {},` && |\n| && |
| 51 | + ` }` && |\n| && |
| 52 | + ` }` && |\n| && |
| 53 | + ` },` && |\n| && |
| 54 | + ` onAfterRendering() {` && |\n| && |
| 55 | + ` },` && |\n| && |
| 56 | + ` startWebsocket( oControl){` && |\n| && |
| 57 | + ` ` && |\n| && |
| 58 | + ` if ( oControl.getProperty("checkActive") == false ){ return; }` && |\n| && |
| 59 | + ` if ( oControl?.isActive == true ){ return; }` && |\n| && |
| 60 | + ` oControl.isActive = true;` && |\n| && |
| 61 | + ` oControl.ws = new WebSocket(` && |\n| && |
| 62 | + ` "ws://" + window.location.host + oControl.getProperty("path")` && |\n| && |
| 63 | + ` );` && |\n| && |
| 64 | + |\n| && |
| 65 | + ` oControl.ws.onopen = function() {` && |\n| && |
| 66 | + ` alert("WebSocket opened");` && |\n| && |
| 67 | + ` };` && |\n| && |
| 68 | + |\n| && |
| 69 | + ` oControl.ws.onmessage = function (msg) {` && |\n| && |
| 70 | + ` oControl.setValue(msg.data);` && |\n| && |
| 71 | + ` oControl.fireReceived();` && |\n| && |
| 72 | + ` };` && |\n| && |
| 73 | + |\n| && |
| 74 | + ` oControl.ws.onclose = function() {` && |\n| && |
| 75 | + ` oControl.isActive = false;` && |\n| && |
| 76 | + ` alert("WebSocket closed");` && |\n| && |
| 77 | + ` };` && |\n| && |
| 78 | + |\n| && |
| 79 | + ` oControl.ws.onerror = function() {` && |\n| && |
| 80 | + ` alert("WebSocket-Error");` && |\n| && |
| 81 | + ` };` && |\n| && |
| 82 | + ` },` && |\n| && |
| 83 | + ` renderer(oRm, oControl) {` && |\n| && |
| 84 | + ` oControl.startWebsocket( oControl );` && |\n| && |
| 85 | + ` }` && |\n| && |
| 86 | + ` });` && |\n| && |
| 87 | + `}); }`. |
| 88 | + |
| 89 | + ENDMETHOD. |
| 90 | +ENDCLASS. |
0 commit comments