public virtual void Clear() { SelectedItem = default(TViewModel); using (BusyStack.GetToken()) _items.Clear(); }
public override void AddRange(IEnumerable <TViewModel> items) { if (items == null) { throw new ArgumentNullException(nameof(items), $"{nameof(items)} {Resources.IsRequired}"); } using (BusyStack.GetToken()) { var added = false; var sequence = _sequenceProvider.Get(Items.Cast <ISequence>().ToList()); foreach (var item in items) { item.Sequence = sequence; Add(item); sequence++; added = true; } if (SelectedItem == null && added) { SelectedItem = Items.First(); } } }
private FileSystemViewModel() { _busyStack = new BusyStack(); _busyStack.OnChanged += (hasItems) => IsBusy = hasItems; SelectCommand = new RelayCommand <IFileSystemInfo>(SetSelectedItem, CanSetSelectedItem); }
protected BaseDataViewModel(IMessenger messenger) { Messenger = messenger ?? throw new ArgumentNullException(nameof(messenger), $"{nameof(messenger)} {Resources.IsRequired}"); BusyStack = new BusyStack(); BusyStack.OnChanged += (isBusy) => IsBusy = isBusy; ChangeTracker = new ChangeTracker(); }
protected MapleFileSystemBase(string name, string fullName, IDepth depth, IFileSystemDirectory parent, IMessenger messenger) : this(messenger) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name), $"{nameof(name)} {Resources.IsRequired}"); } if (string.IsNullOrEmpty(fullName)) { throw new ArgumentNullException(nameof(fullName), $"{nameof(fullName)} {Resources.IsRequired}"); } if (depth == null) { throw new ArgumentNullException(nameof(depth), $"{nameof(depth)} {Resources.IsRequired}"); } if (!(this is IFileSystemDrive) && parent == null) { throw new ArgumentNullException(nameof(parent), $"{nameof(parent)} {Resources.IsRequired}"); } using (BusyStack.GetToken()) { Depth = depth; Depth.Current++; Name = name; FullName = fullName; Parent = parent; } }
/// <summary> /// Refreshes this instance. /// </summary> /// <autogeneratedoc /> public override void Refresh() { using (BusyStack.GetToken()) { OnFilterChanged(string.Empty); } }
protected ViewModel(IMessenger messenger) { BusyStack = new BusyStack(); BusyStack.OnChanged += (isBusy) => IsBusy = isBusy; MessageTokens = new List <SubscriptionToken>(); Messenger = messenger ?? throw new ArgumentNullException(nameof(messenger), $"{nameof(messenger)} {Resources.IsRequired}"); }
/// <summary> /// Adds the specified item. /// </summary> /// <param name="item">The item.</param> /// <exception cref="System.ArgumentNullException">item</exception> public virtual void Add(TViewModel item) { if (item == null) { throw new ArgumentNullException(nameof(item)); } using (BusyStack.GetToken()) _items.Add(item); }
/// <param name="items">The items.</param> /// <exception cref="System.ArgumentNullException">items</exception> public virtual void AddRange(IEnumerable <TViewModel> items) { if (items == null) { throw new ArgumentNullException(nameof(items)); } using (BusyStack.GetToken()) _items.AddRange(items); }
/// <param name="items">The items.</param> /// <exception cref="System.ArgumentNullException">items</exception> public virtual void RemoveRange(IList items) { if (items == null) { throw new ArgumentNullException(nameof(items)); } using (BusyStack.GetToken()) _items.RemoveRange(items.Cast <TViewModel>()); }
public MapleDirectory(DirectoryInfo info, IDepth depth, IFileSystemDirectory parent, IMessenger messenger, ILoggingService loggingService) : base(info.Name, info.FullName, depth, parent, messenger, loggingService) { using (BusyStack.GetToken()) { if (!Depth.IsMaxReached) { Refresh(); } } }
public override void Refresh() { using (BusyStack.GetToken()) { Children.Clear(); Children.AddRange(FileSystemExtensions.GetChildren(this, Depth, Messenger, _loggingService)); HasContainers = Children.Any(p => p is MapleFileSystemContainerBase); OnFilterChanged(string.Empty); } }
/// <summary> /// Initializes a new instance of the <see cref="MapleDrive"/> class. /// </summary> /// <param name="info">The information.</param> /// <param name="depth">The depth.</param> /// <autogeneratedoc /> public MapleDrive(DriveInfo info, IDepth depth, IMessenger messenger, ILoggingService loggingService) : base(info.Name, info.Name, depth, null, messenger, loggingService) { using (BusyStack.GetToken()) { if (!Depth.IsMaxReached) { Refresh(); } } }
public override void OnFilterChanged(string filter) { using (BusyStack.GetToken()) { Filter = filter; Children.ForEach(p => p.LoadMetaData()); Children.ForEach(p => p.Filter = filter); using (DefaultCollectionView.DeferRefresh()) DefaultCollectionView.Filter = SearchFilter; } }
public MapleFile(FileInfo info, IDepth depth, IFileSystemDirectory parent, IMessenger messenger) : base(info.Name, info.FullName, depth, parent, messenger) { using (BusyStack.GetToken()) { if (!Depth.IsMaxReached) { Refresh(); IsExpanded = true; } } }
/// <summary> /// Removes the range. /// </summary> /// <param name="items">The items.</param> public override void RemoveRange(IEnumerable <TViewModel> items) { if (items == null) { throw new ArgumentNullException(nameof(items), $"{nameof(items)} {Resources.IsRequired}"); } using (BusyStack.GetToken()) { items.ForEach(p => p.Model.IsDeleted = true); base.RemoveRange(items); } }
private MapleFileSystemBase() { _busyStack = new BusyStack(); _busyStack.OnChanged += (hasItems) => IsBusy = hasItems; LoadCommand = new RelayCommand(Load, CanLoad); RefreshCommand = new RelayCommand(Refresh, CanRefresh); DeleteCommand = new RelayCommand(Delete, CanDelete); Exists = true; IsHidden = false; IsContainer = false; HasContainers = false; }
/// <summary> /// Removes the range. /// </summary> /// <param name="items">The items.</param> /// <exception cref="System.ArgumentNullException">items</exception> public override void RemoveRange(IList items) { if (items == null) { throw new ArgumentNullException(nameof(items), $"{nameof(items)} {Resources.IsRequired}"); } using (BusyStack.GetToken()) { foreach (var item in items) { Remove(item as TViewModel); } } }
/// <summary> /// Removes the specified item. /// </summary> /// <param name="item">The item.</param> public override void Remove(TViewModel viewModel) { if (viewModel == null) { throw new ArgumentNullException(nameof(viewModel), $"{nameof(viewModel)} {Resources.IsRequired}"); } using (BusyStack.GetToken()) { while (Items.Contains(viewModel)) { viewModel.Model.IsDeleted = true; base.Remove(viewModel); } } }
public FileSystemViewModel(IMessenger messenger, ILoggingService loggingService) : base(messenger) { using (BusyStack.GetToken()) { DisplayListView = false; Drives = new RangeObservableCollection <MapleDrive>(); SelectedItems = new RangeObservableCollection <IFileSystemInfo>(); var drives = DriveInfo.GetDrives() .Where(p => p.IsReady && p.DriveType != DriveType.CDRom && p.DriveType != DriveType.Unknown) .Select(p => new MapleDrive(p, new FileSystemDepth(0), Messenger, loggingService)) .ToList(); Drives.AddRange(drives); SelectCommand = new RelayCommand <object>(SetSelectedItem, CanSetSelectedItem); } }
protected MapleFileSystemContainerBase(string name, string fullName, IDepth depth, IFileSystemDirectory parent, IMessenger messenger, ILoggingService loggingService) : base(name, fullName, depth, parent, messenger) { using (BusyStack.GetToken()) { IsContainer = true; Children = new RangeObservableCollection <IFileSystemInfo>(); NoFilesCollectionView = CollectionViewSource.GetDefaultView(Children); DefaultCollectionView = CollectionViewSource.GetDefaultView(Children); using (NoFilesCollectionView.DeferRefresh()) NoFilesCollectionView.Filter = NoFilesFilter; using (DefaultCollectionView.DeferRefresh()) DefaultCollectionView.Filter = SearchFilter; _loggingService = loggingService ?? throw new ArgumentNullException(nameof(loggingService), $"{nameof(loggingService)} {Resources.IsRequired}"); } }
/// <summary> /// Initializes a new instance of the <see cref="FileSystemViewModel"/> class. /// </summary> /// <autogeneratedoc /> public FileSystemViewModel() { _busyStack = new BusyStack(); _busyStack.OnChanged += (hasItems) => IsBusy = hasItems; SelectCommand = new RelayCommand <IFileSystemInfo>(SetSelectedItem, CanSetSelectedItem); using (_busyStack.GetToken()) { DisplayListView = false; Drives = new RangeObservableCollection <MapleDrive>(); SelectedItems = new RangeObservableCollection <IFileSystemInfo>(); SelectedDetailItems = new RangeObservableCollection <IFileSystemInfo>(); var drives = DriveInfo.GetDrives() .Where(p => p.IsReady && p.DriveType != DriveType.CDRom && p.DriveType != DriveType.Unknown) .Select(p => new MapleDrive(p, new FileSystemDepth(0))) .ToList(); Drives.AddRange(drives); } }
/// <summary> /// Initializes a new instance of the <see cref="BusyToken"/> class. /// </summary> /// <param name="stack">The stack.</param> public BusyToken(BusyStack stack) : base(stack) { stack.Push(this); }
public RangeObservableCollection() : base() { _busyStack = new BusyStack(); _busyStack.OnChanged += (updatePending) => _suppressNotification = updatePending; }
/// <summary> /// Removes the specified item. /// </summary> /// <param name="item">The item.</param> public virtual void Remove(TViewModel item) { using (BusyStack.GetToken()) _items.Remove(item); }