addGroup(sTitle): object
 Adds a new group. 
 In case of success, the done function gets the new added group object. Intention: the page builder adds this group to the end of the home screen. 
 In case of failure, the fail function returns the consistent (i.e. persisted) backend state of all groups. 
Parameters:
| {string} | sTitle |  The title of the new group  | 
Returns:
| {object} |  jQuery.promise object  | 
 addGroupAt(sTitle, iIndex): object
 Adds a new group at a specific location. 
 In case of success, the done function gets the new added group object. Intention: the page builder adds this group to the specific location on the home screen. 
 In case of failure, the fail function returns the consistent (i.e. persisted) backend state of all groups. 
Parameters:
| {string} | sTitle |  The title of the new group  | 
| {integer} | iIndex |  the location of the new group  | 
Returns:
| {object} |  jQuery.promise object  | 
 addTile(oCatalogTile, oGroup?): object
 Adds a tile to a group. 
 If no group is provided then the tile is added to the default group. 
 In case of success, the done function returns the new tile. Intention: the page builder by default puts this tile at the end of the default group. In case of failure, the fail function should return the consistent (i.e. persisted) backend state of the default group. 
Parameters:
| {object} | oCatalogTile |  An 'anonymous' tile from the tile catalog  | 
| {object} | oGroup? |  The target group  | 
Returns:
| {object} |  jQuery.promise object  | 
 getCatalogData(oCatalog): object
 Returns catalog's technical data. 
Parameters:
| {object} | oCatalog |  the catalog  | 
- Since:
 - 1.21.2
 
Returns:
| {object} |  An object that includes the following properties (the list may include additional properties): id: the catalog ID systemId: [remote catalogs] the ID of the remote system remoteId: [remote catalogs] the ID of the catalog in the remote system baseUrl: [remote catalogs] the base URL of the catalog in the remote system 
  | 
 getCatalogError(oCatalog): string
 Returns the catalog's technical error message in case it could not be loaded from the backend. 
Beware: The technical error message is not translated! 
Parameters:
| {object} | oCatalog |  the catalog  | 
- Since:
 - 1.17.1
 
Returns:
| {string} |  The technical error message or undefined if the catalog was loaded properly  | 
 getCatalogId(oCatalog): string
 Returns the catalog's unique identifier 
Parameters:
| {object} | oCatalog |  The catalog  | 
Returns:
 getCatalogs(): object
 Returns the catalogs of the user. 
 Only severe failures make the overall operation fail. If loading of a remote catalog fails, this is handled gracefully by providing a "dummy" empty catalog (with ID instead of title). Use getCatalogError to check if a (remote) catalog could not be loaded from the backend. 
 Progress notifications are sent for each single catalog, i.e. attaching a progress handler gives you the same possibilities as attaching a done handler, but with the advantage of improved responsiveness. 
sap.ushell.Container.getService("LaunchPage").getCatalogs()
  .fail(function (sErrorMessage) { // string
    // handle error situation
  })
  .progress(function (oCatalog) { // object
    // do s.th. with single catalog
  })
  .done(function (aCatalogs) { // object[]
    aCatalogs.forEach(function (oCatalog) {
      // do s.th. with single catalog
    });
  });Returns:
| {object} | jQuery.Deferred object's promise In case of success, an array of black-box catalog objects is provided (which might be empty). In case of failure, an error message is passed. Progress notifications are sent for each single catalog, providing a single black-box catalog object each time.  | 
 getCatalogTileId(oTile): string
 Returns catalog tile's unique identifier. This function may be called for a catalog tile or (since 1.21.0) for a group tile. In the latter case, the function returns the unique identifier of the catalog tile on which the group tile is based. 
Parameters:
| {object} | oTile |  The tile or the catalog tile  | 
Returns:
 getCatalogTileKeywords(oCatalogTile)
 Returns the keywords associated with a catalog tile which can be used to find the catalog tile in a search. Note: getCatalogTileView must be called before this method. Otherwise the keywords may be incomplete. 
Parameters:
| {object} | oCatalogTile |  The catalog tile  | 
 getCatalogTilePreviewIcon(oCatalogTile): string
 Returns preview icon for a catalog tile. 
Parameters:
| {object} | oCatalogTile |  The catalog tile  | 
- Since:
 - 1.16.3
 
Returns:
| {string} |  Preview icon as URL/URI for the catalog tile's underlying application as provided via the "preview" contract  | 
 getCatalogTilePreviewTitle(oCatalogTile): string
 Returns preview title for a catalog tile. 
Parameters:
| {object} | oCatalogTile |  The catalog tile  | 
- Since:
 - 1.16.3
 
Returns:
| {string} |  Preview title for the catalog tile's underlying application as provided via the "preview" contract  | 
 getCatalogTiles(oCatalog): object
 Returns the tiles of a catalog. In case of success, the done function of the returned promise object gets an array of 'anonymous' tiles of the catalog. 
Parameters:
| {object} | oCatalog |  The catalog  | 
Returns:
| {object} |  jQuery.promise object.  | 
 getCatalogTileSize(oCatalogTile): string
 Returns the size of a catalog tile as a string. For example: "1x1", "1x2" 
