public ClipboardListViewModel( IAction[] allActions, IClipboardUserInterfaceMediator clipboardUserInterfaceMediator, // ReSharper disable once SuggestBaseTypeForParameter IKeyInterceptor hotkeyInterceptor, IAsyncListDictionaryBinder <IClipboardDataControlPackage, IAction> packageActionBinder, IAsyncFilter asyncFilter, IPerformanceHandleFactory performanceHandleFactory, IUserInterfaceThread userInterfaceThread) { Elements = new ObservableCollection <IClipboardDataControlPackage>(); Actions = new ObservableCollection <IAction>(); Actions.CollectionChanged += Actions_CollectionChanged; var pasteAction = allActions.OfType <IPasteAction>() .Single(); this.allActions = allActions.Where(x => x != pasteAction) .ToArray(); this.clipboardUserInterfaceMediator = clipboardUserInterfaceMediator; this.packageActionBinder = packageActionBinder; this.asyncFilter = asyncFilter; this.performanceHandleFactory = performanceHandleFactory; this.userInterfaceThread = userInterfaceThread; PreparePackageBinder(pasteAction); RegisterMediatorEvents(clipboardUserInterfaceMediator); RegisterKeyEvents(hotkeyInterceptor); }
public SelectedElementToActionsSwitchMechanism( IAction[] allActions, IAsyncFilter asyncFilter, IAsyncListDictionaryBinder<IClipboardDataControlPackage, IAction> packageActionBinder) { this.asyncFilter = asyncFilter; this.packageActionBinder = packageActionBinder; PrepareActions(allActions); }
public SelectedElementToActionsSwitchMechanism( IAction[] allActions, IAsyncFilter asyncFilter, IAsyncListDictionaryBinder <IClipboardDataControlPackage, IActionViewModel> packageActionBinder) { this.asyncFilter = asyncFilter; this.packageActionBinder = packageActionBinder; PrepareActions(allActions); }
private void PreparePackageBinder(IAsyncListDictionaryBinder <IClipboardDataControlPackage, IAction> packageActionBinder, IPasteAction defaultAction) { packageActionBinder.Default = defaultAction; packageActionBinder.Bind(Elements, Actions, GetSupportedActionsFromDataAsync); }