changeset 217:c47094612bac

Re #355: Add XML export format that can be transformed with an XSL * Merge Clutch's WinForms code into main branch * Fix targetting of project * Add .hgignore
author IBBoard <dev@ibboard.co.uk>
date Thu, 25 Aug 2011 20:43:51 +0100
parents 314d90a059d8 e10688b29092
children b3a47b712a8b
files .hgignore FrmMain.cs IBBoard.WarFoundry.GUI.WinForms.csproj
diffstat 15 files changed, 540 insertions(+), 47 deletions(-) [+]
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/.hgignore	Thu Aug 25 20:43:51 2011 +0100
     1.3 @@ -0,0 +1,4 @@
     1.4 +bin/
     1.5 +obj/
     1.6 +IBBoard.WarFoundry.GUI.WinForms.csproj.user
     1.7 +IBBoard.WarFoundry.GUI.WinForms.suo
     2.1 --- a/FrmMain.cs	Tue Aug 16 20:34:46 2011 +0100
     2.2 +++ b/FrmMain.cs	Thu Aug 25 20:43:51 2011 +0100
     2.3 @@ -40,13 +40,7 @@
     2.4  	{
     2.5  		private static readonly string AppTitle = "WarFoundry";
     2.6  		internal static readonly string VERSION = "0.1";
     2.7 -        const string DefaultDataDir = "data";
     2.8 -       /* public static string pointsAbbrevSingle;
     2.9 -        public static string pointsAbbrevPlural;
    2.10 -        public static string pointsAbbreviation;
    2.11 -        public static string pointsNameSingle;
    2.12 -        public static string pointsNamePlural;
    2.13 -        public static string pointsName;*/
    2.14 +		const string DefaultDataDir = "data";
    2.15  
    2.16  		private Preferences preferences;
    2.17  		private readonly ILog log = LogManager.GetLogger(typeof(FrmMain));
    2.18 @@ -56,7 +50,6 @@
    2.19  		public ObjectAddDelegate UnitAddedMethod;
    2.20  		public ObjectRemoveDelegate UnitRemovedMethod;
    2.21  		public DoubleValChangedDelegate PointsValueChangedMethod;
    2.22 -		//public FailedUnitRequirementDelegate FailedUnitRequirementMethod;
    2.23  
    2.24  		private FrmArmyTree armyTree;
    2.25  		private string loadedFilePath;
    2.26 @@ -71,7 +64,7 @@
    2.27  		private IBBoard.Windows.Forms.ColorableStatusBarPanel sbPointsPanel;
    2.28  		private System.Windows.Forms.ContextMenu undoMenu;
    2.29  		private System.Windows.Forms.ContextMenu redoMenu;
    2.30 -        private IBBoard.Windows.Forms.ColorableStatusBar statusBar;
    2.31 +		private IBBoard.Windows.Forms.ColorableStatusBar statusBar;
    2.32  		private MenuStrip menuStrip;
    2.33  		private IBBToolStripMenuItem menuFile;
    2.34  		private IBBToolStripMenuItem miNewArmy;
    2.35 @@ -100,6 +93,7 @@
    2.36  		private ToolStripPanel toolStripPanel;
    2.37  		private ToolStripSeparator toolStripSeparator4;
    2.38  		private IBBToolStripMenuItem miPreferences;
    2.39 +		private IBBToolStripMenuItem miExportArmyAsBasicXml;
    2.40  		private IBBToolStripMenuItem miAbout;
    2.41  
    2.42  
    2.43 @@ -153,9 +147,7 @@
    2.44  			UnitAddedMethod = new ObjectAddDelegate(FrmMain_UnitAddedMethod);
    2.45  			UnitRemovedMethod = new ObjectRemoveDelegate(FrmMain_UnitRemovedMethod);
    2.46  			PointsValueChangedMethod = new DoubleValChangedDelegate(FrmMain_PointsValueChangedMethod);
    2.47 -			//FailedUnitRequirementMethod = new FailedUnitRequirementDelegate(FrmMain_FailedUnitRequirement);
    2.48  
    2.49 -            
    2.50  			sbErrorPanel.Color = Color.Red;
    2.51  			SetPointsPanelToolTipText();
    2.52  
    2.53 @@ -266,6 +258,7 @@
    2.54              this.miSaveArmyAs = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    2.55              this.miExportArmyAs = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    2.56              this.miExportArmyAsBasicHTML = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    2.57 +            this.miExportArmyAsBasicXml = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    2.58              this.miCloseArmy = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    2.59              this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
    2.60              this.miReloadFiles = new IBBoard.Windows.Forms.IBBToolStripMenuItem();
    2.61 @@ -328,20 +321,20 @@
    2.62              this.toolStripSeparator2,
    2.63              this.miExit});
    2.64              this.menuFile.Name = "menuFile";
    2.65 -            this.menuFile.Size = new System.Drawing.Size(33, 20);
    2.66 +            this.menuFile.Size = new System.Drawing.Size(35, 20);
    2.67              this.menuFile.Text = "&file";
    2.68              // 
    2.69              // miNewArmy
    2.70              // 
    2.71              this.miNewArmy.Name = "miNewArmy";
    2.72 -            this.miNewArmy.Size = new System.Drawing.Size(164, 22);
    2.73 +            this.miNewArmy.Size = new System.Drawing.Size(160, 22);
    2.74              this.miNewArmy.Text = "&new army";
    2.75              this.miNewArmy.Click += new System.EventHandler(this.miNewArmy_Click);
    2.76              // 
    2.77              // miOpenArmy
    2.78              // 
    2.79              this.miOpenArmy.Name = "miOpenArmy";
    2.80 -            this.miOpenArmy.Size = new System.Drawing.Size(164, 22);
    2.81 +            this.miOpenArmy.Size = new System.Drawing.Size(160, 22);
    2.82              this.miOpenArmy.Text = "&open army";
    2.83              this.miOpenArmy.Click += new System.EventHandler(this.miOpenArmy_Click);
    2.84              // 
    2.85 @@ -349,7 +342,7 @@
    2.86              // 
    2.87              this.miSaveArmy.Enabled = false;
    2.88              this.miSaveArmy.Name = "miSaveArmy";
    2.89 -            this.miSaveArmy.Size = new System.Drawing.Size(164, 22);
    2.90 +            this.miSaveArmy.Size = new System.Drawing.Size(160, 22);
    2.91              this.miSaveArmy.Text = "&save army";
    2.92              this.miSaveArmy.Click += new System.EventHandler(this.miSaveArmy_Click);
    2.93              // 
    2.94 @@ -357,55 +350,63 @@
    2.95              // 
    2.96              this.miSaveArmyAs.Enabled = false;
    2.97              this.miSaveArmyAs.Name = "miSaveArmyAs";
    2.98 -            this.miSaveArmyAs.Size = new System.Drawing.Size(164, 22);
    2.99 +            this.miSaveArmyAs.Size = new System.Drawing.Size(160, 22);
   2.100              this.miSaveArmyAs.Text = "save army &as...";
   2.101              this.miSaveArmyAs.Click += new System.EventHandler(this.miSaveArmyAs_Click);
   2.102              // 
   2.103              // miExportArmyAs
   2.104              // 
   2.105              this.miExportArmyAs.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
   2.106 -            this.miExportArmyAsBasicHTML});
   2.107 +            this.miExportArmyAsBasicHTML,
   2.108 +            this.miExportArmyAsBasicXml});
   2.109              this.miExportArmyAs.Enabled = false;
   2.110              this.miExportArmyAs.Name = "miExportArmyAs";
   2.111 -            this.miExportArmyAs.Size = new System.Drawing.Size(164, 22);
   2.112 +            this.miExportArmyAs.Size = new System.Drawing.Size(160, 22);
   2.113              this.miExportArmyAs.Text = "export army as...";
   2.114              // 
   2.115              // miExportArmyAsBasicHTML
   2.116              // 
   2.117              this.miExportArmyAsBasicHTML.Name = "miExportArmyAsBasicHTML";
   2.118 -            this.miExportArmyAsBasicHTML.Size = new System.Drawing.Size(130, 22);
   2.119 +            this.miExportArmyAsBasicHTML.Size = new System.Drawing.Size(152, 22);
   2.120              this.miExportArmyAsBasicHTML.Text = "&basic html";
   2.121              this.miExportArmyAsBasicHTML.Click += new System.EventHandler(this.miExportArmyAsBasicHTML_Click);
   2.122              // 
   2.123 +            // miExportArmyAsBasicXml
   2.124 +            // 
   2.125 +            this.miExportArmyAsBasicXml.Name = "miExportArmyAsBasicXml";
   2.126 +            this.miExportArmyAsBasicXml.Size = new System.Drawing.Size(152, 22);
   2.127 +            this.miExportArmyAsBasicXml.Text = "basic xml";
   2.128 +            this.miExportArmyAsBasicXml.Click += new System.EventHandler(this.miExportArmyAsBasicXml_Click);
   2.129 +            // 
   2.130              // miCloseArmy
   2.131              // 
   2.132              this.miCloseArmy.Enabled = false;
   2.133              this.miCloseArmy.Name = "miCloseArmy";
   2.134 -            this.miCloseArmy.Size = new System.Drawing.Size(164, 22);
   2.135 +            this.miCloseArmy.Size = new System.Drawing.Size(160, 22);
   2.136              this.miCloseArmy.Text = "&close army";
   2.137              this.miCloseArmy.Click += new System.EventHandler(this.miCloseArmy_Click);
   2.138              // 
   2.139              // toolStripSeparator1
   2.140              // 
   2.141              this.toolStripSeparator1.Name = "toolStripSeparator1";
   2.142 -            this.toolStripSeparator1.Size = new System.Drawing.Size(161, 6);
   2.143 +            this.toolStripSeparator1.Size = new System.Drawing.Size(157, 6);
   2.144              // 
   2.145              // miReloadFiles
   2.146              // 
   2.147              this.miReloadFiles.Name = "miReloadFiles";
   2.148 -            this.miReloadFiles.Size = new System.Drawing.Size(164, 22);
   2.149 +            this.miReloadFiles.Size = new System.Drawing.Size(160, 22);
   2.150              this.miReloadFiles.Text = "&reload files";
   2.151              this.miReloadFiles.Click += new System.EventHandler(this.miReloadFiles_Click);
   2.152              // 
   2.153              // toolStripSeparator2
   2.154              // 
   2.155              this.toolStripSeparator2.Name = "toolStripSeparator2";
   2.156 -            this.toolStripSeparator2.Size = new System.Drawing.Size(161, 6);
   2.157 +            this.toolStripSeparator2.Size = new System.Drawing.Size(157, 6);
   2.158              // 
   2.159              // miExit
   2.160              // 
   2.161              this.miExit.Name = "miExit";
   2.162 -            this.miExit.Size = new System.Drawing.Size(164, 22);
   2.163 +            this.miExit.Size = new System.Drawing.Size(160, 22);
   2.164              this.miExit.Text = "e&xit";
   2.165              this.miExit.Click += new System.EventHandler(this.miExit_Click);
   2.166              // 
   2.167 @@ -417,14 +418,14 @@
   2.168              this.toolStripSeparator4,
   2.169              this.miPreferences});
   2.170              this.menuEdit.Name = "menuEdit";
   2.171 -            this.menuEdit.Size = new System.Drawing.Size(36, 20);
   2.172 +            this.menuEdit.Size = new System.Drawing.Size(39, 20);
   2.173              this.menuEdit.Text = "&edit";
   2.174              // 
   2.175              // miUndo
   2.176              // 
   2.177              this.miUndo.Enabled = false;
   2.178              this.miUndo.Name = "miUndo";
   2.179 -            this.miUndo.Size = new System.Drawing.Size(142, 22);
   2.180 +            this.miUndo.Size = new System.Drawing.Size(135, 22);
   2.181              this.miUndo.Text = "&undo";
   2.182              this.miUndo.Click += new System.EventHandler(this.miUndo_Click);
   2.183              // 
   2.184 @@ -432,19 +433,19 @@
   2.185              // 
   2.186              this.miRedo.Enabled = false;
   2.187              this.miRedo.Name = "miRedo";
   2.188 -            this.miRedo.Size = new System.Drawing.Size(142, 22);
   2.189 +            this.miRedo.Size = new System.Drawing.Size(135, 22);
   2.190              this.miRedo.Text = "&redo";
   2.191              this.miRedo.Click += new System.EventHandler(this.miRedo_Click);
   2.192              // 
   2.193              // toolStripSeparator4
   2.194              // 
   2.195              this.toolStripSeparator4.Name = "toolStripSeparator4";
   2.196 -            this.toolStripSeparator4.Size = new System.Drawing.Size(139, 6);
   2.197 +            this.toolStripSeparator4.Size = new System.Drawing.Size(132, 6);
   2.198              // 
   2.199              // miPreferences
   2.200              // 
   2.201              this.miPreferences.Name = "miPreferences";
   2.202 -            this.miPreferences.Size = new System.Drawing.Size(142, 22);
   2.203 +            this.miPreferences.Size = new System.Drawing.Size(135, 22);
   2.204              this.miPreferences.Text = "&preferences";
   2.205              this.miPreferences.Click += new System.EventHandler(this.miPreferences_Click);
   2.206              // 
   2.207 @@ -453,13 +454,13 @@
   2.208              this.menuHelp.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
   2.209              this.miAbout});
   2.210              this.menuHelp.Name = "menuHelp";
   2.211 -            this.menuHelp.Size = new System.Drawing.Size(39, 20);
   2.212 +            this.menuHelp.Size = new System.Drawing.Size(42, 20);
   2.213              this.menuHelp.Text = "&help";
   2.214              // 
   2.215              // miAbout
   2.216              // 
   2.217              this.miAbout.Name = "miAbout";
   2.218 -            this.miAbout.Size = new System.Drawing.Size(109, 22);
   2.219 +            this.miAbout.Size = new System.Drawing.Size(105, 22);
   2.220              this.miAbout.Text = "&about";
   2.221              this.miAbout.Click += new System.EventHandler(this.miAbout_Click);
   2.222              // 
   2.223 @@ -475,7 +476,7 @@
   2.224              this.bttnRedo});
   2.225              this.mainToolStrip.Location = new System.Drawing.Point(0, 24);
   2.226              this.mainToolStrip.Name = "mainToolStrip";
   2.227 -            this.mainToolStrip.Size = new System.Drawing.Size(182, 25);
   2.228 +            this.mainToolStrip.Size = new System.Drawing.Size(151, 25);
   2.229              this.mainToolStrip.TabIndex = 8;
   2.230              // 
   2.231              // bttnNewArmy
   2.232 @@ -556,8 +557,8 @@
   2.233              this.statusBar.ShowPanels = true;
   2.234              this.statusBar.Size = new System.Drawing.Size(790, 22);
   2.235              this.statusBar.TabIndex = 1;
   2.236 +            this.statusBar.DrawItem += new System.Windows.Forms.StatusBarDrawItemEventHandler(this.statusBar_DrawItem);
   2.237              this.statusBar.PanelClick += new System.Windows.Forms.StatusBarPanelClickEventHandler(this.statusBar_PanelClick);
   2.238 -            this.statusBar.DrawItem += new System.Windows.Forms.StatusBarDrawItemEventHandler(this.statusBar_DrawItem);
   2.239              // 
   2.240              // sbMainPanel
   2.241              // 
   2.242 @@ -1421,5 +1422,11 @@
   2.243  			FrmPreferences prefsForm = new FrmPreferences(Preferences);
   2.244  			prefsForm.Show(this);
   2.245  		}
   2.246 +
   2.247 +		private void miExportArmyAsBasicXml_Click(object sender, EventArgs e)
   2.248 +		{
   2.249 +			Form xmlOutput = new FrmXmlExport(CurrentArmy);
   2.250 +			xmlOutput.ShowDialog(this);
   2.251 +		}
   2.252  	}
   2.253  }
     3.1 --- a/FrmMain.resx	Tue Aug 16 20:34:46 2011 +0100
     3.2 +++ b/FrmMain.resx	Thu Aug 25 20:43:51 2011 +0100
     3.3 @@ -112,36 +112,36 @@
     3.4      <value>2.0</value>
     3.5    </resheader>
     3.6    <resheader name="reader">
     3.7 -    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
     3.8 +    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
     3.9    </resheader>
    3.10    <resheader name="writer">
    3.11 -    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
    3.12 +    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
    3.13    </resheader>
    3.14 -  <metadata name="undoMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    3.15 +  <metadata name="undoMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    3.16      <value>17, 17</value>
    3.17    </metadata>
    3.18 -  <metadata name="redoMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    3.19 +  <metadata name="redoMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    3.20      <value>122, 17</value>
    3.21    </metadata>
    3.22 -  <metadata name="mainMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    3.23 +  <metadata name="mainMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    3.24      <value>334, 17</value>
    3.25    </metadata>
    3.26 -  <metadata name="openArmyDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    3.27 +  <metadata name="openArmyDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    3.28      <value>438, 17</value>
    3.29    </metadata>
    3.30 -  <metadata name="saveArmyDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    3.31 +  <metadata name="saveArmyDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    3.32      <value>573, 17</value>
    3.33    </metadata>
    3.34 -  <metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    3.35 +  <metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    3.36      <value>835, 17</value>
    3.37    </metadata>
    3.38 -  <metadata name="mainToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    3.39 +  <metadata name="mainToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    3.40      <value>17, 54</value>
    3.41    </metadata>
    3.42 -  <metadata name="catToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    3.43 +  <metadata name="catToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    3.44      <value>138, 54</value>
    3.45    </metadata>
    3.46 -  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    3.47 +  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    3.48    <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    3.49      <value>
    3.50          AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAABMLAAATCwAAAAAAAAAA
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/FrmXmlExport.Designer.cs	Thu Aug 25 20:43:51 2011 +0100
     4.3 @@ -0,0 +1,162 @@
     4.4 +namespace IBBoard.WarFoundry.GUI.WinForms
     4.5 +{
     4.6 +    partial class FrmXmlExport
     4.7 +    {
     4.8 +        /// <summary>
     4.9 +        /// Required designer variable.
    4.10 +        /// </summary>
    4.11 +        private System.ComponentModel.IContainer components = null;
    4.12 +
    4.13 +        /// <summary>
    4.14 +        /// Clean up any resources being used.
    4.15 +        /// </summary>
    4.16 +        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    4.17 +        protected override void Dispose(bool disposing)
    4.18 +        {
    4.19 +            if (disposing && (components != null))
    4.20 +            {
    4.21 +                components.Dispose();
    4.22 +            }
    4.23 +            base.Dispose(disposing);
    4.24 +        }
    4.25 +
    4.26 +        #region Windows Form Designer generated code
    4.27 +
    4.28 +        /// <summary>
    4.29 +        /// Required method for Designer support - do not modify
    4.30 +        /// the contents of this method with the code editor.
    4.31 +        /// </summary>
    4.32 +        private void InitializeComponent()
    4.33 +        {
    4.34 +            this.lbTitle = new IBBoard.Windows.Forms.IBBLabel();
    4.35 +            this.tbOutputFile = new System.Windows.Forms.TextBox();
    4.36 +            this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
    4.37 +            this.bttnOutputSelect = new IBBoard.Windows.Forms.IBBButton();
    4.38 +            this.cbApplyTransform = new System.Windows.Forms.CheckBox();
    4.39 +            this.bttnExport = new IBBoard.Windows.Forms.IBBButton();
    4.40 +            this.bttnCancel = new IBBoard.Windows.Forms.IBBButton();
    4.41 +            this.tbXslPath = new System.Windows.Forms.TextBox();
    4.42 +            this.bttnXslSelect = new IBBoard.Windows.Forms.IBBButton();
    4.43 +            this.SuspendLayout();
    4.44 +            // 
    4.45 +            // lbTitle
    4.46 +            // 
    4.47 +            this.lbTitle.AutoSize = true;
    4.48 +            this.lbTitle.Location = new System.Drawing.Point(12, 9);
    4.49 +            this.lbTitle.Name = "lbTitle";
    4.50 +            this.lbTitle.Size = new System.Drawing.Size(61, 13);
    4.51 +            this.lbTitle.TabIndex = 0;
    4.52 +            this.lbTitle.Text = "XML Ouput";
    4.53 +            // 
    4.54 +            // tbOutputFile
    4.55 +            // 
    4.56 +            this.tbOutputFile.Location = new System.Drawing.Point(15, 28);
    4.57 +            this.tbOutputFile.Name = "tbOutputFile";
    4.58 +            this.tbOutputFile.Size = new System.Drawing.Size(179, 20);
    4.59 +            this.tbOutputFile.TabIndex = 1;
    4.60 +            this.tbOutputFile.TextChanged += new System.EventHandler(this.tbOutputFile_Change);
    4.61 +            // 
    4.62 +            // bttnOutputSelect
    4.63 +            // 
    4.64 +            this.bttnOutputSelect.Location = new System.Drawing.Point(202, 28);
    4.65 +            this.bttnOutputSelect.Name = "bttnOutputSelect";
    4.66 +            this.bttnOutputSelect.Size = new System.Drawing.Size(32, 20);
    4.67 +            this.bttnOutputSelect.TabIndex = 2;
    4.68 +            this.bttnOutputSelect.Text = "...";
    4.69 +            this.bttnOutputSelect.UseVisualStyleBackColor = true;
    4.70 +            this.bttnOutputSelect.Click += new System.EventHandler(this.bttnOutputSelect_Click);
    4.71 +            // 
    4.72 +            // cbApplyTransform
    4.73 +            // 
    4.74 +            this.cbApplyTransform.AutoSize = true;
    4.75 +            this.cbApplyTransform.Location = new System.Drawing.Point(15, 54);
    4.76 +            this.cbApplyTransform.Name = "cbApplyTransform";
    4.77 +            this.cbApplyTransform.Size = new System.Drawing.Size(125, 17);
    4.78 +            this.cbApplyTransform.TabIndex = 3;
    4.79 +            this.cbApplyTransform.Text = "Apply XSL Transform";
    4.80 +            this.cbApplyTransform.UseVisualStyleBackColor = true;
    4.81 +            this.cbApplyTransform.CheckedChanged += new System.EventHandler(this.cbApplyTransform_CheckedChanged);
    4.82 +            // 
    4.83 +            // bttnExport
    4.84 +            // 
    4.85 +            this.bttnExport.Enabled = false;
    4.86 +            this.bttnExport.Location = new System.Drawing.Point(78, 116);
    4.87 +            this.bttnExport.Name = "bttnExport";
    4.88 +            this.bttnExport.Size = new System.Drawing.Size(75, 23);
    4.89 +            this.bttnExport.TabIndex = 5;
    4.90 +            this.bttnExport.Text = "&Export";
    4.91 +            this.bttnExport.UseVisualStyleBackColor = true;
    4.92 +            this.bttnExport.Click += new System.EventHandler(this.bttnExport_Click);
    4.93 +            // 
    4.94 +            // bttnCancel
    4.95 +            // 
    4.96 +            this.bttnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
    4.97 +            this.bttnCancel.Location = new System.Drawing.Point(159, 116);
    4.98 +            this.bttnCancel.Name = "bttnCancel";
    4.99 +            this.bttnCancel.Size = new System.Drawing.Size(75, 23);
   4.100 +            this.bttnCancel.TabIndex = 6;
   4.101 +            this.bttnCancel.Text = "&Cancel";
   4.102 +            this.bttnCancel.UseVisualStyleBackColor = true;
   4.103 +            this.bttnCancel.Click += new System.EventHandler(this.bttnCancel_Click);
   4.104 +            // 
   4.105 +            // tbXslPath
   4.106 +            // 
   4.107 +            this.tbXslPath.Enabled = false;
   4.108 +            this.tbXslPath.Location = new System.Drawing.Point(15, 77);
   4.109 +            this.tbXslPath.Name = "tbXslPath";
   4.110 +            this.tbXslPath.Size = new System.Drawing.Size(179, 20);
   4.111 +            this.tbXslPath.TabIndex = 7;
   4.112 +            // 
   4.113 +            // bttnXslSelect
   4.114 +            // 
   4.115 +            this.bttnXslSelect.Enabled = false;
   4.116 +            this.bttnXslSelect.Location = new System.Drawing.Point(202, 77);
   4.117 +            this.bttnXslSelect.Name = "bttnXslSelect";
   4.118 +            this.bttnXslSelect.Size = new System.Drawing.Size(32, 20);
   4.119 +            this.bttnXslSelect.TabIndex = 8;
   4.120 +            this.bttnXslSelect.Text = "...";
   4.121 +            this.bttnXslSelect.UseVisualStyleBackColor = true;
   4.122 +            this.bttnXslSelect.Click += new System.EventHandler(this.bttnXslSelect_Click);
   4.123 +            // 
   4.124 +            // FrmXmlExport
   4.125 +            // 
   4.126 +            this.AcceptButton = this.bttnExport;
   4.127 +            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
   4.128 +            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
   4.129 +            this.CancelButton = this.bttnCancel;
   4.130 +            this.ClientSize = new System.Drawing.Size(241, 145);
   4.131 +            this.ControlBox = false;
   4.132 +            this.Controls.Add(this.bttnXslSelect);
   4.133 +            this.Controls.Add(this.tbXslPath);
   4.134 +            this.Controls.Add(this.bttnCancel);
   4.135 +            this.Controls.Add(this.bttnExport);
   4.136 +            this.Controls.Add(this.cbApplyTransform);
   4.137 +            this.Controls.Add(this.bttnOutputSelect);
   4.138 +            this.Controls.Add(this.tbOutputFile);
   4.139 +            this.Controls.Add(this.lbTitle);
   4.140 +            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
   4.141 +            this.Name = "FrmXmlExport";
   4.142 +            this.ShowIcon = false;
   4.143 +            this.ShowInTaskbar = false;
   4.144 +            this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
   4.145 +            this.Text = "Export as XML";
   4.146 +            this.TopMost = true;
   4.147 +            this.Load += new System.EventHandler(this.FrmXmlExport_Load);
   4.148 +            this.ResumeLayout(false);
   4.149 +            this.PerformLayout();
   4.150 +
   4.151 +        }
   4.152 +
   4.153 +        #endregion
   4.154 +
   4.155 +        private Windows.Forms.IBBLabel lbTitle;
   4.156 +        private System.Windows.Forms.TextBox tbOutputFile;
   4.157 +        private System.Windows.Forms.SaveFileDialog saveFileDialog1;
   4.158 +        private Windows.Forms.IBBButton bttnOutputSelect;
   4.159 +        private System.Windows.Forms.CheckBox cbApplyTransform;
   4.160 +        private Windows.Forms.IBBButton bttnExport;
   4.161 +        private Windows.Forms.IBBButton bttnCancel;
   4.162 +        private System.Windows.Forms.TextBox tbXslPath;
   4.163 +        private Windows.Forms.IBBButton bttnXslSelect;
   4.164 +    }
   4.165 +}
   4.166 \ No newline at end of file
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/FrmXmlExport.cs	Thu Aug 25 20:43:51 2011 +0100
     5.3 @@ -0,0 +1,140 @@
     5.4 +using System;
     5.5 +using System.Collections.Generic;
     5.6 +using System.ComponentModel;
     5.7 +using System.Data;
     5.8 +using System.Drawing;
     5.9 +using System.Text;
    5.10 +using System.IO;
    5.11 +using System.Windows.Forms;
    5.12 +using System.Xml.Xsl;
    5.13 +using IBBoard.Lang;
    5.14 +using IBBoard.WarFoundry.API.Objects;
    5.15 +using IBBoard.WarFoundry.API.Exporters;
    5.16 +using System.Xml.Xsl;
    5.17 +
    5.18 +namespace IBBoard.WarFoundry.GUI.WinForms
    5.19 +{
    5.20 +    public partial class FrmXmlExport : Form
    5.21 +    {
    5.22 +        Army myArmy = null;
    5.23 +        public FrmXmlExport(Army army)
    5.24 +        {
    5.25 +            InitializeComponent();
    5.26 +            myArmy = army;
    5.27 +        }
    5.28 +
    5.29 +        private void FrmXmlExport_Load(object sender, EventArgs e)
    5.30 +        {
    5.31 +            tbXslPath.Text = Directory.GetCurrentDirectory() + "\\xsl\\default_html.xsl";
    5.32 +        }
    5.33 +
    5.34 +        private void bttnOutputSelect_Click(object sender, EventArgs e)
    5.35 +        {
    5.36 +            SaveFileDialog sfd = new SaveFileDialog();
    5.37 +            sfd.Filter = "XML File|*.xml|HTML File|*.html|XHTML File|*.xhtml";
    5.38 +            sfd.Title = "Save XML output";
    5.39 +            sfd.ShowDialog();
    5.40 +
    5.41 +            if (sfd.FileName != "")
    5.42 +            {
    5.43 +                tbOutputFile.Text = sfd.FileName;
    5.44 +            }
    5.45 +        }
    5.46 +
    5.47 +        private void bttnCancel_Click(object sender, EventArgs e)
    5.48 +        {
    5.49 +            this.DialogResult = DialogResult.Cancel;
    5.50 +            this.Hide();
    5.51 +        }
    5.52 +
    5.53 +        private void bttnExport_Click(object sender, EventArgs e)
    5.54 +        {
    5.55 +            string errorMessage = "";
    5.56 +            // Catch potential errors with the file export or XSL compiliation
    5.57 +            try
    5.58 +            {
    5.59 +                if (cbApplyTransform.Checked)
    5.60 +                {
    5.61 +                    WarFoundryXmlWithXslExporter.GetDefault().ExportArmyWithTransform(myArmy, tbOutputFile.Text, tbXslPath.Text);
    5.62 +                }
    5.63 +                else
    5.64 +                {
    5.65 +                    WarFoundryXmlWithXslExporter.GetDefault().ExportArmy(myArmy, tbOutputFile.Text);
    5.66 +                }
    5.67 +            }
    5.68 +            catch (XsltCompileException ex)
    5.69 +            {
    5.70 +                errorMessage = Translation.GetTranslation("mbErrorCompileFailed", "") + 
    5.71 +                    ":\n" + ex.Message;
    5.72 +            }
    5.73 +            catch (XsltException ex)
    5.74 +            {
    5.75 +
    5.76 +                errorMessage = Translation.GetTranslation("mbErrorXSLTFailed", "") +
    5.77 +                    ":\n" + ex.Message;
    5.78 +            }
    5.79 +            catch (FileNotFoundException ex)
    5.80 +            {
    5.81 +                errorMessage = Translation.GetTranslation("mbErrorFileNotFoundFailed", "") +
    5.82 +                    ":\n" + ex.Message;
    5.83 +            }
    5.84 +            catch (IOException ex)
    5.85 +            {
    5.86 +                errorMessage = Translation.GetTranslation("mbErrorIOFailed", "") +
    5.87 +                    ":\n" + ex.Message;
    5.88 +            }
    5.89 +            catch (Exception ex)
    5.90 +            {
    5.91 +                errorMessage = Translation.GetTranslation("mbErrorFailed", "") +
    5.92 +                    ":\n" + ex.Message;
    5.93 +            }
    5.94 +            if (errorMessage != "")
    5.95 +            {
    5.96 +                MessageBox.Show(errorMessage, "Error During Export", MessageBoxButtons.OK, MessageBoxIcon.Error);
    5.97 +            }
    5.98 +            this.DialogResult = DialogResult.OK;
    5.99 +            this.Hide();
   5.100 +        }
   5.101 +
   5.102 +        private void tbOutputFile_Change(object sender, EventArgs e)
   5.103 +        {
   5.104 +            if (tbOutputFile.Text != "")
   5.105 +            {
   5.106 +                bttnExport.Enabled = true;
   5.107 +            }
   5.108 +            else
   5.109 +            {
   5.110 +                bttnExport.Enabled = false;
   5.111 +            }
   5.112 +        }
   5.113 +
   5.114 +        private void cbApplyTransform_CheckedChanged(object sender, EventArgs e)
   5.115 +        {
   5.116 +            if (cbApplyTransform.Checked)
   5.117 +            {
   5.118 +                tbXslPath.Enabled = true;
   5.119 +                bttnXslSelect.Enabled = true;
   5.120 +            }
   5.121 +            else
   5.122 +            {
   5.123 +                tbXslPath.Enabled = false;
   5.124 +                bttnXslSelect.Enabled = false;
   5.125 +            }
   5.126 +        }
   5.127 +
   5.128 +        private void bttnXslSelect_Click(object sender, EventArgs e)
   5.129 +        {
   5.130 +            OpenFileDialog ofd = new OpenFileDialog();
   5.131 +            
   5.132 +            ofd.InitialDirectory = Directory.GetCurrentDirectory() + "\\xsl";
   5.133 +            ofd.Filter = "XSL Files|*.xsl";
   5.134 +            DialogResult result = ofd.ShowDialog();
   5.135 +
   5.136 +            if (result == DialogResult.OK)
   5.137 +            {
   5.138 +                tbXslPath.Text = ofd.FileName;
   5.139 +            }
   5.140 +          
   5.141 +        }
   5.142 +    }
   5.143 +}
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/FrmXmlExport.resx	Thu Aug 25 20:43:51 2011 +0100
     6.3 @@ -0,0 +1,123 @@
     6.4 +<?xml version="1.0" encoding="utf-8"?>
     6.5 +<root>
     6.6 +  <!-- 
     6.7 +    Microsoft ResX Schema 
     6.8 +    
     6.9 +    Version 2.0
    6.10 +    
    6.11 +    The primary goals of this format is to allow a simple XML format 
    6.12 +    that is mostly human readable. The generation and parsing of the 
    6.13 +    various data types are done through the TypeConverter classes 
    6.14 +    associated with the data types.
    6.15 +    
    6.16 +    Example:
    6.17 +    
    6.18 +    ... ado.net/XML headers & schema ...
    6.19 +    <resheader name="resmimetype">text/microsoft-resx</resheader>
    6.20 +    <resheader name="version">2.0</resheader>
    6.21 +    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    6.22 +    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    6.23 +    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    6.24 +    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    6.25 +    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
    6.26 +        <value>[base64 mime encoded serialized .NET Framework object]</value>
    6.27 +    </data>
    6.28 +    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    6.29 +        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
    6.30 +        <comment>This is a comment</comment>
    6.31 +    </data>
    6.32 +                
    6.33 +    There are any number of "resheader" rows that contain simple 
    6.34 +    name/value pairs.
    6.35 +    
    6.36 +    Each data row contains a name, and value. The row also contains a 
    6.37 +    type or mimetype. Type corresponds to a .NET class that support 
    6.38 +    text/value conversion through the TypeConverter architecture. 
    6.39 +    Classes that don't support this are serialized and stored with the 
    6.40 +    mimetype set.
    6.41 +    
    6.42 +    The mimetype is used for serialized objects, and tells the 
    6.43 +    ResXResourceReader how to depersist the object. This is currently not 
    6.44 +    extensible. For a given mimetype the value must be set accordingly:
    6.45 +    
    6.46 +    Note - application/x-microsoft.net.object.binary.base64 is the format 
    6.47 +    that the ResXResourceWriter will generate, however the reader can 
    6.48 +    read any of the formats listed below.
    6.49 +    
    6.50 +    mimetype: application/x-microsoft.net.object.binary.base64
    6.51 +    value   : The object must be serialized with 
    6.52 +            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
    6.53 +            : and then encoded with base64 encoding.
    6.54 +    
    6.55 +    mimetype: application/x-microsoft.net.object.soap.base64
    6.56 +    value   : The object must be serialized with 
    6.57 +            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
    6.58 +            : and then encoded with base64 encoding.
    6.59 +
    6.60 +    mimetype: application/x-microsoft.net.object.bytearray.base64
    6.61 +    value   : The object must be serialized into a byte array 
    6.62 +            : using a System.ComponentModel.TypeConverter
    6.63 +            : and then encoded with base64 encoding.
    6.64 +    -->
    6.65 +  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    6.66 +    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    6.67 +    <xsd:element name="root" msdata:IsDataSet="true">
    6.68 +      <xsd:complexType>
    6.69 +        <xsd:choice maxOccurs="unbounded">
    6.70 +          <xsd:element name="metadata">
    6.71 +            <xsd:complexType>
    6.72 +              <xsd:sequence>
    6.73 +                <xsd:element name="value" type="xsd:string" minOccurs="0" />
    6.74 +              </xsd:sequence>
    6.75 +              <xsd:attribute name="name" use="required" type="xsd:string" />
    6.76 +              <xsd:attribute name="type" type="xsd:string" />
    6.77 +              <xsd:attribute name="mimetype" type="xsd:string" />
    6.78 +              <xsd:attribute ref="xml:space" />
    6.79 +            </xsd:complexType>
    6.80 +          </xsd:element>
    6.81 +          <xsd:element name="assembly">
    6.82 +            <xsd:complexType>
    6.83 +              <xsd:attribute name="alias" type="xsd:string" />
    6.84 +              <xsd:attribute name="name" type="xsd:string" />
    6.85 +            </xsd:complexType>
    6.86 +          </xsd:element>
    6.87 +          <xsd:element name="data">
    6.88 +            <xsd:complexType>
    6.89 +              <xsd:sequence>
    6.90 +                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
    6.91 +                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
    6.92 +              </xsd:sequence>
    6.93 +              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
    6.94 +              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
    6.95 +              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
    6.96 +              <xsd:attribute ref="xml:space" />
    6.97 +            </xsd:complexType>
    6.98 +          </xsd:element>
    6.99 +          <xsd:element name="resheader">
   6.100 +            <xsd:complexType>
   6.101 +              <xsd:sequence>
   6.102 +                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
   6.103 +              </xsd:sequence>
   6.104 +              <xsd:attribute name="name" type="xsd:string" use="required" />
   6.105 +            </xsd:complexType>
   6.106 +          </xsd:element>
   6.107 +        </xsd:choice>
   6.108 +      </xsd:complexType>
   6.109 +    </xsd:element>
   6.110 +  </xsd:schema>
   6.111 +  <resheader name="resmimetype">
   6.112 +    <value>text/microsoft-resx</value>
   6.113 +  </resheader>
   6.114 +  <resheader name="version">
   6.115 +    <value>2.0</value>
   6.116 +  </resheader>
   6.117 +  <resheader name="reader">
   6.118 +    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   6.119 +  </resheader>
   6.120 +  <resheader name="writer">
   6.121 +    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   6.122 +  </resheader>
   6.123 +  <metadata name="saveFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
   6.124 +    <value>17, 17</value>
   6.125 +  </metadata>
   6.126 +</root>
   6.127 \ No newline at end of file
     7.1 --- a/IBBoard.WarFoundry.GUI.WinForms.csproj	Tue Aug 16 20:34:46 2011 +0100
     7.2 +++ b/IBBoard.WarFoundry.GUI.WinForms.csproj	Thu Aug 25 20:43:51 2011 +0100
     7.3 @@ -26,7 +26,7 @@
     7.4      <UpgradeBackupLocation>
     7.5      </UpgradeBackupLocation>
     7.6      <OldToolsVersion>3.5</OldToolsVersion>
     7.7 -    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
     7.8 +    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
     7.9      <IsWebBootstrapper>false</IsWebBootstrapper>
    7.10      <PublishUrl>publish\</PublishUrl>
    7.11      <Install>true</Install>
    7.12 @@ -42,6 +42,7 @@
    7.13      <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
    7.14      <UseApplicationTrust>false</UseApplicationTrust>
    7.15      <BootstrapperEnabled>true</BootstrapperEnabled>
    7.16 +    <TargetFrameworkProfile />
    7.17    </PropertyGroup>
    7.18    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    7.19      <OutputPath>bin\Debug\</OutputPath>
    7.20 @@ -162,6 +163,12 @@
    7.21      <Compile Include="FrmUnit.cs">
    7.22        <SubType>Form</SubType>
    7.23      </Compile>
    7.24 +    <Compile Include="FrmXmlExport.cs">
    7.25 +      <SubType>Form</SubType>
    7.26 +    </Compile>
    7.27 +    <Compile Include="FrmXmlExport.Designer.cs">
    7.28 +      <DependentUpon>FrmXmlExport.cs</DependentUpon>
    7.29 +    </Compile>
    7.30      <Compile Include="Properties\Resources.Designer.cs">
    7.31        <AutoGen>True</AutoGen>
    7.32        <DesignTime>True</DesignTime>
    7.33 @@ -218,6 +225,9 @@
    7.34        <DependentUpon>FrmUnit.cs</DependentUpon>
    7.35        <SubType>Designer</SubType>
    7.36      </EmbeddedResource>
    7.37 +    <EmbeddedResource Include="FrmXmlExport.resx">
    7.38 +      <DependentUpon>FrmXmlExport.cs</DependentUpon>
    7.39 +    </EmbeddedResource>
    7.40      <EmbeddedResource Include="Properties\Resources.resx">
    7.41        <SubType>Designer</SubType>
    7.42        <Generator>ResXFileCodeGenerator</Generator>
     8.1 --- a/translations/de.translation	Tue Aug 16 20:34:46 2011 +0100
     8.2 +++ b/translations/de.translation	Thu Aug 25 20:43:51 2011 +0100
     8.3 @@ -9,6 +9,7 @@
     8.4  	<translation id="miSaveArmyAs">Speichern unter...</translation>
     8.5  	<translation id="miExportArmyAs">Exportieren</translation>
     8.6  	<translation id="miExportArmyAsBasicHTML">Einfaches HTML</translation>
     8.7 +  <translation id="miExportArmyAsBasicXML">XML...</translation>
     8.8  	<translation id="miCloseArmy">Schließen</translation>
     8.9  	<translation id="miReloadFiles">Dateien neu laden</translation>
    8.10  	<translation id="miExit">Beenden</translation>
    8.11 @@ -121,5 +122,10 @@
    8.12  	<translation id="FrmPreferences">Einstellungen</translation>
    8.13  	<translation id="languagePrefSection">Sprache</translation>
    8.14  	<translation id="lblLanguage">Sprache:</translation>
    8.15 -	<translation id="languagesGroup">Sprache</translation>	
    8.16 +	<translation id="languagesGroup">Sprache</translation>
    8.17 +  <translation id="mbErrorCompileFailed">Failed to compile XSL translation</translation>
    8.18 +  <translation id="mbErrorXSLTFailed">Failed to load XSL translation</translation>
    8.19 +  <translation id="mbErrorFileNotFoundFailed">Failed to load XSL translation</translation>
    8.20 +  <translation id="mbErrorIOFailed">Failed to output file</translation>
    8.21 +  <translation id="mbErrorFailed">Failed to export</translation>
    8.22  </translations>
    8.23 \ No newline at end of file
     9.1 --- a/translations/en.translation	Tue Aug 16 20:34:46 2011 +0100
     9.2 +++ b/translations/en.translation	Thu Aug 25 20:43:51 2011 +0100
     9.3 @@ -9,6 +9,7 @@
     9.4  	<translation id="miSaveArmyAs">Save army &amp;as...</translation>
     9.5  	<translation id="miExportArmyAs">&amp;Export army</translation>
     9.6  	<translation id="miExportArmyAsBasicHTML">Basic HTML</translation>
     9.7 +  <translation id="miExportArmyAsBasicXml">XML...</translation>
     9.8  	<translation id="miCloseArmy">&amp;Close army</translation>
     9.9  	<translation id="miReloadFiles">&amp;Reload files</translation>
    9.10  	<translation id="miExit">E&amp;xit</translation>
    9.11 @@ -131,4 +132,9 @@
    9.12    <translation id="treeNodeText">{0} ({1} {2})</translation>
    9.13    <translation id="setUnitEquipmentItemName">( {0} {1} each)</translation>
    9.14    <translation id="FailedRequirementMessage">Army Requirement Failures</translation>
    9.15 +  <translation id="mbErrorCompileFailed">Failed to compile XSL translation</translation>
    9.16 +  <translation id="mbErrorXSLTFailed">Failed to load XSL translation</translation>
    9.17 +  <translation id="mbErrorFileNotFoundFailed">Failed to load XSL translation</translation>
    9.18 +  <translation id="mbErrorIOFailed">Failed to output file</translation>
    9.19 +  <translation id="mbErrorFailed">Failed to export</translation>
    9.20  </translations>
    9.21 \ No newline at end of file
    10.1 --- a/translations/fi.translation	Tue Aug 16 20:34:46 2011 +0100
    10.2 +++ b/translations/fi.translation	Thu Aug 25 20:43:51 2011 +0100
    10.3 @@ -9,6 +9,7 @@
    10.4  	<translation id="miSaveArmyAs">Tallenna &amp;nimellä...</translation>
    10.5  	<translation id="miExportArmyAs">&amp;Vie...</translation>
    10.6  	<translation id="miExportArmyAsBasicHTML">Perus HTML:nä</translation>
    10.7 +  <translation id="miExportArmyAsBasicXML">XML...</translation>
    10.8  	<translation id="miCloseArmy">&amp;Sulje armeija</translation>
    10.9  	<translation id="miReloadFiles">&amp;Lataa tiedostot uudelleen</translation>
   10.10  	<translation id="miExit">Lo&amp;peta</translation>
   10.11 @@ -123,6 +124,11 @@
   10.12  	<translation id="lblLanguage">Kieli:</translation>
   10.13  	<translation id="languagesGroup">Kieli</translation>
   10.14    <translation id="GameSystemFilesReloaded">Pelisysteemi ja rotutiedostot ovat ladatut.</translation>
   10.15 +  <translation id="mbErrorCompileFailed">Failed to compile XSL translation</translation>
   10.16 +  <translation id="mbErrorXSLTFailed">Failed to load XSL translation</translation>
   10.17 +  <translation id="mbErrorFileNotFoundFailed">Failed to load XSL translation</translation>
   10.18 +  <translation id="mbErrorIOFailed">Failed to output file</translation>
   10.19 +  <translation id="mbErrorFailed">Failed to export</translation>
   10.20  </translations>
   10.21  
   10.22  
    11.1 --- a/translations/fr.translation	Tue Aug 16 20:34:46 2011 +0100
    11.2 +++ b/translations/fr.translation	Thu Aug 25 20:43:51 2011 +0100
    11.3 @@ -9,6 +9,7 @@
    11.4  	<translation id="miSaveArmyAs">Enregistrer une armée sous…</translation>
    11.5  	<translation id="miExportArmyAs">&amp;Exporter une armée</translation>
    11.6  	<translation id="miExportArmyAsBasicHTML">HTML Basic</translation>
    11.7 +  <translation id="miExportArmyAsBasicXML">XML...</translation>
    11.8  	<translation id="miCloseArmy">&amp;Fermer une armée</translation>
    11.9  	<translation id="miReloadFiles">&amp;Recharger les fichiers</translation>
   11.10  	<translation id="miExit">&amp;Sortir</translation>
   11.11 @@ -108,4 +109,9 @@
   11.12  	<translation id="requirementUnitTypeAtLeastSingle">{1} {0}</translation>
   11.13  	<translation id="requirementUnitTypeAtLeastJoiner">{0}, {1}</translation>
   11.14  	<translation id="requirementUnitTypeAtLeast">{0} peut être sélectionné seulement si l'objet suivant est sélectionné : {1}</translation>
   11.15 +  <translation id="mbErrorCompileFailed">Failed to compile XSL translation</translation>
   11.16 +  <translation id="mbErrorXSLTFailed">Failed to load XSL translation</translation>
   11.17 +  <translation id="mbErrorFileNotFoundFailed">Failed to load XSL translation</translation>
   11.18 +  <translation id="mbErrorIOFailed">Failed to output file</translation>
   11.19 +  <translation id="mbErrorFailed">Failed to export</translation>
   11.20  </translations>
   11.21 \ No newline at end of file
    12.1 --- a/translations/it.translation	Tue Aug 16 20:34:46 2011 +0100
    12.2 +++ b/translations/it.translation	Thu Aug 25 20:43:51 2011 +0100
    12.3 @@ -9,6 +9,7 @@
    12.4  	<translation id="miSaveArmyAs">Salve &amp;lista come...</translation>
    12.5  	<translation id="miExportArmyAs">&amp;Esporta lista</translation>
    12.6  	<translation id="miExportArmyAsBasicHTML">HTML Base</translation>
    12.7 +  <translation id="miExportArmyAsBasicXML">XML...</translation>
    12.8  	<translation id="miCloseArmy">&amp;Chiudi lista</translation>
    12.9  	<translation id="miReloadFiles">&amp;Ricarica files</translation>
   12.10  	<translation id="miExit">E&amp;sci</translation>
   12.11 @@ -122,4 +123,9 @@
   12.12  	<translation id="languagePrefSection">Lingua</translation>
   12.13  	<translation id="lblLanguage">Lingua:</translation>
   12.14  	<translation id="languagesGroup">Lingua</translation>
   12.15 +  <translation id="mbErrorCompileFailed">Failed to compile XSL translation</translation>
   12.16 +  <translation id="mbErrorXSLTFailed">Failed to load XSL translation</translation>
   12.17 +  <translation id="mbErrorFileNotFoundFailed">Failed to load XSL translation</translation>
   12.18 +  <translation id="mbErrorIOFailed">Failed to output file</translation>
   12.19 +  <translation id="mbErrorFailed">Failed to export</translation>
   12.20  </translations>
   12.21 \ No newline at end of file
    13.1 --- a/translations/nl.translation	Tue Aug 16 20:34:46 2011 +0100
    13.2 +++ b/translations/nl.translation	Thu Aug 25 20:43:51 2011 +0100
    13.3 @@ -9,6 +9,7 @@
    13.4  	<translation id="miSaveArmyAs">Opslaan als</translation>
    13.5  	<translation id="miExportArmyAs">Exporteren</translation>
    13.6  	<translation id="miExportArmyAsBasicHTML">Standaard HTML</translation>
    13.7 +  <translation id="miExportArmyAsBasicXML">XML...</translation>
    13.8  	<translation id="miCloseArmy">Sluit Leger</translation>
    13.9  	<translation id="miReloadFiles">Herlaad bestanden</translation>
   13.10  	<translation id="miExit">Afsluiten</translation>
   13.11 @@ -107,4 +108,9 @@
   13.12  	<translation id="requirementUnitTypeAtLeastSingle">{1} {0}</translation>
   13.13  	<translation id="requirementUnitTypeAtLeastJoiner">{0}, {1}</translation>
   13.14  	<translation id="requirementUnitTypeAtLeast">{0} kan alleen gekozen worden als een van de volgende dingen genomen is: {1}</translation>
   13.15 +  <translation id="mbErrorCompileFailed">Failed to compile XSL translation</translation>
   13.16 +  <translation id="mbErrorXSLTFailed">Failed to load XSL translation</translation>
   13.17 +  <translation id="mbErrorFileNotFoundFailed">Failed to load XSL translation</translation>
   13.18 +  <translation id="mbErrorIOFailed">Failed to output file</translation>
   13.19 +  <translation id="mbErrorFailed">Failed to export</translation>
   13.20  </translations>
   13.21 \ No newline at end of file
    14.1 --- a/translations/ru.translation	Tue Aug 16 20:34:46 2011 +0100
    14.2 +++ b/translations/ru.translation	Thu Aug 25 20:43:51 2011 +0100
    14.3 @@ -9,6 +9,7 @@
    14.4  	<translation id="miSaveArmyAs">Сохранить армию &amp;как...</translation>
    14.5  	<translation id="miExportArmyAs">&amp;Экспортировать армию</translation>
    14.6  	<translation id="miExportArmyAsBasicHTML">Basic HTML</translation>
    14.7 +  <translation id="miExportArmyAsBasicXML">XML</translation>
    14.8  	<translation id="miCloseArmy">&amp;Закрыть армию</translation>
    14.9  	<translation id="miReloadFiles">&amp;Перезагрузить файлы</translation>
   14.10  	<translation id="miExit">&amp;Выход</translation>
   14.11 @@ -93,4 +94,9 @@
   14.12  	<translation id="setUnitNameCommandUndoDescription">Поменять название "{0}" на "{1}"</translation>
   14.13  	<translation id="setUnitSizeCommandDescription">Сделать размер {0} - {1}</translation>
   14.14  	<translation id="setUnitSizeCommandUndoDescription">Сделать размер {0} - {1}</translation>
   14.15 +  <translation id="mbErrorCompileFailed">Failed to compile XSL translation</translation>
   14.16 +  <translation id="mbErrorXSLTFailed">Failed to load XSL translation</translation>
   14.17 +  <translation id="mbErrorFileNotFoundFailed">Failed to load XSL translation</translation>
   14.18 +  <translation id="mbErrorIOFailed">Failed to output file</translation>
   14.19 +  <translation id="mbErrorFailed">Failed to export</translation>
   14.20  </translations>
   14.21 \ No newline at end of file
    15.1 --- a/translations/sv.translation	Tue Aug 16 20:34:46 2011 +0100
    15.2 +++ b/translations/sv.translation	Thu Aug 25 20:43:51 2011 +0100
    15.3 @@ -81,6 +81,7 @@
    15.4  	<translation id="miExit">A&amp;vsluta</translation>
    15.5  	<translation id="miExportArmyAs">&amp;Exportera armé</translation>
    15.6  	<translation id="miExportArmyAsBasicHTML">Normal HTML</translation>
    15.7 +  <translation id="miExportArmyAsBasicXML">XML...</translation>
    15.8  	<translation id="miNewArmy">&amp;Skapa ny armé</translation>
    15.9  	<translation id="miOpenArmy">&amp;Öppna sparad armé</translation>
   15.10  	<translation id="miPreferences">&amp;Inställningar</translation>
   15.11 @@ -130,5 +131,9 @@
   15.12  	<translation id="statusPanelPointsToolTip">Aktuellt poängvärde för armé</translation>
   15.13  	<translation id="treeNodeText">{0} ({1} {2})</translation>
   15.14    <translation id="setUnitEquipmentItemName">( {0} {1} var)</translation>
   15.15 -  
   15.16 +  <translation id="mbErrorCompileFailed">Failed to compile XSL translation</translation>
   15.17 +  <translation id="mbErrorXSLTFailed">Failed to load XSL translation</translation>
   15.18 +  <translation id="mbErrorFileNotFoundFailed">Failed to load XSL translation</translation>
   15.19 +  <translation id="mbErrorIOFailed">Failed to output file</translation>
   15.20 +  <translation id="mbErrorFailed">Failed to export</translation>
   15.21  </translations>