UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FTypedElementWidgetConstructor Struct Reference

#include <TypedElementDataStorageUiInterface.h>

+ Inheritance diagram for FTypedElementWidgetConstructor:

Public Member Functions

TYPEDELEMENTFRAMEWORK_API FTypedElementWidgetConstructor (const UScriptStruct *InTypeInfo)
 
 FTypedElementWidgetConstructor (EForceInit)
 
virtual ~FTypedElementWidgetConstructor () override=default
 
virtual TYPEDELEMENTFRAMEWORK_API TConstArrayView< const UScriptStruct * > GetAdditionalColumnsList () const
 
virtual TYPEDELEMENTFRAMEWORK_API FText CreateWidgetDisplayNameText (UE::Editor::DataStorage::ICoreProvider *DataStorage, UE::Editor::DataStorage::RowHandle Row=UE::Editor::DataStorage::InvalidRowHandle) const
 
virtual TYPEDELEMENTFRAMEWORK_API TSharedPtr< SWidgetConstructFinalWidget (UE::Editor::DataStorage::RowHandle Row, UE::Editor::DataStorage::ICoreProvider *DataStorage, UE::Editor::DataStorage::IUiProvider *DataStorageUi, const UE::Editor::DataStorage::FMetaDataView &Arguments)
 
virtual TYPEDELEMENTFRAMEWORK_API TSharedPtr< SWidgetConstruct (UE::Editor::DataStorage::RowHandle Row, UE::Editor::DataStorage::ICoreProvider *DataStorage, UE::Editor::DataStorage::IUiProvider *DataStorageUi, const UE::Editor::DataStorage::FMetaDataView &Arguments)
 
virtual TYPEDELEMENTFRAMEWORK_API TArray< TSharedPtr< const UE::Editor::DataStorage::FColumnSorterInterface > > ConstructColumnSorters (UE::Editor::DataStorage::ICoreProvider *DataStorage, UE::Editor::DataStorage::IUiProvider *DataStorageUi, const UE::Editor::DataStorage::FMetaDataView &Arguments)
 
TYPEDELEMENTFRAMEWORK_API UE::Editor::DataStorage::RowHandle GetWidgetFactoryRow () const
 
virtual TYPEDELEMENTFRAMEWORK_API FString CreateWidgetDisplayName (UE::Editor::DataStorage::ICoreProvider *DataStorage, UE::Editor::DataStorage::RowHandle Row) const final
 
virtual TYPEDELEMENTFRAMEWORK_API bool Initialize (const UE::Editor::DataStorage::FMetaDataView &InArguments, TArray< TWeakObjectPtr< const UScriptStruct > > InMatchedColumnTypes, const UE::Editor::DataStorage::Queries::FConditions &InQueryConditions)
 
virtual TYPEDELEMENTFRAMEWORK_API const UE::Editor::DataStorage::Queries::FConditionsGetQueryConditions () const final
 
virtual TYPEDELEMENTFRAMEWORK_API bool Initialize (const UE::Editor::DataStorage::FMetaDataView &InArguments, TArray< TWeakObjectPtr< const UScriptStruct > > InMatchedColumnTypes, UE::Editor::DataStorage::RowHandle FactoryRowHandle)
 
virtual TYPEDELEMENTFRAMEWORK_API const UE::Editor::DataStorage::Queries::FConditionsGetQueryConditions (const UE::Editor::DataStorage::ICoreProvider *Storage) const
 
- Public Member Functions inherited from FTedsWidgetConstructorBase
TYPEDELEMENTFRAMEWORK_API FTedsWidgetConstructorBase (const UScriptStruct *InTypeInfo)
 
 FTedsWidgetConstructorBase (EForceInit)
 
virtual ~FTedsWidgetConstructorBase ()=default
 
virtual TYPEDELEMENTFRAMEWORK_API const UScriptStructGetTypeInfo () const
 
