private void DoFind() { var searchTerm = txtFind.Text; tvwFind.ItemsSource = null; if (string.IsNullOrWhiteSpace(searchTerm)) { ErrorMessage.Show("Please supply a search term"); return; } var service = new SupportService(User); var results = service.FindDistributionRegions(searchTerm); if (results.Count == 0) { InfoBox.Show("No matching regions found.", "No results", this); return; } var model = new ObservableCollection <DistributionRegionViewModel>(results.Select((region) => { var vm = new DistributionRegionViewModel(region); vm.LazyLoadChildren += new HierarchicalViewModelAction(vm_LazyLoadChildren); vm.Children.Add(new ViewModelPlaceholder("Loading...")); return(vm); })); tvwFind.ItemsSource = model; }
private void RenameRegion(DistributionRegionViewModel selected) { if (selected != null) { selected.IsRenaming = true; } }
private void AddRegion(DistributionRegionViewModel parent) { if (parent != null) { if (!parent.IsExpanded) { parent.IsExpanded = true; } var newRegion = new DistributionRegion { DistRegionName = "<New Distribution Region>", DistRegionParentID = parent.DistRegionID, DistRegionID = -1 }; var newVm = new DistributionRegionViewModel(newRegion); newVm.Parent = parent; parent.Children.Add(newVm); newVm.IsSelected = true; newVm.IsRenaming = true; RegisterPendingChange(new InsertDistributionRegionCommand(newRegion, parent.Model)); } else { var newRegion = new DistributionRegion { DistRegionName = "<New Distribution Region>", DistRegionParentID = 0, DistRegionID = -1 }; var newVm = new DistributionRegionViewModel(newRegion); RegionsModel.Add(newVm); newVm.IsSelected = true; newVm.IsRenaming = true; RegisterPendingChange(new InsertDistributionRegionCommand(newRegion, null)); } }
private void RunTaxaForDistRegionReport(DistributionRegionViewModel selected) { if (selected != null) { PluginManager.Instance.RunReport(Plugin, new TaxaForDistributionRegionReport(User, selected.Model)); } }
private void DeleteRegion(DistributionRegionViewModel selected) { if (selected != null) { selected.IsDeleted = true; selected.Traverse((child) => { child.IsDeleted = true; }); RegisterUniquePendingChange(new DeleteDistributionRegion(selected.Model)); } }
private void ExpandAll(DistributionRegionViewModel selected) { using (new OverrideCursor(Cursors.Wait)) { if (selected != null) { selected.Traverse((child) => { child.IsExpanded = true; }); } else { RegionsModel.ForEach((vm) => { vm.Traverse((child) => { child.IsExpanded = true; }); }); } } }
void vm_LazyLoadChildren(HierarchicalViewModelBase item) { var parent = item as DistributionRegionViewModel; if (parent != null) { using (new OverrideCursor(Cursors.Wait)) { var service = new SupportService(User); var list = service.GetDistributionRegions(parent.DistRegionID); parent.Children.Clear(); foreach (DistributionRegion region in list) { var childVm = new DistributionRegionViewModel(region); childVm.Parent = parent; childVm.LazyLoadChildren += new HierarchicalViewModelAction(vm_LazyLoadChildren); childVm.Children.Add(new ViewModelPlaceholder("Loading...")); parent.Children.Add(childVm); } } } }
private void LoadModel() { using (new OverrideCursor(Cursors.Wait)) { var service = new SupportService(User); var rootList = service.GetDistributionRegions(0); RegionsModel = new ObservableCollection <HierarchicalViewModelBase>(rootList.Select((m) => { var vm = new DistributionRegionViewModel(m); vm.LazyLoadChildren += new HierarchicalViewModelAction(vm_LazyLoadChildren); vm.Children.Add(new ViewModelPlaceholder("Loading...")); return(vm); })); regionsNode.ItemsSource = RegionsModel; regionsNode.IsExpanded = true; var expanded = Config.GetUser <List <String> >(User, "DistributionRegion.LastExpanded", null); if (expanded != null) { ExpandParentages(RegionsModel, expanded); } } }