Class CopyGridItem<T>
A view command for copying selected items of type T
in the collection view
Provides multiple mechanisms for overriding this behaviour allowing complete customization on how to create the copied items
If theT
implements ISetCopier then that is used to perform a deep clone of
the selected items
Inheritance
Implements
Inherited Members
Namespace: LemonEdge.Client.Core.Commands.ViewCommands
Assembly: LemonEdge.ClientCore.dll
Syntax
public class CopyGridItem<T> : ViewCommand, IHasChildren<EPCommandWithDescriptor>, IHasChildren, IDisposable, IEPCommandWithDescriptor, IEPCommand, ICommand, ICommandDescriptor where T : ICloneableAsync
Type Parameters
Name | Description |
---|---|
T | The type of new entity to be copied in the grid |
Constructors
CopyGridItem(IRootController, IModelLayoutDisplayer, ICopyGridItemImplementor<T>, IGridSelector, ICopyItemHelper<T>, ILogger<CopyGridItem<T>>)
Creates a new CopyGridItem view command for working against a grid
Declaration
public CopyGridItem(IRootController root, IModelLayoutDisplayer owner, ICopyGridItemImplementor<T> controller, IGridSelector view, ICopyItemHelper<T> helper, ILogger<CopyGridItem<T>> logger)
Parameters
Type | Name | Description |
---|---|---|
IRootController | root | The root controller, for service access. |
IModelLayoutDisplayer | owner | The owning context this command operates within |
ICopyGridItemImplementor<T> | controller | The controller view grid implementation to add the new item too |
IGridSelector | view | The grid view holding the selected items to be copied |
ICopyItemHelper<T> | helper | The helper class to use to facilitate creating a new item within the grid view |
ILogger<CopyGridItem<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)
For each selected item the system clones it (If the T
implements ISetCopier
then that is used to perform a deep clone) and marks is as a pending new change against the context
If AutoOpenNewItemInTab is set then each copied item is opened in its own layout tab too
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 |
Overrides
RemoveEventHandlersOnDispose()
Provides an inheriting command the opoortunity to remove any event handlers being listened to before this command is disposed
Declaration
protected override void RemoveEventHandlersOnDispose()