virtual TYPEDELEMENTFRAMEWORK_API const TArray< TWeakObjectPtr< const UScriptStruct > > & GetMatchedColumns () const
 

Protected Member Functions

virtual TYPEDELEMENTFRAMEWORK_API TSharedPtr< SWidgetCreateWidget (const UE::Editor::DataStorage::FMetaDataView &Arguments)
 
virtual TYPEDELEMENTFRAMEWORK_API TSharedPtr< SWidgetCreateWidget (UE::Editor::DataStorage::ICoreProvider *DataStorage, UE::Editor::DataStorage::IUiProvider *DataStorageUi, UE::Editor::DataStorage::RowHandle TargetRow, UE::Editor::DataStorage::RowHandle WidgetRow, const UE::Editor::DataStorage::FMetaDataView &Arguments)
 
virtual TYPEDELEMENTFRAMEWORK_API bool SetColumns (UE::Editor::DataStorage::ICoreProvider *DataStorage, UE::Editor::DataStorage::RowHandle Row)
 
virtual TYPEDELEMENTFRAMEWORK_API FText DescribeColumnType (const UScriptStruct *ColumnType) const
 
virtual TYPEDELEMENTFRAMEWORK_API bool FinalizeWidget (UE::Editor::DataStorage::ICoreProvider *DataStorage, UE::Editor::DataStorage::IUiProvider *DataStorageUi, UE::Editor::DataStorage::RowHandle Row, const TSharedPtr< SWidget > &Widget)
 
TYPEDELEMENTFRAMEWORK_API void AddDefaultWidgetColumns (UE::Editor::DataStorage::RowHandle Row, UE::Editor::DataStorage::ICoreProvider *DataStorage) const
 
TYPEDELEMENTFRAMEWORK_API UE::Editor::DataStorage::RowHandle GetTargetRow (UE::Editor::DataStorage::ICoreProvider *DataStorage, UE::Editor::DataStorage::RowHandle WidgetRow) const
 
- Protected Member Functions inherited from FTedsWidgetConstructorBase
bool Initialize_Internal (const UE::Editor::DataStorage::FMetaDataView &InArguments, TArray< TWeakObjectPtr< const UScriptStruct > > InMatchedColumnTypes)
 

Additional Inherited Members

- Protected Attributes inherited from FTedsWidgetConstructorBase
TArray< TWeakObjectPtr< const UScriptStruct > > MatchedColumnTypes
 
TMap< TWeakObjectPtr< const UScriptStruct >, FNameMatchedDynamicTemplates
 
UE::Editor::DataStorage::RowHandle WidgetFactoryRow = UE::Editor::DataStorage::InvalidRowHandle
 
const UE::Editor::DataStorage::Queries::FConditionsQueryConditions = nullptr
 
const UScriptStructTypeInfo = nullptr
 

Detailed Description

Base class used to construct TEDS UI widgets with. See below for the options to register a constructor with the Data Storage. In most cases you want to inherit from FSimpleWidgetConstructor instead which has a simpler pipeline to create widgets

Constructor & Destructor Documentation

◆ FTypedElementWidgetConstructor() [1/2]

FTypedElementWidgetConstructor::FTypedElementWidgetConstructor ( const UScriptStruct InTypeInfo)
explicit

◆ FTypedElementWidgetConstructor() [2/2]

FTypedElementWidgetConstructor::FTypedElementWidgetConstructor ( EForceInit  )
inlineexplicit

◆ ~FTypedElementWidgetConstructor()

virtual FTypedElementWidgetConstructor::~FTypedElementWidgetConstructor ( )
overridevirtualdefault

Member Function Documentation

◆ AddDefaultWidgetColumns()

void FTypedElementWidgetConstructor::AddDefaultWidgetColumns ( UE::Editor::DataStorage::RowHandle  Row,
UE::Editor::DataStorage::ICoreProvider DataStorage 
) const
protected

Add the default misc columns we want a widget row to have.

◆ Construct()

