/// <summary> /// 方法说明:根据BusinessId删除模版或文件夹 /// 作 者:jason.tang /// 完成时间:2013-07-22 /// </summary> /// <param name="Id">业务ID</param> private void RemoveTreeNode(TreeNode currentNode) { //TreeNode lastNode = currentNode.PrevNode; //if (lastNode == null) //{ // lastNode = currentNode.Parent; // if (lastNode == null) // { // return; // } // lastNode.Expand(); //} if (currentNode == null) { return; } Guid businessId = new Guid(currentNode.Tag.ToString()); bool result = CardManagerBLL.DeleteBusiness(businessId); if (result) { //Remove oneself Cache cardManagerDic.Remove(currentNode.Name.ToString()); List <CardManager> cardList = cardManagerDic[currentNode.Parent.Name]; var afterCardList = cardList.Where <CardManager>( x => x.CurrentNode.ToString() != currentNode.Name) .ToList <CardManager>(); cardManagerDic[currentNode.Parent.Name] = afterCardList; if (!string.IsNullOrEmpty(currentNode.Parent.ImageKey)) { tvProcessCard.SelectedNode = currentNode.Parent; tvProcessCard.SelectedImageKey = currentNode.Parent.ImageKey; } else { tvProcessCard.SelectedNode = tvProcessCard.Nodes[0]; /// 如果选中的节点为空,默认为卡片 tvProcessCard.SelectedImageKey = tvProcessCard.Nodes[0].ImageKey; } //Remove treeview tvProcessCard.Nodes.Remove(currentNode); tvProcessCard.SelectedNode.Expand(); } }
/// <summary> /// get data from dic or database /// </summary> /// <param name="nodeName"></param> /// <returns></returns> public List <CardManager> GetTreeData(string nodeName) { List <CardManager> cardManagerList = null; if (!cardManagerDic.ContainsKey(nodeName)) { cardManagerList = CardManagerBLL.GetCardManagerListById(int.Parse(nodeName)); cardManagerDic.Add(nodeName, cardManagerList); } else { cardManagerList = cardManagerDic[nodeName]; } return(cardManagerList); }
private void btnAdd_Click(object sender, EventArgs e) { try { int currentNode = CardManagerBLL.AddBusiness( txtBusinessName.Text.Trim(), (int)BusinessModule.BType, BusinessModule.ParentNode, BusinessModule.BusinessId); /// 当前节点的Level CurrentNode = currentNode; this.DialogResult = DialogResult.OK; } catch (Exception ex) { MessageBox.Show(ex.Message); this.DialogResult = DialogResult.Cancel; } }
/// <summary> /// Get card manager list /// </summary> /// <param name="nodeName"></param> /// <returns></returns> public void LoadTreeData() { if (tvProcessCard.InvokeRequired) { LoadTreeEventHandler loadtreeEventHandler = new LoadTreeEventHandler(() => { try { CardManager cardManager = CardManagerBLL.GetCardManagerListById(0).FirstOrDefault <CardManager>(); //if (cardManager == null) return; //如果数据库内没有记录,则默认增加一条root记录 if (cardManager == null) { cardManager = new CardManager(); cardManager.Name = "工艺模版"; cardManager.BusinessId = Guid.NewGuid(); cardManager.CurrentNode = CardManagerBLL.AddBusiness(cardManager.Name, 0, 0, cardManager.BusinessId); } TreeNode root = new TreeNode(); root.Text = cardManager.Name; root.Tag = cardManager.BusinessId; root.ImageKey = "folder_o"; root.Name = cardManager.CurrentNode.ToString(); root.Expand(); ShowChildNode(root); tvProcessCard.Nodes.Add(root); } catch (Exception ex) { MessageBox.Show(ex.Message); } }); tvProcessCard.BeginInvoke(loadtreeEventHandler, new object[] { }); } }
public void LoadCardData() { //List<Model.ProcessCard> listProcessCard = Kingdee.CAPP.BLL.ProcessCardBLL.GetDefaultProcessCardList(); //dgvCard.DataSource = listProcessCard; try { tvProcessCard.Nodes.Clear(); CardManager cardManager = CardManagerBLL.GetCardManagerListById(-1).FirstOrDefault<CardManager>(); //if (cardManager == null) return; //如果数据库内没有记录,则默认增加一条root记录 if (cardManager == null) { cardManager = new CardManager(); cardManager.Name = "工艺卡片"; cardManager.BusinessId = Guid.NewGuid(); cardManager.CurrentNode = CardManagerBLL.AddBusiness(cardManager.Name, -1, -1, cardManager.BusinessId); } TreeNode root = new TreeNode(); root.Text = cardManager.Name; root.Tag = " "; root.ImageKey = "folder_o"; root.Expand(); ShowChildNode(root); tvProcessCard.Nodes.Add(root); } catch //(Exception ex) { //MessageBox.Show(ex.Message); } }
/// <summary> /// New add module or folder common method /// </summary> public void AddModuleOrFolder(BusinessType type, ProcessCardModule cardModule) { TreeNode node = tvProcessCard.SelectedNode; ///如果整个Treeview都没有选中的话 if (node == null) { node = tvProcessCard.Nodes[0]; } /// 避免直接新建时选中卡片或其他的节点 while (node.ImageKey != "folder" && node.ImageKey != "folder_o") { node = node.Parent; } Guid businessId = Guid.NewGuid(); CardManager businessModule = new CardManager(); businessModule.BType = type; businessModule.ParentNode = int.Parse(node.Name); if (cardModule != null) { businessId = cardModule.Id; } businessModule.BusinessId = businessId; ///当前节点修改缓存且显示在界面上 string newNodeName = string.Empty; AddNodeFrm nodeFrm = null; int currentNode = 0; if (type != BusinessType.Card) { nodeFrm = new AddNodeFrm(businessModule); nodeFrm.ShowDialog(); if (nodeFrm.DialogResult != DialogResult.OK) { return; } newNodeName = nodeFrm.NewNodeName; currentNode = nodeFrm.CurrentNode; } else { newNodeName = cardModule.Name; currentNode = CardManagerBLL.AddBusiness( cardModule.Name, (int)type, businessModule.ParentNode, cardModule.Id); } businessModule.Name = newNodeName; List <CardManager> cardManagerList = null; if (!cardManagerDic.ContainsKey(node.Name)) { cardManagerList = new List <CardManager>(); cardManagerList.Add(businessModule); cardManagerDic.Add(node.Name, cardManagerList); } else { cardManagerList = cardManagerDic[node.Name]; cardManagerList.Add(new CardManager() { BType = type, CurrentNode = currentNode, BusinessId = businessId, Name = newNodeName }); cardManagerDic[node.Name] = cardManagerList; } TreeNode newNode = new TreeNode(); newNode.Text = newNodeName; newNode.Name = currentNode.ToString(); newNode.Tag = businessId; switch (type) { case BusinessType.Root: newNode.ImageKey = "folder_o"; break; case BusinessType.Card: newNode.ImageKey = "card"; break; case BusinessType.FixTip: newNode.ImageKey = "detail"; break; case BusinessType.Detail: newNode.ImageKey = "content"; break; case BusinessType.Folder: newNode.ImageKey = "folder"; break; default: break; } node.Nodes.Add(newNode); ///新增加的节点也要加入缓存 cardManagerDic.Add(newNode.Name, new List <CardManager>()); }