void viewModel_LazyLoadChildren(HierarchicalViewModelBase item) { var vm = item as TaxonFavoriteViewModel; if (vm != null) { if (vm.IsGroup) { // Load the children of this favorites group... var service = new SupportService(User); var list = service.GetTaxaFavorites(vm.FavoriteID, vm.IsGlobal); vm.Children.Clear(); list.ForEach((tf) => { var viewModel = new TaxonFavoriteViewModel(tf); viewModel.Parent = item; if (tf.NumChildren > 0) { viewModel.LazyLoadChildren += new HierarchicalViewModelAction(viewModel_LazyLoadChildren); viewModel.Children.Add(new ViewModelPlaceholder("Loading...")); } vm.Children.Add(viewModel); }); } else { BuildTaxaChildrenViewModel(item, vm.TaxaID); } } else { if (item is TaxonViewModel) { var tvm = item as TaxonViewModel; BuildTaxaChildrenViewModel(item, tvm.TaxaID.Value); } } }
internal void RenameFavoriteGroup(TaxonFavoriteViewModel taxonFavoriteViewModel) { favorites.RenameFavoriteGroup(taxonFavoriteViewModel); }
private void ProcessRename(TaxonFavoriteViewModel viewModel, string name) { viewModel.GroupName = name; RegisterUniquePendingChange(new RenameFavoriteGroupCommand(viewModel.Model)); }
private void BuildFavoritesModel(HierarchicalViewModelBase root, bool global) { var service = new SupportService(User); var list = service.GetTopTaxaFavorites(global); foreach (TaxonFavorite item in list) { var viewModel = new TaxonFavoriteViewModel(item); viewModel.Parent = root; if (item.NumChildren > 0) { viewModel.LazyLoadChildren += new HierarchicalViewModelAction(viewModel_LazyLoadChildren); viewModel.Children.Add(new ViewModelPlaceholder("Loading...")); } root.Children.Add(viewModel); root.IsExpanded = true; root.Tag = global; } }
internal void RenameFavoriteGroup(TaxonFavoriteViewModel taxonFavoriteViewModel) { if (taxonFavoriteViewModel == null) { return; } taxonFavoriteViewModel.IsRenaming = true; }
internal void AddToFavorites(TaxonViewModel Taxon, bool global) { TaxonFavorite model = new TaxonFavorite(); model.IsGroup = false; model.ChgComb = Taxon.ChgComb ?? false; model.ElemType = Taxon.ElemType; model.Epithet = Taxon.Epithet; model.FavoriteID = -1; model.FavoriteParentID = 0; model.IsGlobal = global; model.KingdomCode = Taxon.KingdomCode; model.NameStatus = Taxon.NameStatus; model.Rank = Taxon.Rank; model.TaxaFullName = Taxon.TaxaFullName; model.TaxaID = Taxon.TaxaID ?? -1; model.TaxaParentID = Taxon.TaxaParentID ?? -1; model.Unplaced = Taxon.Unplaced ?? false; model.Unverified = Taxon.Unverified ?? false; model.Username = User.Username; model.YearOfPub = Taxon.YearOfPub; LoadFavorites(); TaxonFavoriteViewModel viewModel = new TaxonFavoriteViewModel(model); if (global) { _globalRoot.IsExpanded = true; _globalRoot.Children.Add(viewModel); viewModel.Parent = _globalRoot; } else { _userRoot.IsExpanded = true; _userRoot.Children.Add(viewModel); viewModel.Parent = _userRoot; } viewModel.IsSelected = true; RegisterPendingChange(new InsertTaxonFavoriteCommand(viewModel.Model)); }
internal void AddFavoriteGroup(HierarchicalViewModelBase parent) { int parentGroupID = 0; if (parent == null) { return; } bool isGlobal = false; if (parent is ViewModelPlaceholder) { isGlobal = (bool) (parent as ViewModelPlaceholder).Tag; } else if (parent is TaxonFavoriteViewModel) { var parentViewModel = parent as TaxonFavoriteViewModel; isGlobal = parentViewModel.IsGlobal; parentGroupID = parentViewModel.FavoriteID; } TaxonFavorite model = new TaxonFavorite(); model.IsGroup = true; model.GroupName = "<New Folder>"; model.IsGlobal = isGlobal; model.FavoriteParentID = parentGroupID; TaxonFavoriteViewModel viewModel = new TaxonFavoriteViewModel(model); viewModel.Parent = parent; parent.Children.Add(viewModel); RegisterUniquePendingChange(new InsertFavoriteGroupCommand(model)); viewModel.IsRenaming = true; }