TSharedPtr< SWidget > FTypedElementWidgetConstructor::Construct ( UE::Editor::DataStorage::RowHandle  Row,
UE::Editor::DataStorage::ICoreProvider DataStorage,
UE::Editor::DataStorage::IUiProvider DataStorageUi,
const UE::Editor::DataStorage::FMetaDataView Arguments 
)
virtual

Constructs the widget according to the provided information. Information is collected by calling the below functions CreateWidget and AddColumns. It's recommended to overload those functions to build widgets according to a standard recipe and to reduce the amount of code needed. If a complexer situation is called for this function can also be directly overwritten. In most cases, you want to call ConstructFinalWidget to create the actual widget.

Parameters
DataStorageThe row the widget will be stored in.

Reimplemented in FSimpleWidgetConstructor.

◆ ConstructColumnSorters()

TArray< TSharedPtr< const UE::Editor::DataStorage::FColumnSorterInterface > > FTypedElementWidgetConstructor::ConstructColumnSorters ( UE::Editor::DataStorage::ICoreProvider DataStorage,
UE::Editor::DataStorage::IUiProvider DataStorageUi,
const UE::Editor::DataStorage::FMetaDataView Arguments 
)
virtual

Constructs a list of classes that are used to sort the rows with the column(s) associated with this widget constructor. If this widget constructor is used to create multiple widgets, for instance when used in a column of a grid view, these sorters can be used to order the rows in a logical order described by the sorter. A widget constructor can provide multiple constructors which will allow the same list of rows to be sorted in different orders.

◆ ConstructFinalWidget()

TSharedPtr< SWidget > FTypedElementWidgetConstructor::ConstructFinalWidget ( UE::Editor::DataStorage::RowHandle  Row,
UE::Editor::DataStorage::ICoreProvider DataStorage,
UE::Editor::DataStorage::IUiProvider DataStorageUi,
const UE::Editor::DataStorage::FMetaDataView Arguments 
)
virtual

Calls Construct() to create the internal widget, and then stores it in a container before returning. In most cases you want to call this to first create the initial TEDS widget, to ensure the internal widget is automatically created/destroyed if the row matches/unmatches the required columns.

Construct() can be called later to (re)create the internal widget if ever required.

See also
Construct
Parameters
DataStorageThe row the widget will be stored in.

◆ CreateWidget() [1/2]

TSharedPtr< SWidget > FTypedElementWidgetConstructor::CreateWidget ( const UE::Editor::DataStorage::FMetaDataView Arguments)
protectedvirtual

Create a new instance of the target widget. This is a required function.

Reimplemented in FSimpleWidgetConstructor.

◆ CreateWidget() [2/2]

TSharedPtr< SWidget > FTypedElementWidgetConstructor::CreateWidget ( UE::Editor::DataStorage::ICoreProvider DataStorage,
UE::Editor::DataStorage::IUiProvider DataStorageUi,
UE::Editor::DataStorage::RowHandle  TargetRow,
UE::Editor::DataStorage::RowHandle  WidgetRow,
const UE::Editor::DataStorage::FMetaDataView Arguments 
)
protectedvirtual

Create a new instance of the target widget. This is a required function.

Reimplemented in FSimpleWidgetConstructor.

◆ CreateWidgetDisplayName()

FString FTypedElementWidgetConstructor::CreateWidgetDisplayName ( UE::Editor::DataStorage::ICoreProvider DataStorage,
UE::Editor::DataStorage::RowHandle  Row 
) const
finalvirtual

Returns a friendly name for the data the created widget represents. By default the associated column is used. If there are multiple columns associated with the constructor the default implementation will attempt to find the longest common starting string for all the columns. Individual widget constructors can override this function with a name specific to them.

◆ CreateWidgetDisplayNameText()

FText FTypedElementWidgetConstructor::CreateWidgetDisplayNameText ( UE::Editor::DataStorage::ICoreProvider DataStorage,
UE::Editor::DataStorage::RowHandle  Row = UE::Editor::DataStorage::InvalidRowHandle 
) const
virtual

