Beispiel #1
0
 //Fired when modules where changed in database (eg deleted, renamed)
 public void UpdateModulesFromDbRec()
 {
     foreach (NodeModule n in this.Nodes)
     {
         if (!n.IsLeaf)
         {
             using (SQLiteCommand command = new SQLiteCommand(ConnectionManager.connection))
             {
                 command.CommandText = @"select name,id,(select name from modules where id=module_id) as module from files where p_id=@p_id;";
                 command.Parameters.Add(new SQLiteParameter("@p_id", n.Tag));
                 SQLiteDataReader DataReader = command.ExecuteReader();
                 while (DataReader.Read())
                 {
                     try
                     {
                         NodeModule nm = n.Nodes.First(a => a.Tag.ToString() == "f" + DataReader["id"]) as NodeModule;
                         nm.Module = DataReader["module"].ToString();
                     }
                     catch { }
                 }
             }
             n.UpdateModulesFromDbRec();
         }
     }
 }
Beispiel #2
0
		private NodeModule FindNode(NodeModule root, TreePath path, int level)
		{
			foreach (NodeModule node in root.Nodes)
				if (node == path.FullPath[level])
				{
					if (level == path.FullPath.Length - 1)
						return node;
					else
						return FindNode(node, path, level + 1);
				}
			return null;
		}
Beispiel #3
0
		public TreePath GetPath(NodeModule node)
		{
			if (node == _root)
				return TreePath.Empty;
			else
			{
				Stack<object> stack = new Stack<object>();
				while (node != _root)
				{
					stack.Push(node);
					node = node.Parent as NodeModule;
				}
				return new TreePath(stack.ToArray());
			}
		}
Beispiel #4
0
 public TreePath GetPath(NodeModule node)
 {
     if (node == _root)
     {
         return(TreePath.Empty);
     }
     else
     {
         Stack <object> stack = new Stack <object>();
         while (node != _root)
         {
             stack.Push(node);
             node = node.Parent as NodeModule;
         }
         return(new TreePath(stack.ToArray()));
     }
 }
Beispiel #5
0
        public System.Collections.IEnumerable GetChildren(TreePath treePath)
        {
            NodeModule nodeSelected;
            NodeModule nodeChild;

            nodeSelected = this.FindNode(treePath);

            using (SQLiteCommand command = new SQLiteCommand(ConnectionManager.connection))
            {
                command.CommandText = @"select * from folders where p_id=@p_id;";
                command.Parameters.Add(new SQLiteParameter("@p_id", (nodeSelected != null ? nodeSelected.Tag : "null")));
                SQLiteDataReader DataReader = command.ExecuteReader();
                while (DataReader.Read())
                {
                    nodeChild     = new NodeModule(DataReader["name"].ToString());
                    nodeChild.Tag = DataReader["id"];

                    if (nodeSelected == null)
                    {
                        _root       = nodeChild;
                        _root.Model = this;
                    }
                    else
                    {
                        nodeSelected.Nodes.Add(nodeChild);
                    }
                    yield return(nodeChild);
                }
            }

            using (SQLiteCommand command = new SQLiteCommand(ConnectionManager.connection))
            {
                command.CommandText = @"select name,id,(select name from modules where id=module_id) as module from files where p_id=@p_id;";
                command.Parameters.Add(new SQLiteParameter("@p_id", (nodeSelected != null ? nodeSelected.Tag : "null")));
                SQLiteDataReader DataReader = command.ExecuteReader();
                while (DataReader.Read())
                {
                    nodeChild     = new NodeModule(DataReader["name"].ToString(), DataReader["module"].ToString());
                    nodeChild.Tag = "f" + DataReader["id"];

                    nodeSelected.Nodes.Add(nodeChild);
                    yield return(nodeChild);
                }
            }
        }
Beispiel #6
0
 private NodeModule FindNode(NodeModule root, TreePath path, int level)
 {
     foreach (NodeModule node in root.Nodes)
     {
         if (node == path.FullPath[level])
         {
             if (level == path.FullPath.Length - 1)
             {
                 return(node);
             }
             else
             {
                 return(FindNode(node, path, level + 1));
             }
         }
     }
     return(null);
 }
Beispiel #7
0
        public System.Collections.IEnumerable GetChildren(TreePath treePath)
        {
            NodeModule nodeSelected;
            NodeModule nodeChild;
            
            nodeSelected = this.FindNode(treePath);

            using (SQLiteCommand command = new SQLiteCommand(ConnectionManager.connection))
            {
                command.CommandText = @"select * from folders where p_id=@p_id;";
                command.Parameters.Add(new SQLiteParameter("@p_id", (nodeSelected != null ? nodeSelected.Tag : "null")));
                SQLiteDataReader DataReader = command.ExecuteReader();
                while (DataReader.Read())
                {
                    nodeChild = new NodeModule(DataReader["name"].ToString());
                    nodeChild.Tag = DataReader["id"];
                    
                    if (nodeSelected == null)
                    {
                        _root = nodeChild;
                        _root.Model = this;
                    }
                    else nodeSelected.Nodes.Add(nodeChild);
                    yield return nodeChild;
                }
            }

            using (SQLiteCommand command = new SQLiteCommand(ConnectionManager.connection))
            {
                command.CommandText = @"select name,id,(select name from modules where id=module_id) as module from files where p_id=@p_id;";
                command.Parameters.Add(new SQLiteParameter("@p_id", (nodeSelected != null ? nodeSelected.Tag : "null")));
                SQLiteDataReader DataReader = command.ExecuteReader();
                while (DataReader.Read())
                {
                    nodeChild = new NodeModule(DataReader["name"].ToString(),DataReader["module"].ToString());
                    nodeChild.Tag = "f" + DataReader["id"];
                    
                    nodeSelected.Nodes.Add(nodeChild);
                    yield return nodeChild;
                }
            }

        }