@openui5/sap.m
Version:
OpenUI5 UI Library sap.m
190 lines (176 loc) • 4.68 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.
*/
// Provides control sap.m.P13nPanel.
sap.ui.define([
'./library', 'sap/ui/core/Control'
], function(library, Control) {
"use strict";
/**
* Constructor for a new P13nPanel.
*
* @param {string} [sId] ID for the new control, generated automatically if no ID is given
* @param {object} [mSettings] initial settings for the new control
* @class An abstract base type for <code>panels</code> aggregation in <code>P13nDialog</code> control.
* @extends sap.ui.core.Control
* @version 1.117.4
* @constructor
* @public
* @abstract
* @since 1.26.0
* @alias sap.m.P13nPanel
*/
var P13nPanel = Control.extend("sap.m.P13nPanel", /** @lends sap.m.P13nPanel.prototype */
{
metadata: {
"abstract": true,
library: "sap.m",
interfaces: [
"sap.m.p13n.IContent"
],
properties: {
/**
* Title text appears in the panel.
*/
title: {
type: "string",
group: "Appearance",
defaultValue: null
},
/**
* Large title text appears e.g. in dialog header in case that only one panel is shown.
*
* @since 1.30.0
*/
titleLarge: {
type: "string",
group: "Appearance",
defaultValue: null
},
/**
* Panel type for generic use. Due to extensibility reason the type of <code>type</code> property should be <code>string</code>.
* So it is feasible to add a custom panel without expanding the type.
*/
type: {
type: "string",
group: "Misc",
defaultValue: null
},
/**
* Enables the vertical Scrolling on the <code>P13nDialog</code> when the panel is shown.
*/
verticalScrolling: {
type: "boolean",
group: "Misc",
defaultValue: true
},
/**
* Callback method which is called in order to validate end user entry.
*/
validationExecutor: {
type: "object",
group: "Misc",
defaultValue: null
},
/**
* Callback method which is called in order to register for validation result.
*/
validationListener: {
type: "object",
group: "Misc",
defaultValue: null
},
/**
* Callback which notifies a change on this panel.
*/
changeNotifier: {
type: "object",
group: "Misc",
defaultValue: null
}
},
defaultAggregation: "items",
aggregations: {
/**
* Defines personalization items (e.g. columns in the <code>P13nColumnsPanel</code>).
*/
items: {
type: "sap.m.P13nItem",
multiple: true,
singularName: "item",
bindable: "bindable"
}
},
events: {
/**
* Due to performance the data of the panel can be requested in lazy mode e.g. when the panel is displayed
*
* @since 1.28.0
*/
beforeNavigationTo: {}
}
},
renderer: {
apiVersion: 2,
render:function(oRm, oControl) {
oRm.openStart("span", oControl);
oRm.class("sapMP13nPanel");
oRm.openEnd();
oRm.close("span");
}
}
});
/**
* This method can be overwritten by subclass in order to return a payload for Ok action
*
* @returns {object} Object which describes the state after Ok has been pressed
* @deprecated As of version 1.50, replaced by the event of the respective inherited
* control, for example {@link sap.m.P13nColumnsPanel#event:changeColumnsItems} of
* <code>P13nColumnsPanel</code> control.
* @public
* @since 1.26.7
*/
P13nPanel.prototype.getOkPayload = function() {
return {};
};
/**
* This method can be overwritten by subclass in order to return a payload for Reset action
*
* @public
* @since 1.28.0
*/
P13nPanel.prototype.getResetPayload = function() {
return {};
};
/**
* This method defines the point in time before the panel becomes active.
*
* @public
* @since 1.28.0
*/
P13nPanel.prototype.beforeNavigationTo = function() {
this.fireBeforeNavigationTo();
};
/**
* This method can be overwritten by subclass in order to prevent navigation to another panel. This could be the case if some content on the panel
* is considered 'invalid'.
*
* @returns {boolean} true if it is allowed to navigate away from this panel, false if it is not allowed
* @public
* @since 1.28.0
*/
P13nPanel.prototype.onBeforeNavigationFrom = function() {
return true;
};
/**
* This method can be overwritten by subclass in order to cleanup after navigation, e.g. to remove invalid content on the panel.
*
* @public
* @since 1.28.0
*/
P13nPanel.prototype.onAfterNavigationFrom = function() {
};
return P13nPanel;
});