diff --git a/frontend-js/src/main/js/plugin/Plugin.js b/frontend-js/src/main/js/plugin/Plugin.js index d324be279c1238c61438b6334bcf63131252ac88..94d44b2662a84803c43b79f6c888d601e66d248d 100644 --- a/frontend-js/src/main/js/plugin/Plugin.js +++ b/frontend-js/src/main/js/plugin/Plugin.js @@ -20,6 +20,16 @@ var pluginId = 0; * @property {string} [url] */ +/** + * @typedef {Object} UserPluginObject + * @property {function(Object):void} register + * @property {function():void} unregister + * @property {function():string} getName + * @property {function():string} getVersion + * @property {function():(number|string)|number|string} minWidth + * @property {function():(number|string)|number|string} defaultWidth + */ + /** * * @param {PluginOptions} options @@ -62,7 +72,7 @@ Plugin.prototype.setLoadedPluginData = function (loadedPluginData) { /** * - * @returns {*} + * @returns {UserPluginObject} */ Plugin.prototype.getLoadedPluginData = function () { return this._loadedPluginData; @@ -176,6 +186,23 @@ Plugin.prototype.getMinWidth = function () { return value; }; +/** + * + * @returns {number} + */ +Plugin.prototype.getDefaultWidth = function () { + var value; + var data = this.getLoadedPluginData(); + if (data.defaultWidth !== undefined) { + if (typeof data.defaultWidth === "function") { + value = parseInt(data.defaultWidth()); + } else { + value = parseInt(data.defaultWidth); + } + } + return value; +}; + /** * * @returns {Promise} diff --git a/frontend-js/src/main/js/plugin/PluginManager.js b/frontend-js/src/main/js/plugin/PluginManager.js index f7e7295311cce68a32955b5568e5e3b5925c4565..201c5a8993299c474949b75044e3e3927343c3d6 100644 --- a/frontend-js/src/main/js/plugin/PluginManager.js +++ b/frontend-js/src/main/js/plugin/PluginManager.js @@ -118,6 +118,9 @@ PluginManager.prototype.addPlugin = function (options) { self._pluginOnResizeHandlers[plugin.getPluginId()] = adjustHeight; GuiConnector.addWindowResizeEvent(adjustHeight); adjustHeight(); + if ($(self.getElement()).width() < plugin.getDefaultWidth()) { + $(self.getElement()).css('flex', "0 0 " + plugin.getDefaultWidth() + "px"); + } return self.adjustMinWidth(); }).then(function () { if (self._plugins.length === 1) {