Beispiel #1
0
        private void PopulateChildren(TreeItemModel item, string dir)
        {
            try
            {
                string[] subdirs = Directory.GetDirectories(dir);
                foreach (var subdir in subdirs)
                {
                    TreeItemModel childItem = new TreeItemModel()
                    {
                        Text     = Path.GetFileName(subdir),
                        FullPath = subdir
                    };
                    PopulateChildren(childItem, subdir);
                    item.Children.Add(childItem);
                }

                string[] files = Directory.GetFiles(dir);
                foreach (var file in files)
                {
                    TreeItemModel childItem = new TreeItemModel()
                    {
                        Text     = Path.GetFileName(file),
                        FullPath = file,
                        IsFile   = true
                    };

                    item.Children.Add(childItem);
                }
            }
            catch (UnauthorizedAccessException ex)
            {
                MessageBox.Show(ex.Message, "SuperbEdit", MessageBoxButton.OK, MessageBoxImage.Exclamation);
            }
        }
        public override IEnumerable <TreeItemModel> GetSceneNodes()
        {
            foreach (var holder in PaletteHolders.Values)
            {
                if (holder.Name == PaletteType.Decal)
                {
                    continue;
                }

                var paletteNode = new TreeItemModel {
                    Header = holder.Name, IsChecked = true
                };

                for (int i = 0; i < holder.Elements.Count; i++)
                {
                    var info = holder.GetInfoForIndex(i);

                    var itemNode = info.TreeItem = new TreeItemModel {
                        Header = info.Placement.GetDisplayName(), IsChecked = true, Tag = info.Element
                    };
                    paletteNode.Items.Add(itemNode);
                }

                if (paletteNode.HasItems)
                {
                    yield return(paletteNode);
                }
            }
        }
Beispiel #3
0
        private void PopulateTree()
        {
            RootItems = new ObservableCollection <TreeItemModel>();
            string[] subdirs = Directory.GetDirectories(CurrentFolder);
            foreach (var dir in subdirs)
            {
                TreeItemModel rootItem = new TreeItemModel()
                {
                    Text     = Path.GetFileName(dir),
                    FullPath = dir
                };
                PopulateChildren(rootItem, dir);
                RootItems.Add(rootItem);
            }

            string[] files = Directory.GetFiles(CurrentFolder);
            foreach (var file in files)
            {
                TreeItemModel rootItem = new TreeItemModel()
                {
                    Text     = Path.GetFileName(file),
                    FullPath = file,
                    IsFile   = true
                };

                RootItems.Add(rootItem);
            }
        }
        private void BuildClassTree(string filter)
        {
            var result      = new List <TreeItemModel>();
            var classGroups = cache.TagIndex
                              .Where(i => FilterTag(filter, i))
                              .GroupBy(i => i.ClassName);

            foreach (var g in classGroups.OrderBy(g => g.Key))
            {
                var node = new TreeItemModel {
                    Header = g.Key
                };
                foreach (var i in g.OrderBy(i => i.FullPath))
                {
                    node.Items.Add(new TreeItemModel
                    {
                        Header = i.FullPath,
                        Tag    = i
                    });
                }
                result.Add(node);
            }

            rootNode.Items.Reset(result);
        }
        private void BuildClassTree(string filter)
        {
            var result      = new List <TreeItemModel>();
            var classGroups = module.GetTagClasses()
                              .SelectMany(c => module.GetItemsByClass(c.ClassCode))
                              .Where(i => FilterTag(filter, i))
                              .GroupBy(i => i.ClassName);

            foreach (var g in classGroups.OrderBy(g => g.Key))
            {
                var node = new TreeItemModel {
                    Header = g.Key
                };
                foreach (var i in g.OrderBy(i => i.FullPath))
                {
                    node.Items.Add(new TreeItemModel
                    {
                        Header = i.FullPath,
                        Tag    = i
                    });
                }
                result.Add(node);
            }

            rootNode.Items.Reset(result);
        }
