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(); }