public void ImportDefinitions(TreeNode Root)
{
int count = Root.Nodes.Count;
Definitions = new List<ClassDefinition>();
for (int i = 0; i < count; i++)
{
TreeNode n1 = Root.Nodes[i];
ClassDefinition t = new ClassDefinition();
t.name = n1.Text;
t.props = new List<Property>();
for (int j = 0; j < n1.Nodes.Count; j++)
{
Property p = new Property();
TreeNode n2 = n1.Nodes[j];
p.name = n2.Text;
p.Meta = new List<PropertyMeta>();
for (int k = 0; k < n2.Nodes.Count / 2 ; k++)
{
TreeNode s1 = n2.Nodes[k * 2];
TreeNode t1 = n2.Nodes[k * 2 + 1];
PropertyMeta m = new PropertyMeta();
m.size = Convert.ToInt32(s1.Text);
m.type = Convert.ToInt32(t1.Text);
p.Meta.Add(m);
}
t.props.Add(p);
}
Definitions.Add(t);
}
bool run=true;
while (run)
{
run = false;
for (int i = 0; i < Definitions.Count - 1; i++)
if (string.Compare(Definitions[i].name, Definitions[i + 1].name) > 0)
{
run = true;
ClassDefinition t = Definitions[i];
Definitions[i] = Definitions[i + 1];
Definitions[i + 1] = t;
}
for (int i = 0; i < Definitions.Count - 1; i++)
for(int j=0;j<Definitions[i].props.Count-1;j++)
if (string.Compare(Definitions[i].props[j].name, Definitions[i].props[j + 1].name) > 0)
{
run=true;
Property p = Definitions[i].props[j];
Definitions[i].props[j] = Definitions[i].props[j + 1];
Definitions[i].props[j + 1] = p;
}
}
}