Beispiel #6
0
        private TreeItemModel MapTreeItemModel(TreeItem treeItem, string parentLevel = null)
        {
            var model = new TreeItemModel();

            model.Id = treeItem.Id.ToString();

            string currentLevel;

            if (!string.IsNullOrEmpty(parentLevel))
            {
                model.Title  = $"node.{parentLevel}.{model.Id}";
                currentLevel = $"{parentLevel}.{treeItem.Id}";
            }
            else
            {
                model.Title  = $"node.{model.Id}";
                currentLevel = $"{treeItem.Id}";
            }

            var nodes = new List <TreeItemModel>();

            foreach (var treeItemChild in treeItem.Children)
            {
                nodes.Add(MapTreeItemModel(treeItemChild, currentLevel));
            }

            model.Nodes = nodes;

            return(model);
        }
Beispiel #7
0
            public static TreeModel GetModel()
            {
                TreeModel treeModel = new TreeModel();

                TreeItemModel treeItemModel = new TreeItemModel(treeModel)
                {
                    Id       = 1,
                    Name     = "Root folder",
                    ParentId = null
                };

                treeModel.Add(treeItemModel);

                treeItemModel = new TreeItemModel(treeModel)
                {
                    Id       = 2,
                    Name     = "Level 0 folder",
                    ParentId = 1
                };

                treeModel.Add(treeItemModel);

                treeItemModel = new TreeItemModel(treeModel)
                {
                    Id       = 3,
                    Name     = "Level 1 element",
                    ParentId = 2
                };

                treeModel.Add(treeItemModel);

                return(treeModel);
            }
        private void BuildItemTree(string filter)
        {
            var result     = new List <TreeItemModel>();
            var itemGroups = pak.Items
                             .Where(i => FilterTag(filter, i))
                             .GroupBy(i => i.ItemType.ToString());

            foreach (var g in itemGroups.OrderBy(g => g.Key))
            {
                var node = new TreeItemModel {
                    Header = g.Key
                };
                foreach (var item in g.OrderBy(i => i.Name))
                {
                    node.Items.Add(new TreeItemModel
                    {
                        Header = item.Name,
                        Tag    = item
                    });
                }
                result.Add(node);
            }

            rootNode.Items.Reset(result);
        }
Beispiel #9
0
        public void SelectItem(object sender, RoutedEventArgs e)
        {
            TreeView tw = sender as TreeView;

            list = tw.ItemsSource as ObservableCollection <TreeItemModel>;
            item = tw.SelectedItem as TreeItemModel;
            TabPageModel.SelectedItem = item;
            if (item.ItemName != "thread")
            {
                Name.IsEnabled        = true;
                Name.Text             = item.Name;
                Time.IsEnabled        = true;
                Time.Text             = Convert.ToString(item.Time);
                Package.IsEnabled     = true;
                Package.Text          = item.Package;
                ParamsCount.IsEnabled = true;
                ParamsCount.Text      = Convert.ToString(item.ParamsCount);
                SaveBtn.IsEnabled     = true;
            }
            else
            {
                Name.IsEnabled        = false;
                Name.Text             = "";
                Time.IsEnabled        = false;
                Time.Text             = "";
                Package.IsEnabled     = false;
                Package.Text          = "";
                ParamsCount.IsEnabled = false;
                ParamsCount.Text      = "";
                SaveBtn.IsEnabled     = false;
            }
        }
 private void RecursiveCollapseNode(TreeItemModel node)
 {
     foreach (var n in node.Items)
     {
         RecursiveCollapseNode(n);
     }
     node.IsExpanded = false;
 }
