private TreeNode AddGroupItem(TreeNode node, MewsDataBase data) { TreeNode subNode = new TreeNode(); subNode.Name = data.Code.ToString(); subNode.Text = data.Name; subNode.Tag = data; if (data is TermData) { TermData term = data as TermData; subNode.ImageIndex = 3; subNode.SelectedImageIndex = 3; } else if (data is DistData) { DistData dist = data as DistData; subNode.ImageIndex = 2; subNode.SelectedImageIndex = 2; //if (dbMng.DicDist.ContainsKey(dist.Code.ToString())) //{ // foreach (KeyValuePair<string, TermData> pairTerm in dbMng.DicDist[dist.Code.ToString()].dicTermData) // { // AddGroupItem(subNode, pairTerm.Value); // } //} } else if (data is ProvData) { ProvData prov = data as ProvData; subNode.ImageIndex = 1; subNode.SelectedImageIndex = 1; //if (dbMng.DicProv.ContainsKey(prov.Code.ToString())) //{ // foreach (KeyValuePair<string, DistData> pairDist in dbMng.DicProv[prov.Code.ToString()].dicDistData) // { // AddGroupItem(subNode, pairDist.Value); // } //} } node.Nodes.Add(subNode); return(subNode); }
private void ViewTermsList(bool bSn) { ListViewItem item = null; foreach (KeyValuePair <string, DistData> pairDist in dbMng.DicDist) { DistData dist = pairDist.Value as DistData; item = new ListViewItem(); item.Text = ""; item.Tag = dist; lvDist.Items.Add(item); // Dist 의 경우 No 는 code 값으로 삽입 (조작반 배열과 맞추기 위해) item.SubItems.Add(dist.Code.ToString()); item.SubItems.Add(dist.Name); item.SubItems.Add(dist.dicBroadTermData.Count.ToString()); } this.lvDist.Sort(); if (!bSn) { foreach (KeyValuePair <string, TermData> pairTerm in dbMng.DicOnlyBroadOrderTerm) { TermData term = pairTerm.Value as TermData; DistData dist = dbMng.GetDistData(term.DistCode); item = new ListViewItem(); item.Text = ""; item.Tag = term; lvTerm.Items.Add(item); item.SubItems.Add(term.Name); item.SubItems.Add(dist.Name); } } }
public void setSelInd(List <string> _dist, List <string> _term) { if (_dist == null && _term == null) { return; } for (int i = 0; i < _dist.Count; i++) { DistData tmpDist = this.GetDistData(_dist[i]); for (int j = 0; j < this.lvDist.Items.Count; j++) { if (this.lvDist.Items[j].Tag == tmpDist) { this.lvDist.Items[j].Checked = true; this.lvDist.Items[j].Font = new Font(this.lvDist.Font, FontStyle.Bold); this.lvDist.Items[j].ForeColor = Color.Blue; } } } for (int i = 0; i < _term.Count; i++) { TermData tmpTerm = this.GetTermIp(_term[i]); for (int j = 0; j < this.lvTerm.Items.Count; j++) { if (this.lvTerm.Items[j].Tag == tmpTerm) { this.lvTerm.Items[j].Checked = true; this.lvTerm.Items[j].Font = new Font(this.lvDist.Font, FontStyle.Bold); this.lvTerm.Items[j].ForeColor = Color.Blue; } } } }
private void btnMove_Click(object sender, EventArgs e) { Dictionary <string, TermData> dicTermTemp = new Dictionary <string, TermData>(); Dictionary <string, DistData> dicDistTemp = new Dictionary <string, DistData>(); Dictionary <string, ProvData> dicProvTemp = new Dictionary <string, ProvData>(); foreach (TreeNode nodeProv in tvAll.Nodes[0].Nodes) { // Add Prov All if (nodeProv.Checked) { ProvData prov = nodeProv.Tag as ProvData; dicProvTemp.Add(prov.Code.ToString(), prov); } else { foreach (TreeNode nodeDist in nodeProv.Nodes) { // Add Dist All if (nodeDist.Checked) { DistData dist = nodeDist.Tag as DistData; dicDistTemp.Add(dist.Code.ToString(), dist); } else { foreach (TreeNode nodeTerm in nodeDist.Nodes) { // Add Term One if (nodeTerm.Checked) { TermData term = nodeTerm.Tag as TermData; dicTermTemp.Add(term.Code.ToString(), term); } } } } } } if (dicTermTemp.Count == 0 && dicDistTemp.Count == 0 && dicProvTemp.Count == 0) { MessageBox.Show(LangPack.GetMongolian("Please select terminal/province/district."), LangPack.GetMongolian(this.Name), MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } TreeNode grpNode = tvGrp.SelectedNode; if (grpNode == null || !(grpNode.Tag is Group)) { MessageBox.Show(LangPack.GetMongolian("Please select group."), LangPack.GetMongolian(this.Name), MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (grpNode.Nodes.Count >= 17) { MessageBox.Show(LangPack.GetMongolian("A group of up to sixteen members."), LangPack.GetMongolian(this.Name), MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if ((grpNode.Nodes.Count + dicProvTemp.Count + dicDistTemp.Count + dicTermTemp.Count) > 16) { MessageBox.Show(LangPack.GetMongolian("A group of up to sixteen members."), LangPack.GetMongolian(this.Name), MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Group gp = grpNode.Tag as Group; grpMng.UpdateGrpProv(gp.Key, dicProvTemp); grpMng.UpdateGrpDist(gp.Key, dicDistTemp); grpMng.UpdateGrpTerm(gp.Key, dicTermTemp); DisplayGroupTree(); tvAll.Nodes[0].Checked = false; }
private void btnDel_Click(object sender, EventArgs e) { bool bRult = false; TreeNode node = tvGrp.SelectedNode; TreeNode prtNode = node; if (node == null) { MessageBox.Show(LangPack.GetMongolian("Please select the items to delete."), LangPack.GetMongolian(this.Name), MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (DialogResult.No == MessageBox.Show(LangPack.GetMongolian("Want to delete?"), LangPack.GetMongolian(this.Name), MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2)) { return; } if (node.Tag is Group) { Group gp = node.Tag as Group; bRult = grpMng.DeleteGrp(gp.Key); } else { int iCnt = 0; string grpKey = string.Empty; while (true) { // 무한 Loop 방지 iCnt++; if (iCnt > 100) { return; } prtNode = prtNode.Parent; if (prtNode.Tag is Group) { grpKey = (prtNode.Tag as Group).Key; break; } } if (node.Tag is ProvData) { ProvData prov = node.Tag as ProvData; bRult = grpMng.DeleteGrpProv(grpKey, prov); } else if (node.Tag is DistData) { DistData dist = node.Tag as DistData; bRult = grpMng.DeleteGrpDist(grpKey, dist); } else if (node.Tag is TermData) { TermData term = node.Tag as TermData; bRult = grpMng.DeleteGrpTerm(grpKey, term); } } tvGrp.Nodes.Remove(node); if (bRult) { MessageBox.Show(LangPack.GetMongolian("Deleted."), LangPack.GetMongolian(this.Name), MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show(LangPack.GetMongolian("Failed."), LangPack.GetMongolian(this.Name), MessageBoxButtons.OK, MessageBoxIcon.Error); } DisplayGroupTree(); }
private void lvDist_ItemCheck(object sender, ItemCheckEventArgs e) { if (e.Index < 0) { return; } ListView.CheckedIndexCollection selDist = lvDist.CheckedIndices; ListView.CheckedIndexCollection selTerm = lvTerm.CheckedIndices; if (e.NewValue == CheckState.Checked && (selDist.Count + selTerm.Count) >= 17) { MessageBox.Show(LangPack.GetMongolian("Terminals can not be selected to issue more than sixteen."), LangPack.GetMongolian(this.Name), MessageBoxButtons.OK, MessageBoxIcon.Warning); e.NewValue = CheckState.Unchecked; return; } ListViewItem item = lvDist.Items[e.Index]; if (bGroup) { Group grp = item.Tag as Group; if (evtGroupInfo != null) { evtGroupInfo(grp); } item.ForeColor = Color.Blue; item.Font = new System.Drawing.Font(lvDist.Font, FontStyle.Bold); lvDist.CheckBoxes = false; } else { DistData dist = item.Tag as DistData; List <ListViewItem> lstIndex = new List <ListViewItem>(); if (e.NewValue == CheckState.Checked) { item.ForeColor = Color.Blue; item.Font = new Font(lvDist.Font, FontStyle.Bold); foreach (ListViewItem lv in lvTerm.Items) { TermData term = lv.Tag as TermData; if (term.DistCode == dist.Code) { lstIndex.Add(lv); } } foreach (ListViewItem index in lstIndex) { lvTerm.Items.Remove(index); } } else { item.ForeColor = Color.Black; item.Font = new Font(lvDist.Font, FontStyle.Regular); ListViewItem newItem = null; foreach (KeyValuePair <string, TermData> pair in dist.dicBroadTermData) { TermData term = pair.Value as TermData; newItem = new ListViewItem(); newItem.Text = ""; newItem.Tag = term; lvTerm.Items.Add(newItem); newItem.SubItems.Add(term.Name); newItem.SubItems.Add(dist.Name); } lvTerm.Sort(); } } }