view FrmEditArmy.cs @ 151:83b19b57cba1

Re #58: Remove LogNotifier from API * Move one of the semi-useful bits of logging to the GTK GUI
author IBBoard <dev@ibboard.co.uk>
date Sat, 17 Mar 2012 20:05:26 +0000
parents d4b726cec12c
children
line wrap: on
line source

// This file (FrmEditArmy.cs) is a part of the IBBoard.WarFoundry.GUI.GTK project and is copyright 2011 IBBoard
// 
// The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license.
using System;
using IBBoard.WarFoundry.API.Objects;
using IBBoard.Commands;
using IBBoard.WarFoundry.API.Commands;

namespace IBBoard.WarFoundry.GUI.GTK
{
	public partial class FrmEditArmy : IBBoard.GtkSharp.Translatable.TranslatableDialog
	{
		private Army army;
		private CommandStack stack;

		public FrmEditArmy(CommandStack cmdStack, Army toEdit)
		{
			stack = cmdStack;
			army = toEdit;
			this.Build();
			txtArmyName.Text = army.Name;
			sbPointsValue.Value = army.MaxPoints;
			Translate();
		}

		protected void OnButtonOkClicked (object sender, System.EventArgs e)
		{
			if (IsChanged())
			{
				DoUpdate();
			}
			Respond(Gtk.ResponseType.Ok);
		}

		private bool IsChanged()
		{
			string trimmedName = txtArmyName.Text.Trim();
			return army.MaxPoints != sbPointsValue.Value || army.Name != trimmedName;
		}

		private void DoUpdate()
		{
			EditArmyCommand command = new EditArmyCommand(army);
			command.NewName = txtArmyName.Text;
			command.NewSize = (int)sbPointsValue.Value;
			stack.Execute(command);
		}

		protected void OnButtonCancelClicked (object sender, System.EventArgs e)
		{
			Respond(Gtk.ResponseType.Cancel);
		}
	}
}