public sealed override void LoadItems(IFSItemLoader itemsLoader)
 {
     ValideteChildItemsStete(itemsLoader);
     if (!AddItems(itemsLoader, _enumerator))
     {
         itemsLoader.ItemsLoaderState = _loaderStateFactory.CreateLoadedItemsState(_explorer.GetLastWriteTime(itemsLoader.ItemPath));
     }
 }
示例#2
0
 protected void ValideteChildItemsStete(IFSItemLoader itemsLoader)
 {
     foreach (var itemManager in itemsLoader.ItemCollection.ItemManagers)
     {
         if (itemsLoader.IsLoadingItems)
         {
             itemManager.ValidateItemState();
         }
     }
 }
示例#3
0
        public void ValidateItemState(IFSItemLoader itemsLoader)
        {
            if (IsValidCurrentItem(itemsLoader.ItemPath))
            {
                return;
            }

            itemsLoader.ItemsLoaderState = _loaderStateFactory.CreatePreLoadItemsState();
            itemsLoader.BeginLoadItems();
        }
 public sealed override void LoadItems(IFSItemLoader itemLoader)
 {
     itemLoader.ItemCollection.Clear();
     if (_explorer.HasItems(itemLoader.ItemPath))
     {
         itemLoader.ItemCollection.Add(null);
         itemLoader.ItemsLoaderState = _loaderStateFactory.CreateLoadItemsState(_explorer.GetLastWriteTime(itemLoader.ItemPath));
     }
     else
     {
         itemLoader.ItemsLoaderState = _loaderStateFactory.CreateLoadedItemsState(_explorer.GetLastWriteTime(itemLoader.ItemPath));
     }
 }
示例#5
0
        protected bool AddItems(IFSItemLoader itemLoader, IEnumerator <FSItemModel> enumerator)
        {
            var hasNext = enumerator.MoveNext();

            if (!hasNext)
            {
                return(hasNext);
            }
            do
            {
                itemLoader.ItemCollection.Add(enumerator.Current);
            } while (/*itemLoader.IsLoadingItems && */ (hasNext = enumerator.MoveNext()));

            return(hasNext);
        }
示例#6
0
 public FSItemManager(IFSItemLoader itemLoader, IFSItemWatcher watcher)
 {
     _itemLoader = itemLoader;
     _watcher    = watcher;
 }
示例#7
0
 public abstract void LoadItems(IFSItemLoader itemLoader);