Ejemplo n.º 1
0
 internal void BroadcastItemsChanged()
 {
     if (IsFirstItem)// && _rootModel is BreadcrumbViewModel<FI, DI, FSI>)
     {
         ShowCaption = EmbeddedDirectoryModel.Equals(_rootModel.SelectedNavigationViewModel.EmbeddedDirectoryModel);
     }
     //(_rootModel as BreadcrumbViewModel<FI, DI, FSI>).Hierarchy.Count == 1;
 }
Ejemplo n.º 2
0
        public void PlaceBounty()
        {
            if (_rootModel == null || _rootModel.Bounty == null || !IsDirectory || _isSeparator)
            {
                return;
            }

            if (EmbeddedDirectoryModel.EqualsOrHasChild(_rootModel.Bounty))
            {
                if (EmbeddedDirectoryModel.Equals(_rootModel.Bounty))
                {
                    //Debug.WriteLine(_rootModel.Bounty.IsCached);
                    //Debug.WriteLine(EmbeddedDirectoryModel.IsCached);
                    //Exchange bounty if cached.
                    if (!EmbeddedDirectoryModel.IsCached && _rootModel.Bounty.IsCached)
                    {
                        _embeddedDirectoryModel = _rootModel.Bounty;
                    }
                    _rootModel.RequestBountyReward(this);
                }
                else
                {
                    IsSelected = false;
                    if (_isInited)
                    {
                        IsExpanded = true;
                        foreach (NavigationItemViewModel <FI, DI, FSI> subDirVM in
                                 _subDirectories.OrderBy((nivm) => { return(-nivm.EmbeddedEntryModel.CustomPosition); }))
                        {
                            if (subDirVM.EmbeddedDirectoryModel.EqualsOrHasChild(_rootModel.Bounty))
                            {
                                subDirVM.PlaceBounty();
                                break;
                            }
                            else
                            {
                                subDirVM.CollapseAll();
                            }
                        }
                    }
                    else
                    {
                        //Let greed does all the work....
                        IsExpanded = true;
                    }
                }
            }
            else
            {
                IsSelected = false;
            }
        }
Ejemplo n.º 3
0
        //private void changeSortMethod(SortCriteria sortBy, ListSortDirection sortDirection)
        //{
        //    ListCollectionView dataView = (ListCollectionView)(CollectionViewSource.GetDefaultView(_subEntries));

        //    dataView.SortDescriptions.Clear();
        //    dataView.CustomSort = null;

        //    SortDirectionType direction = sortDirection == ListSortDirection.Ascending ?
        //       SortDirectionType.sortAssending : SortDirectionType.sortDescending;

        //    dataView.CustomSort = new EntryComparer<FI, DI, FSI>(sortBy, direction)
        //    { IsFolderFirst = true };

        //}

        private void setupSubEntries()
        {
            //Func<EntryModel<FI, DI, FSI>, EntryViewModel<FI, DI, FSI>> toViewModel =
            //    (m) =>
            //    {
            //        EntryViewModel<FI, DI, FSI> retVal = m.ToViewModel();
            //        retVal.ParentViewModel = this;
            //        return retVal;
            //    };
            _subEntries = new AsyncObservableCollection <EntryViewModel <FI, DI, FSI> >
                          (
                from entryModel in EmbeddedDirectoryModel.GetSubEntries(true)
                select entryModel.ToViewModel(Profile),
                (list, ex) =>
            {
                ListStatus = (ex != null) ? ListMode.Error : ListMode.Completed;
                _subDirectories.Clear();
                _subFiles.Clear();
                foreach (EntryViewModel <FI, DI, FSI> entry in _subEntries)
                {
                    if (entry is FileViewModel <FI, DI, FSI> )
                    {
                        _subFiles.Add(entry);
                    }
                }

                foreach (EntryViewModel <FI, DI, FSI> entry in _subEntries)
                {
                    if (entry is DirectoryViewModel <FI, DI, FSI> )
                    {
                        _subDirectories.Add(entry);
                    }
                }

                lock (taskCompletedNotifierList)
                {
                    foreach (Action taskAfterCompleted in taskCompletedNotifierList)
                    {
                        taskAfterCompleted();
                    }
                    taskCompletedNotifierList.Clear();
                }

                HasSubDirectories = _subDirectories.Count > 0;
            });
            _subDirectories = new ObservableCollection <EntryViewModel <FI, DI, FSI> >();
            _subFiles       = new ObservableCollection <EntryViewModel <FI, DI, FSI> >();

            _subEntries.ChangeSortMethod(_sortBy, _sortDirection);
        }