async Task PerformPaste() { if (SelectedAction != null) { await singlePasteLock.WaitAsync(); try { await SelectedAction.Action.PerformAsync(SelectedElement.Data); var oldSelectedElement = SelectedElement; var clone = oldSelectedElement.Clone(); SelectedElement = null; Elements.Remove(oldSelectedElement); Elements.Insert(0, clone); SelectedElement = clone; } finally { singlePasteLock.Release(); } } }
void FireControlAddedEvent(IClipboardDataControlPackage package) { if (ControlAdded != null) { ControlAdded(this, new ControlEventArgument(package)); //userInterfaceThread.Invoke(() => ControlAdded(this, new ControlEventArgument(package))); } }
static async Task <IActionViewModel> GetActionViewModelFromActionAndPackageAsync( IClipboardDataControlPackage package, IAction action) { return(new ActionViewModel( action, await action.GetDescriptionAsync(package.Data))); }
void Mediator_ControlAdded(object sender, ControlEventArgument e) { lock (Elements) { userInterfaceThread.Invoke(() => Elements.Insert(0, e.Package)); SelectedElement = e.Package; } }
void FireControlAddedEvent(IClipboardDataControlPackage package) { if (ControlAdded != null) { ControlAdded(this, new ControlEventArgument(package)); //userInterfaceThread.Invoke(() => ControlAdded(this, new ControlEventArgument(package))); } }
async Task<IEnumerable<IAction>> GetSupportedActionsFromDataAsync( IClipboardDataControlPackage data) { var allowedActions = await asyncFilter .FilterAsync( allActions, action => action.CanPerformAsync(data.Data)); return allowedActions .OrderBy(x => x.Order); }
void AddElement(IClipboardDataControlPackage package) { lock (Elements) { Elements.Insert(0, package); SelectedElement = package; UserInterfaceDataControlAdded?.Invoke(this, new UserInterfaceDataControlAddedEventArgument(package)); } }
void HandleUpPressed() { if (isFocusInActionsList) { SelectedAction = GetNewSelectedElementAfterHandlingUpKey(Actions, SelectedAction); } else { SelectedElement = GetNewSelectedElementAfterHandlingUpKey(Elements, SelectedElement); } }
void MediatorPackageAdded(object sender, PackageEventArgument e) { lock (Elements) { Elements.Insert(0, e.Package); SelectedElement = e.Package; while (Elements.Count > settingsViewModel.MaximumAmountOfItemsInClipboard) { Elements.RemoveAt(Elements.Count - 1); } } }
private void ClipboardUserInterfaceInteractionMediator_RemovedCurrentItem(object sender, EventArgs e) { var currentElement = SelectedElement; SelectedElement = Elements .Skip(1) .FirstOrDefault(); Elements.Remove(currentElement); if (Elements.Count == 0) { HideInterface(); } }
async Task <IEnumerable <IAction> > GetSupportedActionsFromDataAsync( IClipboardDataControlPackage data) { using (performanceHandleFactory.StartMeasuringPerformance()) { var allowedActions = await asyncFilter.FilterAsync(allActions, action => action.CanPerformAsync(data.Data)) .ConfigureAwait(false); return(allowedActions.OrderBy(x => x.Order)); } }
async Task <IEnumerable <IActionViewModel> > GetSupportedActionsFromDataAsync( IClipboardDataControlPackage data) { var allowedActions = await asyncFilter .FilterAsync( allActions, action => action.CanPerformAsync(data.Data)); var viewModelMappingTasks = allowedActions .Select(x => GetActionViewModelFromActionAndPackageAsync(data, x)); var viewModels = await Task.WhenAll(viewModelMappingTasks); return(viewModels.OrderBy(x => x.Action.Order)); }
void RemoveCurrentElement() { var currentElement = SelectedElement; var currentIndex = Elements.IndexOf(currentElement); Elements.Remove(currentElement); if (Elements.Count == 0) { HideInterface(); } else { var targetIndex = currentIndex == 0 ? 0 : currentIndex - 1; SelectedElement = Elements.ElementAt(targetIndex); } }
void ClipboardUserInterfaceInteractionMediator_SelectedPreviousItem( object sender, EventArgs e) { switch (clipboardUserInterfaceInteractionMediator.CurrentPane) { case ClipboardUserInterfacePane.Actions: SelectedAction = GetNewSelectedElementAfterHandlingUpKey(Actions, SelectedAction); break; case ClipboardUserInterfacePane.ClipboardPackages: SelectedElement = GetNewSelectedElementAfterHandlingUpKey(Elements, SelectedElement); break; default: throw new InvalidOperationException( "Unknown user interface pane."); } }
public UserInterfaceDataControlAddedEventArgument(IClipboardDataControlPackage package) { Package = package; }
void FireControlAddedEvent(IClipboardDataControlPackage package) { PackageAdded?.Invoke(this, new PackageEventArgument(package)); }
void AddControlPackage(IClipboardDataControlPackage controlPackage) { clipboardPackages.Add(controlPackage); FireControlAddedEvent(controlPackage); }
public ControlEventArgument(IClipboardDataControlPackage package) { Package = package; }
public PackageEventArgument(IClipboardDataControlPackage package) { Package = package; }
private void FireControlAddedEvent(IClipboardDataControlPackage package) { ControlAdded?.Invoke(this, new ControlEventArgument(package)); }