annotate FrmXmlExport.cs @ 252:4d25c42bbe7b

Re #419: Remove assumptions of a file-based install * Swap to drop-down in WinForms * Update to use streams
author IBBoard <dev@ibboard.co.uk>
date Wed, 28 Nov 2012 20:54:34 +0000
parents 72beddaffb71
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
209
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
1 using System;
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
2 using System.Collections.Generic;
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
3 using System.ComponentModel;
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
4 using System.Data;
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
5 using System.Drawing;
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
6 using System.Text;
210
a6ce13e4ae89 Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents: 209
diff changeset
7 using System.IO;
209
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
8 using System.Windows.Forms;
211
a0df71b24972 Added basic exception handling (a one case fits all)
Dan.Kulinski@dank-laptop.Global.Local
parents: 210
diff changeset
9 using System.Xml.Xsl;
215
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
10 using IBBoard.Lang;
209
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
11 using IBBoard.WarFoundry.API.Objects;
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
12 using IBBoard.WarFoundry.API.Exporters;
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
13
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
14 namespace IBBoard.WarFoundry.GUI.WinForms
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
15 {
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
16 public partial class FrmXmlExport : Form
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
17 {
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
18 Army myArmy = null;
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
19 public FrmXmlExport(Army army)
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
20 {
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
21 InitializeComponent();
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
22 myArmy = army;
252
4d25c42bbe7b Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents: 225
diff changeset
23 cbTransforms.DataSource = WarFoundryXmlWithXslExporter.GetDefault().GetXsltStreams();
4d25c42bbe7b Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents: 225
diff changeset
24 cbTransforms.DisplayMember = "Name";
209
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
25 }
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
26
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
27 private void bttnOutputSelect_Click(object sender, EventArgs e)
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
28 {
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
29 SaveFileDialog sfd = new SaveFileDialog();
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
30 sfd.Filter = "XML File|*.xml|HTML File|*.html|XHTML File|*.xhtml";
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
31 sfd.Title = "Save XML output";
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
32 sfd.ShowDialog();
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
33
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
34 if (sfd.FileName != "")
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
35 {
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
36 tbOutputFile.Text = sfd.FileName;
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
37 }
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
38 }
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
39
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
40 private void bttnCancel_Click(object sender, EventArgs e)
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
41 {
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
42 this.DialogResult = DialogResult.Cancel;
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
43 this.Hide();
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
44 }
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
45
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
46 private void bttnExport_Click(object sender, EventArgs e)
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
47 {
215
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
48 string errorMessage = "";
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
49 // Catch potential errors with the file export or XSL compiliation
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
50 try
209
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
51 {
215
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
52 if (cbApplyTransform.Checked)
211
a0df71b24972 Added basic exception handling (a one case fits all)
Dan.Kulinski@dank-laptop.Global.Local
parents: 210
diff changeset
53 {
252
4d25c42bbe7b Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents: 225
diff changeset
54 using (Stream xsltStream = (Stream)cbTransforms.SelectedItem)
4d25c42bbe7b Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents: 225
diff changeset
55 {
4d25c42bbe7b Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents: 225
diff changeset
56 WarFoundryXmlWithXslExporter.GetDefault().ExportArmyWithTransform(myArmy, tbOutputFile.Text, xsltStream);
4d25c42bbe7b Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents: 225
diff changeset
57 }
211
a0df71b24972 Added basic exception handling (a one case fits all)
Dan.Kulinski@dank-laptop.Global.Local
parents: 210
diff changeset
58 }
215
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
59 else
211
a0df71b24972 Added basic exception handling (a one case fits all)
Dan.Kulinski@dank-laptop.Global.Local
parents: 210
diff changeset
60 {
215
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
61 WarFoundryXmlWithXslExporter.GetDefault().ExportArmy(myArmy, tbOutputFile.Text);
211
a0df71b24972 Added basic exception handling (a one case fits all)
Dan.Kulinski@dank-laptop.Global.Local
parents: 210
diff changeset
62 }
209
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
63 }
215
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
64 catch (XsltCompileException ex)
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
65 {
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
66 errorMessage = Translation.GetTranslation("mbErrorCompileFailed", "") +
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
67 ":\n" + ex.Message;
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
68 }
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
69 catch (XsltException ex)
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
70 {
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
71
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
72 errorMessage = Translation.GetTranslation("mbErrorXSLTFailed", "") +
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
73 ":\n" + ex.Message;
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
74 }
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
75 catch (FileNotFoundException ex)
209
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
76 {
215
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
77 errorMessage = Translation.GetTranslation("mbErrorFileNotFoundFailed", "") +
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
78 ":\n" + ex.Message;
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
79 }
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
80 catch (IOException ex)
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
81 {
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
82 errorMessage = Translation.GetTranslation("mbErrorIOFailed", "") +
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
83 ":\n" + ex.Message;
209
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
84 }
215
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
85 catch (Exception ex)
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
86 {
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
87 errorMessage = Translation.GetTranslation("mbErrorFailed", "") +
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
88 ":\n" + ex.Message;
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
89 }
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
90 if (errorMessage != "")
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
91 {
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
92 MessageBox.Show(errorMessage, "Error During Export", MessageBoxButtons.OK, MessageBoxIcon.Error);
a3e62a2c267f Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents: 211
diff changeset
93 }
209
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
94 this.DialogResult = DialogResult.OK;
210
a6ce13e4ae89 Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents: 209
diff changeset
95 this.Hide();
209
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
96 }
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
97
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
98 private void tbOutputFile_Change(object sender, EventArgs e)
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
99 {
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
100 if (tbOutputFile.Text != "")
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
101 {
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
102 bttnExport.Enabled = true;
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
103 }
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
104 else
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
105 {
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
106 bttnExport.Enabled = false;
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
107 }
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
108 }
210
a6ce13e4ae89 Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents: 209
diff changeset
109
a6ce13e4ae89 Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents: 209
diff changeset
110 private void cbApplyTransform_CheckedChanged(object sender, EventArgs e)
a6ce13e4ae89 Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents: 209
diff changeset
111 {
a6ce13e4ae89 Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents: 209
diff changeset
112 if (cbApplyTransform.Checked)
a6ce13e4ae89 Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents: 209
diff changeset
113 {
252
4d25c42bbe7b Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents: 225
diff changeset
114 cbTransforms.Enabled = true;
210
a6ce13e4ae89 Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents: 209
diff changeset
115 }
a6ce13e4ae89 Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents: 209
diff changeset
116 else
a6ce13e4ae89 Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents: 209
diff changeset
117 {
252
4d25c42bbe7b Re #419: Remove assumptions of a file-based install
IBBoard <dev@ibboard.co.uk>
parents: 225
diff changeset
118 cbTransforms.Enabled = false;
210
a6ce13e4ae89 Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents: 209
diff changeset
119 }
a6ce13e4ae89 Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents: 209
diff changeset
120 }
209
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
121 }
f57957fe9009 UI Dialog for XML output
Dan.Kulinski@dank-laptop.Global.Local
parents:
diff changeset
122 }