public TagsManagerMainView(ITagsManager tagsManager, TagsManagerMainViewModel model, IIdeaManager ideaManager, IRelationManager relationManager, IBlockManager blockManager, IMaterialManager materialManager) { _relationManager = relationManager; _blockManager = blockManager; var db = new AllDb() { RelationManager = _relationManager, IdeaManager = ideaManager, BlockManager = _blockManager, TagsManager = tagsManager, MaterialManager = materialManager }; InitializeComponent(); _tagHelper = new TagTreeHelper(treeList, db); _tagHelper.ReloadTree(); model.NodeAdded += dto => { dto.AddNodeToTree(treeList); treeList.CurrentItem = dto; }; model.NodeAnnihilated += dto => dto.AnnihilateNode(treeList); model.MaterialUpdate += dto => dto.UpdateMaterialInTree(treeList); Loaded += (sender, args) => { DataContext = model; treeList.View.ValidateCell += (o, e) => { var wrong = Path.GetInvalidFileNameChars(); if (e.Value.ToString().Any(wrong.Contains)) e.IsValid = false; }; treeList.View.PreviewKeyDown += (o, eventArgs) => { if (eventArgs.Key == Key.Enter || eventArgs.Key == Key.Return) { eventArgs.Handled = true; treeList.View.CloseEditor(); RenameCurrent(); } }; treeList.View.ShownEditor += ViewOnShownEditor; model.RenameTag += dto => Dispatcher.Invoke(() => { treeList.View.AllowEditing = true; treeList.View.ShowEditor(true); }, DispatcherPriority.Background); model.Refresh += () => Dispatcher.Invoke(() => _tagHelper.ReloadTree(), DispatcherPriority.Background); }; }
public TagSelectorView(ITagsManager tagsManager, IIdeaManager ideaManager, IBlockManager blockManager, IRelationManager relationManager, ISettingsService settingsService, IMaterialManager materialManager) { _settingsService = settingsService; var allDb = new AllDb { RelationManager = relationManager, BlockManager = blockManager, IdeaManager = ideaManager, TagsManager = tagsManager, MaterialManager = materialManager }; InitializeComponent(); Loaded += (sender, args) => { var model = RegionContext.GetObservableContext(this).Value as ISelectTagRegionView; if (model != null) { var selectItem = new DelegateCommand<Guid>(id => { if (model.TargetType == typeof(Tag)) _settingsService.AddRecentTag(id); if (model.TargetType == typeof(Idea)) _settingsService.AddRecentIdea(id); if (model.TargetType == typeof(Block)) _settingsService.AddRecentBlock(id); if (model.TargetType == typeof(Comment)) _settingsService.AddRecentComment(id); if (model.TargetType == typeof(Guidable)) _settingsService.AddRecentGuidable(id); model.OkCommand.Execute(id); }); var items = model.TargetType == typeof (Tag) ? _settingsService.GetRecentTags() : model.TargetType == typeof (Idea) ? _settingsService.GetRecentIdeas() : model.TargetType == typeof (Block) ? _settingsService.GetRecentBlocks() : model.TargetType == typeof (Guidable) ? _settingsService.GetRecentGuidables() : _settingsService.GetRecentComments(); var recent = new BarSubItem() {CategoryName = "BuiltInMenus", Content = "Recent"}; MainMenu.Items.Add(recent); foreach (var item in items.OrderByDescending(i => i.Order)) recent.Items.Add(new BarButtonItem{Content = item.Name, CommandParameter = item.Id, Command = selectItem}); } DataContext = model; }; _tagHelper = new TagTreeHelper(treeList, allDb); _tagHelper.ReloadTree(); }