public CreateProjectWizard()
{
InitializeComponent();
string[] filelist = StorageManager.GetVirtualDirectoryFiles("Templates", "*.nkar", System.IO.SearchOption.AllDirectories);
this.templateList.LargeImageList = new ImageList();
this.templateList.LargeImageList.ColorDepth = ColorDepth.Depth32Bit;
this.templateList.LargeImageList.ImageSize = new Size(48, 48);
this.templateList.SmallImageList = new ImageList();
this.templateList.SmallImageList.ColorDepth = ColorDepth.Depth32Bit;
this.templateList.SmallImageList.ImageSize = new Size(16, 16);
this.templateList.Columns.Add("名称");
this.templateList.Columns.Add("版本");
this.templateList.Columns.Add("语言");
this.templateList.Columns.Add("备注");
this.templateList.View = View.Details;
this.templateList.MultiSelect = false;
this.templateList.FullRowSelect = true;
this.templateList.HideSelection = false;
this.templateList.Sorting = SortOrder.Ascending;
foreach (string filename in filelist)
{
try
{
ArchiveFile file = new ArchiveFile(filename);
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(file.Manifest);
XmlNode root = xmldoc["NekoKunProjectTemplate"];
if (new Version(root.Attributes["Version"].Value) > new Version(((System.Reflection.Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(System.Reflection.AssemblyFileVersionAttribute), false)[0] as System.Reflection.AssemblyFileVersionAttribute).Version)))
{
throw new ArgumentException("The project template file was created in a newer version of NekoKun which is not supported by this version of NekoKun.");
}
ListViewItem lvi = new ListViewItem();
lvi.Tag = file;
lvi.Text = root["Title"].InnerText;
lvi.SubItems.Add(root["Version"] != null ? root["Version"].InnerText : "");
lvi.SubItems.Add(root["Language"] != null ? root["Language"].InnerText : "");
lvi.SubItems.Add(root["Description"] != null ? root["Description"].InnerText : "");
lvi.ToolTipText = root["Description"] != null ? root["Description"].InnerText : "";
if (root["Icon"] != null)
{
Image image = NekoKun.Core.DrawingHelper.DecodeBase64Image(root["Icon"].InnerText);
this.templateList.LargeImageList.Images.Add(filename, image);
this.templateList.SmallImageList.Images.Add(filename, image);
lvi.ImageKey = filename;
}
this.templateList.Items.Add(lvi);
}
catch { }
}
if (this.templateList.Items.Count >= 1)
{
this.templateList.Items[0].Selected = true;
}
this.templateList.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
FillFields();
this.fieldName.TextChanged += new EventHandler(fieldName_TextChanged);
this.browseFolderButton.Click += new EventHandler(browseFolderButton_Click);
UpdateAccept();
this.templateList.ItemSelectionChanged += delegate { UpdateAccept(); };
this.fieldLocation.TextChanged += delegate { UpdateAccept(); };
this.fieldName.TextChanged += delegate { UpdateAccept(); };
this.accpetButton.Click += new EventHandler(accpetButton_Click);
}