shabashj
7/7/2015 - 4:08 PM

Promises with defered

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;
				});
			});
		});
	});
}