private void ExtensionAddButton_Click(object sender, EventArgs e) { //create new file type and call validate extensions to set validation flags PropertyManager.AirExtension extension = new PropertyManager.AirExtension(); _extensions.Add(extension); ValidateExtensions(); //add the item to the list view and select it ListViewItem extensionListItem = new ListViewItem(extension.ExtensionId); ExtensionsListView.Items.Add(extensionListItem); ExtensionsListView.SelectedIndices.Clear(); ExtensionsListView.Items[ExtensionsListView.Items.Count - 1].Selected = true; RefreshSelectedExtension(); }
private void ExtensionBrowseButton_Click(object sender, EventArgs e) { using (var extensionBrowser = new OpenFileDialog()) { extensionBrowser.CheckFileExists = true; extensionBrowser.Filter = TextHelper.GetString("Info.AneFilter"); extensionBrowser.InitialDirectory = _propertiesFilePath; if (extensionBrowser.ShowDialog(this) == DialogResult.OK) { ZipFile zFile; try { zFile = new ZipFile(extensionBrowser.FileName); } catch (Exception ex) { String msg = TextHelper.GetString("Info.CouldNotLoadANE") + "\n" + ex.Message; ErrorManager.ShowWarning(msg, null); return; } var entry = zFile.GetEntry("META-INF/ANE/extension.xml"); if (entry == null) { String msg = TextHelper.GetString("Info.ANEDescFileNotFound"); ErrorManager.ShowWarning(msg, null); return; } byte[] buffer = UnzipFile(zFile, entry); string extensionId = null; using (var stream = new MemoryStream(buffer)) { using (var reader = XmlReader.Create(stream)) { reader.MoveToContent(); while (reader.Read()) { if (reader.NodeType != XmlNodeType.Element) continue; if (reader.Name == "id") { extensionId = reader.ReadInnerXml(); break; } } } } if (extensionId == null) { String msg = TextHelper.GetString("Info.ExtensionIDNotFound"); ErrorManager.ShowWarning(msg, null); return; } PropertyManager.AirExtension extension = null; // We look for the extension in case it is already added, and modify its path, maybe FD is missing the external library entry and the user //wants to add it. foreach (var existingExtension in _extensions) { if (existingExtension.ExtensionId == extensionId) extension = existingExtension; break; } if (extension == null) { extension = new PropertyManager.AirExtension() { ExtensionId = extensionId, IsValid = true }; _extensions.Add(extension); //I don't validation and selection is needed in this case var extensionListItem = new ListViewItem(extension.ExtensionId); ExtensionsListView.Items.Add(extensionListItem); } extension.Path = extensionBrowser.FileName; } } }