Parameters:
| {object} | oCatalogTile |  The catalog tile  | 
Returns:
| {string} |  Tile size in units in 1x1 or 1x2 format  | 
 getCatalogTileTags(oCatalogTile)
 Returns the tags associated with a catalog tile which can be used to find the catalog tile in a tag filter. 
Parameters:
| {object} | oCatalogTile |  The catalog tile  | 
 getCatalogTileTargetURL(oCatalogTile): string
 Returns the navigation target URL of a catalog tile. If the catalog tile does not exist, this function implicitly instantiates it using 
getCatalogTileView(oCatalogTile). 
Parameters:
| {object} | oCatalogTile |  The catalog tile  | 
Returns:
| {string} |  The target URL for the catalog tile's underlying application as provided via the "preview" contract  | 
 getCatalogTileTitle(oCatalogTile): string
 Returns the catalog tile's title 
Parameters:
| {object} | oCatalogTile |  The catalog tile  | 
Returns:
 getCatalogTileView(oCatalogTile): object
 Returns the UI5 view or control of a catalog tile 
Parameters:
| {object} | oCatalogTile |  The catalog tile  | 
Returns:
| {object} |  UI5 view or control  | 
 getCatalogTitle(oCatalog): string
 Returns the catalog's title 
Parameters:
| {object} | oCatalog |  The catalog  | 
Returns:
 getDefaultGroup(): object
 Returns the default group of the user. In case of success, the done function gets an 'anonymous' object representing the default group. 
Returns:
| {object} |  jQuery.promise object.  | 
 getGroupId(oGroup): string
 Returns the unique identifier of the given group 
Parameters:
| {object} | oGroup |  The group whose id is returned  | 
Returns:
 getGroups(): object
 Returns the groups of the user. In case of success, the done function gets an array of 'anonymous' groups. The order of the array is the order in which the groups will be displayed to the user. 
Returns:
| {object} |  jQuery.promise object.  | 
 getGroupTiles(oGroup): Array
 Returns an array of 'anonymous' tiles of a group. The order of the array is the order of tiles that will be displayed to the user. 
Parameters:
| {object} | oGroup |  The group whose tiles are returned  | 
Returns:
| {Array} |  The group tiles array  | 
 getGroupTitle(oGroup): string
 Returns the title of the given group. 
Parameters:
| {object} | oGroup |  The group whose title is returned  | 
Returns:
 getLinkTiles(oGroup): Array
 Returns an array of link tiles for a group. The order of the array is the order in which the links will be displayed to the user. 
Parameters:
| {object} | oGroup |  The group whose link tiles are returned  | 
Returns:
| {Array} |  The array of link tiles  | 
 getTileId(oTile): string
 Returns the tile's unique identifier 
Parameters:
Returns:
 getTileSize(oTile): string
 Returns the tile size in the format of 1x1 or 1x2 string 
Parameters:
Returns:
| {string} |  tile size in units in 1x1 format  | 
 getTileTarget(oTile): string
 Returns the tile's navigation target. 
 The navigation target string is used (when assigned to location.hash) for performing a navigation action that eventually opens the application represented by the tile. 
Parameters:
Returns:
 getTileTitle(oTile): string
 Returns the tile's title. 
Parameters:
Returns:
 getTileType(oTile): string
 Returns the tile's type. 
Parameters:
Returns:
 getTileView(oTile): object
 Returns UI5 view or control of the tile. In case of success the done function should return UI5 view or control of the tile. In case of failure the fail function should return nothing. 
Parameters:
Returns:
| {object} |  jQuery.promise object  | 
 isCatalogsValid(): boolean
 Returns whether the catalogs collection previously returned by 
getCatalogs() is still valid. 
 Initially the result is false until getCatalogs() has been called. Later, the result might be false again in case one of the catalogs has been invalidated, e.g. due to adding a tile to a catalog ("Add to catalog" scenario). 
- Since:
 - 1.16.4
 
Returns:
| {boolean} | true in case the catalogs are still valid; false if not  | 
See:
 isGroupLocked(oGroup): boolean
 Checks if a group was marked as locked (meaning the group and its tiles will lack several capabilities such as Rename, Drag&Drop...). 
 Returns true if the group is locked and false if not. 
Parameters:
| {object} | oGroup |  The group to be checked  | 
Returns:
| {boolean} | true if locked; false if not (or as default in case the function was not implemented in the proper adapter).  | 
 isGroupRemovable(oGroup): boolean
 Checks if a group can be removed. 
 Returns true if the group can be removed (i.e. if the given group was created by the user) and false if the group can only be reset. 
Parameters:
| {object} | oGroup |  The group to be checked  | 
Returns:
| {boolean} | true if removable; false if resettable  | 
 moveGroup(oGroup, iNewIndex): object
 Moves a group to a new index (i.e. location). 
 In case of success, the done function is called without any value. Intention: the page builder already moved the page (visible to the user) and if successful - nothing needs to be done. In case of failure, the fail function returns the consistent (i.e. persisted) backend state of all groups. 
