@openui5/sap.m
Version:
OpenUI5 UI Library sap.m
125 lines (101 loc) • 3.8 kB
JavaScript
/*!
* OpenUI5
* (c) Copyright 2009-2023 SAP SE or an SAP affiliate company.
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
*/
sap.ui.define(["sap/ui/core/library", "sap/ui/core/Renderer", "./ListItemBaseRenderer", "./ColumnListItemRenderer"],
function(coreLibrary, Renderer, ListItemBaseRenderer, ColumnListItemRenderer) {
"use strict";
// shortcut for sap.ui.core.TextDirection
var TextDirection = coreLibrary.TextDirection;
/**
* GroupHeaderListItem renderer.
* @namespace
*/
var GroupHeaderListItemRenderer = Renderer.extend(ListItemBaseRenderer);
GroupHeaderListItemRenderer.apiVersion = 2;
GroupHeaderListItemRenderer.renderType = function(rm, oLI) {
var fnBase = oLI.getTable() ? ColumnListItemRenderer : ListItemBaseRenderer;
fnBase.renderType.apply(this, arguments);
};
GroupHeaderListItemRenderer.renderNavigated = function(rm, oLI) {
var fnBase = oLI.getTable() ? ColumnListItemRenderer : ListItemBaseRenderer;
fnBase.renderNavigated.apply(this, arguments);
};
// for dummy cell rendering position inherit from ColumnListItemRenderer
GroupHeaderListItemRenderer.renderContentLatter = ColumnListItemRenderer.renderContentLatter;
// GroupHeaderListItem does not respect mode, counter and highlight property of the LIB
GroupHeaderListItemRenderer.renderMode = function(rm, oLI) {};
GroupHeaderListItemRenderer.renderCounter = function(rm, oLI) {};
GroupHeaderListItemRenderer.renderHighlight = function(rm, oLI) {};
/**
* Renders the attributes for the given list item, using the provided
* {@link sap.ui.core.RenderManager}.
*
* @param {sap.ui.core.RenderManager}
* rm the RenderManager that can be used for writing to the
* Render-Output-Buffer
* @param {sap.m.GroupHeaderListItem}
* oLI an object representation of the list item that should be
* rendered
*/
GroupHeaderListItemRenderer.renderLIAttributes = function(rm, oLI) {
rm.class("sapMGHLI");
if (oLI.getUpperCase()) {
rm.class("sapMGHLIUpperCase");
}
};
/**
* Renders the List item content
*
* @param {sap.ui.core.RenderManager}
* rm the RenderManager that can be used for writing to the
* Render-Output-Buffer
* @param {sap.m.GroupHeaderListItem}
* oLI an object representation of the list item that should be
* rendered
*/
GroupHeaderListItemRenderer.renderLIContentWrapper = function(rm, oLI) {
var oTable = oLI.getTable();
if (oTable) {
rm.openStart("td");
rm.class("sapMGHLICell");
rm.attr("colspan", oTable.getColCount() - 2 /* Type and Navigated cells are always rendered */- oTable.shouldRenderDummyColumn());
rm.openEnd();
}
ListItemBaseRenderer.renderLIContentWrapper.apply(this, arguments);
if (oTable) {
rm.close("td");
}
};
GroupHeaderListItemRenderer.renderLIContent = function(rm, oLI) {
var sTextDir = oLI.getTitleTextDirection();
rm.openStart("span");
rm.class("sapMGHLITitle");
if (sTextDir != TextDirection.Inherit) {
rm.attr("dir", sTextDir.toLowerCase());
}
rm.openEnd();
rm.text(oLI.getTitle());
rm.close("span");
var iCount = oLI.getCount() || oLI.getCounter();
if (iCount) {
rm.openStart("span");
rm.class("sapMGHLICounter");
rm.openEnd();
rm.text(" (" + iCount + ")");
rm.close("span");
}
};
GroupHeaderListItemRenderer.addLegacyOutlineClass = function(rm, oLI) {
var fnBase = oLI.getTable() ? ColumnListItemRenderer : ListItemBaseRenderer;
fnBase.addLegacyOutlineClass.apply(this, arguments);
};
GroupHeaderListItemRenderer.getAriaRole = function(oLI) {
if (oLI.getTable()) {
return "row";
}
return ListItemBaseRenderer.getAriaRole.apply(this, arguments);
};
return GroupHeaderListItemRenderer;
}, /* bExport= */ true);