Class NewGridItem<T>
A view command that creates a new item of entity type T
in a view grid
Provides multiple mechanisms for overriding this behaviour allowing complete customization on how to create the new item
Inheritance
Implements
Inherited Members
Namespace: LemonEdge.Client.Core.Commands.ViewCommands
Assembly: LemonEdge.ClientCore.dll
Syntax
public class NewGridItem<T> : ViewCommand, IHasChildren<EPCommandWithDescriptor>, IHasChildren, IDisposable, IEPCommandWithDescriptor, IEPCommand, ICommand, ICommandDescriptor
Type Parameters
Name | Description |
---|---|
T | The type of new entity to be created in the grid |
Constructors
NewGridItem(IRootController, IModelLayoutDisplayer, INewGridItemImplementor<T>, INewItemHelper<T>, ILogger<NewGridItem<T>>)
Creates a new NewGridItem view command for working against a grid
Declaration
public NewGridItem(IRootController root, IModelLayoutDisplayer owner, INewGridItemImplementor<T> controller, INewItemHelper<T> helper, ILogger<NewGridItem<T>> logger)
Parameters
Type | Name | Description |
---|---|---|
IRootController | root | The root application controller, for service access |
IModelLayoutDisplayer | owner | The owning context this command operates within |
INewGridItemImplementor<T> | controller | The controller view grid implementation to add a new item too |
INewItemHelper<T> | helper | The helper class to use to facilitate creating a new item within the grid view |
ILogger<NewGridItem<T>> | logger |
Properties
Description
A user friendly description of this command
Declaration
public override string Description { get; }
Property Value
Type | Description |
---|---|
string |
Overrides
IconID
Declaration
public override Guid IconID { get; }
Property Value
Type | Description |
---|---|
Guid |
Overrides
IsQuickAccessCommand
Indicates this command should also be available in a quick access manner if the ui permits it to be highlighted and seperated for quick access among a group of other commands
For instance in the desktop application view commands are accessible from a drop down menu by default, but if this is true they are also directly accessible from the view itself
Declaration
public override bool IsQuickAccessCommand { get; }
Property Value
Type | Description |
---|---|
bool |
Overrides
Key
Indicates the command key to use for executing this from a keyboard command
Declaration
public override KeyboardKey Key { get; }
Property Value
Type | Description |
---|---|
KeyboardKey |
Overrides
ModifierKeys
Indicates the modifier keys to be used with Key when executing this command from the keyboard
Declaration
public override KeyboardModifierKeys ModifierKeys { get; }
Property Value
Type | Description |
---|---|
KeyboardModifierKeys |
Overrides
OverlayIconID
On some clients another image can be overlayed on the bottom right of the main icon (for indicating add, remove, etc)
This optional overlay image can be specified here, either a ImageType or ImageID
Declaration
public override Guid? OverlayIconID { get; }
Property Value
Type | Description |
---|---|
Guid? |
Overrides
Title
The title of this command
Declaration
public override string Title { get; }
Property Value
Type | Description |
---|---|
string |
Overrides
ToolTip
A user friendly tool tip for this command functionality, by default the Description
Declaration
public override string ToolTip { get; }
Property Value
Type | Description |
---|---|
string |
Overrides
Methods
InternalCanExecuteAsync(object)
Returns true if the layout is not read-only, the view is not locked (ILockableController), the user
has permissions to create an entity of type T
, and the
CanCreate(UserInfo, IReadOnlyCache, IEntityUpdater) implementation returns true
Declaration
public override Task<bool> InternalCanExecuteAsync(object parameter)
Parameters
Type | Name | Description |
---|---|---|
object | parameter | The command parameter |
Returns
Type | Description |
---|---|
Task<bool> | True if the layout is not read-only, the view is not locked (ILockableController), the user has
permissions to create an entity of type |
Overrides
InternalExecuteAsync(object)
If the PopulateNewFromLookupColumnName is not set then a single item is created using CreateNewItem(UserInfo, IReadOnlyCache, IEntityUpdater). Otherwise that is called for each selected item from GetLookupIDsForNewItems(Func<IBaseEntity, Task>).
The new item(s) are then added to the context, grid and optionally opened as new tabs in the main application
Declaration
public override Task InternalExecuteAsync(object parameter)
Parameters
Type | Name | Description |
---|---|---|
object | parameter | The command parameter |
Returns
Type | Description |
---|---|
Task | A task indicating the completion of the operation |