diff FrmExportXml.cs @ 126:d4e6bfeb1c61

Re #361: Add XML export UI to GTK# * Separate out the "transform" section so we can add it as an ExtraWidget on the file chooser
author IBBoard <dev@ibboard.co.uk>
date Sat, 01 Oct 2011 16:19:48 +0100
parents 42d2aa87dfa7
children d5a631a8d288
line wrap: on
line diff
--- a/FrmExportXml.cs	Sat Oct 01 14:52:39 2011 +0100
+++ b/FrmExportXml.cs	Sat Oct 01 16:19:48 2011 +0100
@@ -16,38 +16,26 @@
 	public partial class FrmExportXml : Gtk.Dialog
 	{
 		private Army army;
+		private TransformXmlWidget transformWidget;
 
 		public FrmExportXml(Army army)
 		{
 			this.army = army;
 			this.Build();
-			FillXsltList();
+			transformWidget = new TransformXmlWidget();
+			transformWidget.TransformChanged += HandleTransformWidgetTransformChanged;
+			saveAsPath.ExtraWidget = transformWidget;
 			saveAsPath.SetCurrentFolder(Environment.GetFolderPath(Environment.SpecialFolder.Personal));
 		}
 
-		private void FillXsltList()
+		private void HandleTransformWidgetTransformChanged (object sender, EventArgs e)
 		{
-			DirectoryInfo dir = new DirectoryInfo(System.IO.Path.Combine(Constants.ExecutablePath, "xsl"));
-			List<FileInfo> files = new List<FileInfo>(dir.GetFiles("*.xsl"));
-			ComboBoxUtils.FillCombo(transformList, files, delegate(FileInfo file) { return file.Name; });
-		}
-
-		protected void OnDoTransformWidgetToggled(object sender, System.EventArgs e)
-		{
-			bool enabled = doTransformWidget.Active;
-			lblTransform.Sensitive = enabled;
-			transformList.Sensitive = enabled;
 			SetOkayButtonSensitive();
 		}
 
 		private void SetOkayButtonSensitive()
 		{
-			buttonOk.Sensitive = saveAsName.Text != "" && saveAsPath.Filename != null && saveAsPath.Filename != "" && (!doTransformWidget.Active || ComboBoxUtils.GetSelectedItem<FileInfo>(transformList) != null);
-		}
-
-		protected void OnTransformListChanged(object sender, System.EventArgs e)
-		{
-			SetOkayButtonSensitive();
+			buttonOk.Sensitive = saveAsPath.Filename != null && saveAsPath.Filename != "" && transformWidget.IsValid;
 		}
 
 		protected void OnSaveAsPathSelectionChanged(object sender, System.EventArgs e)
@@ -61,11 +49,11 @@
             // Catch potential errors with the file export or XSL compiliation
             try
             {
-                string fileName = System.IO.Path.Combine(saveAsPath.Filename, saveAsName.Text);
+                string fileName = saveAsPath.Filename;
 
-                if (doTransformWidget.Active)
+                if (transformWidget.TransformEnabled)
                 {
-                    WarFoundryXmlWithXslExporter.GetDefault().ExportArmyWithTransform(army, fileName, ComboBoxUtils.GetSelectedItem<FileInfo>(transformList).FullName);
+                    WarFoundryXmlWithXslExporter.GetDefault().ExportArmyWithTransform(army, fileName, transformWidget.GetXsltPath());
                 }
                 else
                 {
@@ -113,9 +101,10 @@
 			Respond(ResponseType.Cancel);
 		}
 
-		protected void OnSaveAsNameChanged (object sender, System.EventArgs e)
+		protected void OnSizeAllocated (object o, Gtk.SizeAllocatedArgs args)
 		{
-			SetOkayButtonSensitive();
+			Console.WriteLine(args.Allocation.Height + "," + args.Allocation.Width);
+			//this.
 		}
 	}
 }