123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782 |
- using OTS.WinFormsUI.Docking;
- using System;
- using System.Collections.Generic;
- using System.Drawing;
- using System.Drawing.Imaging;
- using System.Linq;
- using System.Runtime.InteropServices;
- using System.Windows.Forms;
- namespace OTSPartA_STDEditor
- {
- public partial class STDRuleslist : DockContent
- {
- public STDdata Predata = null;//之前选中的位置
- public Form_Main m_MainForm = null;
- ValueChangedEvent m_ValueChangedEvent = null;//单元格内容改变事件
- public Dictionary<int,STDGroups> GroupViewDic=null;
- System.Collections.Hashtable table_STDRuleslist;
- bool RenFlag = false;
- public STDRuleslist(Form_Main mainForm)
- {
- InitializeComponent();
- m_MainForm = mainForm;
- m_ValueChangedEvent = new ValueChangedEvent(this);
- }
- private void STDRuleslist_Load(object sender, EventArgs e)
- {
- m_MainForm.lan = new Language(this);
- table_STDRuleslist = m_MainForm.lan.GetNameTable("Attributes");
- InitGroupEditorView();
- }
- /// <summary>
- /// [颜色:16进制转成RGB]
- /// </summary>
- /// <param name="strColor">设置16进制颜色 [返回RGB]</param>
- /// <returns></returns>
- public static System.Drawing.Color colorHx16toRGB(string strHxColor)
- {
- try
- {
- if (strHxColor.Length == 0)
- {//如果为空
- return System.Drawing.Color.FromArgb(255, 255, 204);//设为白色
- }
- else
- {//转换颜色
- return System.Drawing.Color.FromArgb(System.Int32.Parse(strHxColor.Substring(1, 2), System.Globalization.NumberStyles.AllowHexSpecifier), System.Int32.Parse(strHxColor.Substring(3, 2), System.Globalization.NumberStyles.AllowHexSpecifier), System.Int32.Parse(strHxColor.Substring(5, 2), System.Globalization.NumberStyles.AllowHexSpecifier));
- }
- }
- catch
- {//设为白色
- return System.Drawing.Color.FromArgb(255, 255, 204);
- }
- }
- public class ValueChangedEvent : SourceGrid.Cells.Controllers.ControllerBase
- {
- protected STDRuleslist m_parentWnd = null;
- public ValueChangedEvent(STDRuleslist parentWnd)
- {
- m_parentWnd = parentWnd;
- }
- public override void OnValueChanged(SourceGrid.CellContext sender, EventArgs e)
- {
- base.OnValueChanged(sender, e);
- if (sender.Value != null&& sender.Value.ToString().Replace(" ", "").Trim() != "")
- {
- m_parentWnd.ChangeStrName(sender.Position.Row, sender.Value.ToString());
- }
- else
- {
- m_parentWnd.ChangeStrName(sender.Position.Row, "NewRuleName");
- }
- }
- }
- public void ChangeStrName(int RowNum, string NewStrName)
- {
- m_MainForm.ChangeStrName(RowNum, NewStrName);
- }
- private void Grid_Minerals_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
- {
-
- if (e.KeyCode == Keys.Delete)
- {
- ToolStripMenuItem_Del_Click(null, null);
- }
- }
- public int ChangeSTDRulesLISTBackColor()
- {
- if (treeView_G.SelectedNode.Level == 0)
- {
- return -1;
- }
- STDdata ddata = (STDdata)treeView_G.SelectedNode.Tag;
- int id = ddata.STDId;
- foreach(STDdata ddata1 in ((STDGroups)treeView_G.SelectedNode.Parent.Tag).ContainSTD)
- {
- if(ddata1.STDId== ddata.STDId)
- {
- ddata1.Color = Attributes.colorRGBtoHx16(m_MainForm.m_Attributes.Grid_Attributes[3, 1].View.BackColor.R, m_MainForm.m_Attributes.Grid_Attributes[3, 1].View.BackColor.G, m_MainForm.m_Attributes.Grid_Attributes[3, 1].View.BackColor.B);
- break;
- }
- }
- InitGroupView();
- foreach (TreeNode treeNode in treeView_G.Nodes)
- {
- if (((STDGroups)treeNode.Tag).id == ddata.GroupId)
- {
- foreach (TreeNode node in treeNode.Nodes)
- {
- if (((STDdata)node.Tag).STDId == id)
- {
- treeView_G.SelectedNode = node;
- Predata = (STDdata)node.Tag;
- break;
- }
- }
- }
- }
- return id;
- }
- public void InitGroupEditorView()
- {
- GroupViewDic = ConvertToGroupViewDic();
- InitGroupView();
- }
- Dictionary<int, STDGroups> ConvertToGroupViewDic()
- {
- Dictionary<int, STDGroups> keyValuePairs = new Dictionary<int, STDGroups>();
- keyValuePairs = m_MainForm._sTDEditor.GroupDictionary;
- foreach (STDGroups group in keyValuePairs.Values)
- {
- group.ContainSTD.Clear();
- }
- foreach (STDdata Ddata in m_MainForm._sTDEditor.STDDictionary.Values)
- {
- keyValuePairs[Ddata.GroupId].ContainSTD.Add(Ddata);
- }
- return keyValuePairs;
- }
- public void ConvertToRuleViewDic()
- {
- m_MainForm._sTDEditor.GroupIdDictionaryFromId.Clear();
- m_MainForm._sTDEditor.GroupIdDictionaryFromName.Clear();
- m_MainForm._sTDEditor.STDDictionary.Clear();
- foreach (TreeNode treeNode in treeView_G.Nodes)
- {
- STDGroups tDGroups = (STDGroups)treeNode.Tag;
- GroupViewDic[tDGroups.id].iorder = treeNode.Index;
- foreach (TreeNode treeNode1 in treeNode.Nodes)
- {
- STDdata Ddata = (STDdata)treeNode1.Tag;
- Ddata.ListNum = treeNode1.Index.ToString();
- m_MainForm._sTDEditor.STDDictionary.Add(Ddata.STDId, Ddata);
- }
- m_MainForm._sTDEditor.GroupIdDictionaryFromName.Add(tDGroups.name.ToString(), int.Parse(tDGroups.id.ToString()));
- m_MainForm._sTDEditor.GroupIdDictionaryFromId.Add(int.Parse(tDGroups.id.ToString()), tDGroups.name.ToString());
- }
- if (treeView_G.SelectedNode == null){return;}
- if (treeView_G.SelectedNode.Level == 1)
- {
- m_MainForm.SaveDataOfSelRule(((STDdata)treeView_G.SelectedNode.Tag).STDId);
- }
- }
- private void ToolStripMenuItem_NewGroup_Click(object sender, EventArgs e)
- {
- STDGroups group = new STDGroups();
- int id = 0;
- foreach(STDGroups grp in GroupViewDic.Values)
- {
- if(grp.id>id)
- {
- id= grp.id;
- }
- }
- id++;
- group.id = id;
- group.name = "Group" + id.ToString();
- group.color = Attributes.colorRGBtoHx16(Color.WhiteSmoke.R, Color.WhiteSmoke.G, Color.WhiteSmoke.B);
- group.iorder = GroupViewDic.Count-1;
- GroupViewDic.Add(group.id, group);
- m_MainForm.m_Attributes.AddSTDGroupsToAttribute();
- m_MainForm._sTDEditor.GroupIdDictionaryFromId.Add(id, group.name);
- m_MainForm._sTDEditor.GroupIdDictionaryFromName.Add(group.name, group.id);
- InitGroupView();
- foreach (TreeNode treeNode in treeView_G.Nodes)
- {
- if (((STDGroups)treeNode.Tag).id == id)
- {
- treeView_G.SelectedNode = treeNode;
- break;
- }
- }
- m_MainForm.SetNull();
- Predata = null;
- this.Refresh();
- }
- private void ToolStripMenuItem_Del_Click(object sender, EventArgs e)
- {
- if (treeView_G.SelectedNode == null)
- {
- MessageBox.Show("Please select a node!", "Tip");
- return;
- }
- if (treeView_G.SelectedNode.Level == 0)
- {
- int id = ((STDGroups)treeView_G.SelectedNode.Tag).id;
- if (((STDGroups)treeView_G.SelectedNode.Tag).id == 0)
- {
- MessageBox.Show("Can not delete the group which named default!", "Tip");
- return;
- }
- m_MainForm._sTDEditor.GroupIdDictionaryFromId.Remove(id);
- m_MainForm._sTDEditor.GroupIdDictionaryFromName.Remove(GroupViewDic[id].name);
- foreach (TreeNode treeNode1 in treeView_G.Nodes)
- {
- if (((STDGroups)treeNode1.Tag).name == "Default")
- {
- if (Predata != null)
- {
- m_MainForm.SaveDataOfSelRule(Predata.STDId);
- }
- foreach (STDdata ddata in GroupViewDic[((STDGroups)treeView_G.SelectedNode.Tag).id].ContainSTD)
- {
- ddata.GroupId = ((STDGroups)treeNode1.Tag).id;
- ddata.ListNum = "1000";
- }
- GroupViewDic[((STDGroups)treeNode1.Tag).id].ContainSTD.AddRange(GroupViewDic[((STDGroups)treeView_G.SelectedNode.Tag).id].ContainSTD);
- GroupViewDic.Remove(id);
- InitGroupView();
- break;
- }
- }
- foreach (TreeNode treeNode1 in treeView_G.Nodes)
- {
- if (((STDGroups)treeNode1.Tag).name == "Default")
- {
- treeView_G.SelectedNode = treeNode1;
- m_MainForm.SetNull();
- Predata = null;
- break;
- }
- }
- }
- else
- {
- foreach (int grpid in GroupViewDic.Keys)
- {
- foreach (STDdata ddata in GroupViewDic[grpid].ContainSTD)
- {
- if (ddata.STDId == ((STDdata)treeView_G.SelectedNode.Tag).STDId)
- {
- GroupViewDic[grpid].ContainSTD.Remove(ddata);
- break;
- }
- }
- }
- treeView_G.SelectedNode.Remove();
- if (treeView_G.SelectedNode != null&& treeView_G.SelectedNode.Level !=0)
- {
- m_MainForm.ChangeSTDEditorAndGrid_Attributes((STDdata)treeView_G.SelectedNode.Tag);
- Predata = (STDdata)treeView_G.SelectedNode.Tag;
- }
- else
- {
- m_MainForm.SetNull();
- Predata = null;
- }
- this.Refresh();
- }
- }
- private void ToolStripMenuItem_EdGroupColor_Click(object sender, EventArgs e)
- {
- if(treeView_G.SelectedNode==null)
- {
- MessageBox.Show("Please select a group!", "Tip");
- return;
- }
- if (treeView_G.SelectedNode.Level == 0)
- {
- if (treeView_G.SelectedNode.Text == "Default")
- {
- MessageBox.Show("The default group cannot be changed!", "Tip");
- treeView_G.SelectedNode.EndEdit(true);
- return;
- }
- ColorDialog cd = new ColorDialog();
- cd.FullOpen = true;//自定义颜色界面打开
- DialogResult result = cd.ShowDialog();
- if (result == DialogResult.OK)
- {
- GroupViewDic[((STDGroups)treeView_G.SelectedNode.Tag).id].color = Attributes.colorRGBtoHx16(cd.Color.R, cd.Color.G, cd.Color.B);
- InitGroupView();
- }
- }
- else
- {
- MessageBox.Show("Please select a group!", "Tip");
- }
- }
- public void InitGroupView()
- {
- treeView_G.ImageList=new ImageList();
- treeView_G.Nodes.Clear();
- treeView_G.ImageList.ColorDepth = ColorDepth.Depth32Bit;
- List<STDGroups> groups = new List<STDGroups>();
- foreach (STDGroups group in GroupViewDic.Values)
- {
- if (group.name == "Default")
- {
- group.iorder = 10000;
- }
- groups.Add(group);
- }
- groups=groups.OrderBy(s => s.iorder).ToList();
-
- for (int i=0;i< groups.Count;i++)
- {
- TreeNode treeNode = new TreeNode();
- treeNode.Tag = groups[i];
- treeNode.Text = groups[i].name;
- Color color = Attributes.colorHx16toRGB(groups[i].color);
- Bitmap bitmap = new Bitmap(100, 100, PixelFormat.Format32bppArgb);
- Graphics graphics = Graphics.FromImage(bitmap);
- SolidBrush b1 = new SolidBrush(color);
- graphics.FillEllipse(b1, new Rectangle(0, 0, 100, 100));
- treeView_G.ImageList.Images.Add(groups[i].id.ToString(),bitmap);
- treeNode.ImageKey = groups[i].id.ToString();
- treeNode.SelectedImageKey = groups[i].id.ToString();
- treeView_G.Nodes.Add(treeNode);
- groups[i].ContainSTD= groups[i].ContainSTD.OrderBy(s => int.Parse(s.ListNum)).ToList();
- for(int j=0;j<groups[i].ContainSTD.Count;j++)
- {
- STDdata ddata = groups[i].ContainSTD[j];
- TreeNode childtreeNode = new TreeNode();
- childtreeNode.Tag = ddata;
- childtreeNode.Text = ddata.StrName;
- Color color2 = Attributes.colorHx16toRGB(ddata.Color);
- SolidBrush b2 = new SolidBrush(color2);
- graphics.FillEllipse(b2, new Rectangle(0, 0, 100, 100));
- treeView_G.ImageList.Images.Add("0x"+ ddata.STDId, bitmap);
- childtreeNode.ImageKey = "0x" + ddata.STDId;
- childtreeNode.SelectedImageKey = "0x" + ddata.STDId;
- treeNode.Nodes.Add(childtreeNode);
- }
- treeNode.ExpandAll();
- }
- treeView_G.Font = new Font("微软雅黑", 12);
- treeView_G.ShowLines = false;
- this.Refresh();
- }
- private void treeView_G_ItemDrag(object sender, ItemDragEventArgs e)
- {
- if (e.Button == MouseButtons.Left)
- {
- m_targetNode = null;
- TreeNode _node = (TreeNode)e.Item;
- if (_node.Text!= "Default")
- {
- DoDragDrop(e.Item, DragDropEffects.Move | DragDropEffects.Copy);
- }
- }
- }
- TreeNode m_targetNode; //用于记录当前拖拽到的目标节点;
- private void treeView_G_DragDrop(object sender, DragEventArgs e)
- {
- if (m_targetNode != null)
- {
- TreeNode _node = (TreeNode)e.Data.GetData(typeof(TreeNode));
- if (Predata != null)
- {
- m_MainForm.SaveDataOfSelRule(Predata.STDId);
- }
- if (_node.Level == 1)
- {
- if (!m_targetNode.Equals(_node))
- {
- if (m_targetNode.Level == _node.Level)
- {
- if (_node.Parent.Equals(m_targetNode.Parent))
- {
- _node.Remove();
- m_targetNode.Parent.Nodes.Insert(m_targetNode.Index+1, _node);
- m_targetNode.Parent.ExpandAll();
- treeView_G.SelectedNode = _node;
- m_MainForm.ChangeSTDEditorAndGrid_Attributes((STDdata)_node.Tag);
- Predata = (STDdata)_node.Tag;
- }
- else
- {
- GroupViewDic[((STDGroups)_node.Parent.Tag).id].ContainSTD.Remove((STDdata)_node.Tag);
- _node.Remove();
- ((STDdata)_node.Tag).GroupId = ((STDGroups)m_targetNode.Parent.Tag).id;
- m_targetNode.Parent.Nodes.Add(_node);
- GroupViewDic[((STDGroups)m_targetNode.Parent.Tag).id].ContainSTD.Add((STDdata)_node.Tag);
- treeView_G.SelectedNode = _node; // 选中节点
- m_targetNode.Parent.Expand(); // 展开父节点
- m_MainForm.ChangeSTDEditorAndGrid_Attributes((STDdata)_node.Tag);
- Predata = (STDdata)_node.Tag;
- }
- }
- else
- {
- GroupViewDic[((STDGroups)_node.Parent.Tag).id].ContainSTD.Remove((STDdata)_node.Tag);
- _node.Remove();
- ((STDdata)_node.Tag).GroupId = ((STDGroups)m_targetNode.Tag).id;
- m_targetNode.Nodes.Add(_node);
- GroupViewDic[((STDGroups)m_targetNode.Tag).id].ContainSTD.Add((STDdata)_node.Tag);
- treeView_G.SelectedNode = _node; // 选中节点
- m_targetNode.Expand(); // 展开父节点
- m_MainForm.ChangeSTDEditorAndGrid_Attributes((STDdata)_node.Tag);
- Predata = (STDdata)_node.Tag;
- }
- }
- }
- else
- {
- m_MainForm.SetNull();
- Predata = null;
- if (!m_targetNode.Equals(_node)&& m_targetNode.Text != "Default")
- {
- if (m_targetNode.Level == _node.Level)
- {
- _node.Remove();
- treeView_G.Nodes.Insert(m_targetNode.Index+1, _node);
- treeView_G.SelectedNode = _node;
- }
- else
- {
- _node.Remove();
- treeView_G.Nodes.Insert(m_targetNode.Parent.Index+1, _node);
- treeView_G.SelectedNode = _node;
- }
- }
- }
- m_targetNode = null;
- _node = null;
- }
- }
- [DllImport("user32.dll")]
- private static extern int SendMessage(IntPtr hWnd, int wMsg, int wParam,int lParam);
- private void treeView_G_DragOver(object sender, DragEventArgs e)
- {
- const Single scrollRegion = 20;
- Point pt = treeView_G.PointToClient(Cursor.Position);
- if ((pt.Y + scrollRegion) > treeView_G.Height)
- {
- SendMessage(treeView_G.Handle, (int)277, (int)1, 0);
- }
- else if (pt.Y < (treeView_G.Top + scrollRegion))
- {
- SendMessage(treeView_G.Handle, (int)277, (int)0, 0);
- }
- TreeNode _node2 = treeView_G.GetNodeAt(treeView_G.PointToClient(new Point(e.X, e.Y)));
- m_targetNode = null;
- if (_node2 != null)
- {
- m_targetNode = _node2;
- e.Effect = DragDropEffects.Move;
- }
- else
- {
- e.Effect = DragDropEffects.None;
- }
- }
- private void treeView_G_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
- {
- if (Predata!=null)
- {
- m_MainForm.SaveDataOfSelRule(Predata.STDId);
- }
- if(e.Node.Level==0)
- {
- m_MainForm.SetNull();
- Predata = null;
- treeView_G.SelectedNode = e.Node;
- }
- else
- {
- m_MainForm.ChangeSTDEditorAndGrid_Attributes((STDdata)e.Node.Tag);
- Predata = (STDdata)e.Node.Tag;
- treeView_G.SelectedNode = e.Node;
- }
- }
- public void AdjustTreenodeByGroup(int Groupid)
- {
- if (m_MainForm.m_STDRuleslist.tabControl1.SelectedIndex == 1)
- {
- return;
- }
- if (treeView_G.SelectedNode == null)
- {
- return;
- }
- if (treeView_G.SelectedNode.Level == 0)
- {
- return;
- }
- STDdata ddata = (STDdata)treeView_G.SelectedNode.Tag;
- TreeNode nodenew = null;
- foreach (TreeNode node in treeView_G.Nodes)
- {
- if (((STDGroups)node.Tag).id == Groupid)
- {
- nodenew = node;break;
- }
- }
- foreach (TreeNode node in treeView_G.Nodes)
- {
- foreach (TreeNode node1 in node.Nodes)
- {
- if (((STDdata)node1.Tag).STDId == ddata.STDId)
- {
- GroupViewDic[((STDGroups)node.Tag).id].ContainSTD.Remove(ddata);
- node1.Remove();
- ((STDdata)node1.Tag).GroupId = ddata.GroupId;
- nodenew.Nodes.Add(node1);
- GroupViewDic[Groupid].ContainSTD.Add(ddata);
- treeView_G.SelectedNode = node1;
- nodenew.Expand();
- m_MainForm.ChangeSTDEditorAndGrid_Attributes((STDdata)node1.Tag);
- Predata = ddata;
- break;
- }
- }
- }
- }
- string PreN = "";
- private void ToolStripMenuItem_Rename_Click(object sender, EventArgs e)
- {
- if (treeView_G.SelectedNode != null)
- {
- RenFlag = true;
- PreN = treeView_G.SelectedNode.Text;
- if (treeView_G.SelectedNode.Level == 0)
- {
- if (treeView_G.SelectedNode.Text == "Default")
- {
- MessageBox.Show("The default group cannot be changed!", "Tip");
- treeView_G.SelectedNode.EndEdit(true);
- return;
- }
- else
- {
- treeView_G.SelectedNode.BeginEdit();
- }
- }
- else
- {
- treeView_G.SelectedNode.BeginEdit();
- }
- }
- }
- private void treeView_G_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
- {
- if (treeView_G.SelectedNode.Level == 0)
- {
- if(e.Label == "")
- {
- e.CancelEdit=true;
- return;
- }
- if (e.Label == "Default")
- {
- e.CancelEdit = true;
- return;
- }
- if (e.Label != null && e.Label != "")
- {
- if (m_MainForm._sTDEditor.GroupIdDictionaryFromName.ContainsKey(e.Label))
- {
- MessageBox.Show("Group names cannot be duplicated!", "Tip");
- e.CancelEdit = true;
- return;
- }
- else
- {
- STDGroups Group = (STDGroups)treeView_G.SelectedNode.Tag;
- m_MainForm._sTDEditor.GroupIdDictionaryFromId.Remove(Group.id);
- m_MainForm._sTDEditor.GroupIdDictionaryFromName.Remove(GroupViewDic[Group.id].name);
- GroupViewDic[Group.id].name = e.Label;
- m_MainForm._sTDEditor.GroupIdDictionaryFromId.Add(Group.id, Group.name);
- m_MainForm._sTDEditor.GroupIdDictionaryFromName.Add(GroupViewDic[Group.id].name, Group.id);
- m_MainForm.m_Attributes.AddSTDGroupsToAttribute();
- }
- }
- }
- else
- {
- if (e.Label == "")
- {
- e.CancelEdit = true;
- return;
- }
- if (e.Label != null && e.Label != "")
- {
- STDdata sT = (STDdata)treeView_G.SelectedNode.Tag;
- foreach (int grpid in GroupViewDic.Keys)
- {
- foreach (STDdata ddata in GroupViewDic[grpid].ContainSTD)
- {
- if (ddata.STDId == ((STDdata)treeView_G.SelectedNode.Tag).STDId)
- {
- ddata.StrName = e.Label;
- m_MainForm.ChangeSTDEditorAndGrid_Attributes(ddata);
- break;
- }
- }
- }
- }
- }
- }
- private void ToolStripMenuItem_NewRule_Click(object sender, EventArgs e)
- {
- TreeNode _node2 = treeView_G.SelectedNode;
- if (_node2 != null)
- {
- if (Predata != null)
- {
- m_MainForm.SaveDataOfSelRule(Predata.STDId);
- }
- STDdata ddata= m_MainForm._sTDEditor.AddSTDDictionaryItem();
- int STDId = 40000;
- foreach (STDGroups grp in GroupViewDic.Values)
- {
- foreach (STDdata ddata1 in grp.ContainSTD)
- {
- if (STDId < ddata1.STDId)
- {
- STDId = ddata1.STDId;
- }
- }
- }
- ddata.STDId = STDId + 1;
- TreeNode treeNode = new TreeNode();
- treeNode.Text = ddata.StrName;
- treeNode.Tag = ddata;
- if (_node2.Level == 0)
- {
- ddata.ListNum = ((((STDGroups)treeView_G.SelectedNode.Tag).ContainSTD).Count - 1).ToString();
- ddata.GroupId = ((STDGroups)_node2.Tag).id;
- ((STDGroups)treeView_G.SelectedNode.Tag).ContainSTD.Add(ddata);
- _node2.Nodes.Add(treeNode);
- }
- else
- {
- ddata.ListNum = ((((STDGroups)treeView_G.SelectedNode.Parent.Tag).ContainSTD).Count - 1).ToString();
- ddata.GroupId = ((STDGroups)_node2.Parent.Tag).id;
- ((STDGroups)treeView_G.SelectedNode.Parent.Tag).ContainSTD.Add(ddata);
- _node2.Parent.Nodes.Add(treeNode);
- }
- m_MainForm.ChangeSTDEditorAndGrid_Attributes(ddata);
- Predata = (STDdata)treeNode.Tag;
- InitGroupView();
- foreach(TreeNode node in treeView_G.Nodes)
- {
- foreach (TreeNode node1 in node.Nodes)
- {
- if (((STDdata)node1.Tag).STDId == ddata.STDId)
- {
- treeView_G.SelectedNode = node1;
- this.Refresh();
- break;
- }
- }
- }
- }
- else
- {
- foreach (TreeNode treeNode1 in treeView_G.Nodes)
- {
- if (((STDGroups)treeNode1.Tag).name == "Default")
- {
- if(Predata != null)
- {
- m_MainForm.SaveDataOfSelRule(Predata.STDId);
- }
- STDdata ddata = m_MainForm._sTDEditor.AddSTDDictionaryItem();
- int STDId = 40000;
- foreach (STDGroups grp in GroupViewDic.Values)
- {
- foreach (STDdata ddata1 in grp.ContainSTD)
- {
- if (STDId < ddata1.STDId)
- {
- STDId = ddata1.STDId;
- }
- }
- }
- ddata.STDId = STDId + 1;
- TreeNode treeNode = new TreeNode();
- treeNode.Text= ddata.StrName;
- treeNode.Tag = ddata;
- ddata.ListNum = ((((STDGroups)treeNode1.Tag).ContainSTD).Count - 1).ToString();
- ddata.GroupId = ((STDGroups)treeNode1.Tag).id;
- ((STDGroups)treeNode1.Tag).ContainSTD.Add(ddata);
- InitGroupView();
- foreach (TreeNode node in treeView_G.Nodes)
- {
- foreach (TreeNode node1 in node.Nodes)
- {
- if (((STDdata)node1.Tag).STDId == ddata.STDId)
- {
- treeView_G.SelectedNode = node1;
- m_MainForm.ChangeSTDEditorAndGrid_Attributes(ddata);
- Predata = (STDdata)treeNode.Tag;
- treeView_G.Focus();
- break;
- }
- }
- }
- break;
- }
- }
- }
- }
- private void treeView_G_KeyUp(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Up|| e.KeyCode == Keys.Down)
- {
- if (Predata != null)
- {
- int id = Predata.STDId;
- m_MainForm.SaveDataOfSelRule(id);
- }
- if (treeView_G.SelectedNode.Level != 0 && treeView_G.SelectedNode != null)
- {
- m_MainForm.ChangeSTDEditorAndGrid_Attributes((STDdata)treeView_G.SelectedNode.Tag);
- Predata = (STDdata)treeView_G.SelectedNode.Tag;
- }
- else
- {
- m_MainForm.SetNull();
- Predata = null;
- }
- m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
- }
- }
- private void treeView_G_BeforeLabelEdit(object sender, NodeLabelEditEventArgs e)
- {
- if (!RenFlag) e.CancelEdit = true;
- RenFlag = false;
- }
- }
- }
|