Beispiel #11
0
 public TriggerVolumeComponentManager(ScenarioModel scenario)
     : base(scenario)
 {
     sceneNode = new TreeItemModel {
         Header = "trigger volumes", IsChecked = true
     };
     TriggerVolumes = new ObservableCollection <BoxManipulator3D>();
 }
 public MemberManagementViewModel()
 {
     RegisterPageMemberModel = new MemberModel();
     ListPageMemberModel     = new MemberModel();
     TreeItemModel           = new TreeItemModel();
     SearchBar = new SearchBarViewModel();
     TreeViewMaker.InitializeTreeView(TreeItemModel);
 }
Beispiel #13
0
        private TreeItemModel MapNewTreeItemModel(TreeItem treeItem)
        {
            var item = new TreeItemModel();

            item.Id    = treeItem.Id.ToString();
            item.Title = GetFullTitle(treeItem);

            return(item);
        }
Beispiel #14
0
 public void OpenItem(TreeItemModel item)
 {
     if (item.IsFile)
     {
         ITab fileTabViewModel = tabService.RequestDefaultTab();
         fileTabViewModel.SetFile(item.FullPath);
         shell.Value.OpenTab(fileTabViewModel);
     }
 }
Beispiel #15
0
        private void SetState(TreeItemModel item, bool updateRender)
        {
            if (item.HasItems == false) //permutation
            {
                var parent   = item.Parent as TreeItemModel;
                var children = parent.Items.Where(i => i.IsVisible);

                if (children.All(i => i.IsChecked == true))
                {
                    parent.IsChecked = true;
                }
                else if (children.All(i => i.IsChecked == false))
                {
                    parent.IsChecked = false;
                }
                else
                {
                    parent.IsChecked = null;
                }

                if (updateRender)
                {
                    var group = (item.Tag as MeshTag).Mesh;
                    if (item.IsChecked == true && !modelGroup.Children.Contains(group))
                    {
                        modelGroup.Children.Add(group);
                    }
                    else if (item.IsChecked == false)
                    {
                        modelGroup.Children.Remove(group);
                    }
                }
            }
            else //region
            {
                foreach (var i in item.Items.Where(i => i.IsVisible))
                {
                    var group = (i.Tag as MeshTag).Mesh;
                    i.IsChecked = item.IsChecked;

                    if (updateRender)
                    {
                        if (i.IsChecked == true && !modelGroup.Children.Contains(group))
                        {
                            modelGroup.Children.Add(group);
                        }
                        else if (i.IsChecked == false)
                        {
                            modelGroup.Children.Remove(group);
                        }
                    }
                }
            }
        }
Beispiel #16
0
        // If you have install the code sniplets, use "propvm + [tab] +[tab]" create a property propcmd for command
        // 如果您已经安装了 MVVMSidekick 代码片段,请用 propvm +tab +tab 输入属性 propcmd 输入命令

        public MultiLevelSelection_Model()
        {
            if (IsInDesignMode)
            {
            }

            var rval = Enumerable.Range(0, 3)
                       .Select(
                i =>
            {
                var item = new TreeItemModel <string, string> {
                    State = "Item" + i.ToString()
                };
                PopulateVNext(item);

                foreach (TreeItemModel <string, string> itmlv2 in item.Children)
                {
                    PopulateVNext(itmlv2);
                }
                return(item);
            }
                );


            foreach (var item in rval)
            {
                TreeRoots.Add(item);
            }



            Level1Selection.GetValueContainer(x => x.SelectedItem)
            .GetNullObservable()
            .Where(_ => Level1Selection.SelectedItem != null)
            .Subscribe(
                _ =>
            {
                Level2Selection.Items = new ObservableCollection <TreeItemModel <string, string> >(Level1Selection.SelectedItem.Children.Cast <TreeItemModel <string, string> >());
            }
                );


            Level2Selection.GetValueContainer(x => x.SelectedItem)
            .GetNullObservable()
            .Where(_ => Level2Selection.SelectedItem != null)
            .Subscribe(
                _ =>
            {
                Level3Selection.Items = new ObservableCollection <TreeItemModel <string, string> >(Level2Selection.SelectedItem.Children.Cast <TreeItemModel <string, string> >());
            }
                );
        }
