|
@@ -4,6 +4,7 @@ using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Drawing;
|
|
|
using System.Drawing.Imaging;
|
|
|
+using System.Linq;
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
|
|
using System.Windows.Forms;
|
|
@@ -412,16 +413,6 @@ namespace OTSPartA_STDEditor
|
|
|
{
|
|
|
ConvertToRuleViewDic();
|
|
|
InitRuleView();
|
|
|
- //int i = Grid_Minerals.Selection.ActivePosition.Row;
|
|
|
- //int j = Grid_Minerals.Selection.ActivePosition.Column;
|
|
|
- //if (i >= 0 && j >= 0)
|
|
|
- //{
|
|
|
- // int id = ((STDdata)Grid_Minerals[i, 0].Tag).STDId;
|
|
|
- // if (m_MainForm._sTDEditor.STDDictionary.ContainsKey(id))
|
|
|
- // {
|
|
|
- // m_MainForm.ChangeSTDEditorAndGrid_Attributes(id);
|
|
|
- // Predata = (STDdata)Grid_Minerals[i, 0].Tag;
|
|
|
- // }
|
|
|
if (m_MainForm._sTDEditor.STDDictionary.Count == 0)
|
|
|
{
|
|
|
m_MainForm.SetNull();
|
|
@@ -466,6 +457,11 @@ namespace OTSPartA_STDEditor
|
|
|
m_MainForm._sTDEditor.GroupIdDictionaryFromId.Clear();
|
|
|
m_MainForm._sTDEditor.GroupIdDictionaryFromName.Clear();
|
|
|
m_MainForm._sTDEditor.STDDictionary.Clear();
|
|
|
+ for(int i=0;i< treeView_G.Nodes.Count;i++)
|
|
|
+ {
|
|
|
+ STDGroups tDGroups = (STDGroups)treeView_G.Nodes[i].Tag;
|
|
|
+ GroupViewDic[tDGroups.id].iorder = i;
|
|
|
+ }
|
|
|
foreach (STDGroups group in GroupViewDic.Values)
|
|
|
{
|
|
|
foreach (STDdata Ddata in group.ContainSTD)
|
|
@@ -573,27 +569,39 @@ namespace OTSPartA_STDEditor
|
|
|
MessageBox.Show("Please select a group!", "Tip");
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
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 = 9999999;
|
|
|
+ }
|
|
|
+ groups.Add(group);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ groups=groups.OrderBy(s => s.iorder).ToList();
|
|
|
+
|
|
|
+ for (int i=0;i< groups.Count;i++)
|
|
|
{
|
|
|
TreeNode treeNode = new TreeNode();
|
|
|
- treeNode.Tag = group;
|
|
|
- treeNode.Text = group.name;
|
|
|
- Color color = Attributes.colorHx16toRGB(group.color);
|
|
|
+ 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(group.id.ToString(),bitmap);
|
|
|
- treeNode.ImageKey = group.id.ToString();
|
|
|
- treeNode.SelectedImageKey = group.id.ToString();
|
|
|
+ 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);
|
|
|
- foreach (STDdata ddata in group.ContainSTD)
|
|
|
+ foreach (STDdata ddata in groups[i].ContainSTD)
|
|
|
{
|
|
|
TreeNode childtreeNode = new TreeNode();
|
|
|
childtreeNode.Tag = ddata;
|
|
@@ -606,6 +614,7 @@ namespace OTSPartA_STDEditor
|
|
|
childtreeNode.SelectedImageKey = "0x" + ddata.STDId;
|
|
|
treeNode.Nodes.Add(childtreeNode);
|
|
|
}
|
|
|
+ treeNode.ExpandAll();
|
|
|
}
|
|
|
|
|
|
treeView_G.Font = new Font("微软雅黑", 12);
|
|
@@ -674,7 +683,7 @@ namespace OTSPartA_STDEditor
|
|
|
{
|
|
|
m_targetNode = null;
|
|
|
TreeNode _node = (TreeNode)e.Item;
|
|
|
- if (_node.Level > 0)
|
|
|
+ if (_node.Text!= "Default")
|
|
|
{
|
|
|
DoDragDrop(e.Item, DragDropEffects.Move | DragDropEffects.Copy);
|
|
|
}
|
|
@@ -686,40 +695,65 @@ namespace OTSPartA_STDEditor
|
|
|
if (m_targetNode != null)
|
|
|
{
|
|
|
TreeNode _node = (TreeNode)e.Data.GetData(typeof(TreeNode));
|
|
|
- if (!m_targetNode.Equals(_node))
|
|
|
+ if (_node.Level == 1)
|
|
|
{
|
|
|
- if (m_targetNode.Level == _node.Level)
|
|
|
+ if (!m_targetNode.Equals(_node))
|
|
|
{
|
|
|
- if (_node.Parent.Equals(m_targetNode.Parent))
|
|
|
+ if (m_targetNode.Level == _node.Level)
|
|
|
{
|
|
|
- _node.Remove();
|
|
|
- m_targetNode.Parent.Nodes.Insert(m_targetNode.Index, _node);
|
|
|
- m_targetNode.Parent.ExpandAll();
|
|
|
+ if (_node.Parent.Equals(m_targetNode.Parent))
|
|
|
+ {
|
|
|
+ _node.Remove();
|
|
|
+ m_targetNode.Parent.Nodes.Insert(m_targetNode.Index+1, _node);
|
|
|
+ m_targetNode.Parent.ExpandAll();
|
|
|
+ }
|
|
|
+ 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(int.Parse(((STDdata)_node.Tag).STDId.ToString()));
|
|
|
+ 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);
|
|
|
+ ((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.Parent.Expand(); // 展开父节点
|
|
|
+ m_targetNode.Expand(); // 展开父节点
|
|
|
m_MainForm.ChangeSTDEditorAndGrid_Attributes(int.Parse(((STDdata)_node.Tag).STDId.ToString()));
|
|
|
Predata = (STDdata)_node.Tag;
|
|
|
}
|
|
|
}
|
|
|
- else
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (!m_targetNode.Equals(_node)&& m_targetNode.Text != "Default")
|
|
|
{
|
|
|
- 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(int.Parse(((STDdata)_node.Tag).STDId.ToString()));
|
|
|
- Predata = (STDdata)_node.Tag;
|
|
|
+ if (m_targetNode.Level == _node.Level)
|
|
|
+ {
|
|
|
+ _node.Remove();
|
|
|
+ treeView_G.Nodes.Insert(m_targetNode.Index+1, _node);
|
|
|
+ treeView_G.SelectedNode = _node;
|
|
|
+ m_MainForm.SetNull();
|
|
|
+ Predata = null;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ _node.Remove();
|
|
|
+ treeView_G.Nodes.Insert(m_targetNode.Parent.Index+1, _node);
|
|
|
+ treeView_G.SelectedNode = _node;
|
|
|
+ m_MainForm.SetNull();
|
|
|
+ Predata = null;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
m_targetNode = null;
|
|
@@ -780,7 +814,7 @@ namespace OTSPartA_STDEditor
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
- if (treeView_G.SelectedNode.Level == null)
|
|
|
+ if (treeView_G.SelectedNode == null)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
@@ -821,9 +855,20 @@ namespace OTSPartA_STDEditor
|
|
|
{
|
|
|
if (treeView_G.SelectedNode != null)
|
|
|
{
|
|
|
+
|
|
|
if (treeView_G.SelectedNode.Level == 0)
|
|
|
{
|
|
|
- treeView_G.SelectedNode.BeginEdit();
|
|
|
+
|
|
|
+ if (treeView_G.SelectedNode.Text == "Default")
|
|
|
+ {
|
|
|
+ MessageBox.Show("默认组不能更改名称!", "Tip");
|
|
|
+ treeView_G.SelectedNode.EndEdit(true);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ treeView_G.SelectedNode.BeginEdit();
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
{
|