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)