Beispiel #17
0
 private void changeDataInItem(ObservableCollection <TreeItemModel> items, TreeItemModel currentItem)
 {
     foreach (TreeItemModel tim in items)
     {
         if (tim.Equals(currentItem))
         {
             tim.Name        = Name.Text;
             tim.Package     = Package.Text;
             tim.ParamsCount = Int32.Parse(ParamsCount.Text);
             tim.Time        = Int32.Parse(Time.Text);
         }
         changeDataInItem(tim.Items, currentItem);
     }
 }
Beispiel #18
0
        public override IEnumerable <TreeItemModel> GetSceneNodes()
        {
            sceneNode.Items.Clear();

            foreach (var tv in TriggerVolumes)
            {
                var tvNode = new TreeItemModel {
                    Header = (tv.DataContext as TriggerVolume).GetDisplayName(), IsChecked = true, Tag = tv
                };
                sceneNode.Items.Add(tvNode);
            }

            yield return(sceneNode);
        }
Beispiel #19
0
        public override IEnumerable <TreeItemModel> GetSceneNodes()
        {
            var bspNode = new TreeItemModel {
                Header = BspHolder.Name, IsChecked = true
            };

            for (int i = 0; i < BspHolder.Elements.Count; i++)
            {
                var bsp = BspHolder.Elements[i];
                if (bsp == null)
                {
                    continue;
                }

                var tag      = scenario.Bsps[i].Tag;
                var permNode = new TreeItemModel {
                    Header = tag?.FileName() ?? NullTagName, IsChecked = true, Tag = bsp
                };
                bspNode.Items.Add(permNode);
            }

            var skyNode = new TreeItemModel {
                Header = SkyHolder.Name, IsChecked = true
            };

            for (int i = 0; i < SkyHolder.Elements.Count; i++)
            {
                var sky = SkyHolder.Elements[i];
                if (sky == null)
                {
                    continue;
                }

                var tag      = scenario.Skies[i].Tag;
                var permNode = new TreeItemModel {
                    Header = tag?.FileName() ?? NullTagName, IsChecked = true, Tag = sky
                };
                skyNode.Items.Add(permNode);
            }

            if (bspNode.HasItems)
            {
                yield return(bspNode);
            }

            if (skyNode.HasItems)
            {
                yield return(skyNode);
            }
        }
Beispiel #20
0
        protected virtual void BindTreeData()
        {
            this.EnsureChildControls();

            _treeContent.Controls.Clear();

            #region Create Root element if it's needed

            if (HasRootElement)
            {
                TreeItemModel rootItem = new TreeItemModel();
                rootItem.ID   = Guid.Empty;
                rootItem.Name = RootElementName;

                if (FlatDataModel.Where(i => i.ID == Guid.Empty).Count() == 0)
                {
                    FlatDataModel.Add(rootItem);
                }
            }

            #endregion

            var hierarchyDataModel = CreateHierarchyFromFlat(FlatDataModel, HasRootElement);

            #region Create TreeItems

            if (EventHandler == null)
            {
                EventHandler = new EventHandler <SelectionChangeEventArgs>(this.SelectionChangeHandler);
            }

            foreach (var item in hierarchyDataModel)
            {
                DLTreeItem temp = new DLTreeItem(this.ClientID, item);
                temp.SelectionChange += EventHandler;

                _treeContent.Controls.Add(temp);
            }

            #endregion

            this.Controls.Add(new LiteralControl("<ul id='tree'>"));
            this.Controls.Add(_treeContent);
            this.Controls.Add(new LiteralControl("</ul>"));

            if (FlatDataModel == null || !FlatDataModel.Any())
            {
                this.Controls.Add(new LiteralControl("<span>" + _emptyStuctureLabel + "</span>"));
            }
        }
