Class BaseGridCustomController<T>
The system controller used for automatically creating a IBaseGrid<T> according to a ICustomGrid definition
Uses the GridViewControllerCustomViewParams parameter for the view to determine the ICustomGrid to load the defintion of
Inheritance
Implements
Inherited Members
Namespace: LemonEdge.Client.Core.Views.Core
Assembly: LemonEdge.ClientCore.dll
Syntax
public class BaseGridCustomController<T> : BaseGridController<T>, IBaseGridController, ICollectionExportable, INewGridItemImplementor<T>, ICopyGridItemImplementor<T>, IGrid, IDeleteGridItemImplementor<T>, ISearchController, IModelViewController where T : IBaseEntity
Type Parameters
Name | Description |
---|---|
T | The entity type to be displayed and edited by this grid controller |
Constructors
BaseGridCustomController(IBaseGrid<T>)
Creates a new system BaseGridCustomController with the specified instance of a default grid view
Declaration
public BaseGridCustomController(IBaseGrid<T> view)
Parameters
Type | Name | Description |
---|---|---|
IBaseGrid<T> | view | The instance of the default grid view in the client application |
Properties
AutoOpenNewItemInTab
Indicates when creating a new item in the grid that it should automatically be opened in a new tab as well
The default is true if the type T is an entity that is not a IsStandingDataEntity
Declaration
public override bool AutoOpenNewItemInTab { get; }
Property Value
Type | Description |
---|---|
bool |
Overrides
CanCreateNew
Indicates if the user can create new items in the grid
The default implementation is true, allowing specific controller implementations to provide override values
Declaration
public override bool CanCreateNew { get; }
Property Value
Type | Description |
---|---|
bool |
Overrides
PopulateNewFromLookupColumnName
Indicates when creating a new item the system should create a popup showing a selection of items from this property relationship on type T, that will automatically be set for the new item
For each relationship entity selected the system will call the callback in the GetLookupIDsForNewItems(Func<IBaseEntity, Task>) function
The default implementation is null, indicating a new item is just created as is, but can be overridden by inheriting controllers to force relationship selections first before creating itemsDeclaration
public override string PopulateNewFromLookupColumnName { get; }
Property Value
Type | Description |
---|---|
string |
Overrides
Methods
AlterQuery(QueryableExecuter<T>)
Provides the inheriting controller an opportunity to modify the query used to load the data for this IBaseGrid<T>
Default implementation does nothing unless the type T is an entity with a property with a SequenceStart, in which case it is ordered by that
Declaration
protected override QueryableExecuter<T> AlterQuery(QueryableExecuter<T> query)
Parameters
Type | Name | Description |
---|---|---|
QueryableExecuter<T> | query | The query for this grid to always be altered before being executed |
Returns
Type | Description |
---|---|
QueryableExecuter<T> | The query to be used to execute results for this grid |
Overrides
CanDelete(T)
Indicates if the selected item is allowed to be deleted based on the status of the item itself
The default implementation is false, allowing specific controller implementations to provide override values
Declaration
public override Task<bool> CanDelete(T item)
Parameters
Type | Name | Description |
---|---|---|
T | item | The item to check if it can be deleted |
Returns
Type | Description |
---|---|
Task<bool> | True if the specified item can be deleted |
Overrides
ColumnGroups()
Returns all the groups the columns belong to (if any) as defined in the GroupinName for the LoadAdditionalColumns()
Declaration
public override IEnumerable<GridColumnGroup> ColumnGroups()
Returns
Type | Description |
---|---|
IEnumerable<GridColumnGroup> | All the groups the columns belong to (if any) as defined in the GroupinName for the LoadAdditionalColumns() |
Overrides
Columns()
Returns all the columns loaded from LoadAdditionalColumns()
Declaration
public override IEnumerable<ControlDisplayInfo> Columns()
Returns
Type | Description |
---|---|
IEnumerable<ControlDisplayInfo> | All the columns loaded from LoadAdditionalColumns() which dynamically represent the definitions in ICustomGridColumn for this ICustomGrid |
Overrides
DisplayItem(object)
Clears the view, determines if CanWrite is true, and if it ShouldDisplayItem(object?) then calls AddHandlers(object) and DisplayUI()
Declaration
public override Task DisplayItem(object item)
Parameters
Type | Name | Description |
---|---|---|
object | item | The item to be displayed against this View |
Returns
Type | Description |
---|---|
Task | A task indicating the completion of the operation |
Overrides
InitAsync()
Provides the controller a chance to initialize any dependant data. Called once by the system after controller creation.
Declaration
public override Task InitAsync()
Returns
Type | Description |
---|---|
Task | A task indicating the completion of the operation |
Overrides
LoadAdditionalColumns()
Loads all the control definitions as defined by the ICustomGridColumn collection for the ICustomGrid specified in the GridViewControllerCustomViewParams for this view
Declaration
protected override Task LoadAdditionalColumns()
Returns
Type | Description |
---|---|
Task | All the control definitions as defined by the ICustomGridColumn collection for the ICustomGrid specified in the GridViewControllerCustomViewParams for this view |
Overrides
OnTrackedItemChanged(object, string)
Provids a mechanism for handling changes for any item in the context
By default this is used to apply changes made to a selected item automatically to all other selected items in the grid (if multi-select is enabled)
Declaration
protected override void OnTrackedItemChanged(object item, string propName)
Parameters
Type | Name | Description |
---|---|---|
object | item | The item that changed |
string | propName | The property name of the changed value |
Overrides
RemoveItems(IEnumerable<T>)
Removes the specified set of items from the grid and if the items in the grid have a property marked as SequenceStart then it will decrement the ones above these deleted items to reflect their change in order
Declaration
public override Task RemoveItems(IEnumerable<T> items)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<T> | items | The items to be removed from the CurrentItems |
Returns
Type | Description |
---|---|
Task | A task indicating the completion of the operation |
Overrides
UpdateNewItem(T)
Provides an inheriting controller an opportunity to alter the newly created item by the grid before it is added to the IBaseGrid<T> itself
By default this ensures the item has the next maximum sequence number if the item is an entity that has a property with a SequenceStart
Declaration
protected override Task UpdateNewItem(T item)
Parameters
Type | Name | Description |
---|---|---|
T | item | The newly created item to be added to the grid |
Returns
Type | Description |
---|---|
Task | A task indicating the completion of the operation |