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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
122
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
1 // This file (FrmExportXml.cs) is a part of the IBBoard.WarFoundry.GUI.GTK project and is copyright 2011 IBBoard
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
2 //
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
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.
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
4 using System;
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
5 using System.IO;
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
6 using IBBoard.GtkSharp;
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
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
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
13
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
14 namespace IBBoard.WarFoundry.GUI.GTK
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
15 {
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
16 public partial class FrmExportXml : Gtk.Dialog
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
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
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
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
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
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
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
29 }
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
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
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
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
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
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
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
109 }
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
110 }
2479414b16f6 Re #361: Add XML output to GTK GUI
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
111