private void IterateSchema( BinaryFileSchema schema )
{
foreach (IBfsDataBlock block in schema.DatablockList)
{
TreeNode node = treeBFSstructure.Nodes.Add(block.Name);
node.Tag = block;
node.ImageIndex = node.SelectedImageIndex = 0;
if (block is IBfsStructType)
{
if (block is IBfsConsumptionType)
node.ImageIndex = node.SelectedImageIndex = 1;
foreach (BfsStructField field in (block as IBfsStructType).StructFields.Values)
{
TreeNode newnode = node.Nodes.Add(field.ToString());
newnode.Tag = field;
newnode.ImageIndex = newnode.SelectedImageIndex = 4;
}
}
else if (block is BfsEnum)
{
node.ImageIndex = node.SelectedImageIndex = 2;
foreach (BfsEnumField field in (block as BfsEnum).EnumFields)
{
TreeNode newnode = node.Nodes.Add(field.ToString());
newnode.Tag = field;
newnode.ImageIndex = newnode.SelectedImageIndex = 4;
}
}
else if (block is BfsBitfield)
{
node.ImageIndex = node.SelectedImageIndex = 3;
foreach (BfsBitfieldField field in (block as BfsBitfield).BitFieldFields)
{
TreeNode newnode = node.Nodes.Add(field.ToString());
newnode.Tag = field;
newnode.ImageIndex = newnode.SelectedImageIndex = 4;
}
}
node.Expand();
}
}