Pluggable widgets with same features as default widgets (containers, data source, …) - Mendix Forum

Pluggable widgets with same features as default widgets (containers, data source, …)


Currently, pluggable widgets are sometimes limited compared to default widgets. This is an overarching suggestion to extend the features of pluggable widgets to match the default widgets. The overall goal should be: Every default widget can be implemented using pluggable widgets. This includes the generated representation in the DOM / the styling as well as the behaviour in the Studio (pro).

I understand that this probably requires non-trivial architectural changes. But this idea might be kept in mind while working on other suggestions.

Here is my yet short list of desired features. If something is missing, I can add it here. If something can actually be implemented as of now, I am happy to read more and remove it here.

Content areas

Currently, widgets (as far as I can tell) provide no way to define content areas. They are just opaque to the Studio. In order to faciliate building widgets that operate on some other content, it needs to define arbitrary content areas (e.g. header, content, footer / left, center, right / … displayed as drop areas in the Studio (pro) in some kind of grid system). These operations might be some kind of conditional visibility or instantiating the content multiple times (e.g. for a list view).
Each content area should be able to define some provided context (entity type), and the content inside the area can be instantiated using data that fits the context (e.g. for a list view, to instantiate the content area with every list element in a loop).
The content areas should also be configurable by properties, e.g. as in “Show footer”.

Currently, operations on content (e.g. as provided by the widget ShowByCondition) are implemented using CSS selectors or "inverse logic” where the widget operates on its parent container. But this approach is rather limiting.
The need for more flexible lists is also evident by ideas such as New grid widgets to replace grid/template grid / listviews for UI flexibility.

Data source

Widgets lack the option to define data source in the same way as list widgets. This leads to work-arounds as the answer to my question How to pass list to custom widget / how to create custom list widget?. It would be nice - for both widget developers and widget user/mendix developers - to have a simple and consistent (wrt. other list widgets) way of defining the data source. I would expect to have a new type of property in the widget xml that defines e.g. an array field in the JavaScript / Typescript typings.

1 answers

Thank you for your suggestion. We are currently working hard on extending the pluggable widget framework.

Please have a look at the Maximizing Next Generation Experiences with Mendix Pluggable Components session at Mendix world. Presentations is found here

There is a hint for the roadmap (but no timeline). We will keep you posted when new feature are be added.

Our first focus will be making input widgets like the Mendix core, more feature will we added later. 

Reference docs: