public LoadingTreeNode(TreeView treeView, MutableTreeNode owner) : base("Loading ...") { this.treeView = treeView; this.owner = owner; ForeColor = SystemColors.GrayText; ImageKey = SelectedImageKey = "loading"; treeView.AfterExpand += TreeView_AfterExpand; }
public async Task LoadAsync(string fileName, string format = "binary") { foreach (var form in OwnedForms) { if (form is PropertyGridForm) { form.Close(); } } selection.Clear(); EnableUI(false); bool loaded = false; try { Text = Path.GetFileName(fileName) + " - " + initialTitle; treeView.BeginUpdate(); treeView.Nodes.Clear(); try { await warbend.LoadAsync(fileName, format); } catch (WarbendOperationException ex) { var msg = $"Error loading \"{fileName}\":\r\n\r\n{ex.Message}"; MessageBox.Show(this, msg, null, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } loaded = true; var game = new Mutable(warbend); var rootNode = new MutableTreeNode(treeView, game); treeView.Nodes.Add(rootNode); treeView.EndUpdate(); rootNode.Expand(); } catch (WarbendShuttingDownException) { loaded = false; } finally { EnableUI(true); if (!loaded) { Text = initialTitle; } } }