CommandTargetStatus ExecuteNext(ICommandTargetFilter filter, Guid group, int cmdId, object args, ref object result) { int index = IndexOf(filter); if (index < 0) { return(CommandTargetStatus.NotHandled); } return(Execute(index + 1, group, cmdId, args, ref result)); }
CommandTargetStatus CanExecuteNext(ICommandTargetFilter filter, Guid group, int cmdId) { int index = IndexOf(filter); if (index < 0) { return(CommandTargetStatus.NotHandled); } return(CanExecute(index + 1, group, cmdId)); }
int IndexOf(ICommandTargetFilter filter) { for (int i = 0; i < commandTargetInfos.Count; i++) { if (commandTargetInfos[i].Filter == filter) { return(i); } } return(-1); }
public void RemoveFilter(ICommandTargetFilter filter) { if (filter == null) { throw new ArgumentNullException(nameof(filter)); } int index = IndexOf(filter); if (index < 0) { return; } commandTargetInfos.RemoveAt(index); }
public void AddFilter(ICommandTargetFilter filter, double order) { if (filter == null) { throw new ArgumentNullException(nameof(filter)); } if (IndexOf(filter) >= 0) { throw new ArgumentException("Filter has already been added to the list"); } int index = GetNewFilterIndex(order); commandTargetInfos.Insert(index, new CommandTargetFilterInfo(filter, order)); filter.SetNextCommandTarget(new NextCommandTarget(this, filter)); }
public NextCommandTarget(RegisteredCommandElement owner, ICommandTargetFilter filter) { ownerWeakRef = new WeakReference(owner); filterWeakRef = new WeakReference(filter); }
public void RemoveFilter(ICommandTargetFilter filter) => registeredCommandElement.RemoveFilter(filter);
public void AddFilter(ICommandTargetFilter filter, double order) => registeredCommandElement.AddFilter(filter, order);
public CommandTargetFilterInfo(ICommandTargetFilter filter, double order) { Filter = filter; Order = order; }
public void RemoveFilter(ICommandTargetFilter filter) { }
public void AddFilter(ICommandTargetFilter filter, double order) { }