Beispiel #21
0
        protected override void OnInitialized()
        {
            base.OnInitialized();
            level = (ParentTreeItem?.level + 1) ?? 0;
            var treeItemModel = new TreeItemModel()
            {
                Direction = "right",
                Expanded  = false,
                ParentId  = ParentTreeItem?.Id ?? 0,
                Text      = Text,
                Level     = level,
                Id        = Id
            };

            Tree.AddChild(treeItemModel);
        }
Beispiel #22
0
        private void changeTime(TreeItemModel items, int diff)
        {
            int tempTime = 0;

            foreach (TreeItemModel tim in items.Items)
            {
                if (!tim.Equals(item))
                {
                    changeTime(tim, diff);
                    tempTime = tim.Time;
                    tim.Time = tempTime + diff;
                }
                else
                {
                    break;
                }
            }
        }
Beispiel #23
0
        private static void PopulateVNext(TreeItemModel <string, string> item)
        {
            var lvn = Enumerable.Range(0, 3)
                      .Select(
                j =>
            {
                var itemlv1 = new TreeItemModel <string, string> {
                    State = item.State + j.ToString(), Parent = item
                };
                return(itemlv1);
            }
                );

            foreach (var itlv in lvn)
            {
                item.Children.Add(itlv);
            }
        }
 private void BatchQueue(TreeItemModel node, string outputFolder)
 {
     if (node.HasItems)
     {
         foreach (var child in node.Items)
         {
             BatchQueue(child, outputFolder);
         }
     }
     else
     {
         var item = GetExtractable(node.Tag, outputFolder);
         if (item != null)
         {
             extractionQueue.Enqueue(item);
         }
     }
 }
Beispiel #25
0
        private void addNodeXml(TreeItemModel item, ref XElement thread)
        {
            foreach (TreeItemModel tempItem in item.Items)
            {
                XElement   xmlMethod = new XElement(tempItem.ItemName);
                XAttribute attr;
                attr = new XAttribute("name", tempItem.Name);
                xmlMethod.Add(attr);
                attr = new XAttribute("time", tempItem.Time);
                xmlMethod.Add(attr);
                attr = new XAttribute("package", tempItem.Package);
                xmlMethod.Add(attr);
                attr = new XAttribute("paramsCount", tempItem.ParamsCount);
                xmlMethod.Add(attr);
                addNodeXml(tempItem, ref xmlMethod);

                thread.Add(xmlMethod);
            }
        }
        private TreeItemModel MakeNode(IList <TreeItemModel> root, IDictionary <string, TreeItemModel> lookup, string path, bool inner = false)
        {
            if (lookup.ContainsKey(path))
            {
                return(lookup[path]);
            }

            var index  = path.LastIndexOf('\\');
            var branch = index < 0 ? null : path.Substring(0, index);
            var leaf   = index < 0 ? path : path.Substring(index + 1);

            var item = new TreeItemModel(leaf);

            lookup.Add(path, item);

            if (branch == null)
            {
                if (inner)
                {
                    root.Insert(root.LastIndexWhere(n => n.HasItems) + 1, item);
                }
                else
                {
                    root.Add(item);
                }

                return(item);
            }

            var parent = MakeNode(root, lookup, branch, true);

            if (inner)
            {
                parent.Items.Insert(parent.Items.LastIndexWhere(n => n.HasItems) + 1, item);
            }
            else
            {
                parent.Items.Add(item);
            }

            return(item);
        }
