Exemple #1
0
        public ExplorerViewModel(Profile <FI, DI, FSI> profile)
        {
            _profile = profile;

            var notificationSources = from m in _profile.GetNotificationSources() select m.ToViewModel();

            _notificationViewModel = new NotificationBarViewModel(notificationSources.ToArray());

            _navigationViewModel     = new NavigationRootViewModel <FI, DI, FSI>(_profile);
            _currentBrowserViewModel =
                new DirectoryViewerViewModel <FI, DI, FSI>(_profile, _viewSize);
            _breadcrumbViewModel = new BreadcrumbViewModel <FI, DI, FSI>(_profile, this);
            _searchViewModel     = new SearchViewModel <FI, DI, FSI>(_profile);

            _navigationViewModel.DirectoryChanged += dirChangedHandler;

            if (CurrentEntryBrowserViewModel != null)
            {
                CurrentEntryBrowserViewModel.DirectoryChanged += dirChangedHandler;
            }
            _breadcrumbViewModel.DirectoryChanged += dirChangedHandler;
            _searchViewModel.DirectoryChanged     += dirChangedHandler;

            ChangeCurrentBrowserViewModel(_profile.ConstructDirectoryModel(profile.RootDirectories[0]));


            setupCommands();
        }
 public NavigationItemViewModel(NavigationRootViewModel <FI, DI, FSI> rootModel,
                                FileModel <FI, DI, FSI> embedFileModel)
     : this(rootModel,
            embedFileModel.Parent == null ? null :
            new NavigationItemViewModel <FI, DI, FSI>(rootModel,
                                                      rootModel.Profile.ConstructDirectoryModel(embedFileModel.Parent)),
            embedFileModel)
 {
 }
 public NavigationItemViewModel(NavigationRootViewModel <FI, DI, FSI> rootModel,
                                NavigationItemViewModel <FI, DI, FSI> parentModel,
                                FileModel <FI, DI, FSI> embedFileModel)
 {
     _isDirectory            = false;
     _embeddedEntryModel     = embedFileModel;
     _embeddedEntryViewModel = embedFileModel.ToViewModel(rootModel.Profile);
     _rootModel     = rootModel;
     _parentModel   = (parentModel != null && rootModel.Profile.IsInsideScope(parentModel.EmbeddedDirectoryModel)) ? parentModel : null;
     CustomPosition = embedFileModel.CustomPosition;
     setupCommands();
 }
 public static NavigationItemViewModel <FI, DI, FSI> FromModel(NavigationRootViewModel <FI, DI, FSI> rootModel,
                                                               EntryModel <FI, DI, FSI> embedEntryModel)
 {
     if (embedEntryModel is FileModel <FI, DI, FSI> )
     {
         return(new NavigationItemViewModel <FI, DI, FSI>(rootModel, embedEntryModel as FileModel <FI, DI, FSI>));
     }
     else
     {
         return(new NavigationItemViewModel <FI, DI, FSI>(rootModel, embedEntryModel as DirectoryModel <FI, DI, FSI>));
     }
 }
        public NavigationItemViewModel(NavigationRootViewModel <FI, DI, FSI> rootModel,
                                       NavigationItemViewModel <FI, DI, FSI> parentModel,
                                       EntryModel <FI, DI, FSI> embedEntryModel)
        {
            _isDirectory = embedEntryModel is DirectoryModel <FI, DI, FSI>;

            if (_isDirectory)
            {
                DirectoryModel <FI, DI, FSI> embedDirectoryModel = embedEntryModel as DirectoryModel <FI, DI, FSI>;;
                _embeddedEntryModel     = _embeddedDirectoryModel = embedDirectoryModel;
                _embeddedEntryViewModel = _embeddedDirectoryViewModel =
                    (DirectoryViewModel <FI, DI, FSI>)embedDirectoryModel.ToViewModel(rootModel.Profile);
            }
            else
            {
                _embeddedEntryModel     = embedEntryModel;
                _embeddedEntryViewModel = embedEntryModel.ToViewModel(rootModel.Profile);
            }
            _rootModel     = rootModel;
            _parentModel   = (parentModel != null && rootModel.Profile.IsInsideScope(parentModel.EmbeddedDirectoryModel)) ? parentModel : null;
            CustomPosition = embedEntryModel.CustomPosition;
            setupCommands();
        }