entity.MetaEditor2.MetaEditorControlPage.treeViewTagReflexives_AfterSelect C# (CSharp) Method

treeViewTagReflexives_AfterSelect() private method

Updates the current meta with the selected node.
private treeViewTagReflexives_AfterSelect ( object sender, TreeViewEventArgs e ) : void
sender object
e System.Windows.Forms.TreeViewEventArgs
return void
        private void treeViewTagReflexives_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (!treeViewTagReflexives.Enabled)
                return;

            TreeNode tn = treeViewTagReflexives.SelectedNode;

            // Show a wait cursor while the selected reflexive is loading
            this.Cursor = Cursors.WaitCursor;

            try
            {
                loadControls(tn);

                tsNavigation.Items.Clear();
                while (tn.Parent != null)
                {
                    addReflexive(tsNavigation, tn.Text);
                    tsNavigation.Items[1].Name = tn.Name;

                    reflexiveData rd = (reflexiveData)tn.Tag;

                    // will throw exception if in the [MAIN] reflexive, so just ignore
                    /*
                    try
                    {
                        if (ctl.name == rd.reflexive.label && !labelFound)
                        {
                            labelFound = true;
                            panelMetaEditor.Controls[0].Controls[1].LostFocus += new EventHandler(WinMEControl_LostFocus);
                        }
                    }
                    catch { }
                    */

                    string[] s = new string[rd.chunkCount];
                    try
                    {
                        s = loadLabels(rd);
                    }
                    catch
                    {
                        // Errors occur with labels when reflexive lies in another tag, so just ignore
                    }

                    //  Create reflexive count comboBox listings
                    for (int i = 0; i < rd.chunkCount; i++)
                    {
                        if (s[i] != null)
                            ((ToolStripComboBox)tsNavigation.Items[2]).Items.Add(i + " : \"" + s[i] + "\"");
                        else
                            ((ToolStripComboBox)tsNavigation.Items[2]).Items.Add(i);
                    }

                    if (rd.chunkCount != 0)
                    {
                        if (rd.chunkSelected > rd.chunkCount)
                            rd.chunkSelected = rd.chunkCount - 1;
                        try
                        {
                            // Stop it from running ReloadMetaForSameReflexive() since we just loaded it
                            ((ToolStripComboBox)tsNavigation.Items[2]).Enabled = false;
                            ((ToolStripComboBox)tsNavigation.Items[2]).SelectedIndex = rd.chunkSelected;
                        }
                        catch
                        {
                        }
                        finally
                        {
                            ((ToolStripComboBox)tsNavigation.Items[2]).Enabled = true;
                        }
                    }

                    tn = tn.Parent;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            // Restore our mouse cursor
            this.Cursor = Cursors.Arrow;

            panelMetaEditor.Enabled = (((reflexiveData)treeViewTagReflexives.SelectedNode.Tag).chunkCount != 0);

            // If the data is not in this tag, just disbale editing of it. Make it done in parent tag ONLY!
            if (meta.TagIndex != ((reflexiveData)treeViewTagReflexives.SelectedNode.Tag).inTagNumber)
                panelMetaEditor.Enabled = false;

            tsMetaMassEdit.Enabled = panelMetaEditor.Enabled;

            btnSave.Enabled = panelMetaEditor.Enabled;
            btnReset.Enabled = panelMetaEditor.Enabled;

            if (((reflexiveData)treeViewTagReflexives.SelectedNode.Tag).inTagNumber != -1 &&
                ((reflexiveData)treeViewTagReflexives.SelectedNode.Tag).inTagNumber != meta.TagIndex)
                showInfoBox("This reflexive resides within \"[" +
                      map.MetaInfo.TagType[((reflexiveData)treeViewTagReflexives.SelectedNode.Tag).inTagNumber] +
                      "] " +
                      map.FileNames.Name[((reflexiveData)treeViewTagReflexives.SelectedNode.Tag).inTagNumber] +
                      "\"\r\nYou must edit these values in the parent tag." +
                      "\r\nDouble click the reflexive in the tree on the left to load the reflexive in the given tag.", 0);
            else
            {
                showInfoBox("", 1);
                if ((bool)treeViewTagReflexives.Tag)
                    tsbtnPeek.Checked = true;
            }
        }