Mercurial > repos > IBBoard.WarFoundry.GUI.WinForms
view FrmXmlExport.cs @ 243:425912324be5
Re #417: Improve install/first use experience
* Handle file copy errors in WinForms and tell user
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 19 May 2012 20:16:21 +0100 |
parents | 72beddaffb71 |
children | 4d25c42bbe7b |
line wrap: on
line source
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.IO; using System.Windows.Forms; using System.Xml.Xsl; using IBBoard.Lang; using IBBoard.WarFoundry.API.Objects; using IBBoard.WarFoundry.API.Exporters; namespace IBBoard.WarFoundry.GUI.WinForms { public partial class FrmXmlExport : Form { Army myArmy = null; public FrmXmlExport(Army army) { InitializeComponent(); myArmy = army; } private void FrmXmlExport_Load(object sender, EventArgs e) { tbXslPath.Text = Directory.GetCurrentDirectory() + "\\xsl\\default_html.xsl"; } private void bttnOutputSelect_Click(object sender, EventArgs e) { SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "XML File|*.xml|HTML File|*.html|XHTML File|*.xhtml"; sfd.Title = "Save XML output"; sfd.ShowDialog(); if (sfd.FileName != "") { tbOutputFile.Text = sfd.FileName; } } private void bttnCancel_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Cancel; this.Hide(); } private void bttnExport_Click(object sender, EventArgs e) { string errorMessage = ""; // Catch potential errors with the file export or XSL compiliation try { if (cbApplyTransform.Checked) { WarFoundryXmlWithXslExporter.GetDefault().ExportArmyWithTransform(myArmy, tbOutputFile.Text, tbXslPath.Text); } else { WarFoundryXmlWithXslExporter.GetDefault().ExportArmy(myArmy, tbOutputFile.Text); } } catch (XsltCompileException ex) { errorMessage = Translation.GetTranslation("mbErrorCompileFailed", "") + ":\n" + ex.Message; } catch (XsltException ex) { errorMessage = Translation.GetTranslation("mbErrorXSLTFailed", "") + ":\n" + ex.Message; } catch (FileNotFoundException ex) { errorMessage = Translation.GetTranslation("mbErrorFileNotFoundFailed", "") + ":\n" + ex.Message; } catch (IOException ex) { errorMessage = Translation.GetTranslation("mbErrorIOFailed", "") + ":\n" + ex.Message; } catch (Exception ex) { errorMessage = Translation.GetTranslation("mbErrorFailed", "") + ":\n" + ex.Message; } if (errorMessage != "") { MessageBox.Show(errorMessage, "Error During Export", MessageBoxButtons.OK, MessageBoxIcon.Error); } this.DialogResult = DialogResult.OK; this.Hide(); } private void tbOutputFile_Change(object sender, EventArgs e) { if (tbOutputFile.Text != "") { bttnExport.Enabled = true; } else { bttnExport.Enabled = false; } } private void cbApplyTransform_CheckedChanged(object sender, EventArgs e) { if (cbApplyTransform.Checked) { tbXslPath.Enabled = true; bttnXslSelect.Enabled = true; } else { tbXslPath.Enabled = false; bttnXslSelect.Enabled = false; } } private void bttnXslSelect_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.InitialDirectory = Directory.GetCurrentDirectory() + "\\xsl"; ofd.Filter = "XSL Files|*.xsl"; DialogResult result = ofd.ShowDialog(); if (result == DialogResult.OK) { tbXslPath.Text = ofd.FileName; } } } }