# HG changeset patch # User IBBoard # Date 1230403177 0 # Node ID 42cf06b8f89718164fa5802548a37a46e06ea848 # Parent 7dd160dacb60ce4898b4a99f2e82f576f2d60352 Re #8 - Get a working Windows WarFoundry * Update forms to use new package structures for API objects * Update forms to use separate control translation * Remove PIDB file from source control diff -r 7dd160dacb60 -r 42cf06b8f897 FrmArmyTree.cs --- a/FrmArmyTree.cs Fri Dec 19 15:57:51 2008 +0000 +++ b/FrmArmyTree.cs Sat Dec 27 18:39:37 2008 +0000 @@ -7,6 +7,7 @@ using IBBoard.WarFoundry.API; using IBBoard.WarFoundry.API.Commands; using IBBoard.Windows.Forms; +using IBBoard.WarFoundry.API.Objects; namespace IBBoard.WarFoundry { diff -r 7dd160dacb60 -r 42cf06b8f897 FrmEditUnitEquipment.cs --- a/FrmEditUnitEquipment.cs Fri Dec 19 15:57:51 2008 +0000 +++ b/FrmEditUnitEquipment.cs Sat Dec 27 18:39:37 2008 +0000 @@ -6,6 +6,7 @@ using IBBoard.Commands; using IBBoard.WarFoundry.API; using IBBoard.WarFoundry.API.Commands; +using IBBoard.WarFoundry.API.Objects; namespace IBBoard.WarFoundry { diff -r 7dd160dacb60 -r 42cf06b8f897 FrmMain.cs --- a/FrmMain.cs Fri Dec 19 15:57:51 2008 +0000 +++ b/FrmMain.cs Sat Dec 27 18:39:37 2008 +0000 @@ -16,7 +16,10 @@ using IBBoard.WarFoundry.API.Commands; using IBBoard.Windows.Forms; using IBBoard.Xml; -using log4net; +using log4net; +using IBBoard.WarFoundry.API.Objects; +using IBBoard.Windows.Forms.I18N; +using IBBoard.WarFoundry.API.Savers; namespace IBBoard.WarFoundry { @@ -28,11 +31,10 @@ private static readonly string AppTitle = "WarFoundry"; private Preferences preferences; - protected readonly ILog logger = LogManager.GetLogger(typeof(WarFoundryFactory)); + protected readonly ILog logger = LogManager.GetLogger(typeof(FrmMain)); private CommandStack commandStack; - private ToolBarButton[] categoryButtons; - private Type factoryType = typeof(WarFoundryXmlFactory); + private ToolBarButton[] categoryButtons; public ObjectAddDelegate UnitAddedMethod; public ObjectRemoveDelegate UnitRemovedMethod; @@ -40,7 +42,8 @@ //public FailedUnitRequirementDelegate FailedUnitRequirementMethod; private FrmArmyTree armyTree; - private FrmDebugOutput debugWindow; + private FrmDebugOutput debugWindow; + private string loadedFilePath; private IBBoard.Windows.Forms.ColorableStatusBar statusBar; private System.Windows.Forms.ToolBar toolBar; @@ -96,22 +99,22 @@ //pnlRight.Height = ClientRectangle.Bottom - statusBar.Height - pnlRight.Top - 3; foreach (Control ctrl in Controls) - { - Translation.TranslateControl(ctrl); + { + ControlTranslator.TranslateControl(ctrl); } foreach(Component comp in components.Components) - { - Translation.TranslateComponent(comp); + { + ControlTranslator.TranslateComponent(comp); } foreach (IBBMenuItem mi in Menu.MenuItems) - { - Translation.TranslateComponent(mi); - } - - Translation.TranslateComponent(openArmyDialog); - Translation.TranslateComponent(saveArmyDialog); + { + ControlTranslator.TranslateComponent(mi); + } + + ControlTranslator.TranslateComponent(openArmyDialog); + ControlTranslator.TranslateComponent(saveArmyDialog); WarFoundryCore.GameSystemChanged+= new GameSystemChangedDelegate(FrmMain_GameSystemChanged); WarFoundryCore.ArmyChanged += new ArmyChangedDelegate(FrmMain_ArmyChanged); @@ -126,9 +129,10 @@ armyTree.MdiParent = this; armyTree.Show(); armyTree.StartPosition = FormStartPosition.Manual; - armyTree.Location = new Point(this.DisplayRectangle.Width - armyTree.Width - 10, 10); - Translation.TranslateControl(armyTree); + armyTree.Location = new Point(this.DisplayRectangle.Width - armyTree.Width - 10, 10); + ControlTranslator.TranslateControl(armyTree); + /* if (args.Length == 1) { logger.Debug("Attempting to load from file"); @@ -168,7 +172,7 @@ logger.InfoFormat("Loaded game system {0} from properties", gameSystemID); } } - } + }*/ } public static string DataPath @@ -566,11 +570,6 @@ MessageBox.Show(null, "A major, unexpected and fatal error ocurred while starting the application: \r\n\r\n"+ex.Message+"\r\n\r\n"+ex.StackTrace, "Fatal error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } - - public WarFoundryFactory Factory - { - get { return WarFoundryFactoryFactory.GetFactoryFactory().GetFactory(Constants.ExecutablePath, factoryType); } - } private void miExit_Click(object sender, System.EventArgs e) { @@ -586,12 +585,12 @@ { if (closeCurrentArmy()) { - FrmNewArmy newArmy = new FrmNewArmy(CurrentGameSystem, Factory); + FrmNewArmy newArmy = new FrmNewArmy(CurrentGameSystem); DialogResult dr = newArmy.ShowDialog(); if (dr == DialogResult.OK) { - CurrentArmy = new Army(newArmy.SelectedRace, newArmy.ArmyName, newArmy.ArmySize, Factory); + CurrentArmy = new Army(newArmy.SelectedRace, newArmy.ArmyName, newArmy.ArmySize); } } } @@ -619,6 +618,7 @@ if (dr == DialogResult.OK) { + /* try { CurrentArmy = Factory.LoadArmy(openArmyDialog.FileName); @@ -630,6 +630,8 @@ MessageBox.Show(this, ex.Message, Translation.GetTranslation("InvalidFileBoxTitle", "Invalid data file"), MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } + * */ + return false; } else { @@ -653,8 +655,8 @@ DialogResult dr = MessageBox.Show(this, "The army \""+CurrentArmy.Name+"\" has been modified.\r\nSave changes before closing army?", "Unsaved changes", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button3); if (dr == DialogResult.Yes) - { - canClose = saveCurrentArmyOrSaveAs(); + { + canClose = SaveCurrentArmy(); } else if (dr == DialogResult.No) { @@ -703,42 +705,48 @@ } } - private bool saveCurrentArmyOrSaveAs() - { - if (WarFoundrySaver.GetSaver().CanSave(CurrentArmy)) - { - return saveCurrentArmy(); - } - else - { - return saveCurrentArmyAs(); - } - } - - private bool saveCurrentArmy() + private bool SaveCurrentArmy() { - if (WarFoundrySaver.GetSaver().CanSave(CurrentArmy)) - { - if (WarFoundrySaver.GetSaver().Save(CurrentArmy)) - { - miSaveArmy.Enabled = false; - bttnSaveArmy.Enabled = false; - CommandStack.setCleanMark(); - return true; - } - else - { - MessageBox.Show(this, Translation.GetTranslation("SaveFailed"), Translation.GetTranslation("SaveFailedTitle"), MessageBoxButtons.OK, MessageBoxIcon.Error); - return false; - } + bool saved = false; + + if (loadedFilePath != null || PromptForFilePath()) + { + saved = SaveCurrentArmyToFile(); + } + + return saved; + } + + private bool SaveCurrentArmyAs() + { + bool saved = false; + + if (PromptForFilePath()) + { + saved = SaveCurrentArmyToFile(); + } + + return saved; + } + + private bool SaveCurrentArmyToFile() + { + if (WarFoundrySaver.GetSaver().Save(CurrentArmy, loadedFilePath)) + { + miSaveArmy.Enabled = false; + bttnSaveArmy.Enabled = false; + CommandStack.setCleanMark(); + return true; } else - { + { + loadedFilePath = null; + MessageBox.Show(this, Translation.GetTranslation("SaveFailed"), Translation.GetTranslation("SaveFailedTitle"), MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } - } - - private bool saveCurrentArmyAs() + } + + private bool PromptForFilePath() { if (saveArmyDialog.Filter == "") { @@ -758,18 +766,8 @@ if (dr == DialogResult.OK) { - if (WarFoundrySaver.GetSaver().SaveAs(CurrentArmy, saveArmyDialog.FileName)) - { - miSaveArmy.Enabled = false; - bttnSaveArmy.Enabled = false; - CommandStack.setCleanMark(); - return true; - } - else - { - MessageBox.Show(this, Translation.GetTranslation("SaveFailed"), Translation.GetTranslation("SaveFailedTitle"), MessageBoxButtons.OK, MessageBoxIcon.Error); - return false; - } + loadedFilePath = saveArmyDialog.FileName; + return true; } else { @@ -796,8 +794,8 @@ openArmy(); } else if (e.Button == bttnSaveArmy) - { - saveCurrentArmyOrSaveAs(); + { + SaveCurrentArmy(); } else { @@ -820,7 +818,7 @@ private void SelectGameSystem() { - FrmSelectSystem selectSystem = new FrmSelectSystem(Factory); + FrmSelectSystem selectSystem = new FrmSelectSystem(); DialogResult dr = selectSystem.ShowDialog(this); if (dr==DialogResult.OK) @@ -954,8 +952,8 @@ } private void miSaveArmyAs_Click(object sender, System.EventArgs e) - { - saveCurrentArmyAs(); + { + SaveCurrentArmyAs(); } private void commandStack_CommandStackUpdated() @@ -1030,16 +1028,14 @@ undoMenu.MenuItems.AddRange(menuItemsUndo); } - bool canSave = WarFoundrySaver.GetSaver().CanSave(CurrentArmy); + bool canSave = loadedFilePath != null; bttnSaveArmy.Enabled = commandStack.IsDirty() && CurrentArmy!=null && canSave; miSaveArmy.Enabled = commandStack.IsDirty() && CurrentArmy!=null && canSave; } private void miSaveArmy_Click(object sender, System.EventArgs e) { - //we should only be saving when the army can be saved (i.e. it has been opened from a file or Save As-ed) - //so use the "just save" version - saveCurrentArmy(); + SaveCurrentArmy(); } private void setAppTitle() @@ -1066,7 +1062,7 @@ if (dr == DialogResult.OK) { - CreateAndAddUnitCommand cmd = new CreateAndAddUnitCommand(newUnit.SelectedUnit, cat, CurrentArmy, Factory); + CreateAndAddUnitCommand cmd = new CreateAndAddUnitCommand(newUnit.SelectedUnit, cat, CurrentArmy); commandStack.Execute(cmd); } } @@ -1243,7 +1239,7 @@ private void miReloadFiles_Click(object sender, System.EventArgs e) { - Factory.LoadAllGameSystems(); + WarFoundryLoader.GetDefault().LoadFiles(); sbMainPanel.Text = Translation.GetTranslation("GameSystemFilesReloaded", "Game system and race files reloaded"); statusBarTimer.Enabled = true; } diff -r 7dd160dacb60 -r 42cf06b8f897 FrmNewArmy.cs --- a/FrmNewArmy.cs Fri Dec 19 15:57:51 2008 +0000 +++ b/FrmNewArmy.cs Sat Dec 27 18:39:37 2008 +0000 @@ -7,6 +7,8 @@ using IBBoard.Lang; using IBBoard.Windows.Forms; using IBBoard.WarFoundry.API; +using IBBoard.WarFoundry.API.Objects; +using IBBoard.Windows.Forms.I18N; namespace IBBoard.WarFoundry { @@ -29,13 +31,13 @@ private System.Windows.Forms.NumericUpDown armySize; private System.Windows.Forms.TextBox txtArmyName; - public FrmNewArmy(GameSystem system, WarFoundryFactory factory) + public FrmNewArmy(GameSystem system) { InitializeComponent(); - Translation.TranslateControl(this); + ControlTranslator.TranslateControl(this); - races = factory.GetRaces(system); + races = WarFoundryLoader.GetDefault().GetRaces(system); for (int i = 0; i System.XML - + IBBoardWF {E3790268-2082-4975-B1A3-C70B37842CE8} {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} diff -r 7dd160dacb60 -r 42cf06b8f897 IBBoard.WarFoundry.mdp --- a/IBBoard.WarFoundry.mdp Fri Dec 19 15:57:51 2008 +0000 +++ b/IBBoard.WarFoundry.mdp Sat Dec 27 18:39:37 2008 +0000 @@ -1,4 +1,4 @@ - + diff -r 7dd160dacb60 -r 42cf06b8f897 IBBoard.WarFoundry.pidb Binary file IBBoard.WarFoundry.pidb has changed