Returns an FText of the friendly name for the data the created widget represents. By default the associated column is used. If there are multiple columns associated with the constructor the default implementation will attempt to find the longest common starting string for all the columns. Individual widget constructors can override this function with a name specific to them.

If no row is specified, it will default to an InvalidRowHandle, assuming that we are asking for a display name for the whole widget and not a specific instance.

◆ DescribeColumnType()

FText FTypedElementWidgetConstructor::DescribeColumnType ( const UScriptStruct ColumnType) const
protectedvirtual

Creates a (friendly) name for the provided column type.

◆ FinalizeWidget()

bool FTypedElementWidgetConstructor::FinalizeWidget ( UE::Editor::DataStorage::ICoreProvider DataStorage,
UE::Editor::DataStorage::IUiProvider DataStorageUi,
UE::Editor::DataStorage::RowHandle  Row,
const TSharedPtr< SWidget > &  Widget 
)
protectedvirtual

Last opportunity to configure anything in the widget or the row. This step can be needed to initialize widgets with data stored in columns.

Reimplemented in FSimpleWidgetConstructor.

◆ GetAdditionalColumnsList()

TConstArrayView< const UScriptStruct * > FTypedElementWidgetConstructor::GetAdditionalColumnsList ( ) const
virtual

Returns a list of additional columns the widget requires to be added to its rows.

◆ GetQueryConditions() [1/2]

const UE::Editor::DataStorage::Queries::FConditions * FTypedElementWidgetConstructor::GetQueryConditions ( ) const
finalvirtual

Retrieves the query conditions that need to match for this widget constructor to produce a widget.

◆ GetQueryConditions() [2/2]

const UE::Editor::DataStorage::Queries::FConditions * FTedsWidgetConstructorBase::GetQueryConditions ( const UE::Editor::DataStorage::ICoreProvider Storage) const
virtual

Retrieves the query conditions that need to match for this widget constructor to produce a widget.

Reimplemented from FTedsWidgetConstructorBase.

◆ GetTargetRow()

UE::Editor::DataStorage::RowHandle FTypedElementWidgetConstructor::GetTargetRow ( UE::Editor::DataStorage::ICoreProvider DataStorage,
UE::Editor::DataStorage::RowHandle  WidgetRow 
) const
protected

Helper function to get the actual target row with the data the widget is operating on (if applicable). Returns InvalidRowHandle if there is no target row

◆ GetWidgetFactoryRow()

UE::Editor::DataStorage::RowHandle FTypedElementWidgetConstructor::GetWidgetFactoryRow ( ) const

Helper function to get the row containing the widget factory this constructor was factoried from

◆ Initialize() [1/2]

bool FTypedElementWidgetConstructor::Initialize ( const UE::Editor::DataStorage::FMetaDataView InArguments,
TArray< TWeakObjectPtr< const UScriptStruct > >  InMatchedColumnTypes,
const UE::Editor::DataStorage::Queries::FConditions InQueryConditions 
)
virtual

Initializes a new constructor based on the provided arguments..

◆ Initialize() [2/2]

bool FTedsWidgetConstructorBase::Initialize ( const UE::Editor::DataStorage::FMetaDataView InArguments,
TArray< TWeakObjectPtr< const UScriptStruct > >  InMatchedColumnTypes,
UE::Editor::DataStorage::RowHandle  FactoryRowHandle 
)
virtual

Initializes a new constructor based on the provided arguments.

Reimplemented from FTedsWidgetConstructorBase.

◆ SetColumns()

bool FTypedElementWidgetConstructor::SetColumns ( UE::Editor::DataStorage::ICoreProvider DataStorage,
UE::Editor::DataStorage::RowHandle  Row 
)
protectedvirtual

Set any values in columns if needed. The columns provided through GetAdditionalColumnsList() will have already been created.

Reimplemented in FSimpleWidgetConstructor.


The documentation for this struct was generated from the following files: