/*!
* UI development toolkit for HTML5 (OpenUI5)
* (c) Copyright 2009-2018 SAP SE or an SAP affiliate company.
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
*/
sap.ui.define(['./ComboBoxTextFieldRenderer', 'sap/ui/core/Renderer'],
function (ComboBoxTextFieldRenderer, Renderer) {
"use strict";
/**
* ComboBoxBase renderer.
*
* @namespace
*/
var ComboBoxBaseRenderer = Renderer.extend(ComboBoxTextFieldRenderer);
/**
* CSS class to be applied to the root element of the control.
*
* @readonly
* @const {string}
*/
ComboBoxBaseRenderer.CSS_CLASS_COMBOBOXBASE = "sapMComboBoxBase";
/**
* Retrieves the accessibility state of the control.
* To be overwritten by subclasses.
*
* @param {sap.ui.core.Control} oControl An object representation of the control that should be rendered.
* @returns {object} The accessibility state of the control
*/
ComboBoxBaseRenderer.getAccessibilityState = function (oControl) {
var mAccessibilityState = ComboBoxTextFieldRenderer.getAccessibilityState.call(this, oControl);
mAccessibilityState.expanded = oControl.isOpen();
return mAccessibilityState;
};
/**
* Add classes to the control.
*
* @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.
*/
ComboBoxBaseRenderer.addOuterClasses = function (oRm, oControl) {
ComboBoxTextFieldRenderer.addOuterClasses.apply(this, arguments);
var CSS_CLASS = ComboBoxBaseRenderer.CSS_CLASS_COMBOBOXBASE;
oRm.addClass(CSS_CLASS);
if (!oControl.getEnabled()) {
oRm.addClass(CSS_CLASS + "Disabled");
}
if (!oControl.getEditable()) {
oRm.addClass(CSS_CLASS + "Readonly");
}
};
/**
* Add CSS classes to the button, using the provided {@link sap.ui.core.RenderManager}.
* To be overwritten by subclasses.
*
* @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.
*/
ComboBoxBaseRenderer.addButtonClasses = function (oRm, oControl) {
ComboBoxTextFieldRenderer.addButtonClasses.apply(this, arguments);
oRm.addClass(ComboBoxBaseRenderer.CSS_CLASS_COMBOBOXBASE + "Arrow");
};
return ComboBoxBaseRenderer;
}, /* bExport= */ true);