Promises with defered
goToCode: function () {
var that = this;
return that._oCurrentOpenedDocument.getContent().then(function (/** string*/sContent) {
var oSelectedControl = that.getCurrentSelectedControl();
var oRange = W5gUtils.xmlNodeToSourceRange(W5gUtils.getXMLNode(oSelectedControl),
W5gUtils.getXMLRootNode(oSelectedControl), sContent);
return that.context.service.document.open(that._oCurrentOpenedDocument).then(function () {
return that.context.service.content.getCurrentEditor().then(function (oCodeEditor) {
return oCodeEditor.getUI5Editor().then(function(oEditor){
var oDeferred = Q.defer();
if (oEditor && oRange){
setTimeout(function(){
oCodeEditor.setHighlight([_.assign(oRange, {isBackwards: false})], "selection");
oDeferred.resolve(oEditor.moveCursorTo(oRange.start.row, 1));
});
}
return oDeferred.promise;
});
});
});
});
}