Skip to main content
Version: 2025.1

Dynamic Types

Introduction

Dynamic types are a key concept of studio, designed to provide a flexible and structured approach to define how various parts of an application should behave. At the core of a dynamic type is an abstract base class, which acts as a blueprint for all subtypes. This base class outlines the necessary structure and implementation details required to address specific use cases.

Common Use Cases

Object data-/layout-types

In terms of objects, dynamic types outline the different data and layout types, as well as their handling in various scenarios. They are perfect boilerplate for creating/extend types by leading through all the different implementation details. Reaching from the edit-view to versions as well as the listings.

Source

Meta-Data

Dynamic types play a crucial role in managing asset meta-data. They describe how meta-data should be handled in various scenarios. For example how they should be displayed in a grid or how the data should be displayed in the version view.

Source

Grid-Cells

For grid cells, dynamic types describe how each cell should behave based on its specific type. It defines how a value of an cell should be rendered and also whether it should be editable or not. Grid-Cell types reach from simple text to images or even more complex types. It's up to you.

Source

Assets

Defines which types (image, audio, folder, etc.) are available in studio

Source

Batch-Edit

In the context of batch editing, dynamic types specify how form fields should behave.

Source

Field-Filters

Dynamic types also govern the behavior of filters within grids. By defining these filters, developers can ensure that a suitable ui-component is used for data- or asset-metadata-type.

Source

Overriding Dynamic Types

One of the key features of dynamic types is their ability to be overridden by plugins, since there are still just services available in the DI-Container. This allows developers to define new behaviors and customize the application to meet specific requirements. By leveraging plugins, the application can adapt to a wide range of scenarios and evolve over time.