Beispiel #27
0
        private void SetState(TreeItemModel item, bool updateRender)
        {
            if (item.HasItems == false) //permutation
            {
                var parent = item.Parent as TreeItemModel;
                if (parent != null)
                {
                    var children = parent.Items.Where(i => i.IsVisible);

                    if (children.All(i => i.IsChecked == true))
                    {
                        parent.IsChecked = true;
                    }
                    else if (children.All(i => i.IsChecked == false))
                    {
                        parent.IsChecked = false;
                    }
                    else
                    {
                        parent.IsChecked = null;
                    }
                }

                if (updateRender)
                {
                    (item.Tag as IMeshNode)?.SetVisibility(item.IsChecked ?? false);
                }
            }
            else //region
            {
                foreach (var i in item.Items.Where(i => i.IsVisible))
                {
                    i.IsChecked = item.IsChecked;

                    if (updateRender)
                    {
                        (i.Tag as IMeshNode)?.SetVisibility(i.IsChecked ?? false);
                    }
                }
            }
        }
        public static void InitializeTreeView(TreeItemModel treeItemModel)
        {
            treeItemModel.TreeCategories.Add(new TreeCategory()
            {
                Name = "10대"
            });
            treeItemModel.TreeCategories.Add(new TreeCategory()
            {
                Name = "20대"
            });
            treeItemModel.TreeCategories.Add(new TreeCategory()
            {
                Name = "그 외"
            });

            foreach (MemberModel member in MemberModels.members)
            {
                TreeCategory treeCategory = FindNewParent(treeItemModel.TreeCategories, member.Age);
                treeCategory.Children.Add(member);
            }
        }
        protected override void DoProcess(GetLayoutServiceContextArgs args, AppConfiguration application)
        {
            var renderedItem = args.RenderedItem;
            var database     = renderedItem?.Database;

            if (renderedItem == null || database == null)
            {
                return;
            }

            var current = new TreeItemModel
            {
                key      = renderedItem.ID.ToShortID().ToString(),
                parent   = renderedItem.ParentID.ToShortID().ToString(),
                title    = string.IsNullOrWhiteSpace(renderedItem.DisplayName) ? renderedItem.Name : renderedItem.DisplayName,
                path     = renderedItem.GetItemRelativeURL(),
                icon     = "/temp/IconCache/" + renderedItem.Appearance.Icon,
                workflow = renderedItem.GetWorkflowState(),
                template = renderedItem.TemplateName
            };

            var result = new List <TreeItemModel> {
                current
            };

            result.AddRange(
                database.SelectItems(renderedItem.Paths.FullPath + "//*").Where(q => q.DoesItemHasPresentationDetails()).Select(
                    q => new TreeItemModel
            {
                key      = q.ID.ToShortID().ToString(),
                parent   = q.ParentID.ToShortID().ToString(),
                title    = string.IsNullOrWhiteSpace(q.DisplayName) ? q.Name : q.DisplayName,
                path     = q.GetItemRelativeURL(),
                icon     = "/temp/IconCache/" + q.Appearance.Icon,
                workflow = q.GetWorkflowState(),
                template = q.TemplateName
            }));

            args.ContextData.Add(objectKey, result);
        }
        public void LoadModule(string fileName)
        {
            module         = new Module(fileName);
            rootNode       = new TreeItemModel(module.FileName);
            tv.ItemsSource = rootNode.Items;

            TabModel.Header  = Utils.GetFileName(module.FileName);
            TabModel.ToolTip = $"Module Viewer - {TabModel.Header}";

            foreach (var item in globalMenuButton.MenuItems.OfType <MenuItem>())
            {
                item.Click -= GlobalContextItem_Click;
            }

            globalMenuButton.MenuItems.Clear();

            var globalHandlers = Substrate.GetContextItems(GetFolderArgs(rootNode));

            HasGlobalHandlers = globalHandlers.Any();

            if (HasGlobalHandlers)
            {
                foreach (var item in globalHandlers)
                {
                    globalMenuButton.MenuItems.Add(new MenuItem {
                        Header = item.Path, Tag = item
                    });
                }

                foreach (var item in globalMenuButton.MenuItems.OfType <MenuItem>())
                {
                    item.Click += GlobalContextItem_Click;
                }
            }

            HierarchyView = ModuleViewerPlugin.Settings.HierarchyView;
            BuildTagTree(null);
        }