Mercurial > repos > IBBoard.WarFoundry.GUI.GTK
comparison 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 |
comparison
equal
deleted
inserted
replaced
125:42d2aa87dfa7 | 126:d4e6bfeb1c61 |
---|---|
14 namespace IBBoard.WarFoundry.GUI.GTK | 14 namespace IBBoard.WarFoundry.GUI.GTK |
15 { | 15 { |
16 public partial class FrmExportXml : Gtk.Dialog | 16 public partial class FrmExportXml : Gtk.Dialog |
17 { | 17 { |
18 private Army army; | 18 private Army army; |
19 private TransformXmlWidget transformWidget; | |
19 | 20 |
20 public FrmExportXml(Army army) | 21 public FrmExportXml(Army army) |
21 { | 22 { |
22 this.army = army; | 23 this.army = army; |
23 this.Build(); | 24 this.Build(); |
24 FillXsltList(); | 25 transformWidget = new TransformXmlWidget(); |
26 transformWidget.TransformChanged += HandleTransformWidgetTransformChanged; | |
27 saveAsPath.ExtraWidget = transformWidget; | |
25 saveAsPath.SetCurrentFolder(Environment.GetFolderPath(Environment.SpecialFolder.Personal)); | 28 saveAsPath.SetCurrentFolder(Environment.GetFolderPath(Environment.SpecialFolder.Personal)); |
26 } | 29 } |
27 | 30 |
28 private void FillXsltList() | 31 private void HandleTransformWidgetTransformChanged (object sender, EventArgs e) |
29 { | 32 { |
30 DirectoryInfo dir = new DirectoryInfo(System.IO.Path.Combine(Constants.ExecutablePath, "xsl")); | |
31 List<FileInfo> files = new List<FileInfo>(dir.GetFiles("*.xsl")); | |
32 ComboBoxUtils.FillCombo(transformList, files, delegate(FileInfo file) { return file.Name; }); | |
33 } | |
34 | |
35 protected void OnDoTransformWidgetToggled(object sender, System.EventArgs e) | |
36 { | |
37 bool enabled = doTransformWidget.Active; | |
38 lblTransform.Sensitive = enabled; | |
39 transformList.Sensitive = enabled; | |
40 SetOkayButtonSensitive(); | 33 SetOkayButtonSensitive(); |
41 } | 34 } |
42 | 35 |
43 private void SetOkayButtonSensitive() | 36 private void SetOkayButtonSensitive() |
44 { | 37 { |
45 buttonOk.Sensitive = saveAsName.Text != "" && saveAsPath.Filename != null && saveAsPath.Filename != "" && (!doTransformWidget.Active || ComboBoxUtils.GetSelectedItem<FileInfo>(transformList) != null); | 38 buttonOk.Sensitive = saveAsPath.Filename != null && saveAsPath.Filename != "" && transformWidget.IsValid; |
46 } | |
47 | |
48 protected void OnTransformListChanged(object sender, System.EventArgs e) | |
49 { | |
50 SetOkayButtonSensitive(); | |
51 } | 39 } |
52 | 40 |
53 protected void OnSaveAsPathSelectionChanged(object sender, System.EventArgs e) | 41 protected void OnSaveAsPathSelectionChanged(object sender, System.EventArgs e) |
54 { | 42 { |
55 SetOkayButtonSensitive(); | 43 SetOkayButtonSensitive(); |
59 { | 47 { |
60 string errorMessage = ""; | 48 string errorMessage = ""; |
61 // Catch potential errors with the file export or XSL compiliation | 49 // Catch potential errors with the file export or XSL compiliation |
62 try | 50 try |
63 { | 51 { |
64 string fileName = System.IO.Path.Combine(saveAsPath.Filename, saveAsName.Text); | 52 string fileName = saveAsPath.Filename; |
65 | 53 |
66 if (doTransformWidget.Active) | 54 if (transformWidget.TransformEnabled) |
67 { | 55 { |
68 WarFoundryXmlWithXslExporter.GetDefault().ExportArmyWithTransform(army, fileName, ComboBoxUtils.GetSelectedItem<FileInfo>(transformList).FullName); | 56 WarFoundryXmlWithXslExporter.GetDefault().ExportArmyWithTransform(army, fileName, transformWidget.GetXsltPath()); |
69 } | 57 } |
70 else | 58 else |
71 { | 59 { |
72 WarFoundryXmlWithXslExporter.GetDefault().ExportArmy(army, fileName); | 60 WarFoundryXmlWithXslExporter.GetDefault().ExportArmy(army, fileName); |
73 } | 61 } |
111 protected void OnButtonCancelClicked (object sender, System.EventArgs e) | 99 protected void OnButtonCancelClicked (object sender, System.EventArgs e) |
112 { | 100 { |
113 Respond(ResponseType.Cancel); | 101 Respond(ResponseType.Cancel); |
114 } | 102 } |
115 | 103 |
116 protected void OnSaveAsNameChanged (object sender, System.EventArgs e) | 104 protected void OnSizeAllocated (object o, Gtk.SizeAllocatedArgs args) |
117 { | 105 { |
118 SetOkayButtonSensitive(); | 106 Console.WriteLine(args.Allocation.Height + "," + args.Allocation.Width); |
107 //this. | |
119 } | 108 } |
120 } | 109 } |
121 } | 110 } |
122 | 111 |