Mercurial > repos > IBBoard.WarFoundry.GUI.GTK
annotate 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 |
rev | line source |
---|---|
122 | 1 // This file (FrmExportXml.cs) is a part of the IBBoard.WarFoundry.GUI.GTK project and is copyright 2011 IBBoard |
2 // | |
3 // 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. | |
4 using System; | |
5 using System.IO; | |
6 using IBBoard.GtkSharp; | |
7 using System.Collections.Generic; | |
125
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
8 using Gtk; |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
9 using IBBoard.WarFoundry.API.Objects; |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
10 using System.Xml.Xsl; |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
11 using IBBoard.Lang; |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
12 using IBBoard.WarFoundry.API.Exporters; |
122 | 13 |
14 namespace IBBoard.WarFoundry.GUI.GTK | |
15 { | |
16 public partial class FrmExportXml : Gtk.Dialog | |
17 { | |
125
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
18 private Army army; |
126
d4e6bfeb1c61
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
125
diff
changeset
|
19 private TransformXmlWidget transformWidget; |
125
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
20 |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
21 public FrmExportXml(Army army) |
122 | 22 { |
125
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
23 this.army = army; |
122 | 24 this.Build(); |
126
d4e6bfeb1c61
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
125
diff
changeset
|
25 transformWidget = new TransformXmlWidget(); |
d4e6bfeb1c61
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
125
diff
changeset
|
26 transformWidget.TransformChanged += HandleTransformWidgetTransformChanged; |
d4e6bfeb1c61
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
125
diff
changeset
|
27 saveAsPath.ExtraWidget = transformWidget; |
124
a647afc19fe9
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
28 saveAsPath.SetCurrentFolder(Environment.GetFolderPath(Environment.SpecialFolder.Personal)); |
122 | 29 } |
30 | |
126
d4e6bfeb1c61
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
125
diff
changeset
|
31 private void HandleTransformWidgetTransformChanged (object sender, EventArgs e) |
122 | 32 { |
124
a647afc19fe9
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
33 SetOkayButtonSensitive(); |
a647afc19fe9
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
34 } |
a647afc19fe9
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
35 |
a647afc19fe9
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
36 private void SetOkayButtonSensitive() |
a647afc19fe9
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
37 { |
126
d4e6bfeb1c61
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
125
diff
changeset
|
38 buttonOk.Sensitive = saveAsPath.Filename != null && saveAsPath.Filename != "" && transformWidget.IsValid; |
124
a647afc19fe9
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
39 } |
a647afc19fe9
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
40 |
a647afc19fe9
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
41 protected void OnSaveAsPathSelectionChanged(object sender, System.EventArgs e) |
a647afc19fe9
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
42 { |
a647afc19fe9
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
122
diff
changeset
|
43 SetOkayButtonSensitive(); |
122 | 44 } |
125
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
45 |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
46 protected void OnButtonOkClicked (object sender, System.EventArgs e) |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
47 { |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
48 string errorMessage = ""; |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
49 // Catch potential errors with the file export or XSL compiliation |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
50 try |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
51 { |
126
d4e6bfeb1c61
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
125
diff
changeset
|
52 string fileName = saveAsPath.Filename; |
125
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
53 |
126
d4e6bfeb1c61
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
125
diff
changeset
|
54 if (transformWidget.TransformEnabled) |
125
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
55 { |
126
d4e6bfeb1c61
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
125
diff
changeset
|
56 WarFoundryXmlWithXslExporter.GetDefault().ExportArmyWithTransform(army, fileName, transformWidget.GetXsltPath()); |
125
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
57 } |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
58 else |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
59 { |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
60 WarFoundryXmlWithXslExporter.GetDefault().ExportArmy(army, fileName); |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
61 } |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
62 } |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
63 catch (XsltCompileException ex) |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
64 { |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
65 errorMessage = Translation.GetTranslation("mbErrorCompileFailed", "") + |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
66 ":\n" + ex.Message; |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
67 } |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
68 catch (XsltException ex) |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
69 { |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
70 |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
71 errorMessage = Translation.GetTranslation("mbErrorXSLTFailed", "") + |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
72 ":\n" + ex.Message; |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
73 } |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
74 catch (FileNotFoundException ex) |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
75 { |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
76 errorMessage = Translation.GetTranslation("mbErrorFileNotFoundFailed", "") + |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
77 ":\n" + ex.Message; |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
78 } |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
79 catch (IOException ex) |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
80 { |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
81 errorMessage = Translation.GetTranslation("mbErrorIOFailed", "") + |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
82 ":\n" + ex.Message; |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
83 } |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
84 catch (Exception ex) |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
85 { |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
86 errorMessage = Translation.GetTranslation("mbErrorFailed", "") + |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
87 ":\n" + ex.Message; |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
88 } |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
89 |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
90 if (errorMessage != "") |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
91 { |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
92 MessageDialog dialog = new MessageDialog(this, DialogFlags.DestroyWithParent, MessageType.Error, ButtonsType.Ok, errorMessage); |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
93 dialog.Run(); |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
94 } |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
95 |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
96 Respond(ResponseType.Ok); |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
97 } |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
98 |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
99 protected void OnButtonCancelClicked (object sender, System.EventArgs e) |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
100 { |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
101 Respond(ResponseType.Cancel); |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
102 } |
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
103 |
126
d4e6bfeb1c61
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
125
diff
changeset
|
104 protected void OnSizeAllocated (object o, Gtk.SizeAllocatedArgs args) |
125
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
105 { |
126
d4e6bfeb1c61
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
125
diff
changeset
|
106 Console.WriteLine(args.Allocation.Height + "," + args.Allocation.Width); |
d4e6bfeb1c61
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
125
diff
changeset
|
107 //this. |
125
42d2aa87dfa7
Re #361: Add XML export UI to GTK#
IBBoard <dev@ibboard.co.uk>
parents:
124
diff
changeset
|
108 } |
122 | 109 } |
110 } | |
111 |