private void buildTree(string p, IList <ReportDTO> res, ObservableCollection <TreeElementViewModel <ReportCommandVM> > tree) { res.Where(l => l.Path == p).ToList().ForEach(parentElement => { var x = new TreeElementViewModel <ReportCommandVM> { IsExpanded = false, Childs = new ObservableCollection <TreeElementViewModel <ReportCommandVM> >() }; if (parentElement.TypeName == "Report") { x.Data = new ReportCommandVM(parentElement.Description, new DelegateCommand( () => { controller.OpenReport(parentElement); } )); } else { x.Data = new ReportCommandVM(parentElement.Description, new DelegateCommand( () => { } ), true); } buildTree(p + parentElement.Name + "/", res, x.Childs); tree.Add(x); }); }
private TreeElementViewModel GetElementInHierarchy(TreeElementViewModel root, string[] hierarchyPath) { var parent = root; foreach (var currentPath in hierarchyPath) { parent = parent.Children.FirstOrDefault(c => c.Name == currentPath) ?? parent.AddChild(new TreeElementViewModel(this, currentPath, TreeElementType.Folder)); } return(parent); }
private void OnOpenGameModeCommand() { var selectedPath = PlatformService.ShowSelectFolderDialog(); if (string.IsNullOrEmpty(selectedPath) || !Directory.Exists(selectedPath)) { return; } var gameModeModel = GameModeModel.Open(selectedPath); Root = new TreeElementViewModel(this, "Root", TreeElementType.Folder); var contentElement = Root.AddChild(new TreeElementViewModel(this, "Content", TreeElementType.Folder)); var dataElement = Root.AddChild(new TreeElementViewModel(this, "Data", TreeElementType.Folder)); var fragmentsElement = Root.AddChild(new TreeElementViewModel(this, "Fragments", TreeElementType.Folder)); var MapsElement = Root.AddChild(new TreeElementViewModel(this, "Maps", TreeElementType.Folder)); var ScriptsElement = Root.AddChild(new TreeElementViewModel(this, "Scripts", TreeElementType.Folder)); Root.AddChild(new TreeElementViewModel(this, GameModeModel.GameModeJsonFile, TreeElementType.JsonFile) { //DetailsViewModel = new GameModeDataViewModel(gameModeModel.GameModeDataModel) }); var texturesElement = contentElement.AddChild(new TreeElementViewModel(this, "Textures", TreeElementType.Folder)); FillResourcesInHierarchy(texturesElement, gameModeModel.TextureModels, r => new TextureDetailViewModel(r)); var modelsElement = contentElement.AddChild(new TreeElementViewModel(this, "Models", TreeElementType.Folder)); FillResourcesInHierarchy(modelsElement, gameModeModel.ModelModels, r => new ModelDetailViewModel(PlatformService, r)); var movesElement = dataElement.AddChild(new TreeElementViewModel(this, "Moves", TreeElementType.Folder)); foreach (var move in gameModeModel.MoveModels) { movesElement.AddChild(new TreeElementViewModel(this, move.Id, TreeElementType.JsonFile) { //DetailsViewModel = new MoveDataViewModel(move) }); } var pokemonElement = dataElement.AddChild(new TreeElementViewModel(this, "Pokemon", TreeElementType.Folder)); foreach (var pokemon in gameModeModel.PokemonModels) { pokemonElement.AddChild(new TreeElementViewModel(this, pokemon.Id, TreeElementType.JsonFile) { //DetailsViewModel = new PokemonDataViewModel(pokemon) }); } Root.SortChildren(); }
private static void setChildNodes(TreeElementViewModel <T> parent, List <T> elements) { parent.Childs = new ObservableCollection <TreeElementViewModel <T> >(); foreach (var element in elements.Where(e => e.ParentId == ((IChildElement)parent.Data).Id)) { var treeElement = new TreeElementViewModel <T> { Data = element }; parent.Childs.Add(treeElement); setChildNodes(treeElement, elements); } }
public override DataTemplate SelectTemplate(object item, DependencyObject container) { if (item is TreeElementViewModel) { TreeElementViewModel elem = (TreeElementViewModel)item; if (elem.NbLeaves > 0 || elem.Parent == null) { return(BranchTemplate); } return(LeafTemplate); } return(null); }
private void FillResourcesInHierarchy <TResourceType>(TreeElementViewModel parentElement, IEnumerable <TResourceType> resources, Func <TResourceType, DetailViewModel> createDetails = null) where TResourceType : ResourceModel { foreach (var resourceModel in resources.OrderBy(t => t.FilePath)) { var parent = GetElementInHierarchy(parentElement, resourceModel.HierarchyPath); parent.AddChild(new TreeElementViewModel(this, resourceModel.Name, ResourceTypeToTreeElementType[resourceModel.ResourceType]) { DetailsViewModel = createDetails != null ? createDetails(resourceModel) : null }); } }
protected override BaseLeafTreeElement CreateLeaf(TreeElementViewModel parent, ExecutedCommand item, IEnumerable<CriteriaEnum> criteres) { return new ExecutedCommandLeaf(parent, criteres, SearchCriteria, LogCategoryEnum.ExecutedCommand, item); }
protected override BaseBranchTreeElement CreateBranch(TreeElementViewModel parent, CriteriaEnum currentCritere, string value, IEnumerable<CriteriaEnum> usedCriteres, LogCategoryEnum category) { return new ExecutedCommandBranch(parent, usedCriteres, currentCritere, category); }
public ExpandMenuItem(TreeElementViewModel element) : base(element) { }
public CollapseAllMenuItem(TreeElementViewModel element) : base(element) { }