UNPKG

@openui5/sap.m

Version:

OpenUI5 UI Library sap.m

92 lines (82 loc) 2.5 kB
/*! * 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(["./PluginBase", "../library", "../Button" ,"sap/ui/core/Lib"], function(PluginBase, library, Button, Lib) { "use strict"; /** * Constructor for a new <code>ColumnAIAction</code> plugin that can be used to add an AI related action for table columns. * * @param {string} [sId] ID for the new <code>ColumnAIAction</code>, generated automatically if no ID is given * @param {object} [mSettings] Initial settings for the <code>ColumnAIAction</code> * * @class * This plugin adds an AI related action to a table column. * * @extends sap.ui.core.Element * @author SAP SE * @version 1.146.0 * * @public * @since 1.136 * @alias sap.m.plugins.ColumnAIAction * @borrows sap.m.plugins.PluginBase.findOn as findOn */ const ColumnAIAction = PluginBase.extend("sap.m.plugins.ColumnAIAction", /** @lends sap.m.plugins.ColumnAIAction.prototype */ { metadata: { library: "sap.m", events: { /** * Fired when the AI action is pressed. */ press: { parameters: { /** * The column action that triggered the event. */ action: {type: "sap.ui.core.Control"} } } } }}); ColumnAIAction.findOn = PluginBase.findOn; ColumnAIAction.prototype.onActivate = function(oControl) { this.getConfig("setAction", oControl, this._getAction()); }; ColumnAIAction.prototype.onDeactivate = function() { if (this._oAction) { this._oAction.destroy(true); this._oAction = null; } }; ColumnAIAction.prototype.getActionTooltip = function() { return Lib.getResourceBundleFor("sap.m").getText("COLUMNACTIONAI_TOOLTIP"); }; ColumnAIAction.prototype._getAction = function() { this._oAction ??= new Button({ icon: "sap-icon://ai", type: library.ButtonType.Transparent, press: [this._onActionPress, this], tooltip: this.getActionTooltip() }).addStyleClass("sapMPluginsColumnAIAction"); return this._oAction; }; ColumnAIAction.prototype._onActionPress = function(oEvent) { this.firePress({ action: oEvent.getSource() }); }; PluginBase.setConfigs({ "sap.m.Column": { setAction: function(oColumn, oAction) { oColumn.setAggregation("_action", oAction); } }, "sap.ui.table.Column": { setAction: function(oColumn, oAction) { oColumn.setAggregation("_action", oAction); } } }, ColumnAIAction); return ColumnAIAction; });