code: function (oContPos, oPopover, oViewport) {
  			this.getPopover().setShowArrow(false);
  			var oPos = {};
  
  			if (oViewport.height - 10 - oContPos.y >= oPopover.height) {
  				oPos.top = oContPos.y;
  				this.getPopover().setPlacement("Bottom");
  			} else if (oContPos.y >= oPopover.height) {
  				oPos.top = oContPos.y;
  				this.getPopover().setPlacement("Top");
  			} else {
  				oPos.top = oViewport.height - oPopover.height;
  				this.getPopover().setPlacement("Bottom");
  			}
  
  			if (oViewport.width - oContPos.x >= oPopover.width) {
  				oPos.left = oContPos.x;
  			} else if (oContPos.x >= oPopover.width) {
  				oPos.left = oContPos.x - oPopover.width / 2;
  			} else {
  				oPos.left = oViewport.width - oPopover.width;
  			}
  
  			return oPos;
  		}
docs: Works out how the ContextMenu shall be placed
  @param {object} oContPos the context menu position
  @param {object} oPopover the dimensions of the popover
  @param {object} oViewport the dimensions of the viewport
  @return {object} the position of the "fakeDiv"