private void removeGroupToolStripMenuItem_Click(object sender, EventArgs e) { if (tNodeNewGrpClicked != null) { if (tNodeNewGrpClicked.Nodes.Count > 0) { //MessageBox.Show("Group having child items can not be deleted"); if (MessageBox.Show("This group has child items. Do you want to remove them all?", "SQT", MessageBoxButtons.YesNo) == DialogResult.Yes) { RemoveChildNodes(tNodeNewGrpClicked); var data = new Category.Data(); data.CategoryId = Convert.ToInt32(GetKey(tNodeNewGrpClicked.Key)); Category.Delete(data); tNodeNewGrpClicked.Remove(); } } else { var data = new Category.Data(); data.CategoryId = Convert.ToInt32(GetKey(tNodeNewGrpClicked.Key)); Category.Delete(data); tNodeNewGrpClicked.Remove(); } } }
private int?CheckCategoryExists(string nodeName, int?parentNodeId) { int?nodeId = null; var data = new Category.Data(); data.ConnectionId = ConnectionId; data.Name = nodeName; if (parentNodeId == null) { data.ParentCategoryId = 0; } else { data.ParentCategoryId = parentNodeId; } var dt = Category.DoesExist(data); if (dt != null && dt.Rows.Count > 0) { nodeId = Convert.ToInt32(dt.Rows[0]["CategoryId"]); } return(nodeId); }
private int GetChildCount(string objType, int?categoryId) { int count = 0; var sql = string.Empty; if (objType != "group") { if (objType == "table") { sql = "select * from sysobjects where xtype='u' ORDER BY name"; } else if (objType == "proc") { sql = "select * from sysobjects where xtype='p' ORDER BY name"; } else if (objType == "view") { sql = "select * from sysobjects where xtype='v' ORDER BY name"; } else if (objType == "function") { sql = "select * from sysobjects where xtype='fn' ORDER BY name"; } ////Framework.Components.DataAccess.StartUp.EntryPoint(path, timeout, ConnectionString); var oDT = new Framework.Components.DataAccess.DBDataTable("Get List", sql, DataStoreKey); if (oDT.DBTable != null) { count = oDT.DBTable.Rows.Count; } if (count > 0) { return(count); } } if (categoryId != null) { // Get Child Category Count var data = new Category.Data(); data.ParentCategoryId = categoryId; var dtCategory = Category.Search(data); if (dtCategory != null && dtCategory.Rows.Count > 0) { count = dtCategory.Rows.Count; return(count); } // Get Child Object Items Count var dataItem = new CategoryItem.Data(); dataItem.CategoryId = categoryId; var dtCategoryItem = CategoryItem.Search(dataItem); if (dtCategoryItem != null && dtCategoryItem.Rows.Count > 0) { count = dtCategoryItem.Rows.Count; } } return(count); }
private int CreateCategory(string nodeName, int?parentNodeId) { int nodeId; var data = new Category.Data(); data.ConnectionId = ConnectionId; data.Name = nodeName; if (parentNodeId != null) { data.ParentCategoryId = parentNodeId; } data.CreatedDate = DateTime.Now; nodeId = Category.Create(data, ApplicationConnectionString); return(nodeId); }
private void RemoveChildNodes(UltraTreeNode parentNode) { while (parentNode.Nodes.Count > 0) { var nodeTag = Convert.ToString(parentNode.Nodes[0].Tag); if (nodeTag == "group") { if (parentNode.Nodes[0].Nodes.Count > 0) { RemoveChildNodes(parentNode.Nodes[0]); } var data = new Category.Data(); data.CategoryId = Convert.ToInt32(GetKey(parentNode.Nodes[0].Key)); Category.Delete(data); parentNode.Nodes[0].Remove(); } else { var data = new CategoryItem.Data(); data.CategoryItemId = Convert.ToInt32(GetKey(parentNode.Nodes[0].Key)); CategoryItem.Delete(data); //nodeTag //parentNode.Nodes[i].Reposition( for (int j = 0; j < treeViewObjects.Nodes[0].Nodes.Count; j++) { var parentTag = Convert.ToString(treeViewObjects.Nodes[0].Nodes[j].Tag); if (parentTag == nodeTag + "s") { parentNode.Nodes[0].Reposition(treeViewObjects.Nodes[0].Nodes[j].Nodes); break; } } } } }
private void treeViewObjects_DragDrop(object sender, DragEventArgs e) { //A dummy node variable used for various things UltraTreeNode aNode; //The SelectedNodes which will be dropped SelectedNodesCollection SelectedNodes; //The Node to Drop On UltraTreeNode DropNode; //An integer used for loops int i; //Set the DropNode DropNode = UltraTree_DropHightLight_DrawFilter.DropHightLightNode; //Get the Data and put it into a SelectedNodes collection, //then clone it and work with the clone //These are the nodes that are being dragged and dropped SelectedNodes = (SelectedNodesCollection)e.Data.GetData(typeof(SelectedNodesCollection)); SelectedNodes = SelectedNodes.Clone() as SelectedNodesCollection; //Sort the selected nodes into their visible position. //This is done so that they stay in the same order when //they are repositioned. SelectedNodes.SortByPosition(); //Determine where we are dropping based on the current //DropLinePosition of the DrawFilter switch (UltraTree_DropHightLight_DrawFilter.DropLinePosition) { case DropLinePositionEnum.OnNode: //Drop ON the node { //Loop through the SelectedNodes and reposition //them to the node that was dropped on. //Note that the DrawFilter keeps track of what //node the mouse is over, so we can just use //DropHighLightNode as the drop target. for (i = 0; i <= (SelectedNodes.Count - 1); i++) { try { aNode = SelectedNodes[i]; var newParentTagName = Convert.ToString(DropNode.Tag); var oldParentTagName = Convert.ToString(aNode.Parent.Tag); var oldParentCategoryId = Convert.ToInt32(GetKey(aNode.Parent.Key)); var newParentCategoryId = Convert.ToInt32(GetKey(DropNode.Key)); var nodeTagName = Convert.ToString(aNode.Tag); if (string.IsNullOrEmpty(newParentTagName) || string.IsNullOrEmpty(oldParentTagName)) { continue; } if (nodeTagName == "group") { var data = new Category.Data(); data.CategoryId = Convert.ToInt32(GetKey(aNode.Key)); data.ParentCategoryId = newParentCategoryId; data.Name = aNode.Text.Split(new char[] { '(' })[0]; data.ConnectionId = ConnectionId; Category.Update(data); } else { if (newParentTagName == "root") { continue; } List <string> lstRootTags = new List <string>() { "tables", "procs", "views", "functions" }; var isUpdate = false; var isInsert = false; var isDelete = false; if (newParentTagName == "group" && oldParentTagName == "group") { isUpdate = true; } else if (newParentTagName == "group" && lstRootTags.Contains(oldParentTagName)) { if (nodeTagName + "s" != oldParentTagName) { isUpdate = true; } else { isInsert = true; } } else if (oldParentTagName == "group" && lstRootTags.Contains(newParentTagName)) { if (nodeTagName + "s" != newParentTagName) { isUpdate = true; } else { isDelete = true; } } else if (lstRootTags.Contains(newParentTagName) && lstRootTags.Contains(oldParentTagName)) { if (nodeTagName + "s" != newParentTagName && nodeTagName + "s" != oldParentTagName) { isUpdate = true; } else if (nodeTagName + "s" == oldParentTagName && nodeTagName + "s" != newParentTagName) { isInsert = true; } else if (nodeTagName + "s" == newParentTagName && nodeTagName + "s" != oldParentTagName) { isDelete = true; } } var data = new CategoryItem.Data(); data.CategoryId = newParentCategoryId; data.ItemType = nodeTagName; data.Name = aNode.Text.Split(new char[] { '(' })[0]; data.Status = "new"; if (isInsert) { data.CreatedDate = DateTime.Now; var categoryItemId = CategoryItem.Create(data, ApplicationConnectionString); aNode.Key = Convert.ToString(categoryItemId) + "$$" + aNode.Tag; } else if (isUpdate) { data.CategoryItemId = Convert.ToInt32(GetKey(aNode.Key)); CategoryItem.Update(data); } else if (isDelete) { data.CategoryItemId = Convert.ToInt32(GetKey(aNode.Key)); CategoryItem.Delete(data); } } //MessageBox.Show("aNode: " + aNode.Text); //MessageBox.Show("Drop Node: " + DropNode.Text); aNode.Reposition(DropNode.Nodes); } catch { } } break; } } //After the drop is complete, erase the current drop //highlight. UltraTree_DropHightLight_DrawFilter.ClearDropHighlight(); }
private void treeViewObjects_AfterLabelEdit(object sender, NodeEventArgs e) { if (e.TreeNode.Text != null) { if (e.TreeNode.Text.Length > 0) { if (e.TreeNode.Text.IndexOfAny(new char[] { '@', '.', ',', '!' }) == -1) { if (cellTextBeforeEdit != e.TreeNode.Text) { if (e.TreeNode.Key.Contains("New Group")) { // Stop editing without canceling the label change. var nodeId = CheckCategoryExists(e.TreeNode.Text, Convert.ToInt32(GetKey(e.TreeNode.Parent.Key))); if (nodeId == null) { nodeId = CreateCategory(e.TreeNode.Text, Convert.ToInt32(GetKey(e.TreeNode.Parent.Key))); e.TreeNode.Key = Convert.ToString(nodeId.Value) + "$$" + e.TreeNode.Tag; e.TreeNode.EndEdit(false); e.TreeNode.Override.NodeAppearance.Image = GetImageIndex(Convert.ToString(e.TreeNode.Tag)); } else if (Convert.ToInt32(GetKey(e.TreeNode.Parent.Key)) != nodeId.Value) { // Cancel the label edit action, inform the user, and place the node in edit mode again. e.TreeNode.CancelUpdate(); MessageBox.Show("Invalid Group Name.\n" + "This Group Name already Exists"); treeViewObjects.Focus(); treeViewObjects.ActiveNode = e.TreeNode; if (!e.TreeNode.IsEditing) { e.TreeNode.BeginEdit(); } } } else { var data = new Category.Data(); data.ConnectionId = ConnectionId; data.Name = e.TreeNode.Text; data.CategoryId = Convert.ToInt32(GetKey(e.TreeNode.Key)); data.ParentCategoryId = Convert.ToInt32(GetKey(e.TreeNode.Parent.Key)); data.CreatedDate = DateTime.Now; Category.Update(data); e.TreeNode.EndEdit(false); e.TreeNode.Override.NodeAppearance.Image = GetImageIndex(Convert.ToString(e.TreeNode.Tag)); } } } else { // Cancel the label edit action, inform the user, and place the node in edit mode again. e.TreeNode.CancelUpdate(); MessageBox.Show(Properties.Resources.ObjectTree_treeViewObjects_AfterLabelEdit_, "Node Label Edit"); treeViewObjects.Focus(); treeViewObjects.ActiveNode = e.TreeNode; if (!e.TreeNode.IsEditing) { e.TreeNode.BeginEdit(); } } } else { treeViewObjects.ActiveNode = e.TreeNode; // Cancel the label edit action, inform the user, and place the node in edit mode again. e.TreeNode.CancelUpdate(); MessageBox.Show("Invalid tree node label.\nThe label cannot be blank", "Node Label Edit"); treeViewObjects.Focus(); treeViewObjects.ActiveNode = e.TreeNode; if (!e.TreeNode.IsEditing) { e.TreeNode.BeginEdit(); } } } cellTextBeforeEdit = string.Empty; }
private void CreatChildNodes(UltraTreeNode tNode) { try { var sql = string.Empty; var nodeTag = string.Empty; var isRootNode = false; var imgIndex = 0; if (tNode.Tag == "tables") { //sql = "select name, (SELECT SUM (row_count) FROM sys.dm_db_partition_stats WHERE object_id=s.id) as 'rowcount' from sysobjects s WHERE xtype='u' ORDER BY name"; sql = "SELECT so.name, [RowCount] = MAX(si.rows) FROM sysobjects so, sysindexes si WHERE so.xtype = 'U' AND si.id = OBJECT_ID(so.name) GROUP BY so.name ORDER BY 1"; nodeTag = "table"; isRootNode = true; imgIndex = 2; } else if (tNode.Tag == "procs") { sql = "select name from sysobjects where xtype='p' ORDER BY name"; nodeTag = "proc"; isRootNode = true; imgIndex = 3; } else if (tNode.Tag == "views") { sql = "select name from sysobjects where xtype='v' ORDER BY name"; nodeTag = "view"; isRootNode = true; imgIndex = 4; } else if (tNode.Tag == "functions") { sql = "select name from sysobjects where xtype='fn' ORDER BY name"; nodeTag = "function"; isRootNode = true; imgIndex = 5; } var isCleared = false; var initCount = tNode.Nodes.Count; if (isRootNode && tNode.Nodes.Count == 1) { tNode.Nodes.Clear(); isCleared = true; Framework.Components.DataAccess.StartUp.EntryPoint(path, timeout, Database); var oDT = new Framework.Components.DataAccess.DBDataTable("Get List", sql, Database); if (oDT.DBTable != null && oDT.DBTable.Rows.Count > 0) { var categoryItemList = CategoryItem.GetList(); foreach (DataRow dr in oDT.DBTable.Rows) { bool isExist = false; if (categoryItemList != null && categoryItemList.Rows.Count > 0) { var rows = categoryItemList.Select(" Name = '" + Convert.ToString(dr["name"]) + "'"); if (rows.Length > 0) { isExist = true; } } if (!tNode.Nodes.Exists(Convert.ToString(dr["name"])) && !isExist) { var nodeName = Convert.ToString(dr["name"]); if (tNode.Tag == "tables") { nodeName += "(" + Convert.ToString(dr["rowcount"]) + ")"; } var tmpNode = tNode.Nodes.Add(Convert.ToString(dr["name"]), nodeName); tmpNode.Tag = nodeTag; tmpNode.AllowCellEdit = AllowCellEdit.Disabled; tmpNode.Override.NodeAppearance.Image = GetImageIndex(nodeTag); } } } } // For Group also and for Root Nodes Also. if (initCount == 1) { if (!isCleared) { tNode.Nodes.Clear(); } // Get Child Category var data = new Category.Data(); if (tNode.Tag.ToString() == "group") { var tmpId = GetKey(tNode.Key); data.ParentCategoryId = Convert.ToInt32(tmpId); } else { data.ParentCategoryId = Convert.ToInt32(tNode.Key); } var dtCategory = Category.Search(data); if (dtCategory != null && dtCategory.Rows.Count > 0) { foreach (DataRow dr in dtCategory.Rows) { if (!tNode.Nodes.Exists(Convert.ToString(dr["name"]))) { var tmpNode = tNode.Nodes.Add(Convert.ToString(dr["CategoryId"]) + "$$group", Convert.ToString(dr["Name"])); tmpNode.Tag = "group"; tmpNode.Override.NodeAppearance.Image = GetImageIndex(tmpNode.Tag.ToString()); int childCount = GetChildCount("group", Convert.ToInt32(dr["CategoryId"])); if (childCount > 0) { tmpNode.Nodes.Add("Sample Group" + tmpNode.Key, "Sample Group"); } } } } // Get Child Object Items var dataItem = new CategoryItem.Data(); if (tNode.Tag.ToString() == "group") { var tmpId = GetKey(tNode.Key); dataItem.CategoryId = Convert.ToInt32(tmpId); } else { dataItem.CategoryId = Convert.ToInt32(tNode.Key); } var dtCategoryItem = CategoryItem.Search(dataItem); if (dtCategoryItem != null && dtCategoryItem.Rows.Count > 0) { foreach (DataRow dr in dtCategoryItem.Rows) { var tag = Convert.ToString(dr["ItemType"]).ToLower(); var name = Convert.ToString(dr["Name"]); if (tag == "table") { name = name + "(" + GetTableRowCount(name) + ")"; } var tmpNode = tNode.Nodes.Add(Convert.ToString(dr["CategoryItemId"]) + "$$" + tag, name); tmpNode.Tag = tag; tmpNode.Override.NodeAppearance.Image = GetImageIndex(Convert.ToString(dr["ItemType"]).ToLower()); } } } //toolStripStatusLabelExecute.Text = "Objects Listed Successfully"; } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public void LoadTreeView() { LoadSQLLog(); objTree.SetConnectionId(ConnectionId); objTree.SetConnectionString(ConnectionString); objTree.SetDatabase(Database); objTree.treeViewObjects.Nodes.Clear(); // Create DB Root Node var rootNodeId = CheckAndCreateRootCategory(Database, null); var tDB = objTree.treeViewObjects.Nodes.Add(rootNodeId.ToString(), Database); tDB.Tag = "root"; tDB.Override.NodeAppearance.Image = 0; // Create Tables Node var tableNodeId = CheckAndCreateRootCategory(Database + ".Tables", rootNodeId); var tNodeTables = tDB.Nodes.Add(tableNodeId.ToString(), "Tables"); tNodeTables.Tag = "tables"; tNodeTables.Override.NodeAppearance.Image = 1; if (GetChildCount("table", tableNodeId) > 0) { tNodeTables.Nodes.Add("Sample Table", "Sample Table"); } // Create Stoed Procedure Node var procNodeId = CheckAndCreateRootCategory(Database + ".Stored Procedures", rootNodeId); var tNodeProcs = tDB.Nodes.Add(procNodeId.ToString(), "Stored Procedures"); tNodeProcs.Tag = "procs"; tNodeProcs.Override.NodeAppearance.Image = 1; if (GetChildCount("proc", procNodeId) > 0) { tNodeProcs.Nodes.Add("Sample Proc", "Sample Proc"); } // Create Views Node var viewNodeId = CheckAndCreateRootCategory(Database + ".Views", rootNodeId); var tNodeViews = tDB.Nodes.Add(viewNodeId.ToString(), "Views"); tNodeViews.Tag = "views"; tNodeViews.Override.NodeAppearance.Image = 1; if (GetChildCount("view", viewNodeId) > 0) { tNodeViews.Nodes.Add("Sample View", "Sample View"); } // Create Functions Node var functionNodeId = CheckAndCreateRootCategory(Database + ".Functions", rootNodeId); var tNodeFunctions = tDB.Nodes.Add(functionNodeId.ToString(), "Functions"); tNodeFunctions.Tag = "functions"; tNodeFunctions.Override.NodeAppearance.Image = 1; if (GetChildCount("function", functionNodeId) > 0) { tNodeFunctions.Nodes.Add("Sample Functions", "Sample Functions"); } // Get Child Category var data = new Category.Data(); data.ParentCategoryId = Convert.ToInt32(tDB.Key); var dtCategory = Category.Search(data); if (dtCategory != null && dtCategory.Rows.Count > 0) { foreach (DataRow dr in dtCategory.Rows) { var categoryName = Convert.ToString(dr["Name"]).ToLower(); if (!categoryName.Contains(".tables") && !categoryName.Contains(".stored procedures") && !categoryName.Contains(".views") && !categoryName.Contains(".functions")) { var tmpNode = tDB.Nodes.Add(Convert.ToString(dr["CategoryId"]), Convert.ToString(dr["Name"])); tmpNode.Tag = "group"; tmpNode.Override.NodeAppearance.Image = 1; int childCount = GetChildCount("group", Convert.ToInt32(dr["CategoryId"])); if (childCount > 0) { tmpNode.Nodes.Add("Sample Group", "Sample Group"); } } } } }
private int GetChildCount(string objType, int?categoryId) { int count = 0; var sql = string.Empty; if (objType != "group") { if (objType == "table") { sql = "select * from sysobjects where xtype='u' ORDER BY name"; } else if (objType == "proc") { sql = "select * from sysobjects where xtype='p' ORDER BY name"; } else if (objType == "view") { sql = "select * from sysobjects where xtype='v' ORDER BY name"; } else if (objType == "function") { sql = "select * from sysobjects where xtype='fn' ORDER BY name"; } var localConnectionString = ConfigurationManager.ConnectionStrings[Database]; if (localConnectionString == null) { AddNewConnectionString(Server, Database, User, Password); } var oDT = new Framework.Components.DataAccess.DBDataTable("Get List", sql, Database); if (oDT.DBTable != null) { count = oDT.DBTable.Rows.Count; } if (count > 0) { return(count); } } if (categoryId != null) { // Get Child Category Count var data = new Category.Data(); data.ParentCategoryId = categoryId; var dtCategory = Category.Search(data); if (dtCategory != null && dtCategory.Rows.Count > 0) { count = dtCategory.Rows.Count; return(count); } // Get Child Object Items Count var dataItem = new CategoryItem.Data(); dataItem.CategoryId = categoryId; var dtCategoryItem = CategoryItem.Search(dataItem); if (dtCategoryItem != null && dtCategoryItem.Rows.Count > 0) { count = dtCategoryItem.Rows.Count; } } return(count); }