Parameters:
| {object} | oGroup |  The group to be moved  | 
| {integer} | iNewIndex |  The new index for the group  | 
Returns:
| {object} |  jQuery.promise object  | 
 moveTile(oTile, iSourceIndex, iTargetIndex, oSourceGroup, oTargetGroup?): object
 Moves a tile within a group or between different groups. 
 In case of success, the done function returns nothing. Intention: the page builder already moved the tile. 
 In case of failure, the fail function returns the consistent (i.e. persisted) backend state of the source group and the target group. The result is in the following format {source:[{},{}], target:[{},{}]}. 
 The source and the target groups tiles are in the form of the @see sap.ushell.services.LaunchPage.getGroupTiles 
Parameters:
| {object} | oTile |  a tile instance to be moved The same object type as the one returned by sap.ushell.services.LaunchPage.getGroupTiles | 
| {integer} | iSourceIndex |  the index in the source group  | 
| {integer} | iTargetIndex |  the target group index, in case this parameter is not supplied we assume the move tile is within the source group using iSourceIndex  | 
| {object} | oSourceGroup |  the source group the tile came from  | 
| {object} | oTargetGroup? |  The same object type as the one returned by sap.ushell.services.LaunchPage.getGroups the target group the tile will be placed in, in case this parameter is not supplied we assume the move tile is within the source group  | 
Returns:
| {object} |  jQuery.promise object  | 
 refreshTile(oTile)
 Triggers a refresh action of a tile. Typically this action is related to the value presented in dynamic tiles 
Parameters:
 registerTileActionsProvider(fnProvider)
 Register an external tile actions provider callback function. 
 The callback has to return an array of actions of the given tile. The callback is triggered when 
Parameters:
| {Object} | fnProvider |  A callback which returns an array of action objects.  | 
of a tile actions provider callback:
    function (oTile){
         return [
                 {
                     text: "Some Action",
                     icon: "sap-icon://action",
                     targetURL: "#SemanticObject-Action"
                 },
                 {
                     text: "Settings",
                     icon: "sap-icon://action-settings",
                     press: function (){
                         //Open settings UI
                     }
                 }
             ];
      }
.
Use Function.prototype.bind() to determine the callback's this or
some of its arguments.
See:
|  sap.ushell.services.LaunchPage.getTileActions is called.   Tile actions are additional operations that can be executed on a tile, and can be provided by external providers.   A tile action is an object with the following properties: text, icon and targetURL or a press handler.   Tile actions should be returned immediately without any additional server access in order to avoid delays in rendering the action list in the browser.   | 
 removeGroup(oGroup, iIndex): object
 Removes a group. 
 In case of success, the done function is called without any value (i.e. input data). Intention: the page builder already removed the page (or hid it from the user) and if successful - nothing needs to be done. 
 In case of failure, the fail function returns the consistent (i.e. persisted) backend state of all groups. 
Parameters:
| {object} | oGroup |  The group to be removed  | 
| {integer} | iIndex |  The index of the group to be removed  | 
Returns:
| {object} |  jQuery.promise object  | 
 removeTile(oTile, oGroup, iIndex): object
 Removes a tile from a group. 
 In case of success, the done function returns the new tile. Intention: the page builder has already 'hidden' (or removed) the tile. 
 In case of failure, the fail function should return the consistent (i.e. persisted) backend state of the group. 
Parameters:
| {object} | oTile |  The tile instance to remove  | 
| {object} | oGroup |  The group from which to remove the tile instance  | 
| {integer} | iIndex |  The tile index  | 
Returns:
| {object} |  jQuery.promise object  | 
 resetGroup(oGroup, iIndex): object
 Resets a group. 
 The reset action is relevant for a group that was assigned to the user by an administrator. The reset action means that the group is set back to the state defined by the administrator, and changes made by the end user (e.g. adding tiles) are removed. A group can be reset multiple times. 
 In case of success, the done function gets the reset group object. 
 In case of failure, or when the given group was created by the user (i.e. can't be reset)- fail handler is called, returning the consistent (i.e. persisted) backend state of all groups. The returned group object is the same as the one returned by @see sap.ushell.services.LaunchPage.getGroups 
Parameters:
| {object} | oGroup |  The group to be reset  | 
| {integer} | iIndex |  The index of the group to be reset  | 
Returns:
| {object} |  jQuery.promise object  | 
 setGroupTitle(sTitle, oGroup): object
 Sets the title of an existing group. 
 In case of success, the done function returns nothing. Intention: the page builder knows the new title, and if successful nothing needs to be done, as the title is already visible to the user. In case of failure, the fail function returns the consistent (i.e. persisted) backend state of the group title, in most cases the old title. 
Parameters:
| {string} | sTitle |  The new title of the group  | 
| {object} | oGroup |  The group whose title is set  | 
Returns:
| {object} |  jQuery.promise object  | 
 setTileVisible(oTile, bNewVisible)
 Sets the tile's visibility state and notifies the tile about the change. 
Parameters:
| {object} | oTile |  The tile  | 
| {boolean} | bNewVisible |  The tile's required visibility state.  |