DVHMA/DVHMA-OpenUI5/www/resources/sap/m/BarRenderer-dbg.js

164 lines
4.7 KiB
JavaScript

/*!
* SAP UI development toolkit for HTML5 (SAPUI5/OpenUI5)
* (c) Copyright 2009-2015 SAP SE or an SAP affiliate company.
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
*/
sap.ui.define(['jquery.sap.global', './BarInPageEnabler'],
function(jQuery, BarInPageEnabler) {
"use strict";
/**
* Bar renderer.
* @namespace
*/
var BarRenderer = {};
/////////////////
//Bar in page delegation
/////////////////
/**
* Renders the HTML for the given control, using the provided {@link sap.ui.core.RenderManager}.
* @protected
* @param {sap.ui.core.RenderManager} oRM the RenderManager that can be used for writing to the render output buffer.
* @param {sap.ui.core.Control} oControl an object representation of the control that should be rendered.
*/
BarRenderer.render = BarInPageEnabler.prototype.render;
/////////////////
//Bar specific rendering + implementation of enabler hooks
/////////////////
/**
* Add classes attributes and styles to the root tag
*
* @param {sap.ui.core.RenderManager} oRM the RenderManager that can be used for writing to the Render-Output-Buffer
* @param {sap.ui.core.Control} oControl an object representation of the control that should be rendered
*/
BarRenderer.decorateRootElement = function (oRM, oControl) {
oRM.addClass("sapMBar");
oRM.addClass(this.getContext(oControl));
oRM.writeAccessibilityState(oControl, {
role: "toolbar"
});
if (oControl.getTranslucent() && (sap.ui.Device.support.touch || jQuery.sap.simulateMobileOnDesktop)) {
oRM.addClass("sapMBarTranslucent");
}
oRM.addClass("sapMBar-CTX");
};
/**
* Determines, if the IBarContext classes should be added to the control
* @private
*/
BarRenderer.shouldAddIBarContext = function () {
return true;
};
/**
* 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.ui.core.Control} oControl an object representation of the control that should be rendered
*/
BarRenderer.renderBarContent = function(oRM, oControl) {
var sClosingDiv = "</div>";
//left content area
oRM.write("<div id='" + oControl.getId() + "-BarLeft' ");
oRM.addClass('sapMBarLeft');
oRM.addClass('sapMBarContainer');
oRM.writeClasses();
oRM.write(">");
this.renderAllControls(oControl.getContentLeft(), oRM, oControl);
oRM.write(sClosingDiv);
//middle content area
oRM.write("<div id='" + oControl.getId() + "-BarMiddle' ");
oRM.addClass('sapMBarMiddle');
oRM.writeClasses();
oRM.write(">");
if (oControl.getEnableFlexBox()) {
oControl._oflexBox = oControl._oflexBox || new sap.m.HBox(oControl.getId() + "-BarPH", {alignItems: "Center"}).addStyleClass("sapMBarPH").setParent(oControl, null, true);
oControl.getContentMiddle().forEach(function(oMidContent) {
oControl._oflexBox.addItem(oMidContent);
});
oRM.renderControl(oControl._oflexBox);
} else {
oRM.write("<div id='" + oControl.getId() + "-BarPH' ");
oRM.addClass('sapMBarPH');
oRM.addClass('sapMBarContainer');
oRM.writeClasses();
oRM.write(">");
this.renderAllControls(oControl.getContentMiddle(), oRM, oControl);
oRM.write(sClosingDiv);
}
oRM.write(sClosingDiv);
//right content area
oRM.write("<div id='" + oControl.getId() + "-BarRight'");
oRM.addClass('sapMBarRight');
oRM.addClass('sapMBarContainer');
if (sap.ui.getCore().getConfiguration().getRTL()) {
oRM.addClass("sapMRTL");
}
oRM.writeClasses();
oRM.write(">");
this.renderAllControls(oControl.getContentRight(), oRM, oControl);
oRM.write(sClosingDiv);
};
/**
* Makes the render manager renderAllControls in an array
* @param {sap.ui.core.Control} aControls the Controls to be rendered
* @param {sap.ui.core.RenderManager} oRM the RenderManager that can be used for writing to the Render-Output-Buffer
* @param {sap.m.Bar} oBar an object representation of the control that should be rendered
*/
BarRenderer.renderAllControls = function (aControls, oRM, oBar) {
aControls.forEach(function (oControl) {
sap.m.BarInPageEnabler.addChildClassTo(oControl, oBar);
oRM.renderControl(oControl);
});
};
BarRenderer._mContexts = {
Header : "sapMHeader-CTX",
SubHeader : "sapMSubHeader-CTX",
Footer : "sapMFooter-CTX",
Default : "sapMContent-CTX"
};
/**
* Determines wich tag or context class the bar should have.
* @protected
* @param {sap.m.BarBase} oControl the Bar control.
* @returns {string} the context class
*/
BarRenderer.getContext = function(oControl) {
var sDesign = oControl.getDesign(),
mContexts = BarRenderer._mContexts;
return mContexts[sDesign] || mContexts.Default;
};
return BarRenderer;
}, /* bExport= */ true);