src/sap.ui.table/src/sap/ui/table/TableGrouping.js
function(oTable, oRow, bChildren, bExpanded, bHidden, bSum, iLevel, sGroupHeaderText) {
			var oDomRefs = oRow.getDomRefs(true),
				$Row = oDomRefs.row,
				$ScrollRow = oDomRefs.rowScrollPart,
				$FixedRow = oDomRefs.rowFixedPart,
				$RowHdr = oDomRefs.rowSelector,
				$RowAct = oDomRefs.rowAction;

			$Row.attr({
				"data-sap-ui-level": iLevel
			});

			$Row.data("sap-ui-level", iLevel);

			if (TableGrouping.isGroupMode(oTable)) {
				$Row.toggleClass("sapUiAnalyticalTableSum", !bChildren && bSum)
					.toggleClass("sapUiAnalyticalTableDummy", false)
					.toggleClass("sapUiTableGroupHeader", bChildren)
					.toggleClass("sapUiTableRowHidden", bChildren && bHidden || oRow._bHidden);

				jQuery(document.getElementById(oRow.getId() + "-groupHeader"))
					.toggleClass("sapUiTableGroupIconOpen", bChildren && bExpanded)
					.toggleClass("sapUiTableGroupIconClosed", bChildren && !bExpanded)
					.attr("title", oTable._getShowStandardTooltips() && sGroupHeaderText ? sGroupHeaderText : null)
					.text(sGroupHeaderText || "");

				var iIndent = TableGrouping.calcGroupIndent(oTable, iLevel, bChildren, bSum);

				TableGrouping.setIndent(oTable, $Row, $RowHdr, iIndent);
				$Row.toggleClass("sapUiTableRowIndented", iIndent > 0);
			}

			var $TreeIcon = null;
			if (TableGrouping.isTreeMode(oTable)) {
				$TreeIcon = $Row.find(".sapUiTableTreeIcon");
				$TreeIcon.css(oTable._bRtlMode ? "margin-right" : "margin-left", (iLevel * 17) + "px")
						 .toggleClass("sapUiTableTreeIconLeaf", !bChildren)
						 .toggleClass("sapUiTableTreeIconNodeOpen", bChildren && bExpanded)
						 .toggleClass("sapUiTableTreeIconNodeClosed", bChildren && !bExpanded);
			}

			if (TableGrouping.showGroupMenuButton(oTable)) {
				// Update the GroupMenuButton
				var iScrollbarOffset = 0;
				var $Table = oTable.$();
				if ($Table.hasClass("sapUiTableVScr")) {
					iScrollbarOffset += $Table.find(".sapUiTableVSb").width();
				}
				var $GroupHeaderMenuButton = $RowHdr.find(".sapUiTableGroupMenuButton");

				if (oTable._bRtlMode) {
					$GroupHeaderMenuButton.css("right",
						($Table.width() - $GroupHeaderMenuButton.width() + $RowHdr.position().left - iScrollbarOffset - 5) + "px");
				} else {
					$GroupHeaderMenuButton.css("left",
						($Table.width() - $GroupHeaderMenuButton.width() - $RowHdr.position().left - iScrollbarOffset - 5) + "px");
				}
			}

			oTable._getAccExtension()
				  .updateAriaExpandAndLevelState(oRow, $ScrollRow, $RowHdr, $FixedRow, $RowAct, bChildren, bExpanded, iLevel, $TreeIcon);
		}
function(oTable, oRow, bChildren, bExpanded, bHidden, bSum, iLevel, sGroupHeaderText) {
			var oDomRefs = oRow.getDomRefs(true),
				$Row = oDomRefs.row,
				$ScrollRow = oDomRefs.rowScrollPart,
				$FixedRow = oDomRefs.rowFixedPart,
				$RowHdr = oDomRefs.rowSelector,
				$RowAct = oDomRefs.rowAction;

			$Row.attr({
				"data-sap-ui-level": iLevel
			});

			$Row.data("sap-ui-level", iLevel);

			if (TableGrouping.isGroupMode(oTable)) {
				$Row.toggleClass("sapUiAnalyticalTableSum", !bChildren && bSum)
					.toggleClass("sapUiAnalyticalTableDummy", false)
					.toggleClass("sapUiTableGroupHeader", bChildren)
					.toggleClass("sapUiTableRowHidden", bChildren && bHidden || oRow._bHidden);

				jQuery(document.getElementById(oRow.getId() + "-groupHeader"))
					.toggleClass("sapUiTableGroupIconOpen", bChildren && bExpanded)
					.toggleClass("sapUiTableGroupIconClosed", bChildren && !bExpanded)
					.attr("title", oTable._getShowStandardTooltips() && sGroupHeaderText ? sGroupHeaderText : null)
					.text(sGroupHeaderText || "");

				var iIndent = TableGrouping.calcGroupIndent(oTable, iLevel, bChildren, bSum);

				TableGrouping.setIndent(oTable, $Row, $RowHdr, iIndent);
				$Row.toggleClass("sapUiTableRowIndented", iIndent > 0);
			}

			var $TreeIcon = null;
			if (TableGrouping.isTreeMode(oTable)) {
				$TreeIcon = $Row.find(".sapUiTableTreeIcon");
				$TreeIcon.css(oTable._bRtlMode ? "margin-right" : "margin-left", (iLevel * 17) + "px")
						 .toggleClass("sapUiTableTreeIconLeaf", !bChildren)
						 .toggleClass("sapUiTableTreeIconNodeOpen", bChildren && bExpanded)
						 .toggleClass("sapUiTableTreeIconNodeClosed", bChildren && !bExpanded);
			}

			if (TableGrouping.showGroupMenuButton(oTable)) {
				// Update the GroupMenuButton
				var iScrollbarOffset = 0;
				var $Table = oTable.$();
				if ($Table.hasClass("sapUiTableVScr")) {
					iScrollbarOffset += $Table.find(".sapUiTableVSb").width();
				}
				var $GroupHeaderMenuButton = $RowHdr.find(".sapUiTableGroupMenuButton");

				if (oTable._bRtlMode) {
					$GroupHeaderMenuButton.css("right",
						($Table.width() - $GroupHeaderMenuButton.width() + $RowHdr.position().left - iScrollbarOffset - 5) + "px");
				} else {
					$GroupHeaderMenuButton.css("left",
						($Table.width() - $GroupHeaderMenuButton.width() - $RowHdr.position().left - iScrollbarOffset - 5) + "px");
				}
			}

			oTable._getAccExtension()
				  .updateAriaExpandAndLevelState(oRow, $ScrollRow, $RowHdr, $FixedRow, $RowAct, bChildren, bExpanded, iLevel, $TreeIcon);
		}
