Beispiel #1
0
        public LoadingTreeNode(TreeView treeView, MutableTreeNode owner)
            : base("Loading ...")
        {
            this.treeView = treeView;
            this.owner    = owner;

            ForeColor = SystemColors.GrayText;
            ImageKey  = SelectedImageKey = "loading";

            treeView.AfterExpand += TreeView_AfterExpand;
        }
Beispiel #2
0
        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;
                }
            }
        }