@openui5/sap.m
Version:
OpenUI5 UI Library sap.m
186 lines (151 loc) • 5.13 kB
JavaScript
/*
* OpenUI5
* (c) Copyright 2026 SAP SE or an SAP affiliate company.
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
*/
// Provides TablePersoProvider
sap.ui.define(['sap/ui/base/ManagedObject', "sap/base/Log"],
function(ManagedObject, Log) {
"use strict";
/**
* This is an abstract TablePersoProvider, describing the interface for a real
* TablePersoProvider.
*
* @public
*
* @deprecated As of version 1.115, replaced by {@link sap.m.p13n.Engine}
*
* @class Table Personalization Provider
* @extends sap.ui.base.ManagedObject
* @abstract
* @author SAP
* @version 1.146.0
* @alias sap.m.TablePersoProvider
*/
var TablePersoProvider = ManagedObject.extend("sap.m.TablePersoProvider", /** @lends sap.m.TablePersoProvider.prototype */
{
constructor: function(sId, mSettings) {
ManagedObject.apply(this, arguments);
},
metadata: {
deprecated: true,
"abstract": true,
library: "sap.m"
}
});
/**
* Initializes the TablePersoProvider instance after creation.
*
* @protected
*/
TablePersoProvider.prototype.init = function() {
Log.warning("This is the abstract base class for a TablePersoProvider. Do not create instances of this class, but use a concrete sub class instead.");
Log.debug("TablePersoProvider init");
};
/**
* Retrieves the personalization bundle.<br>
* This must return a {@link http://api.jquery.com/promise/ jQuery Promise},
* which resolves in the desired table state.
*
* @example [
* {
* id: "demoApp-productsTable-productCol",
* order: 2,
* text: "Product",
* visible: true
* },
* {
* id: "demoApp-productsTable-supplierCol",
* order: 1,
* text: "Supplier",
* visible: true
* },
* {
* id: "demoApp-productsTable-dimensionsCol",
* order: 0,
* text: "Dimensions",
* visible: false
* }
* ]
*
* @public
*/
TablePersoProvider.prototype.getPersData = function() {
Log.debug("TablePersoProvider getPersData");
};
/**
* Stores the personalization bundle, overwriting any previous bundle completely.<br>
* This must return a {@link http://api.jquery.com/promise/ jQuery promise}.
* @param {object} oBundle
* @public
*/
TablePersoProvider.prototype.setPersData = function(oBundle) {
Log.debug("TablePersoProvider setPersData");
};
/**
* Removes the personalization bundle.<br>
* This must return a {@link http://api.jquery.com/promise/ jQuery promise}.
* @public
*/
TablePersoProvider.prototype.delPersData = function() {
Log.debug("TablePersoProvider delPersData");
};
/**
* Callback function which can be used to determine the title of a given column
* within the TablePersoDialog. As a default, the column header controls are
* asked for their 'text' or 'title' property. This works in most cases, for example
* if the header control is an sap.m.Label (has 'text' property) or an sap.m.ObjectListItem
* (has 'title' property).
*
* If the header control used in a column has neither 'text' nor 'title' property, or if you would like to
* display a modified column name for a certain column, this callback function can be used.
*
* If the callback delivers null for a column (which is the default implementation), the default
* texts described above are displayed for that column in the TablePersoDialog.
*
* In case neither the callback delivers null and neither 'text' nor ' title' property are at hand,
* the TablePersoDialog will display the column id and a warning message is logged.
*
* @param {sap.m.Column} oColumn column whose caption shall be determined
* @public
*/
TablePersoProvider.prototype.getCaption = function(oColumn) {
return null;
};
/**
* Callback function which can be used to determine the group of a given column
* within the TablePersoDialog. As a default, the columns are not assigned to a group.
*
* This information is used to group the columns within the TablePersoDialog if the TablePersoController's
* 'group' flag is set, otherwise, the groups are ignored.
*
* @param {sap.m.Column} oColumn column whose group shall be determined
* @public
*/
TablePersoProvider.prototype.getGroup = function(oColumn) {
return null;
};
/**
* Resets user’s personalization for a given table so that ‘getPersData’ will
* deliver its initial state. If no table is specified, all personalizations
* of the currently logged on user are reset.<br>
*
* This must return a {@link http://api.jquery.com/promise/ jQuery promise}.
* @public
*/
TablePersoProvider.prototype.resetPersData = function() {
Log.debug("TablePersoProvider resetPersData");
};
/**
* Retrieves the desired reset state.
* This getter is used by the <code>TablePersoController</code> if the <code>resetAllMode</code> is <code>ServiceReset</code>.<br>
*
* This must return a {@link http://api.jquery.com/promise/ jQuery promise}.
* @public
* @since 1.88
*/
TablePersoProvider.prototype.getResetPersData = function() {
Log.debug("TablePersoProvider getPersData");
};
return TablePersoProvider;
});