private void lstUnits_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (lstUnits.SelectedItem == null)
            {
                return;
            }

            AllowEvents = false;

            UnitTransforming.TransformationInformations ActiveTransformationInformations = (UnitTransforming.TransformationInformations)lstUnits.SelectedItem;

            if (ActiveTransformationInformations.WillRequirement >= 0)
            {
                cbWillRequirement.Checked = true;
                txtWillRequirement.Value  = ActiveTransformationInformations.WillRequirement;
            }
            else
            {
                cbWillRequirement.Checked = false;
            }

            if (ActiveTransformationInformations.TurnLimit >= 0)
            {
                cbTurnLimit.Checked = true;
                txtTurnLimit.Value  = ActiveTransformationInformations.TurnLimit;
            }
            else
            {
                cbTurnLimit.Checked = false;
            }

            txtPermanentTransformation.Checked = ActiveTransformationInformations.PermanentTransformation;

            AllowEvents = true;
        }
        protected void ListMenuItemsSelected(List <string> Items)
        {
            if (Items == null)
            {
                return;
            }

            string Name;

            for (int I = 0; I < Items.Count; I++)
            {
                switch (ItemSelectionChoice)
                {
                case ItemSelectionChoices.Unit:
                    Name = Items[I].Substring(0, Items[0].Length - 4).Substring(21);
                    UnitTransforming.TransformationInformations NewTransformationInformations = new UnitTransforming.TransformationInformations(null, Name);
                    if (Name != null)
                    {
                        if (lstUnits.Items.Contains(NewTransformationInformations))
                        {
                            MessageBox.Show("This Unit is already listed.\r\n" + Name);
                            return;
                        }
                        lstUnits.Items.Add(NewTransformationInformations);
                    }
                    break;
                }
            }
        }
        private void txtPermanentTransformation_CheckedChanged(object sender, EventArgs e)
        {
            if (lstUnits.SelectedItem == null || !AllowEvents)
            {
                return;
            }

            UnitTransforming.TransformationInformations ActiveTransformationInformations = (UnitTransforming.TransformationInformations)lstUnits.SelectedItem;

            ActiveTransformationInformations.PermanentTransformation = txtPermanentTransformation.Checked;
            lstUnits.Items[lstUnits.SelectedIndex] = ActiveTransformationInformations;
        }
        private void txtTurnLimit_ValueChanged(object sender, EventArgs e)
        {
            if (lstUnits.SelectedItem == null || !AllowEvents)
            {
                return;
            }

            UnitTransforming.TransformationInformations ActiveTransformationInformations = (UnitTransforming.TransformationInformations)lstUnits.SelectedItem;

            ActiveTransformationInformations.TurnLimit = (int)txtTurnLimit.Value;
            lstUnits.Items[lstUnits.SelectedIndex]     = ActiveTransformationInformations;
        }
        public override void SaveItem(string ItemPath, string ItemName, bool ForceOverwrite = false)
        {
            //Create the Part file.
            FileStream   FS = new FileStream(ItemPath, FileMode.Create, FileAccess.Write);
            BinaryWriter BW = new BinaryWriter(FS, Encoding.UTF8);

            BW.Write(lstUnits.Items.Count);

            for (int U = 0; U < lstUnits.Items.Count; ++U)
            {
                UnitTransforming.TransformationInformations ActiveTransformationInformations = (UnitTransforming.TransformationInformations)lstUnits.Items[U];

                BW.Write(ActiveTransformationInformations.TransformingUnitName);
                BW.Write(ActiveTransformationInformations.WillRequirement);
                BW.Write(ActiveTransformationInformations.TurnLimit);
                BW.Write(ActiveTransformationInformations.PermanentTransformation);
            }

            FS.Close();
            BW.Close();
        }