| /////////////////////////////////////////////////////////////////////////////// |
| // Copyright (c) 2000-2017 Ericsson Telecom AB // |
| // // |
| // All rights reserved. This program and the accompanying materials // |
| // are made available under the terms of the Eclipse Public License v1.0 // |
| // which accompanies this distribution, and is available at // |
| // http://www.eclipse.org/legal/epl-v10.html // |
| /////////////////////////////////////////////////////////////////////////////// |
| /** App specific runtime behaviour */ |
| |
| function CViewModel(aDsRestAPI) |
| { |
| /** private members */ |
| var mDsRestAPI = aDsRestAPI; |
| var mAppMain; |
| var mRequest = null; |
| |
| /** constructor */ |
| |
| /** public functions */ |
| this.setAppMain = function(aAppMain) |
| { |
| mAppMain = aAppMain; |
| } |
| |
| this.getRequest = function() |
| { |
| return mRequest; |
| } |
| |
| this.getChangedData = function(aHandler) |
| { |
| if (mRequest != null) |
| mDsRestAPI.getList(mRequest, aHandler); |
| } |
| |
| this.getHelp = function(aHandler) |
| { |
| var lHandler = aHandler; // not thread-safe |
| function l_got_help(aData) |
| { |
| var lData = JSON.parse(hex2a(aData.node.val)); |
| var lRqJSONStr = convertHelpToJsTreeData(lData.sources); |
| lHandler(lRqJSONStr); |
| } |
| mDsRestAPI.getData("DataSource", "", "help", [{"paramName": "Format", "paramValue": "JSON"}], l_got_help); |
| } |
| |
| this.exit = function() |
| { |
| function l_set_exitInfo(aData) |
| {} |
| function l_got_exitInfo(aData) |
| { |
| mDsRestAPI.setData("ExecCtrl", undefined, "Exit", undefined, "" + (parseInt(aData.node.val) + 1), [], aData.node.tp, l_set_exitInfo); |
| } |
| mDsRestAPI.getData("ExecCtrl", "", "Exit", [], l_got_exitInfo); |
| } |
| |
| /** private functions */ |
| function hex2a(hex) |
| { |
| var str = ''; |
| for (var i = 0; i < hex.length; i += 2) |
| str += String.fromCharCode(parseInt(hex.substr(i, 2), 16)); |
| return str; |
| } |
| |
| function replaceAll(str, str1, str2) |
| { |
| var index = str.indexOf( str1 ); |
| while (index != -1) |
| { |
| str = str.replace(str1, str2); |
| index = str.indexOf(str1); |
| } |
| return str; |
| } |
| |
| function convertHelpToJsTreeData(aData) |
| { |
| var result = '['; |
| for (var i = 0; i < aData.length; i++) |
| { |
| var lChildrenStr = ''; |
| |
| if (aData[i].children != undefined && aData[i].children.length > 0) |
| lChildrenStr = convertHelpToJsTreeData(aData[i].children); |
| else if (aData[i].dataElements != undefined && aData[i].dataElements.length > 0) |
| lChildrenStr = convertHelpToJsTreeData(aData[i].dataElements); |
| |
| if (aData[i].dataElement != undefined) |
| result += '{"text":"' + aData[i].dataElement.name + '"'; |
| else |
| result += '{"text":"' + aData[i].source + '"'; |
| |
| var lInfo = "No description"; |
| if (aData[i].dataElement != undefined) |
| { |
| lInfo = JSON.stringify(aData[i].dataElement, null, 4); |
| lInfo = replaceAll(lInfo , '\n', "\\n"); |
| lInfo = replaceAll(lInfo , '\\"', "'"); |
| lInfo = replaceAll(lInfo , '"', "'"); |
| } |
| result += ',"data":"' + lInfo + '"'; |
| if (lChildrenStr != '') |
| result += ',"children":' + lChildrenStr; |
| result += "}"; |
| if (i < aData.length - 1) |
| result += ","; |
| } |
| result[result.length - 1] = " "; |
| result += "]"; |
| return result; |
| } |
| |
| // function convertRequestToJsTreeData(aData) |
| // { |
| // var result = '['; |
| // for (var i = 0; i < aData.length; i++) |
| // { |
| // var lChildrenStr = ''; |
| // if (aData[i].getData.children != undefined && aData[i].getData.children.length > 0) |
| // lChildrenStr = convertRequestToJsTreeData(aData[i].getData.children); |
| // result += '{"text":"' + aData[i].getData.element + '"'; |
| // if (lChildrenStr != '') |
| // result += ',"children":' + lChildrenStr; |
| // result += "}"; |
| // if (i < aData.length - 1) |
| // result += ","; |
| // } |
| // result[result.length - 1] = " "; |
| // result += "]"; |
| // return result; |
| // } |
| } |