/// <summary> /// Initializes a new instance of the <see cref="NovaModule" /> class. /// </summary> /// <param name="title">The title.</param> /// <param name="ranking">The ranking.</param> /// <param name="treeNodes">The tree nodes.</param> /// <param name="startUpTreeNode">The start up tree node.</param> /// <exception cref="System.ArgumentNullException">title</exception> /// <exception cref="System.ArgumentException">@There haven't been any tree nodes defined.</exception> public NovaModule(string title, int ranking, IEnumerable<TreeNodeBase> treeNodes, TreeNodeBase startUpTreeNode = null) { if (string.IsNullOrWhiteSpace(title)) throw new ArgumentNullException("title"); if (treeNodes == null) throw new ArgumentNullException("treeNodes"); if (!treeNodes.Any()) throw new ArgumentException(@"There haven't been any tree nodes defined."); Title = title; Ranking = ranking; _treeNodes = treeNodes; _startUpTreeNode = startUpTreeNode; }
//当选择了树形节点时候时间回调 void OnSelectNodeChange(TreeNodeBase node) { CurSelectTreeNode = node; }
private void tree1_PreviewMouseUp(object sender, MouseButtonEventArgs e) { m_drogItem = null; }
private void tree1_DragOver(object sender, DragEventArgs e) { try { TreeNodeBase selectedItem = ((FrameworkElement)e.OriginalSource).DataContext as TreeNodeBase; if (!(selectedItem is DBModuleNode) && selectedItem is 数据模块Node) { //检查数据库是否相同 if (((数据模块Node)selectedItem).Module == null || ((DBModuleNode)m_drogItem).Module.DatabaseID != ((数据模块Node)selectedItem).Module.DatabaseID) { e.Effects = DragDropEffects.None; e.Handled = true; return; } e.Effects = DragDropEffects.Move; } else if (selectedItem is DBModuleNode && (((DBModuleNode)selectedItem).Module.IsFolder == true)) { //检查数据库是否相同 if (((DBModuleNode)m_drogItem).Module.DatabaseID != ((DBModuleNode)selectedItem).Module.DatabaseID) { e.Effects = DragDropEffects.None; e.Handled = true; return; } //判断拖动者是否是目标者的父节点 bool canDrog = selectedItem != m_drogItem; if (canDrog) { for (DBModuleNode parent = selectedItem.Parent as DBModuleNode; parent != null; parent = parent.Parent as DBModuleNode) { if (parent == selectedItem) { canDrog = false; break; } } } if (canDrog) { e.Effects = DragDropEffects.Move; selectedItem.IsExpanded = true; } else { e.Effects = DragDropEffects.None; } } else if (selectedItem is DBModuleNode && (((DBModuleNode)selectedItem).Module.IsFolder == false)) { e.Effects = DragDropEffects.None; } else { e.Effects = DragDropEffects.None; } e.Handled = true; } catch { } }
private void tree1_Drop(object sender, DragEventArgs e) { try { int parentid = -1; TreeNodeBase selectedItem = ((FrameworkElement)e.OriginalSource).DataContext as TreeNodeBase; if (!(selectedItem is DBModuleNode) && selectedItem is 数据模块Node) { //检查数据库是否相同 if (((数据模块Node)selectedItem).Module == null || ((DBModuleNode)m_drogItem).Module.DatabaseID != ((数据模块Node)selectedItem).Module.DatabaseID) { e.Effects = DragDropEffects.None; e.Handled = true; return; } parentid = 0; } else if (selectedItem is DBModuleNode && (((DBModuleNode)selectedItem).Module.IsFolder == true)) { //检查数据库是否相同 if (((DBModuleNode)m_drogItem).Module.DatabaseID != ((DBModuleNode)selectedItem).Module.DatabaseID) { e.Effects = DragDropEffects.None; e.Handled = true; return; } //判断拖动者是否是目标者的父节点 bool canDrog = selectedItem != m_drogItem; if (canDrog) { for (DBModuleNode parent = selectedItem.Parent as DBModuleNode; parent != null; parent = parent.Parent as DBModuleNode) { if (parent == selectedItem) { canDrog = false; break; } } } if (canDrog) { parentid = ((DBModuleNode)selectedItem).Module.id.Value; } } if (parentid >= 0 && (((DBModuleNode)m_drogItem).Module.parentID != parentid)) { Helper.Client.InvokeSync <string>("ChangeModuleParent", ((DBModuleNode)m_drogItem).Module.id.Value, parentid); ((DBModuleNode)m_drogItem).Module.parentID = parentid; m_drogItem.Parent.Children.Remove(m_drogItem); selectedItem.Children.Add(m_drogItem); m_drogItem.Parent = selectedItem; } } catch (Exception ex) { MessageBox.Show(this, ex.Message); } finally { e.Effects = DragDropEffects.None; e.Handled = true; m_drogItem = null; } }
public ShutDownOrReRunModel(TreeNodeBase model) { NodeId = model.NodeId; NodeName = model.NodeName; IsCheckOut = false; }
internal TreeNode(TreeNodeBase <T> parent, T value) : base(value) => Parent = parent;
private void Search(List<AppTreeNode> list, TreeNodeBase treeNodeBase) { foreach (var nodeBase in treeNodeBase.Children) { if (nodeBase is AppTreeNode) { list.Add(nodeBase as AppTreeNode); } else if (nodeBase is DirectoryTreeNode) { Search(list, nodeBase); } } }
public ActionTreeNode(string _name, TreeNodeBase parent, List <TreeNodeBase> childs, BehaviorActionAttribute attribute, Type type = null) : base(_name, parent, childs) { m_AttachType = type; m_BehaviorActionAttribute = attribute; }
private static void Test( string text ) { #if DOC _sb.AppendLine("Expression:"); _sb.AppendFormat("`{0}`", text); _sb.AppendLine(); _sb.AppendLine(); _sb.AppendLine("Result:"); _sb.AppendLine("```"); try { TreeNodeBase node = Parser.Parse(text); XElement xelem = ToXml(node); _sb.Append(xelem); } catch (Exception ex) { _sb.Append(ex.Message); } _sb.AppendLine(); _sb.AppendLine("```"); _sb.AppendLine("***"); _sb.AppendLine(); _sb.AppendLine(); #else Console.WriteLine($"Source expression: {text}"); try { //parsing XTreeNodeBase xtree = XTreeNodeBase.Parse(text); //compact serialization var cser = new XTreeCompactSerializer(); cser.ShouldPad = true; string xstr = cser.Serialize(xtree); Console.WriteLine($"Serialized: {xstr}"); //xml serialization var xser = new XTreeXmlSerializer(); XElement xelem = xser.Serialize(xtree); Console.WriteLine(xelem); //evaluation (against the sample context) XSolverResult sr = xtree.Resolve(_ctx); Console.WriteLine($"Result: {sr.Error ?? sr.Data}"); //verify the compact serialization try { XTreeNodeBase xtreeAlt = XTreeNodeBase.Parse(xstr); XElement xelemAlt = xser.Serialize(xtreeAlt); if (xelem.ToString() != xelemAlt.ToString()) { //fail! } } catch (Exception ex) { Console.WriteLine("Verify error: " + ex.Message); } } catch (Exception ex) { Console.WriteLine("Test error: " + ex.Message); } Console.WriteLine(); Console.WriteLine(); #endif }
protected override void CreateLeafNode(string parentPath, TreeViewNodeInfor item, TreeNodeBase parentNode, char splitchar) { TreeViewNodeInfor_ActionNode nodeInfor = item as TreeViewNodeInfor_ActionNode; parentPath = parentPath + nodeInfor.m_Arrangement + splitchar; //当前需要创建的树节点的完整路径 TreeNodeBase node = GetGroupNodeByName(parentPath); //判断是否存在这个路径的节点 if (node == null) { node = new ActionTreeNode(nodeInfor.m_Arrangement, parentNode, nodeInfor.m_Attribute, nodeInfor.m_ActionScriptType); //创建当前节点 RecordGroupNodeInfor(parentPath, node); //记录当前创建的节点 }//当前子目录不存在 }