AddonManager.MainForm.tabButton_Click C# (CSharp) Метод

tabButton_Click() приватный Метод

private tabButton_Click ( object sender, EventArgs e ) : void
sender object
e System.EventArgs
Результат void
        private void tabButton_Click(object sender, EventArgs e)
        {
            Button source = (Button)sender;
            switch (source.Name.Substring(0, 4))
            {
                #region Open
                case "open":
                    {
                        string fromTab = source.Name.Replace("open", string.Empty);
                        switch (fromTab)
                        {
                            case "CatalogAddonDetails":
                                {
                                    using (AddonDetailsDialog addonDetailsDialog = new AddonDetailsDialog(addonProject.catalog.addonName,
                                                AddonType.catalogWithBaskets,
                                                addonProject.catalog.addonCreator,
                                                addonProject.catalog.addonVersion,
                                                addonProject.catalog.addonDescription))
                                    {
                                        if (addonDetailsDialog.ShowDialog() == DialogResult.OK)
                                        {

                                            addonProject.catalog.addonName = addonDetailsDialog.returnValues[0];
                                            addonProject.catalog.addonCreator = addonDetailsDialog.returnValues[1];
                                            addonProject.catalog.addonVersion = addonDetailsDialog.returnValues[2];
                                            addonProject.catalog.addonDescription = addonDetailsDialog.returnValues[3];
                                        }
                                    }
                                }
                                break;
                            case "AccentAddonDetails":
                                {
                                    using (AddonDetailsDialog addonDetailsDialog = new AddonDetailsDialog(addonProject.accent.addonName,
                                                AddonType.accent,
                                                addonProject.accent.addonCreator,
                                                addonProject.accent.addonVersion,
                                                addonProject.accent.addonDescription))
                                    {
                                        if (addonDetailsDialog.ShowDialog() == DialogResult.OK)
                                        {

                                            addonProject.accent.addonName = addonDetailsDialog.returnValues[0];
                                            addonProject.accent.addonCreator = addonDetailsDialog.returnValues[1];
                                            addonProject.accent.addonVersion = addonDetailsDialog.returnValues[2];
                                            addonProject.accent.addonDescription = addonDetailsDialog.returnValues[3];
                                        }
                                    }
                                }
                                break;
                            case "ThemeAddonDetails":
                                {
                                    using (AddonDetailsDialog addonDetailsDialog = new AddonDetailsDialog(addonProject.theme.addonName,
                                                AddonType.theme,
                                                addonProject.theme.addonCreator,
                                                addonProject.theme.addonVersion,
                                                addonProject.theme.addonDescription))
                                    {
                                        if (addonDetailsDialog.ShowDialog() == DialogResult.OK)
                                        {

                                            addonProject.theme.addonName = addonDetailsDialog.returnValues[0];
                                            addonProject.theme.addonCreator = addonDetailsDialog.returnValues[1];
                                            addonProject.theme.addonVersion = addonDetailsDialog.returnValues[2];
                                            addonProject.theme.addonDescription = addonDetailsDialog.returnValues[3];
                                        }
                                    }
                                }
                                break;
                            case "LanguageDefault":
                                {
                                    if (helpLanguageForm == null)
                                        helpLanguageForm = new HelpLanguageForm();
                                    helpLanguageForm.Show();
                                    helpLanguageForm.BringToFront();
                                }
                                break;
                            case "LanguageAddonDetails":
                                {
                                    using (AddonDetailsDialog addonDetailsDialog = new AddonDetailsDialog(addonProject.language.addonName,
                                                AddonType.language,
                                                addonProject.language.addonCreator,
                                                addonProject.language.addonVersion,
                                                addonProject.language.addonDescription))
                                    {
                                        if (addonDetailsDialog.ShowDialog() == DialogResult.OK)
                                        {

                                            addonProject.language.addonName = addonDetailsDialog.returnValues[0];
                                            addonProject.language.addonCreator = addonDetailsDialog.returnValues[1];
                                            addonProject.language.addonVersion = addonDetailsDialog.returnValues[2];
                                            addonProject.language.addonDescription = addonDetailsDialog.returnValues[3];
                                        }
                                    }
                                }
                                break;
                            case "MemoryPatchAddonDetails":
                                {
                                    using (AddonDetailsDialog addonDetailsDialog = new AddonDetailsDialog(addonProject.memoryPatch.addonName,
                                                AddonType.memoryPatch,
                                                addonProject.memoryPatch.addonCreator,
                                                addonProject.memoryPatch.addonVersion,
                                                addonProject.memoryPatch.addonDescription))
                                    {
                                        if (addonDetailsDialog.ShowDialog() == DialogResult.OK)
                                        {

                                            addonProject.memoryPatch.addonName = addonDetailsDialog.returnValues[0];
                                            addonProject.memoryPatch.addonCreator = addonDetailsDialog.returnValues[1];
                                            addonProject.memoryPatch.addonVersion = addonDetailsDialog.returnValues[2];
                                            addonProject.memoryPatch.addonDescription = addonDetailsDialog.returnValues[3];
                                        }
                                    }
                                }
                                break;
                        }
                        break;
                    }
                #endregion
                #region Create
                case "crea":
                    {
                        string fromTab = source.Name.Replace("create", string.Empty);
                        switch (fromTab)
                        {
                            case "Catalog":
                                if (productsListBox.CheckedItems.Count == productsListBox.Items.Count
                                        && categoriesListBox.CheckedItems.Count == categoriesListBox.Items.Count)
                                {
                                    createAddonDialog.FilterIndex = 1;
                                    createAddonDialog.FileName = addonProject.catalog.addonName;
                                    if (createAddonDialog.ShowDialog() == DialogResult.OK)
                                    {
                                        if (createAddonDialog.FileName.EndsWith(".serveraddon.catalogwithbasket"))
                                        {
                                            string targetAddon = createAddonDialog.FileName;
                                            saveAddonProperties(targetAddon, addonProject.catalog.addonName, AddonType.catalogWithBaskets,
                                                addonProject.catalog.addonCreator, addonProject.catalog.addonVersion,
                                                addonProject.catalog.addonDescription);
                                            if (targetAddon.saveAddonFile(AddonType.catalogWithBaskets,
                                                                        productsListBox.Items.Cast<string>().ToArray(),
                                                                        categoriesListBox.Items.Cast<string>().ToArray(),
                                                                        basketsListBox.Items.Cast<string>().ToArray()
                                                                     ))
                                            {
                                                MessageBox.Show("The catalog addon has been created successfully!",
                                                    "Just to let you know...", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                            }
                                            else
                                            {
                                                if (File.Exists(targetAddon)) File.Delete(targetAddon);
                                                MessageBox.Show("Create catalog addon operation has been cancelled.",
                                                    "Just to let you know...", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                            }
                                        }
                                        else
                                        {
                                            MessageBox.Show("Please use the default extension '.serveraddon.catalogwithbasket' and retry.",
                                                "Hold your horses there, big guy!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                        }
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("Please fill in the missing entries in the catalog section and retry.",
                                        "Hold your horses there, big guy!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                }
                                break;
                            case "Accent":
                                {
                                    try
                                    {
                                        if (String.IsNullOrWhiteSpace(avalonEditProxyAccent.textEditor.Text))
                                            return;

                                        var xElement = XElement.Parse(avalonEditProxyAccent.textEditor.Text);
                                        String docAccent = xElement.ToString();

                                        createAddonDialog.FilterIndex = 2;
                                        createAddonDialog.FileName = addonProject.accent.addonName;
                                        if (createAddonDialog.ShowDialog() == DialogResult.OK)
                                        {
                                            if (createAddonDialog.FileName.EndsWith(".serveraddon.accent"))
                                            {
                                                string targetAddon = createAddonDialog.FileName;
                                                saveAddonProperties(targetAddon, addonProject.accent.addonName, AddonType.accent,
                                                    addonProject.accent.addonCreator, addonProject.accent.addonVersion,
                                                    addonProject.accent.addonDescription);
                                                if (targetAddon.saveAddonFile(AddonType.accent, new string[] { docAccent }))
                                                {
                                                    MessageBox.Show("The accent addon has been created successfully!",
                                                        "Just to let you know...", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                                }
                                                else
                                                {
                                                    if (File.Exists(targetAddon)) File.Delete(targetAddon);
                                                    MessageBox.Show("Create accent addon operation has been cancelled.",
                                                        "Just to let you know...", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                                }
                                            }
                                            else
                                            {
                                                MessageBox.Show("Please use the default extension '.serveraddon.accent' and retry.",
                                                    "Hold your horses there, big guy!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        MessageBox.Show(String.Format("{0}\r\n\r\nPlease retry after fixing the error.", ex.Message),
                                            "ERROR: Not valid input", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                }
                                break;
                            case "Theme":
                                {
                                    try
                                    {
                                        if (String.IsNullOrWhiteSpace(avalonEditProxyTheme.textEditor.Text))
                                            return;

                                        var xElement = XElement.Parse(avalonEditProxyTheme.textEditor.Text);
                                        String docTheme = xElement.ToString();

                                        createAddonDialog.FilterIndex = 3;
                                        createAddonDialog.FileName = addonProject.theme.addonName;
                                        if (createAddonDialog.ShowDialog() == DialogResult.OK)
                                        {
                                            if (createAddonDialog.FileName.EndsWith(".serveraddon.theme"))
                                            {
                                                string targetAddon = createAddonDialog.FileName;
                                                saveAddonProperties(targetAddon, addonProject.theme.addonName, AddonType.theme,
                                                    addonProject.theme.addonCreator, addonProject.theme.addonVersion,
                                                    addonProject.theme.addonDescription);
                                                if (targetAddon.saveAddonFile(AddonType.theme, new string[] { docTheme }))
                                                {
                                                    MessageBox.Show("The theme addon has been created successfully!",
                                                        "Just to let you know...", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                                }
                                                else
                                                {
                                                    if (File.Exists(targetAddon)) File.Delete(targetAddon);
                                                    MessageBox.Show("Create theme addon operation has been cancelled.",
                                                        "Just to let you know...", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                                }
                                            }
                                            else
                                            {
                                                MessageBox.Show("Please use the default extension '.serveraddon.theme' and retry.",
                                                    "Hold your horses there, big guy!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        MessageBox.Show(String.Format("{0}\r\n\r\nPlease retry after fixing the error.", ex.Message),
                                            "ERROR: Not valid input", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                }
                                break;
                            case "Language":
                                {
                                    try
                                    {
                                        if (String.IsNullOrWhiteSpace(avalonEditProxyLanguage.textEditor.Text))
                                            return;

                                        var xElement = XElement.Parse(avalonEditProxyLanguage.textEditor.Text);
                                        String docLanguage = xElement.ToString();

                                        createAddonDialog.FilterIndex = 4;
                                        createAddonDialog.FileName = addonProject.language.addonName;
                                        if (createAddonDialog.ShowDialog() == DialogResult.OK)
                                        {
                                            if (createAddonDialog.FileName.EndsWith(".serveraddon.language"))
                                            {
                                                string targetAddon = createAddonDialog.FileName;
                                                saveAddonProperties(targetAddon, addonProject.language.addonName, AddonType.language,
                                                    addonProject.language.addonCreator, addonProject.language.addonVersion,
                                                    addonProject.language.addonDescription);
                                                if (targetAddon.saveAddonFile(AddonType.language, new string[] { docLanguage }))
                                                {
                                                    MessageBox.Show("The language addon has been created successfully!",
                                                        "Just to let you know...", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                                }
                                                else
                                                {
                                                    if (File.Exists(targetAddon)) File.Delete(targetAddon);
                                                    MessageBox.Show("Create language addon operation has been cancelled.",
                                                        "Just to let you know...", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                                }
                                            }
                                            else
                                            {
                                                MessageBox.Show("Please use the default extension '.serveraddon.language' and retry.",
                                                    "Hold your horses there, big guy!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        MessageBox.Show(String.Format("{0}\r\n\r\nPlease retry after fixing the error.", ex.Message),
                                            "ERROR: Not valid input", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                }
                                break;
                            case "MemoryPatch":
                                MessageBox.Show("codedom-jitcompile-dll-main-attach/detach");
                                break;
                        }
                        break;
                    }
                #endregion
                #region Discard
                case "disc":
                    {
                        string fromTab = source.Name.Replace("discard", string.Empty);
                        switch (fromTab)
                        {
                            case "Catalog":
                                {
                                    clearCatalogListBoxes();
                                    addonProject.catalog = new AddonProject.Catalog();
                                }
                                break;
                            case "Accent":
                                {
                                    addonProject.accent = new AddonProject.Accent();
                                    avalonEditProxyAccent.textEditor.Text = AddonProject.Accent.defaultAccentXaml;
                                }
                                break;
                            case "Theme":
                                {
                                    addonProject.theme = new AddonProject.Theme();
                                    avalonEditProxyTheme.textEditor.Text = AddonProject.Theme.defaultThemeXaml;
                                }
                                break;
                            case "Language":
                                {
                                    addonProject.language = new AddonProject.Language();
                                    avalonEditProxyLanguage.textEditor.Text = AddonProject.Language.defaultLanguageFileText;
                                }
                                break;
                            case "MemoryPatch":
                                {
                                    addonProject.memoryPatch = new AddonProject.MemoryPatch();
                                    avalonEditProxyMemoryPatch.textEditor.Text = "";
                                }
                                break;
                        }
                        break;
                    }
                    #endregion

            }
        }
        private void installAnAddonButton_Click(object sender, EventArgs e)