diff --git a/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/Dialogs/Catalog/ArkAngles/ProductPropertiesDialog.Designer.cs b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/Dialogs/Catalog/ArkAngles/ProductPropertiesDialog.Designer.cs
new file mode 100644
index 00000000..249263a3
--- /dev/null
+++ b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/Dialogs/Catalog/ArkAngles/ProductPropertiesDialog.Designer.cs
@@ -0,0 +1,410 @@
+namespace UniversalEditor.Dialogs.Catalog.ArkAngles
+{
+ partial class ProductPropertiesDialogImpl
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.lblProductTitle = new System.Windows.Forms.Label();
+ this.txtProductTitle = new System.Windows.Forms.TextBox();
+ this.cboCategory = new System.Windows.Forms.ComboBox();
+ this.lblCategory = new System.Windows.Forms.Label();
+ this.lblPlatform = new System.Windows.Forms.Label();
+ this.cboPlatform = new System.Windows.Forms.ComboBox();
+ this.lblListing = new System.Windows.Forms.Label();
+ this.cboListing = new System.Windows.Forms.ComboBox();
+ this.tblKeywordsFiles = new System.Windows.Forms.TableLayoutPanel();
+ this.fraKeywords = new System.Windows.Forms.GroupBox();
+ this.cmdKeywordClear = new System.Windows.Forms.Button();
+ this.cmdKeywordRemove = new System.Windows.Forms.Button();
+ this.cmdKeywordModify = new System.Windows.Forms.Button();
+ this.cmdKeywordAdd = new System.Windows.Forms.Button();
+ this.lvKeywords = new System.Windows.Forms.ListView();
+ this.chKeyword = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.fraFiles = new System.Windows.Forms.GroupBox();
+ this.button4 = new System.Windows.Forms.Button();
+ this.button1 = new System.Windows.Forms.Button();
+ this.button3 = new System.Windows.Forms.Button();
+ this.lvFiles = new System.Windows.Forms.ListView();
+ this.chFileName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.button2 = new System.Windows.Forms.Button();
+ this.cmdCancel = new System.Windows.Forms.Button();
+ this.cmdOK = new System.Windows.Forms.Button();
+ this.tblKeywordsFiles.SuspendLayout();
+ this.fraKeywords.SuspendLayout();
+ this.fraFiles.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // lblProductTitle
+ //
+ this.lblProductTitle.AutoSize = true;
+ this.lblProductTitle.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.lblProductTitle.Location = new System.Drawing.Point(12, 15);
+ this.lblProductTitle.Name = "lblProductTitle";
+ this.lblProductTitle.Size = new System.Drawing.Size(66, 13);
+ this.lblProductTitle.TabIndex = 0;
+ this.lblProductTitle.Text = "Product &title:";
+ //
+ // txtProductTitle
+ //
+ this.txtProductTitle.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.txtProductTitle.Location = new System.Drawing.Point(84, 12);
+ this.txtProductTitle.Name = "txtProductTitle";
+ this.txtProductTitle.Size = new System.Drawing.Size(602, 20);
+ this.txtProductTitle.TabIndex = 1;
+ //
+ // cboCategory
+ //
+ this.cboCategory.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.cboCategory.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cboCategory.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.cboCategory.FormattingEnabled = true;
+ this.cboCategory.Location = new System.Drawing.Point(84, 38);
+ this.cboCategory.Name = "cboCategory";
+ this.cboCategory.Size = new System.Drawing.Size(602, 21);
+ this.cboCategory.TabIndex = 3;
+ //
+ // lblCategory
+ //
+ this.lblCategory.AutoSize = true;
+ this.lblCategory.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.lblCategory.Location = new System.Drawing.Point(12, 41);
+ this.lblCategory.Name = "lblCategory";
+ this.lblCategory.Size = new System.Drawing.Size(52, 13);
+ this.lblCategory.TabIndex = 2;
+ this.lblCategory.Text = "&Category:";
+ //
+ // lblPlatform
+ //
+ this.lblPlatform.AutoSize = true;
+ this.lblPlatform.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.lblPlatform.Location = new System.Drawing.Point(12, 68);
+ this.lblPlatform.Name = "lblPlatform";
+ this.lblPlatform.Size = new System.Drawing.Size(48, 13);
+ this.lblPlatform.TabIndex = 4;
+ this.lblPlatform.Text = "&Platform:";
+ //
+ // cboPlatform
+ //
+ this.cboPlatform.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.cboPlatform.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cboPlatform.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.cboPlatform.FormattingEnabled = true;
+ this.cboPlatform.Location = new System.Drawing.Point(84, 65);
+ this.cboPlatform.Name = "cboPlatform";
+ this.cboPlatform.Size = new System.Drawing.Size(602, 21);
+ this.cboPlatform.TabIndex = 5;
+ //
+ // lblListing
+ //
+ this.lblListing.AutoSize = true;
+ this.lblListing.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.lblListing.Location = new System.Drawing.Point(12, 95);
+ this.lblListing.Name = "lblListing";
+ this.lblListing.Size = new System.Drawing.Size(40, 13);
+ this.lblListing.TabIndex = 6;
+ this.lblListing.Text = "&Listing:";
+ //
+ // cboListing
+ //
+ this.cboListing.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.cboListing.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cboListing.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.cboListing.FormattingEnabled = true;
+ this.cboListing.Location = new System.Drawing.Point(84, 92);
+ this.cboListing.Name = "cboListing";
+ this.cboListing.Size = new System.Drawing.Size(602, 21);
+ this.cboListing.TabIndex = 7;
+ //
+ // tblKeywordsFiles
+ //
+ this.tblKeywordsFiles.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.tblKeywordsFiles.ColumnCount = 2;
+ this.tblKeywordsFiles.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
+ this.tblKeywordsFiles.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
+ this.tblKeywordsFiles.Controls.Add(this.fraKeywords, 0, 0);
+ this.tblKeywordsFiles.Controls.Add(this.fraFiles, 1, 0);
+ this.tblKeywordsFiles.Location = new System.Drawing.Point(12, 120);
+ this.tblKeywordsFiles.Name = "tblKeywordsFiles";
+ this.tblKeywordsFiles.RowCount = 1;
+ this.tblKeywordsFiles.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
+ this.tblKeywordsFiles.Size = new System.Drawing.Size(674, 169);
+ this.tblKeywordsFiles.TabIndex = 8;
+ //
+ // fraKeywords
+ //
+ this.fraKeywords.Controls.Add(this.cmdKeywordClear);
+ this.fraKeywords.Controls.Add(this.cmdKeywordRemove);
+ this.fraKeywords.Controls.Add(this.cmdKeywordModify);
+ this.fraKeywords.Controls.Add(this.cmdKeywordAdd);
+ this.fraKeywords.Controls.Add(this.lvKeywords);
+ this.fraKeywords.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.fraKeywords.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.fraKeywords.Location = new System.Drawing.Point(3, 3);
+ this.fraKeywords.Name = "fraKeywords";
+ this.fraKeywords.Size = new System.Drawing.Size(331, 163);
+ this.fraKeywords.TabIndex = 0;
+ this.fraKeywords.TabStop = false;
+ this.fraKeywords.Text = "Keywords";
+ //
+ // cmdKeywordClear
+ //
+ this.cmdKeywordClear.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.cmdKeywordClear.Enabled = false;
+ this.cmdKeywordClear.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.cmdKeywordClear.Location = new System.Drawing.Point(249, 19);
+ this.cmdKeywordClear.Name = "cmdKeywordClear";
+ this.cmdKeywordClear.Size = new System.Drawing.Size(75, 23);
+ this.cmdKeywordClear.TabIndex = 3;
+ this.cmdKeywordClear.Text = "Cl&ear";
+ this.cmdKeywordClear.UseVisualStyleBackColor = true;
+ //
+ // cmdKeywordRemove
+ //
+ this.cmdKeywordRemove.Enabled = false;
+ this.cmdKeywordRemove.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.cmdKeywordRemove.Location = new System.Drawing.Point(168, 19);
+ this.cmdKeywordRemove.Name = "cmdKeywordRemove";
+ this.cmdKeywordRemove.Size = new System.Drawing.Size(75, 23);
+ this.cmdKeywordRemove.TabIndex = 2;
+ this.cmdKeywordRemove.Text = "&Remove";
+ this.cmdKeywordRemove.UseVisualStyleBackColor = true;
+ //
+ // cmdKeywordModify
+ //
+ this.cmdKeywordModify.Enabled = false;
+ this.cmdKeywordModify.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.cmdKeywordModify.Location = new System.Drawing.Point(87, 19);
+ this.cmdKeywordModify.Name = "cmdKeywordModify";
+ this.cmdKeywordModify.Size = new System.Drawing.Size(75, 23);
+ this.cmdKeywordModify.TabIndex = 1;
+ this.cmdKeywordModify.Text = "&Modify...";
+ this.cmdKeywordModify.UseVisualStyleBackColor = true;
+ //
+ // cmdKeywordAdd
+ //
+ this.cmdKeywordAdd.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.cmdKeywordAdd.Location = new System.Drawing.Point(6, 19);
+ this.cmdKeywordAdd.Name = "cmdKeywordAdd";
+ this.cmdKeywordAdd.Size = new System.Drawing.Size(75, 23);
+ this.cmdKeywordAdd.TabIndex = 0;
+ this.cmdKeywordAdd.Text = "&Add...";
+ this.cmdKeywordAdd.UseVisualStyleBackColor = true;
+ //
+ // lvKeywords
+ //
+ this.lvKeywords.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.lvKeywords.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.chKeyword});
+ this.lvKeywords.FullRowSelect = true;
+ this.lvKeywords.GridLines = true;
+ this.lvKeywords.HideSelection = false;
+ this.lvKeywords.Location = new System.Drawing.Point(6, 48);
+ this.lvKeywords.Name = "lvKeywords";
+ this.lvKeywords.Size = new System.Drawing.Size(318, 109);
+ this.lvKeywords.TabIndex = 4;
+ this.lvKeywords.UseCompatibleStateImageBehavior = false;
+ this.lvKeywords.View = System.Windows.Forms.View.Details;
+ //
+ // chKeyword
+ //
+ this.chKeyword.Text = "Keyword";
+ this.chKeyword.Width = 307;
+ //
+ // fraFiles
+ //
+ this.fraFiles.Controls.Add(this.button4);
+ this.fraFiles.Controls.Add(this.button1);
+ this.fraFiles.Controls.Add(this.button3);
+ this.fraFiles.Controls.Add(this.lvFiles);
+ this.fraFiles.Controls.Add(this.button2);
+ this.fraFiles.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.fraFiles.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.fraFiles.Location = new System.Drawing.Point(340, 3);
+ this.fraFiles.Name = "fraFiles";
+ this.fraFiles.Size = new System.Drawing.Size(331, 163);
+ this.fraFiles.TabIndex = 1;
+ this.fraFiles.TabStop = false;
+ this.fraFiles.Text = "Files";
+ //
+ // button4
+ //
+ this.button4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.button4.Enabled = false;
+ this.button4.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.button4.Location = new System.Drawing.Point(250, 19);
+ this.button4.Name = "button4";
+ this.button4.Size = new System.Drawing.Size(75, 23);
+ this.button4.TabIndex = 3;
+ this.button4.Text = "Cl&ear";
+ this.button4.UseVisualStyleBackColor = true;
+ //
+ // button1
+ //
+ this.button1.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.button1.Location = new System.Drawing.Point(6, 19);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(75, 23);
+ this.button1.TabIndex = 0;
+ this.button1.Text = "&Add...";
+ this.button1.UseVisualStyleBackColor = true;
+ //
+ // button3
+ //
+ this.button3.Enabled = false;
+ this.button3.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.button3.Location = new System.Drawing.Point(168, 19);
+ this.button3.Name = "button3";
+ this.button3.Size = new System.Drawing.Size(75, 23);
+ this.button3.TabIndex = 2;
+ this.button3.Text = "&Remove";
+ this.button3.UseVisualStyleBackColor = true;
+ //
+ // listView1
+ //
+ this.lvFiles.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.lvFiles.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.chFileName});
+ this.lvFiles.FullRowSelect = true;
+ this.lvFiles.GridLines = true;
+ this.lvFiles.HideSelection = false;
+ this.lvFiles.Location = new System.Drawing.Point(6, 48);
+ this.lvFiles.Name = "listView1";
+ this.lvFiles.Size = new System.Drawing.Size(319, 109);
+ this.lvFiles.TabIndex = 4;
+ this.lvFiles.UseCompatibleStateImageBehavior = false;
+ this.lvFiles.View = System.Windows.Forms.View.Details;
+ //
+ // chFileName
+ //
+ this.chFileName.Text = "File name";
+ this.chFileName.Width = 309;
+ //
+ // button2
+ //
+ this.button2.Enabled = false;
+ this.button2.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.button2.Location = new System.Drawing.Point(87, 19);
+ this.button2.Name = "button2";
+ this.button2.Size = new System.Drawing.Size(75, 23);
+ this.button2.TabIndex = 1;
+ this.button2.Text = "&Modify...";
+ this.button2.UseVisualStyleBackColor = true;
+ //
+ // cmdCancel
+ //
+ this.cmdCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.cmdCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.cmdCancel.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.cmdCancel.Location = new System.Drawing.Point(611, 295);
+ this.cmdCancel.Name = "cmdCancel";
+ this.cmdCancel.Size = new System.Drawing.Size(75, 23);
+ this.cmdCancel.TabIndex = 10;
+ this.cmdCancel.Text = "Ca&ncel";
+ this.cmdCancel.UseVisualStyleBackColor = true;
+ this.cmdCancel.Click += new System.EventHandler(this.cmdCancel_Click);
+ //
+ // cmdOK
+ //
+ this.cmdOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.cmdOK.FlatStyle = System.Windows.Forms.FlatStyle.System;
+ this.cmdOK.Location = new System.Drawing.Point(530, 295);
+ this.cmdOK.Name = "cmdOK";
+ this.cmdOK.Size = new System.Drawing.Size(75, 23);
+ this.cmdOK.TabIndex = 9;
+ this.cmdOK.Text = "&OK";
+ this.cmdOK.UseVisualStyleBackColor = true;
+ this.cmdOK.Click += new System.EventHandler(this.cmdOK_Click);
+ //
+ // ProductPropertiesDialogImpl
+ //
+ this.AcceptButton = this.cmdOK;
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.CancelButton = this.cmdCancel;
+ this.ClientSize = new System.Drawing.Size(698, 330);
+ this.Controls.Add(this.cmdOK);
+ this.Controls.Add(this.cmdCancel);
+ this.Controls.Add(this.tblKeywordsFiles);
+ this.Controls.Add(this.cboListing);
+ this.Controls.Add(this.cboPlatform);
+ this.Controls.Add(this.lblListing);
+ this.Controls.Add(this.cboCategory);
+ this.Controls.Add(this.lblPlatform);
+ this.Controls.Add(this.txtProductTitle);
+ this.Controls.Add(this.lblCategory);
+ this.Controls.Add(this.lblProductTitle);
+ this.MinimumSize = new System.Drawing.Size(714, 369);
+ this.Name = "ProductPropertiesDialogImpl";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Text = "Product Properties";
+ this.tblKeywordsFiles.ResumeLayout(false);
+ this.fraKeywords.ResumeLayout(false);
+ this.fraFiles.ResumeLayout(false);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label lblProductTitle;
+ internal System.Windows.Forms.TextBox txtProductTitle;
+ internal System.Windows.Forms.ComboBox cboCategory;
+ private System.Windows.Forms.Label lblCategory;
+ private System.Windows.Forms.Label lblPlatform;
+ internal System.Windows.Forms.ComboBox cboPlatform;
+ private System.Windows.Forms.Label lblListing;
+ internal System.Windows.Forms.ComboBox cboListing;
+ private System.Windows.Forms.TableLayoutPanel tblKeywordsFiles;
+ private System.Windows.Forms.GroupBox fraKeywords;
+ private System.Windows.Forms.GroupBox fraFiles;
+ private System.Windows.Forms.Button cmdCancel;
+ private System.Windows.Forms.Button cmdOK;
+ internal System.Windows.Forms.ListView lvKeywords;
+ private System.Windows.Forms.Button cmdKeywordAdd;
+ private System.Windows.Forms.Button cmdKeywordClear;
+ private System.Windows.Forms.Button cmdKeywordRemove;
+ private System.Windows.Forms.Button cmdKeywordModify;
+ private System.Windows.Forms.Button button4;
+ private System.Windows.Forms.Button button1;
+ private System.Windows.Forms.Button button3;
+ internal System.Windows.Forms.ListView lvFiles;
+ private System.Windows.Forms.Button button2;
+ private System.Windows.Forms.ColumnHeader chKeyword;
+ private System.Windows.Forms.ColumnHeader chFileName;
+ }
+}
\ No newline at end of file
diff --git a/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/Dialogs/Catalog/ArkAngles/ProductPropertiesDialog.cs b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/Dialogs/Catalog/ArkAngles/ProductPropertiesDialog.cs
new file mode 100644
index 00000000..a48d77e4
--- /dev/null
+++ b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/Dialogs/Catalog/ArkAngles/ProductPropertiesDialog.cs
@@ -0,0 +1,84 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using UniversalEditor.ObjectModels.Catalog.ArkAngles;
+
+namespace UniversalEditor.Dialogs.Catalog.ArkAngles
+{
+ internal partial class ProductPropertiesDialogImpl : Form
+ {
+ public ProductPropertiesDialogImpl()
+ {
+ InitializeComponent();
+ }
+
+ private void label4_Click(object sender, EventArgs e)
+ {
+
+ }
+
+ private void cmdCancel_Click(object sender, EventArgs e)
+ {
+ this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.Close();
+ }
+
+ private void cmdOK_Click(object sender, EventArgs e)
+ {
+ if (!String.IsNullOrEmpty(txtProductTitle.Text))
+ {
+ MessageBox.Show("Please enter a product title.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ if (cboCategory.SelectedIndex == -1)
+ {
+ MessageBox.Show("Please select a category.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ if (cboPlatform.SelectedIndex == -1)
+ {
+ MessageBox.Show("Please select a platform.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+ if (cboListing.SelectedIndex == -1)
+ {
+ MessageBox.Show("Please select a listing.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ this.DialogResult = System.Windows.Forms.DialogResult.OK;
+ this.Close();
+ }
+ }
+ public class ProductPropertiesDialog
+ {
+ private string mvarTitle = String.Empty;
+ public string Title { get { return mvarTitle; } set { mvarTitle = value; } }
+
+ private Category mvarCategory = null;
+ public Category Category { get { return mvarCategory; } set { mvarCategory = value; } }
+
+ private Platform mvarPlatform = null;
+ public Platform Platform { get { return mvarPlatform; } set { mvarPlatform = value; } }
+
+ private Listing mvarListing = null;
+ public Listing Listing { get { return mvarListing; } set { mvarListing = value; } }
+
+ public DialogResult ShowDialog()
+ {
+ ProductPropertiesDialogImpl dlg = new ProductPropertiesDialogImpl();
+ dlg.txtProductTitle.Text = mvarTitle;
+ if (dlg.ShowDialog() == DialogResult.OK)
+ {
+ mvarTitle = dlg.txtProductTitle.Text;
+ return DialogResult.OK;
+ }
+ return DialogResult.Cancel;
+ }
+ }
+}
diff --git a/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/Dialogs/Catalog/ArkAngles/ProductPropertiesDialog.resx b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/Dialogs/Catalog/ArkAngles/ProductPropertiesDialog.resx
new file mode 100644
index 00000000..7080a7d1
--- /dev/null
+++ b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/Dialogs/Catalog/ArkAngles/ProductPropertiesDialog.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/Editors/Catalog/ArkAngles/ArkAnglesCatalogEditor.Designer.cs b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/Editors/Catalog/ArkAngles/ArkAnglesCatalogEditor.Designer.cs
new file mode 100644
index 00000000..28711930
--- /dev/null
+++ b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/Editors/Catalog/ArkAngles/ArkAnglesCatalogEditor.Designer.cs
@@ -0,0 +1,561 @@
+namespace UniversalEditor.Editors.Catalog.ArkAngles
+{
+ partial class ArkAnglesCatalogEditor
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.Windows.Forms.TreeNode treeNode16 = new System.Windows.Forms.TreeNode("General");
+ System.Windows.Forms.TreeNode treeNode17 = new System.Windows.Forms.TreeNode("Categories");
+ System.Windows.Forms.TreeNode treeNode18 = new System.Windows.Forms.TreeNode("Platforms");
+ System.Windows.Forms.TreeNode treeNode19 = new System.Windows.Forms.TreeNode("Listings");
+ System.Windows.Forms.TreeNode treeNode20 = new System.Windows.Forms.TreeNode("Products");
+ this.scMain = new System.Windows.Forms.SplitContainer();
+ this.tv = new System.Windows.Forms.TreeView();
+ this.pnlGeneral = new System.Windows.Forms.Panel();
+ this.pnlCategories = new System.Windows.Forms.Panel();
+ this.pnlPlatforms = new System.Windows.Forms.Panel();
+ this.pnlListings = new System.Windows.Forms.Panel();
+ this.pnlProducts = new System.Windows.Forms.Panel();
+ this.lvProducts = new System.Windows.Forms.ListView();
+ this.cmdProductAdd = new System.Windows.Forms.Button();
+ this.cmdProductModify = new System.Windows.Forms.Button();
+ this.cmdProductRemove = new System.Windows.Forms.Button();
+ this.cmdProductClear = new System.Windows.Forms.Button();
+ this.chProductTitle = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.chProductCategory = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.chProductPlatform = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.chProductListing = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.button1 = new System.Windows.Forms.Button();
+ this.button2 = new System.Windows.Forms.Button();
+ this.button3 = new System.Windows.Forms.Button();
+ this.button4 = new System.Windows.Forms.Button();
+ this.listView1 = new System.Windows.Forms.ListView();
+ this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.button5 = new System.Windows.Forms.Button();
+ this.button6 = new System.Windows.Forms.Button();
+ this.button7 = new System.Windows.Forms.Button();
+ this.button8 = new System.Windows.Forms.Button();
+ this.listView2 = new System.Windows.Forms.ListView();
+ this.columnHeader5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeader6 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeader7 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeader8 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.button9 = new System.Windows.Forms.Button();
+ this.button10 = new System.Windows.Forms.Button();
+ this.button11 = new System.Windows.Forms.Button();
+ this.button12 = new System.Windows.Forms.Button();
+ this.listView3 = new System.Windows.Forms.ListView();
+ this.columnHeader9 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeader10 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeader11 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeader12 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.scMain.Panel1.SuspendLayout();
+ this.scMain.Panel2.SuspendLayout();
+ this.scMain.SuspendLayout();
+ this.pnlCategories.SuspendLayout();
+ this.pnlPlatforms.SuspendLayout();
+ this.pnlListings.SuspendLayout();
+ this.pnlProducts.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // scMain
+ //
+ this.scMain.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.scMain.Location = new System.Drawing.Point(0, 0);
+ this.scMain.Name = "scMain";
+ //
+ // scMain.Panel1
+ //
+ this.scMain.Panel1.Controls.Add(this.tv);
+ //
+ // scMain.Panel2
+ //
+ this.scMain.Panel2.Controls.Add(this.pnlProducts);
+ this.scMain.Panel2.Controls.Add(this.pnlListings);
+ this.scMain.Panel2.Controls.Add(this.pnlPlatforms);
+ this.scMain.Panel2.Controls.Add(this.pnlCategories);
+ this.scMain.Panel2.Controls.Add(this.pnlGeneral);
+ this.scMain.Size = new System.Drawing.Size(492, 376);
+ this.scMain.SplitterDistance = 164;
+ this.scMain.TabIndex = 0;
+ //
+ // tv
+ //
+ this.tv.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tv.HideSelection = false;
+ this.tv.Location = new System.Drawing.Point(0, 0);
+ this.tv.Name = "tv";
+ treeNode16.Name = "nodeGeneral";
+ treeNode16.Text = "General";
+ treeNode17.Name = "nodeCategories";
+ treeNode17.Text = "Categories";
+ treeNode18.Name = "nodePlatforms";
+ treeNode18.Text = "Platforms";
+ treeNode19.Name = "nodeListings";
+ treeNode19.Text = "Listings";
+ treeNode20.Name = "nodeProducts";
+ treeNode20.Text = "Products";
+ this.tv.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
+ treeNode16,
+ treeNode17,
+ treeNode18,
+ treeNode19,
+ treeNode20});
+ this.tv.Size = new System.Drawing.Size(164, 376);
+ this.tv.TabIndex = 0;
+ this.tv.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tv_AfterSelect);
+ //
+ // pnlGeneral
+ //
+ this.pnlGeneral.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.pnlGeneral.Location = new System.Drawing.Point(0, 0);
+ this.pnlGeneral.Name = "pnlGeneral";
+ this.pnlGeneral.Size = new System.Drawing.Size(324, 376);
+ this.pnlGeneral.TabIndex = 0;
+ //
+ // pnlCategories
+ //
+ this.pnlCategories.Controls.Add(this.button9);
+ this.pnlCategories.Controls.Add(this.button10);
+ this.pnlCategories.Controls.Add(this.button11);
+ this.pnlCategories.Controls.Add(this.button12);
+ this.pnlCategories.Controls.Add(this.listView3);
+ this.pnlCategories.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.pnlCategories.Location = new System.Drawing.Point(0, 0);
+ this.pnlCategories.Name = "pnlCategories";
+ this.pnlCategories.Size = new System.Drawing.Size(324, 376);
+ this.pnlCategories.TabIndex = 1;
+ //
+ // pnlPlatforms
+ //
+ this.pnlPlatforms.Controls.Add(this.button5);
+ this.pnlPlatforms.Controls.Add(this.button6);
+ this.pnlPlatforms.Controls.Add(this.button7);
+ this.pnlPlatforms.Controls.Add(this.button8);
+ this.pnlPlatforms.Controls.Add(this.listView2);
+ this.pnlPlatforms.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.pnlPlatforms.Location = new System.Drawing.Point(0, 0);
+ this.pnlPlatforms.Name = "pnlPlatforms";
+ this.pnlPlatforms.Size = new System.Drawing.Size(324, 376);
+ this.pnlPlatforms.TabIndex = 2;
+ //
+ // pnlListings
+ //
+ this.pnlListings.Controls.Add(this.button1);
+ this.pnlListings.Controls.Add(this.button2);
+ this.pnlListings.Controls.Add(this.button3);
+ this.pnlListings.Controls.Add(this.button4);
+ this.pnlListings.Controls.Add(this.listView1);
+ this.pnlListings.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.pnlListings.Location = new System.Drawing.Point(0, 0);
+ this.pnlListings.Name = "pnlListings";
+ this.pnlListings.Size = new System.Drawing.Size(324, 376);
+ this.pnlListings.TabIndex = 3;
+ //
+ // pnlProducts
+ //
+ this.pnlProducts.Controls.Add(this.cmdProductClear);
+ this.pnlProducts.Controls.Add(this.cmdProductRemove);
+ this.pnlProducts.Controls.Add(this.cmdProductModify);
+ this.pnlProducts.Controls.Add(this.cmdProductAdd);
+ this.pnlProducts.Controls.Add(this.lvProducts);
+ this.pnlProducts.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.pnlProducts.Location = new System.Drawing.Point(0, 0);
+ this.pnlProducts.Name = "pnlProducts";
+ this.pnlProducts.Size = new System.Drawing.Size(324, 376);
+ this.pnlProducts.TabIndex = 4;
+ //
+ // lvProducts
+ //
+ this.lvProducts.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.lvProducts.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.chProductTitle,
+ this.chProductCategory,
+ this.chProductPlatform,
+ this.chProductListing});
+ this.lvProducts.FullRowSelect = true;
+ this.lvProducts.GridLines = true;
+ this.lvProducts.HideSelection = false;
+ this.lvProducts.Location = new System.Drawing.Point(3, 32);
+ this.lvProducts.Name = "lvProducts";
+ this.lvProducts.Size = new System.Drawing.Size(318, 341);
+ this.lvProducts.TabIndex = 0;
+ this.lvProducts.UseCompatibleStateImageBehavior = false;
+ this.lvProducts.View = System.Windows.Forms.View.Details;
+ //
+ // cmdProductAdd
+ //
+ this.cmdProductAdd.Location = new System.Drawing.Point(3, 3);
+ this.cmdProductAdd.Name = "cmdProductAdd";
+ this.cmdProductAdd.Size = new System.Drawing.Size(75, 23);
+ this.cmdProductAdd.TabIndex = 1;
+ this.cmdProductAdd.Text = "&Add";
+ this.cmdProductAdd.UseVisualStyleBackColor = true;
+ this.cmdProductAdd.Click += new System.EventHandler(this.cmdProductAdd_Click);
+ //
+ // cmdProductModify
+ //
+ this.cmdProductModify.Location = new System.Drawing.Point(84, 3);
+ this.cmdProductModify.Name = "cmdProductModify";
+ this.cmdProductModify.Size = new System.Drawing.Size(75, 23);
+ this.cmdProductModify.TabIndex = 1;
+ this.cmdProductModify.Text = "&Modify";
+ this.cmdProductModify.UseVisualStyleBackColor = true;
+ //
+ // cmdProductRemove
+ //
+ this.cmdProductRemove.Location = new System.Drawing.Point(165, 3);
+ this.cmdProductRemove.Name = "cmdProductRemove";
+ this.cmdProductRemove.Size = new System.Drawing.Size(75, 23);
+ this.cmdProductRemove.TabIndex = 1;
+ this.cmdProductRemove.Text = "&Remove";
+ this.cmdProductRemove.UseVisualStyleBackColor = true;
+ //
+ // cmdProductClear
+ //
+ this.cmdProductClear.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.cmdProductClear.Location = new System.Drawing.Point(246, 3);
+ this.cmdProductClear.Name = "cmdProductClear";
+ this.cmdProductClear.Size = new System.Drawing.Size(75, 23);
+ this.cmdProductClear.TabIndex = 1;
+ this.cmdProductClear.Text = "&Clear";
+ this.cmdProductClear.UseVisualStyleBackColor = true;
+ //
+ // chProductTitle
+ //
+ this.chProductTitle.Text = "Title";
+ this.chProductTitle.Width = 113;
+ //
+ // chProductCategory
+ //
+ this.chProductCategory.Text = "Category";
+ //
+ // chProductPlatform
+ //
+ this.chProductPlatform.Text = "Platform";
+ //
+ // chProductListing
+ //
+ this.chProductListing.Text = "Listing";
+ this.chProductListing.Width = 81;
+ //
+ // button1
+ //
+ this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.button1.Location = new System.Drawing.Point(246, 3);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(75, 23);
+ this.button1.TabIndex = 3;
+ this.button1.Text = "&Clear";
+ this.button1.UseVisualStyleBackColor = true;
+ //
+ // button2
+ //
+ this.button2.Location = new System.Drawing.Point(165, 3);
+ this.button2.Name = "button2";
+ this.button2.Size = new System.Drawing.Size(75, 23);
+ this.button2.TabIndex = 4;
+ this.button2.Text = "&Remove";
+ this.button2.UseVisualStyleBackColor = true;
+ //
+ // button3
+ //
+ this.button3.Location = new System.Drawing.Point(84, 3);
+ this.button3.Name = "button3";
+ this.button3.Size = new System.Drawing.Size(75, 23);
+ this.button3.TabIndex = 5;
+ this.button3.Text = "&Modify";
+ this.button3.UseVisualStyleBackColor = true;
+ //
+ // button4
+ //
+ this.button4.Location = new System.Drawing.Point(3, 3);
+ this.button4.Name = "button4";
+ this.button4.Size = new System.Drawing.Size(75, 23);
+ this.button4.TabIndex = 6;
+ this.button4.Text = "&Add";
+ this.button4.UseVisualStyleBackColor = true;
+ //
+ // listView1
+ //
+ this.listView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.columnHeader1,
+ this.columnHeader2,
+ this.columnHeader3,
+ this.columnHeader4});
+ this.listView1.FullRowSelect = true;
+ this.listView1.GridLines = true;
+ this.listView1.HideSelection = false;
+ this.listView1.Location = new System.Drawing.Point(3, 32);
+ this.listView1.Name = "listView1";
+ this.listView1.Size = new System.Drawing.Size(318, 341);
+ this.listView1.TabIndex = 2;
+ this.listView1.UseCompatibleStateImageBehavior = false;
+ this.listView1.View = System.Windows.Forms.View.Details;
+ //
+ // columnHeader1
+ //
+ this.columnHeader1.Text = "Title";
+ this.columnHeader1.Width = 113;
+ //
+ // columnHeader2
+ //
+ this.columnHeader2.Text = "Category";
+ //
+ // columnHeader3
+ //
+ this.columnHeader3.Text = "Platform";
+ //
+ // columnHeader4
+ //
+ this.columnHeader4.Text = "Listing";
+ this.columnHeader4.Width = 81;
+ //
+ // button5
+ //
+ this.button5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.button5.Location = new System.Drawing.Point(246, 3);
+ this.button5.Name = "button5";
+ this.button5.Size = new System.Drawing.Size(75, 23);
+ this.button5.TabIndex = 3;
+ this.button5.Text = "&Clear";
+ this.button5.UseVisualStyleBackColor = true;
+ //
+ // button6
+ //
+ this.button6.Location = new System.Drawing.Point(165, 3);
+ this.button6.Name = "button6";
+ this.button6.Size = new System.Drawing.Size(75, 23);
+ this.button6.TabIndex = 4;
+ this.button6.Text = "&Remove";
+ this.button6.UseVisualStyleBackColor = true;
+ //
+ // button7
+ //
+ this.button7.Location = new System.Drawing.Point(84, 3);
+ this.button7.Name = "button7";
+ this.button7.Size = new System.Drawing.Size(75, 23);
+ this.button7.TabIndex = 5;
+ this.button7.Text = "&Modify";
+ this.button7.UseVisualStyleBackColor = true;
+ //
+ // button8
+ //
+ this.button8.Location = new System.Drawing.Point(3, 3);
+ this.button8.Name = "button8";
+ this.button8.Size = new System.Drawing.Size(75, 23);
+ this.button8.TabIndex = 6;
+ this.button8.Text = "&Add";
+ this.button8.UseVisualStyleBackColor = true;
+ //
+ // listView2
+ //
+ this.listView2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.listView2.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.columnHeader5,
+ this.columnHeader6,
+ this.columnHeader7,
+ this.columnHeader8});
+ this.listView2.FullRowSelect = true;
+ this.listView2.GridLines = true;
+ this.listView2.HideSelection = false;
+ this.listView2.Location = new System.Drawing.Point(3, 32);
+ this.listView2.Name = "listView2";
+ this.listView2.Size = new System.Drawing.Size(318, 341);
+ this.listView2.TabIndex = 2;
+ this.listView2.UseCompatibleStateImageBehavior = false;
+ this.listView2.View = System.Windows.Forms.View.Details;
+ //
+ // columnHeader5
+ //
+ this.columnHeader5.Text = "Title";
+ this.columnHeader5.Width = 113;
+ //
+ // columnHeader6
+ //
+ this.columnHeader6.Text = "Category";
+ //
+ // columnHeader7
+ //
+ this.columnHeader7.Text = "Platform";
+ //
+ // columnHeader8
+ //
+ this.columnHeader8.Text = "Listing";
+ this.columnHeader8.Width = 81;
+ //
+ // button9
+ //
+ this.button9.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.button9.Location = new System.Drawing.Point(246, 3);
+ this.button9.Name = "button9";
+ this.button9.Size = new System.Drawing.Size(75, 23);
+ this.button9.TabIndex = 3;
+ this.button9.Text = "&Clear";
+ this.button9.UseVisualStyleBackColor = true;
+ //
+ // button10
+ //
+ this.button10.Location = new System.Drawing.Point(165, 3);
+ this.button10.Name = "button10";
+ this.button10.Size = new System.Drawing.Size(75, 23);
+ this.button10.TabIndex = 4;
+ this.button10.Text = "&Remove";
+ this.button10.UseVisualStyleBackColor = true;
+ //
+ // button11
+ //
+ this.button11.Location = new System.Drawing.Point(84, 3);
+ this.button11.Name = "button11";
+ this.button11.Size = new System.Drawing.Size(75, 23);
+ this.button11.TabIndex = 5;
+ this.button11.Text = "&Modify";
+ this.button11.UseVisualStyleBackColor = true;
+ //
+ // button12
+ //
+ this.button12.Location = new System.Drawing.Point(3, 3);
+ this.button12.Name = "button12";
+ this.button12.Size = new System.Drawing.Size(75, 23);
+ this.button12.TabIndex = 6;
+ this.button12.Text = "&Add";
+ this.button12.UseVisualStyleBackColor = true;
+ //
+ // listView3
+ //
+ this.listView3.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.listView3.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.columnHeader9,
+ this.columnHeader10,
+ this.columnHeader11,
+ this.columnHeader12});
+ this.listView3.FullRowSelect = true;
+ this.listView3.GridLines = true;
+ this.listView3.HideSelection = false;
+ this.listView3.Location = new System.Drawing.Point(3, 32);
+ this.listView3.Name = "listView3";
+ this.listView3.Size = new System.Drawing.Size(318, 341);
+ this.listView3.TabIndex = 2;
+ this.listView3.UseCompatibleStateImageBehavior = false;
+ this.listView3.View = System.Windows.Forms.View.Details;
+ //
+ // columnHeader9
+ //
+ this.columnHeader9.Text = "Title";
+ this.columnHeader9.Width = 113;
+ //
+ // columnHeader10
+ //
+ this.columnHeader10.Text = "Category";
+ //
+ // columnHeader11
+ //
+ this.columnHeader11.Text = "Platform";
+ //
+ // columnHeader12
+ //
+ this.columnHeader12.Text = "Listing";
+ this.columnHeader12.Width = 81;
+ //
+ // ArkAnglesCatalogEditor
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.scMain);
+ this.MinimumSize = new System.Drawing.Size(492, 376);
+ this.Name = "ArkAnglesCatalogEditor";
+ this.Size = new System.Drawing.Size(492, 376);
+ this.scMain.Panel1.ResumeLayout(false);
+ this.scMain.Panel2.ResumeLayout(false);
+ this.scMain.ResumeLayout(false);
+ this.pnlCategories.ResumeLayout(false);
+ this.pnlPlatforms.ResumeLayout(false);
+ this.pnlListings.ResumeLayout(false);
+ this.pnlProducts.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.SplitContainer scMain;
+ private System.Windows.Forms.TreeView tv;
+ private System.Windows.Forms.Panel pnlGeneral;
+ private System.Windows.Forms.Panel pnlListings;
+ private System.Windows.Forms.Panel pnlPlatforms;
+ private System.Windows.Forms.Panel pnlCategories;
+ private System.Windows.Forms.Panel pnlProducts;
+ private System.Windows.Forms.Button cmdProductClear;
+ private System.Windows.Forms.Button cmdProductRemove;
+ private System.Windows.Forms.Button cmdProductModify;
+ private System.Windows.Forms.Button cmdProductAdd;
+ private System.Windows.Forms.ListView lvProducts;
+ private System.Windows.Forms.ColumnHeader chProductTitle;
+ private System.Windows.Forms.ColumnHeader chProductCategory;
+ private System.Windows.Forms.ColumnHeader chProductPlatform;
+ private System.Windows.Forms.ColumnHeader chProductListing;
+ private System.Windows.Forms.Button button1;
+ private System.Windows.Forms.Button button2;
+ private System.Windows.Forms.Button button3;
+ private System.Windows.Forms.Button button4;
+ private System.Windows.Forms.ListView listView1;
+ private System.Windows.Forms.ColumnHeader columnHeader1;
+ private System.Windows.Forms.ColumnHeader columnHeader2;
+ private System.Windows.Forms.ColumnHeader columnHeader3;
+ private System.Windows.Forms.ColumnHeader columnHeader4;
+ private System.Windows.Forms.Button button5;
+ private System.Windows.Forms.Button button6;
+ private System.Windows.Forms.Button button7;
+ private System.Windows.Forms.Button button8;
+ private System.Windows.Forms.ListView listView2;
+ private System.Windows.Forms.ColumnHeader columnHeader5;
+ private System.Windows.Forms.ColumnHeader columnHeader6;
+ private System.Windows.Forms.ColumnHeader columnHeader7;
+ private System.Windows.Forms.ColumnHeader columnHeader8;
+ private System.Windows.Forms.Button button9;
+ private System.Windows.Forms.Button button10;
+ private System.Windows.Forms.Button button11;
+ private System.Windows.Forms.Button button12;
+ private System.Windows.Forms.ListView listView3;
+ private System.Windows.Forms.ColumnHeader columnHeader9;
+ private System.Windows.Forms.ColumnHeader columnHeader10;
+ private System.Windows.Forms.ColumnHeader columnHeader11;
+ private System.Windows.Forms.ColumnHeader columnHeader12;
+ }
+}
diff --git a/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/Editors/Catalog/ArkAngles/ArkAnglesCatalogEditor.cs b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/Editors/Catalog/ArkAngles/ArkAnglesCatalogEditor.cs
new file mode 100644
index 00000000..dffa3bfe
--- /dev/null
+++ b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/Editors/Catalog/ArkAngles/ArkAnglesCatalogEditor.cs
@@ -0,0 +1,57 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using UniversalEditor.Dialogs.Catalog.ArkAngles;
+
+namespace UniversalEditor.Editors.Catalog.ArkAngles
+{
+ public partial class ArkAnglesCatalogEditor : UserControl
+ {
+ public ArkAnglesCatalogEditor()
+ {
+ InitializeComponent();
+ }
+
+ private void SwitchTo(string name)
+ {
+ foreach (Control ctl in scMain.Panel2.Controls)
+ {
+ if (name != null && (ctl.Name.Substring(3) == name))
+ {
+ ctl.Enabled = true;
+ ctl.Visible = true;
+ continue;
+ }
+
+ ctl.Visible = false;
+ ctl.Enabled = false;
+ }
+ }
+
+ private void tv_AfterSelect(object sender, TreeViewEventArgs e)
+ {
+ if (e.Node != null)
+ {
+ SwitchTo(e.Node.Name.Substring(4));
+ }
+ else
+ {
+ SwitchTo(null);
+ }
+ }
+
+ private void cmdProductAdd_Click(object sender, EventArgs e)
+ {
+ ProductPropertiesDialog dlg = new ProductPropertiesDialog();
+ if (dlg.ShowDialog() == DialogResult.OK)
+ {
+
+ }
+ }
+ }
+}
diff --git a/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/Editors/Catalog/ArkAngles/ArkAnglesCatalogEditor.resx b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/Editors/Catalog/ArkAngles/ArkAnglesCatalogEditor.resx
new file mode 100644
index 00000000..7080a7d1
--- /dev/null
+++ b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/Editors/Catalog/ArkAngles/ArkAnglesCatalogEditor.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms.csproj b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms.csproj
index 37df0e8f..982708a9 100644
--- a/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms.csproj
+++ b/CSharp/Engines/WindowsForms/Plugins/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms/UniversalEditor.Plugins.ArkAngles.UserInterface.WindowsForms.csproj
@@ -33,10 +33,24 @@
+
+
+
+ Form
+
+
+ ProductPropertiesDialog.cs
+
+
+ UserControl
+
+
+ ArkAnglesCatalogEditor.cs
+
UserControl
@@ -51,6 +65,12 @@
+
+ ProductPropertiesDialog.cs
+
+
+ ArkAnglesCatalogEditor.cs
+
ArkAnglesSetupEditor.cs
diff --git a/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/DataFormats/Catalog/ArkAngles/SELDataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/DataFormats/Catalog/ArkAngles/SELDataFormat.cs
new file mode 100644
index 00000000..44477687
--- /dev/null
+++ b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/DataFormats/Catalog/ArkAngles/SELDataFormat.cs
@@ -0,0 +1,141 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using UniversalEditor.IO;
+using UniversalEditor.ObjectModels.Catalog.ArkAngles;
+
+namespace UniversalEditor.DataFormats.Catalog.ArkAngles
+{
+ public class SELDataFormat : DataFormat
+ {
+ private static DataFormatReference _dfr = null;
+ protected override DataFormatReference MakeReferenceInternal()
+ {
+ if (_dfr == null)
+ {
+ _dfr = base.MakeReferenceInternal();
+ }
+ return _dfr;
+ }
+
+ protected override void LoadInternal(ref ObjectModel objectModel)
+ {
+ CatalogObjectModel catalog = (objectModel as CatalogObjectModel);
+ if (catalog == null) throw new ObjectModelNotSupportedException();
+
+ Reader reader = base.Accessor.Reader;
+ while (!reader.EndOfStream)
+ {
+ string line = reader.ReadLine();
+
+ string command = line;
+ string paramzLine = String.Empty;
+ if (line.Contains(" "))
+ {
+ int i = line.IndexOf(' ');
+ command = line.Substring(0, i);
+ paramzLine = line.Substring(i + 1);
+ }
+
+ string[] paramz = paramzLine.Split(new char[] { ',' });
+ List realParamz = new List();
+ foreach (string paramm in paramz)
+ {
+ realParamz.Add(paramm.Trim());
+ }
+ paramz = realParamz.ToArray();
+
+ switch (command.ToLower())
+ {
+ case "title":
+ {
+ catalog.HeaderText = paramzLine;
+ break;
+ }
+ case "help":
+ {
+ catalog.HelpFileName = paramzLine;
+ break;
+ }
+ case "msg":
+ {
+ catalog.FooterText = paramzLine;
+ break;
+ }
+ case "call":
+ {
+ // TODO: implement imported files
+ break;
+ }
+ case "category":
+ {
+ catalog.Categories.Add(paramzLine);
+ break;
+ }
+ case "platform":
+ {
+ catalog.Platforms.Add(paramzLine);
+ break;
+ }
+ case "listing":
+ {
+ catalog.Listings.Add(paramzLine);
+ break;
+ }
+ case "product":
+ {
+ Product product = new Product();
+ if (paramz.Length > 0)
+ {
+ product.Title = paramz[0];
+ if (paramz.Length > 1)
+ {
+ product.Category = catalog.Categories[paramz[1]];
+ if (paramz.Length > 2)
+ {
+ product.Platform = catalog.Platforms[paramz[2]];
+ if (paramz.Length > 3)
+ {
+ product.Listing = catalog.Listings[paramz[3]];
+ if (paramz.Length > 4)
+ {
+ string[] keywords = paramz[4].Split(new char[] { ' ' });
+ foreach (string keyword in keywords)
+ {
+ product.Keywords.Add(keyword);
+ }
+ if (paramz.Length > 5)
+ {
+ string[] filenames = paramz[5].Split(new char[] { ' ' });
+ foreach (string fileName in filenames)
+ {
+ product.AssociatedFiles.Add(fileName);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ catalog.Products.Add(product);
+ break;
+ }
+ }
+ }
+ }
+
+ protected override void SaveInternal(ObjectModel objectModel)
+ {
+ CatalogObjectModel catalog = (objectModel as CatalogObjectModel);
+ if (catalog == null) throw new ObjectModelNotSupportedException();
+
+ Writer writer = base.Accessor.Writer;
+
+ foreach (Category category in catalog.Categories)
+ {
+ writer.WriteLine("CATEGORY " + category.Title);
+ }
+ }
+ }
+}
diff --git a/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/ObjectModels/Catalog/ArkAngles/CatalogObjectModel.cs b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/ObjectModels/Catalog/ArkAngles/CatalogObjectModel.cs
new file mode 100644
index 00000000..e5099322
--- /dev/null
+++ b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/ObjectModels/Catalog/ArkAngles/CatalogObjectModel.cs
@@ -0,0 +1,100 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace UniversalEditor.ObjectModels.Catalog.ArkAngles
+{
+ ///
+ /// Stores information about software products.
+ ///
+ public class CatalogObjectModel : ObjectModel
+ {
+ private static ObjectModelReference _omr = null;
+ protected override ObjectModelReference MakeReferenceInternal()
+ {
+ if (_omr == null)
+ {
+ _omr = base.MakeReferenceInternal();
+ _omr.Title = "Catalog";
+ _omr.Path = new string[] { "Catalog", "Ark Angles" };
+ }
+ return _omr;
+ }
+
+ private Category.CategoryCollection mvarCategories = new Category.CategoryCollection();
+ ///
+ /// The categories contained in this catalog.
+ ///
+ public Category.CategoryCollection Categories { get { return mvarCategories; } }
+
+ private string mvarFooterText = String.Empty;
+ ///
+ /// The text shown at the bottom of the catalog window.
+ ///
+ public string FooterText { get { return mvarFooterText; } set { mvarFooterText = value; } }
+
+ private string mvarHeaderText = String.Empty;
+ ///
+ /// The text shown at the top of the catalog window.
+ ///
+ public string HeaderText { get { return mvarHeaderText; } set { mvarHeaderText = value; } }
+
+ private string mvarHelpFileName = String.Empty;
+ ///
+ /// The file name of the help file to open when the Help button is clicked. If this value is empty, the Help button is not displayed.
+ ///
+ public string HelpFileName { get { return mvarHelpFileName; } set { mvarHelpFileName = value; } }
+
+ private Platform.PlatformCollection mvarPlatforms = new Platform.PlatformCollection();
+ ///
+ /// The platforms contained in this catalog.
+ ///
+ public Platform.PlatformCollection Platforms { get { return mvarPlatforms; } }
+
+ private Listing.ListingCollection mvarListings = new Listing.ListingCollection();
+ ///
+ /// The listings contained in this catalog.
+ ///
+ public Listing.ListingCollection Listings { get { return mvarListings; } }
+
+ private Product.ProductCollection mvarProducts = new Product.ProductCollection();
+ ///
+ /// The products listed within this catalog.
+ ///
+ public Product.ProductCollection Products { get { return mvarProducts; } }
+
+ public override void Clear()
+ {
+ mvarCategories.Clear();
+ mvarFooterText = String.Empty;
+ mvarHeaderText = String.Empty;
+ mvarListings.Clear();
+ mvarPlatforms.Clear();
+ mvarProducts.Clear();
+ }
+
+ public override void CopyTo(ObjectModel where)
+ {
+ CatalogObjectModel clone = (where as CatalogObjectModel);
+ foreach (Category item in mvarCategories)
+ {
+ clone.Categories.Add(item.Clone() as Category);
+ }
+ clone.FooterText = (mvarFooterText.Clone() as string);
+ clone.HeaderText = (mvarHeaderText.Clone() as string);
+ foreach (Listing item in mvarListings)
+ {
+ clone.Listings.Add(item.Clone() as Listing);
+ }
+ foreach (Platform item in mvarPlatforms)
+ {
+ clone.Platforms.Add(item.Clone() as Platform);
+ }
+ foreach (Product item in mvarProducts)
+ {
+ clone.Products.Add(item.Clone() as Product);
+ }
+ }
+ }
+}
diff --git a/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/ObjectModels/Catalog/ArkAngles/Category.cs b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/ObjectModels/Catalog/ArkAngles/Category.cs
new file mode 100644
index 00000000..1bd0cddc
--- /dev/null
+++ b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/ObjectModels/Catalog/ArkAngles/Category.cs
@@ -0,0 +1,81 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace UniversalEditor.ObjectModels.Catalog.ArkAngles
+{
+ public class Category : ICloneable
+ {
+ public class CategoryCollection
+ : System.Collections.ObjectModel.Collection
+ {
+ public Category Add(string title)
+ {
+ Category item = new Category();
+ item.Title = title;
+ Add(item);
+ return item;
+ }
+
+ private Dictionary itemsByName = new Dictionary();
+
+ protected override void ClearItems()
+ {
+ base.ClearItems();
+ itemsByName.Clear();
+ }
+ protected override void InsertItem(int index, Category item)
+ {
+ if (!(index < Count && index >= 0)) return;
+
+ itemsByName.Remove(this[index].Title);
+ base.InsertItem(index, item);
+ itemsByName.Add(item.Title, item);
+ }
+ protected override void RemoveItem(int index)
+ {
+ itemsByName.Remove(this[index].Title);
+ base.RemoveItem(index);
+ }
+ protected override void SetItem(int index, Category item)
+ {
+ if (index > this.Count - 1 || index < 0) return;
+
+ itemsByName.Remove(this[index].Title);
+ base.SetItem(index, item);
+ itemsByName.Add(item.Title, item);
+ }
+
+ public Category this[string title]
+ {
+ get
+ {
+ if (itemsByName.ContainsKey(title)) return itemsByName[title];
+ return null;
+ }
+ }
+
+ public bool Remove(string title)
+ {
+ Category item = this[title];
+ if (item == null) return false;
+ Remove(item);
+ return true;
+ }
+ }
+
+ private string mvarTitle = String.Empty;
+ ///
+ /// The title of this .
+ ///
+ public string Title { get { return mvarTitle; } set { mvarTitle = value; } }
+
+ public object Clone()
+ {
+ Category clone = new Category();
+ clone.Title = (mvarTitle.Clone() as string);
+ return clone;
+ }
+ }
+}
diff --git a/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/ObjectModels/Catalog/ArkAngles/Listing.cs b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/ObjectModels/Catalog/ArkAngles/Listing.cs
new file mode 100644
index 00000000..1f0d7fff
--- /dev/null
+++ b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/ObjectModels/Catalog/ArkAngles/Listing.cs
@@ -0,0 +1,81 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace UniversalEditor.ObjectModels.Catalog.ArkAngles
+{
+ public class Listing : ICloneable
+ {
+ public class ListingCollection
+ : System.Collections.ObjectModel.Collection
+ {
+ public Listing Add(string title)
+ {
+ Listing item = new Listing();
+ item.Title = title;
+ Add(item);
+ return item;
+ }
+
+ private Dictionary itemsByName = new Dictionary();
+
+ protected override void ClearItems()
+ {
+ base.ClearItems();
+ itemsByName.Clear();
+ }
+ protected override void InsertItem(int index, Listing item)
+ {
+ if (!(index < Count && index >= 0)) return;
+
+ itemsByName.Remove(this[index].Title);
+ base.InsertItem(index, item);
+ itemsByName.Add(item.Title, item);
+ }
+ protected override void RemoveItem(int index)
+ {
+ itemsByName.Remove(this[index].Title);
+ base.RemoveItem(index);
+ }
+ protected override void SetItem(int index, Listing item)
+ {
+ if (index > this.Count - 1 || index < 0) return;
+
+ itemsByName.Remove(this[index].Title);
+ base.SetItem(index, item);
+ itemsByName.Add(item.Title, item);
+ }
+
+ public Listing this[string title]
+ {
+ get
+ {
+ if (itemsByName.ContainsKey(title)) return itemsByName[title];
+ return null;
+ }
+ }
+
+ public bool Remove(string title)
+ {
+ Listing item = this[title];
+ if (item == null) return false;
+ Remove(item);
+ return true;
+ }
+ }
+
+ private string mvarTitle = String.Empty;
+ ///
+ /// The title of this .
+ ///
+ public string Title { get { return mvarTitle; } set { mvarTitle = value; } }
+
+ public object Clone()
+ {
+ Listing clone = new Listing();
+ clone.Title = (mvarTitle.Clone() as string);
+ return clone;
+ }
+ }
+}
diff --git a/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/ObjectModels/Catalog/ArkAngles/Platform.cs b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/ObjectModels/Catalog/ArkAngles/Platform.cs
new file mode 100644
index 00000000..b5063033
--- /dev/null
+++ b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/ObjectModels/Catalog/ArkAngles/Platform.cs
@@ -0,0 +1,81 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace UniversalEditor.ObjectModels.Catalog.ArkAngles
+{
+ public class Platform : ICloneable
+ {
+ public class PlatformCollection
+ : System.Collections.ObjectModel.Collection
+ {
+ public Platform Add(string title)
+ {
+ Platform item = new Platform();
+ item.Title = title;
+ Add(item);
+ return item;
+ }
+
+ private Dictionary itemsByName = new Dictionary();
+
+ protected override void ClearItems()
+ {
+ base.ClearItems();
+ itemsByName.Clear();
+ }
+ protected override void InsertItem(int index, Platform item)
+ {
+ if (!(index < Count && index >= 0)) return;
+
+ itemsByName.Remove(this[index].Title);
+ base.InsertItem(index, item);
+ itemsByName.Add(item.Title, item);
+ }
+ protected override void RemoveItem(int index)
+ {
+ itemsByName.Remove(this[index].Title);
+ base.RemoveItem(index);
+ }
+ protected override void SetItem(int index, Platform item)
+ {
+ if (index > this.Count - 1 || index < 0) return;
+
+ itemsByName.Remove(this[index].Title);
+ base.SetItem(index, item);
+ itemsByName.Add(item.Title, item);
+ }
+
+ public Platform this[string title]
+ {
+ get
+ {
+ if (itemsByName.ContainsKey(title)) return itemsByName[title];
+ return null;
+ }
+ }
+
+ public bool Remove(string title)
+ {
+ Platform item = this[title];
+ if (item == null) return false;
+ Remove(item);
+ return true;
+ }
+ }
+
+ private string mvarTitle = String.Empty;
+ ///
+ /// The title of this .
+ ///
+ public string Title { get { return mvarTitle; } set { mvarTitle = value; } }
+
+ public object Clone()
+ {
+ Platform clone = new Platform();
+ clone.Title = (mvarTitle.Clone() as string);
+ return clone;
+ }
+ }
+}
diff --git a/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/ObjectModels/Catalog/ArkAngles/Product.cs b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/ObjectModels/Catalog/ArkAngles/Product.cs
new file mode 100644
index 00000000..6cb74537
--- /dev/null
+++ b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/ObjectModels/Catalog/ArkAngles/Product.cs
@@ -0,0 +1,115 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace UniversalEditor.ObjectModels.Catalog.ArkAngles
+{
+ public class Product : ICloneable
+ {
+ public class ProductCollection
+ : System.Collections.ObjectModel.Collection
+ {
+
+ private Dictionary itemsByName = new Dictionary();
+
+ protected override void ClearItems()
+ {
+ base.ClearItems();
+ itemsByName.Clear();
+ }
+ protected override void InsertItem(int index, Product item)
+ {
+ if (!(index < Count && index >= 0)) return;
+
+ itemsByName.Remove(this[index].Title);
+ base.InsertItem(index, item);
+ itemsByName.Add(item.Title, item);
+ }
+ protected override void RemoveItem(int index)
+ {
+ itemsByName.Remove(this[index].Title);
+ base.RemoveItem(index);
+ }
+ protected override void SetItem(int index, Product item)
+ {
+ if (index > this.Count - 1 || index < 0) return;
+
+ itemsByName.Remove(this[index].Title);
+ base.SetItem(index, item);
+ itemsByName.Add(item.Title, item);
+ }
+
+ public Product this[string title]
+ {
+ get
+ {
+ if (itemsByName.ContainsKey(title)) return itemsByName[title];
+ return null;
+ }
+ }
+
+ public bool Remove(string title)
+ {
+ Product item = this[title];
+ if (item == null) return false;
+ Remove(item);
+ return true;
+ }
+ }
+
+ private string mvarTitle = String.Empty;
+ ///
+ /// The title of this .
+ ///
+ public string Title { get { return mvarTitle; } set { mvarTitle = value; } }
+
+ private Category mvarCategory = null;
+ ///
+ /// The associated with this .
+ ///
+ public Category Category { get { return mvarCategory; } set { mvarCategory = value; } }
+
+ private Platform mvarPlatform = null;
+ ///
+ /// The this is designed to run on.
+ ///
+ public Platform Platform { get { return mvarPlatform; } set { mvarPlatform = value; } }
+
+ private Listing mvarListing = null;
+ ///
+ /// The associated with this .
+ ///
+ public Listing Listing { get { return mvarListing; } set { mvarListing = value; } }
+
+ private List mvarKeywords = new List();
+ ///
+ /// Key words associated with this .
+ ///
+ public List Keywords { get { return mvarKeywords; } }
+
+ private List mvarAssociatedFiles = new List();
+ ///
+ /// File names of associated files to be displayed along with this product (screen shot BMPs, readme TXTs, etc.)
+ ///
+ public List AssociatedFiles { get { return mvarAssociatedFiles; } }
+
+ public object Clone()
+ {
+ Product clone = new Product();
+ foreach (string filename in mvarAssociatedFiles)
+ {
+ clone.AssociatedFiles.Add(filename.Clone() as string);
+ }
+ clone.Category = mvarCategory;
+ foreach (string keyword in mvarKeywords)
+ {
+ clone.Keywords.Add(keyword.Clone() as string);
+ }
+ clone.Listing = mvarListing;
+ clone.Platform = mvarPlatform;
+ clone.Title = (mvarTitle.Clone() as string);
+ return clone;
+ }
+ }
+}
diff --git a/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/UniversalEditor.Plugins.ArkAngles.csproj b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/UniversalEditor.Plugins.ArkAngles.csproj
index cc215b9c..a4fda188 100644
--- a/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/UniversalEditor.Plugins.ArkAngles.csproj
+++ b/CSharp/Plugins/UniversalEditor.Plugins.ArkAngles/UniversalEditor.Plugins.ArkAngles.csproj
@@ -34,7 +34,12 @@
+
+
+
+
+
@@ -59,7 +64,9 @@
UniversalEditor.Plugins.Multimedia
-
+
+
+