@openui5/sap.m
Version:
OpenUI5 UI Library sap.m
110 lines (86 loc) • 3.1 kB
JavaScript
/*!
* OpenUI5
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
*/
sap.ui.define(['sap/ui/core/IconPool'],
function(IconPool) {
"use strict";
// TODO: consider making this conditional
IconPool.insertFontFaceStyle();
/**
* PullToRefresh renderer.
* @namespace
*/
var PullToRefreshRenderer = {
apiVersion: 2
};
/**
* Writes the accessibility state to the control's root element.
*
* @param {sap.ui.core.RenderManager} oRm The RenderManager that can be used for writing to the render output buffer.
* @param {sap.m.PullToRefresh} oControl An object representation of the control that should be rendered.
*/
PullToRefreshRenderer.writeAccessibilityState = function(oRm, oControl) {
var oAccAttributes = {
role: "button",
controls: oControl.getParent().sId + "-cont",
keyshortcuts: "F5",
describedby: oControl._getAriaDescribedByReferences()
};
oRm.accessibilityState(oControl, oAccAttributes);
};
/**
* Renders the HTML for the given control, using the provided {@link sap.ui.core.RenderManager}.
*
* @param {sap.ui.core.RenderManager} oRm the RenderManager that can be used for writing to the render output buffer
* @param {sap.m.PullToRefresh} oControl an object representation of the control that should be rendered
*/
PullToRefreshRenderer.render = function(oRm, oControl){
var bShowIcon = oControl.getShowIcon();
var sCustomIcon = oControl.getCustomIcon();
var sTooltip = oControl.getTooltip_AsString();
var oResourceBundle = oControl._getRB();
oRm.openStart("div", oControl);
oRm.class("sapMPullDown");
oRm.class(!oControl._bTouchMode ? "sapMPullDownNontouch" : "sapMPullDownTouch");
if (bShowIcon && !sCustomIcon) { // if no custom icon is provided, use SAP logo as background
oRm.class("sapMPullDownLogo");
}
if (sTooltip) {
oRm.attr("title", sTooltip);
}
oRm.attr("tabindex", 0);
this.writeAccessibilityState(oRm, oControl);
oRm.openEnd();
if (bShowIcon && sCustomIcon) {
var oCustomImage = oControl.getCustomIconImage();
if (oCustomImage) {
oRm.openStart("div").class("sapMPullDownCI").openEnd();
oRm.renderControl(oCustomImage);
oRm.close("div");
}
}
// Pull down arrow icon
oRm.openStart("span").class("sapMPullDownIcon").openEnd().close("span");
// Busy Indicator
oRm.openStart("span").class("sapMPullDownBusy").openEnd();
oRm.renderControl(oControl._oBusyIndicator);
oRm.close("span");
// Text - Pull down to refresh
oRm.openStart("span", oControl.getId() + "-T");
oRm.class("sapMPullDownText");
oRm.attr("aria-live", "assertive");
oRm.openEnd();
oRm.text(oResourceBundle.getText(oControl._bTouchMode ? "PULL2REFRESH_PULLDOWN" : "PULL2REFRESH_REFRESH"));
oRm.close("span");
// Info - last updated at xx:xx:xx
oRm.openStart("span", oControl.getId() + "-I");
oRm.class("sapMPullDownInfo");
oRm.openEnd();
oRm.text(oControl.getDescription());
oRm.close("span");
oRm.close("div");
};
return PullToRefreshRenderer;
}, /* bExport= */ true);