Mercurial > repos > IBBoard.WarFoundry.GUI.WinForms
annotate FrmXmlExport.cs @ 237:ea5cb50ebe5e
Fixes #384: Validation warnings don't get cleared when creating new armies
* Check whether army is valid when it changes (also means we validate on load as well as clearing on close)
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 21 Jan 2012 16:51:07 +0000 |
parents | 72beddaffb71 |
children | 4d25c42bbe7b |
rev | line source |
---|---|
209 | 1 using System; |
2 using System.Collections.Generic; | |
3 using System.ComponentModel; | |
4 using System.Data; | |
5 using System.Drawing; | |
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 | 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 | 11 using IBBoard.WarFoundry.API.Objects; |
12 using IBBoard.WarFoundry.API.Exporters; | |
13 | |
14 namespace IBBoard.WarFoundry.GUI.WinForms | |
15 { | |
16 public partial class FrmXmlExport : Form | |
17 { | |
18 Army myArmy = null; | |
19 public FrmXmlExport(Army army) | |
20 { | |
21 InitializeComponent(); | |
22 myArmy = army; | |
23 } | |
24 | |
25 private void FrmXmlExport_Load(object sender, EventArgs e) | |
26 { | |
210
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
27 tbXslPath.Text = Directory.GetCurrentDirectory() + "\\xsl\\default_html.xsl"; |
209 | 28 } |
29 | |
30 private void bttnOutputSelect_Click(object sender, EventArgs e) | |
31 { | |
32 SaveFileDialog sfd = new SaveFileDialog(); | |
33 sfd.Filter = "XML File|*.xml|HTML File|*.html|XHTML File|*.xhtml"; | |
34 sfd.Title = "Save XML output"; | |
35 sfd.ShowDialog(); | |
36 | |
37 if (sfd.FileName != "") | |
38 { | |
39 tbOutputFile.Text = sfd.FileName; | |
40 } | |
41 } | |
42 | |
43 private void bttnCancel_Click(object sender, EventArgs e) | |
44 { | |
45 this.DialogResult = DialogResult.Cancel; | |
46 this.Hide(); | |
47 } | |
48 | |
49 private void bttnExport_Click(object sender, EventArgs e) | |
50 { | |
215
a3e62a2c267f
Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents:
211
diff
changeset
|
51 string errorMessage = ""; |
a3e62a2c267f
Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents:
211
diff
changeset
|
52 // 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
|
53 try |
209 | 54 { |
215
a3e62a2c267f
Added translation support for exceptional cases
Dan.Kulinski@dank-laptop.Global.Local
parents:
211
diff
changeset
|
55 if (cbApplyTransform.Checked) |
211
a0df71b24972
Added basic exception handling (a one case fits all)
Dan.Kulinski@dank-laptop.Global.Local
parents:
210
diff
changeset
|
56 { |
a0df71b24972
Added basic exception handling (a one case fits all)
Dan.Kulinski@dank-laptop.Global.Local
parents:
210
diff
changeset
|
57 WarFoundryXmlWithXslExporter.GetDefault().ExportArmyWithTransform(myArmy, tbOutputFile.Text, tbXslPath.Text); |
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 | 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 | 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 | 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 | 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 | 96 } |
97 | |
98 private void tbOutputFile_Change(object sender, EventArgs e) | |
99 { | |
100 if (tbOutputFile.Text != "") | |
101 { | |
102 bttnExport.Enabled = true; | |
103 } | |
104 else | |
105 { | |
106 bttnExport.Enabled = false; | |
107 } | |
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 { |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
114 tbXslPath.Enabled = true; |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
115 bttnXslSelect.Enabled = true; |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
116 } |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
117 else |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
118 { |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
119 tbXslPath.Enabled = false; |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
120 bttnXslSelect.Enabled = false; |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
121 } |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
122 } |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
123 |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
124 private void bttnXslSelect_Click(object sender, EventArgs e) |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
125 { |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
126 OpenFileDialog ofd = new OpenFileDialog(); |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
127 |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
128 ofd.InitialDirectory = Directory.GetCurrentDirectory() + "\\xsl"; |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
129 ofd.Filter = "XSL Files|*.xsl"; |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
130 DialogResult result = ofd.ShowDialog(); |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
131 |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
132 if (result == DialogResult.OK) |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
133 { |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
134 tbXslPath.Text = ofd.FileName; |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
135 } |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
136 |
a6ce13e4ae89
Near Final XSL output
Dan.Kulinski@dank-laptop.Global.Local
parents:
209
diff
changeset
|
137 } |
209 | 138 } |
139 } |