private void PopulateCategory(TreeNode current) { ModelCategory curModel = (ModelCategory)current.Tag; foreach (ModelCategory childModel in curModel.Childs) { TreeNode childNode = new TreeNodeCategory(childModel); current.Nodes.Add(childNode); PopulateCategory(childNode); } }
void Category_OnCategoryAdded(ModelCategory model) { if (this.InvokeRequired) { this.Invoke(new MgrCategory.OnCategorySingleModelHandler(Category_OnCategoryAdded), model); } else if (model != null && model.Parent != null) { string sPath = model.Parent.FullPath; TreeNodeCategory parentNode = m_rootNode.FindNode(sPath); if (parentNode != null) { TreeNode node = new TreeNodeCategory(model); parentNode.Nodes.Add(node); SelectedNodeChange(node); } } }
void Category_OnCategoryDeleted(ModelCategory model) { if (this.InvokeRequired) { this.Invoke(new MgrCategory.OnCategorySingleModelHandler(Category_OnCategoryDeleted), model); } else if (model != null) { string sPath = model.FullPath; TreeNodeCategory node = m_rootNode.FindNode(sPath); TreeNode parentNode = node.Parent; if (parentNode != null) { parentNode.Nodes.Remove(node); SelectedNodeChange(parentNode); } } }
public CtrlCategoryNavigator() { InitializeComponent(); if (DataManager.Current != null) { m_rootNode = null; ModelCategory modelRoot = DataManager.Current.Category.Root; if (modelRoot != null) { m_rootNode = new TreeNodeCategory(modelRoot); m_rootNode.Tag = modelRoot; treeCategory.Nodes.Add(m_rootNode); PopulateCategory(m_rootNode); m_rootNode.ExpandAll(); treeCategory.SelectedNode = m_rootNode; } DataManager.Current.Category.OnCategoryAdded += Category_OnCategoryAdded; DataManager.Current.Category.OnCategoryDeleted += Category_OnCategoryDeleted; } }
private void treeCategory_DragDrop(object sender, DragEventArgs e) { log.Debug(sender); Point pos = treeCategory.PointToClient(new Point(e.X, e.Y)); pos.Offset(this.Padding.Left * -1, this.Padding.Top * -1); TreeNode selectedNode = treeCategory.GetNodeAt(pos); if (selectedNode != null) { ModelCategory targetModel = (ModelCategory)selectedNode.Tag; List <ModelReqmnt> aryRequirements = e.Data.GetData(typeof(List <ModelReqmnt>)) as List <ModelReqmnt>; TreeNodeCategory sourceNode = e.Data.GetData(typeof(TreeNodeCategory)) as TreeNodeCategory; if (aryRequirements != null && aryRequirements.Count > 0) { string sItem = Convert.ToString(e.Data); if (aryRequirements != null && aryRequirements.Count > 0) { DataManager.Current.Requirement.ChangeCategory(targetModel, aryRequirements); } } else if (sourceNode != null) { ModelCategory sourceModel = sourceNode.Tag as ModelCategory; string sMessage = string.Format("Really move '{0}[{1}]' to '{2}[{3}]'?" , sourceModel.DisplayName, sourceModel.Code , targetModel.DisplayName, targetModel.Code); if (MessageBox.Show(sMessage, "CONFIRM", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes) { sourceModel.ParentId = targetModel.Id; DacFactory.Current.Category.UpdateCategory(sourceModel); sourceNode.Parent.Nodes.Remove(sourceNode); selectedNode.Nodes.Add(sourceNode); selectedNode.ExpandAll(); } } } }
// ******************************************************************************** // public TreeNodeTrivia(bool isLeading, SyntaxTrivia syntaxTrivia, [CanBeNull] TreeNode parentTreeNode) : base(parentTreeNode) { _treeNodeCategory = isLeading ? Models.TreeNodeCategory.LeadingTrivia : Models.TreeNodeCategory.TrailingTrivia; SyntaxTrivia = syntaxTrivia; }