view FrmNewUnitFromTree.cs @ 247:53d79e1be712

Re #354: Single-button Add Unit * Start creating new form
author IBBoard <dev@ibboard.co.uk>
date Tue, 16 Aug 2011 21:01:45 +0100
parents
children 19a88383dfa7
line wrap: on
line source

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using IBBoard.WarFoundry.API.Objects;
using IBBoard.WarFoundry.API;

namespace IBBoard.WarFoundry.GUI.WinForms
{
    public partial class FrmNewUnitFromTree : Form
    {
        public FrmNewUnitFromTree()
        {
            InitializeComponent();
            WarFoundryCore.ArmyChanged += new ArmyChangedDelegate(ArmyChanged);
        }

        private void ArmyChanged(Army newArmy, Army oldArmy)
        {
            unitTypeTree.Nodes.Clear();

            if (newArmy != null)
            {
                BuildTree(newArmy.Race);
            }
        }

        private void BuildTree(Race race)
        {
            foreach (Category cat in race.Categories)
            {
                UnitType[] unitTypes = race.GetUnitTypes(cat);
                TreeNode[] unitNodes = new TreeNode[unitTypes.Length];

                for (int i = 0; i < unitTypes.Length; i++)
                {
                    UnitType unitType = unitTypes[i];
                    TreeNode temp = new TreeNode(unitType.Name);
                    temp.Tag = unitType;
                    unitNodes[i] = temp;
                }

                TreeNode catTemp = new TreeNode(cat.Name, unitNodes);
                catTemp.Tag = cat;
                unitTypeTree.Nodes.Add(catTemp);
                catTemp.ExpandAll();
            }
        }
    }
}