function ( oTable , oRow , bChildren , bExpanded , bHidden , bSum , iLevel , sGroupHeaderText ) { var oDomRefs = oRow . getDomRefs ( true ) , $Row = oDomRefs . row , $ScrollRow = oDomRefs . rowScrollPart , $FixedRow = oDomRefs . rowFixedPart , $RowHdr = oDomRefs . rowSelector , $RowAct = oDomRefs . rowAction ; $Row . attr ( { "data-sap-ui-level" : iLevel } ) ; $Row . data ( "sap-ui-level" , iLevel ) ; if ( TableGrouping . isGroupMode ( oTable ) ) { $Row . toggleClass ( "sapUiAnalyticalTableSum" , ! bChildren && bSum ) . toggleClass ( "sapUiAnalyticalTableDummy" , false ) . toggleClass ( "sapUiTableGroupHeader" , bChildren ) . toggleClass ( "sapUiTableRowHidden" , bChildren && bHidden || oRow . _bHidden ) ; jQuery ( document . getElementById ( oRow . getId ( ) + "-groupHeader" ) ) . toggleClass ( "sapUiTableGroupIconOpen" , bChildren && bExpanded ) . toggleClass ( "sapUiTableGroupIconClosed" , bChildren && ! bExpanded ) . attr ( "title" , oTable . _getShowStandardTooltips ( ) && sGroupHeaderText ? sGroupHeaderText : null ) . text ( sGroupHeaderText || "" ) ; var iIndent = TableGrouping . calcGroupIndent ( oTable , iLevel , bChildren , bSum ) ; TableGrouping . setIndent ( oTable , $Row , $RowHdr , iIndent ) ; $Row . toggleClass ( "sapUiTableRowIndented" , iIndent > 0 ) ; } var $TreeIcon = null ; if ( TableGrouping . isTreeMode ( oTable ) ) { $TreeIcon = $Row . find ( ".sapUiTableTreeIcon" ) ; $TreeIcon . css ( oTable . _bRtlMode ? "margin-right" : "margin-left" , ( iLevel * 17 ) + "px" ) . toggleClass ( "sapUiTableTreeIconLeaf" , ! bChildren ) . toggleClass ( "sapUiTableTreeIconNodeOpen" , bChildren && bExpanded ) . toggleClass ( "sapUiTableTreeIconNodeClosed" , bChildren && ! bExpanded ) ; } if ( TableGrouping . showGroupMenuButton ( oTable ) ) { // Update the GroupMenuButton var iScrollbarOffset = 0 ; var $Table = oTable . $ ( ) ; if ( $Table . hasClass ( "sapUiTableVScr" ) ) { iScrollbarOffset += $Table . find ( ".sapUiTableVSb" ) . width ( ) ; } var $GroupHeaderMenuButton = $RowHdr . find ( ".sapUiTableGroupMenuButton" ) ; if ( oTable . _bRtlMode ) { $GroupHeaderMenuButton . css ( "right" , ( $Table . width ( ) - $GroupHeaderMenuButton . width ( ) + $RowHdr . position ( ) . left - iScrollbarOffset - 5 ) + "px" ) ; } else { $GroupHeaderMenuButton . css ( "left" , ( $Table . width ( ) - $GroupHeaderMenuButton . width ( ) - $RowHdr . position ( ) . left - iScrollbarOffset - 5 ) + "px" ) ; } } oTable . _getAccExtension ( ) . updateAriaExpandAndLevelState ( oRow , $ScrollRow , $RowHdr , $FixedRow , $RowAct , bChildren , bExpanded , iLevel , $TreeIcon ) ; }
Updates the dom of the given row depending on the given parameters.

@param {sap.ui.table.Table} oTable Instance of the table.
@param {sap.ui.table.Row} oRow Instance of the row.
@param {boolean} bChildren Whether the row is a group (has children).
@param {boolean} bExpanded Whether the row should be expanded.
@param {boolean} bHidden Whether the row content should be hidden.
@param {boolean} bSum Whether the row should be a summary row.
@param {number} iLevel The hierarchy level.
@param {string} sGroupHeaderText The title of the group header.
Updates the dom of the given row depending on the given parameters .