private void btnImplementationsNew_Click(object sender, RoutedEventArgs e) { winNewComponentImplementation newComImplementation = new winNewComponentImplementation(); newComImplementation.Owner = this; newComImplementation.ImplementationSet = cbxImplementationsSet.Text; if (newComImplementation.ShowDialog() == true) { if (cbxImplementationsSet.SelectedItem == null) { ComponentRepresentations.Add(new ImplementationConversionCollection() { ImplementationSet = cbxImplementationsSet.Text }); cbxImplementationsSet.SelectedItem = ComponentRepresentations.Last(); } ImplementationConversion conversion = newComImplementation.GetChosenComponent(); // Don't allow duplicates if ((cbxImplementationsSet.SelectedItem as ImplementationConversionCollection).Items.FirstOrDefault(item => item.ImplementationName == conversion.ImplementationName) != null) { TaskDialogInterop.TaskDialog.ShowMessage(this, "The item could not be added because it is already present.\r\n\r\nYou can add this item again if you delete its current representation first.", "Could Not Add Item", TaskDialogInterop.TaskDialogCommonButtons.Close, TaskDialogInterop.VistaTaskDialogIcon.Warning); } else { (cbxImplementationsSet.SelectedItem as ImplementationConversionCollection).Items.Add(newComImplementation.GetChosenComponent()); // Add to ComponentHelper's list of conversions ComponentDescription description = ComponentHelper.FindDescription(conversion.ToGUID); ComponentConfiguration theConfiguration = description.Metadata.Configurations.FirstOrDefault(check => check.Name == conversion.ToConfiguration); ComponentHelper.SetStandardComponent(cbxImplementationsSet.Text, conversion.ImplementationName, description, theConfiguration); } } }
public ImplementationConversion GetChosenComponent() { ImplementationConversion item = cbxRepresentation.SelectedItem as ImplementationConversion; item.ImplementationName = tbxImplementItem.Text; return(item); }
private void UpdateChoices() { cbxRepresentation.Items.Clear(); if (tbxImplementItem.Text.Length == 0) { cbxRepresentation.IsEnabled = false; return; } cbxRepresentation.IsEnabled = true; foreach (ComponentDescription description in ComponentHelper.ComponentDescriptions.Where(c => c.Metadata.ImplementSet == this.ImplementationSet)) { if (description.Metadata.Configurations.Count == 0 && description.Metadata.ImplementItem == tbxImplementItem.Text) { ImplementationConversion item = new ImplementationConversion(); item.ToName = description.ComponentName; item.ToGUID = description.Metadata.GUID; if (description.Metadata.Icon != null) { item.ToIcon = description.Metadata.Icon; } cbxRepresentation.Items.Add(item); } else { foreach (ComponentConfiguration configuration in description.Metadata.Configurations.Where(c => c.ImplementationName == tbxImplementItem.Text)) { ImplementationConversion item = new ImplementationConversion(); item.ToName = description.ComponentName; item.ToGUID = description.Metadata.GUID; if (configuration.Icon == null && description.Metadata.Icon != null) { item.ToIcon = description.Metadata.Icon; } else { item.ToIcon = configuration.Icon; } item.ToConfiguration = configuration.Name; cbxRepresentation.Items.Add(item); } } } cbxRepresentation.SelectedIndex = 0; }
public static List<ImplementationConversionCollection> LoadImplementationConversions() { var implementationConversions = new List<ImplementationConversionCollection>(); if (File.Exists(implementationsFilePath)) { try { XmlDocument implDoc = new XmlDocument(); implDoc.Load(implementationsFilePath); XmlNodeList sourceNodes = implDoc.SelectNodes("/implementations/source"); foreach (XmlNode sourceNode in sourceNodes) { string collection = sourceNode.Attributes["definitions"].InnerText; ImplementationConversionCollection newCollection = new ImplementationConversionCollection(); newCollection.ImplementationSet = collection; foreach (XmlNode childNode in sourceNode.ChildNodes) { if (childNode.Name != "add") continue; string item = childNode.Attributes["item"].InnerText; Guid guid = Guid.Empty; XmlNode guidNode = childNode.SelectSingleNode("guid"); if (guidNode != null) guid = new Guid(guidNode.InnerText); string configuration = null; XmlNode configurationNode = childNode.SelectSingleNode("configuration"); if (configurationNode != null) configuration = configurationNode.InnerText; ComponentDescription description = ComponentHelper.FindDescription(guid); if (description != null) { ImplementationConversion newConversion = new ImplementationConversion(); newConversion.ImplementationName = item; newConversion.ToName = description.ComponentName; newConversion.ToGUID = description.Metadata.GUID; ComponentConfiguration theConfiguration = null; if (configuration != null) { theConfiguration = description.Metadata.Configurations.FirstOrDefault(check => check.Name == configuration); if (theConfiguration != null) { newConversion.ToConfiguration = theConfiguration.Name; if (theConfiguration.Icon != null) newConversion.ToIcon = theConfiguration.Icon; else newConversion.ToIcon = description.Metadata.Icon; } else if (description.Metadata.Icon != null) newConversion.ToIcon = description.Metadata.Icon; } else if (description.Metadata.Icon != null) newConversion.ToIcon = description.Metadata.Icon; newCollection.Items.Add(newConversion); ComponentHelper.SetStandardComponent(newCollection.ImplementationSet, newConversion.ImplementationName, description, theConfiguration); } } implementationConversions.Add(newCollection); } } catch (Exception) { // Invalid XML file } } return implementationConversions; }
private void UpdateChoices() { cbxRepresentation.Items.Clear(); if (tbxImplementItem.Text.Length == 0) { cbxRepresentation.IsEnabled = false; return; } cbxRepresentation.IsEnabled = true; foreach (ComponentDescription description in ComponentHelper.ComponentDescriptions.Where(c => c.Metadata.ImplementSet == this.ImplementationSet)) { if (description.Metadata.Configurations.Count == 0 && description.Metadata.ImplementItem == tbxImplementItem.Text) { ImplementationConversion item = new ImplementationConversion(); item.ToName = description.ComponentName; item.ToGUID = description.Metadata.GUID; if (description.Metadata.Icon != null) item.ToIcon = description.Metadata.Icon; cbxRepresentation.Items.Add(item); } else { foreach (ComponentConfiguration configuration in description.Metadata.Configurations.Where(c => c.ImplementationName == tbxImplementItem.Text)) { ImplementationConversion item = new ImplementationConversion(); item.ToName = description.ComponentName; item.ToGUID = description.Metadata.GUID; if (configuration.Icon == null && description.Metadata.Icon != null) item.ToIcon = description.Metadata.Icon; else item.ToIcon = configuration.Icon; item.ToConfiguration = configuration.Name; cbxRepresentation.Items.Add(item); } } } cbxRepresentation.SelectedIndex = 0; }
public static List <ImplementationConversionCollection> LoadImplementationConversions() { var implementationConversions = new List <ImplementationConversionCollection>(); if (File.Exists(implementationsFilePath)) { try { XmlDocument implDoc = new XmlDocument(); implDoc.Load(implementationsFilePath); XmlNodeList sourceNodes = implDoc.SelectNodes("/implementations/source"); foreach (XmlNode sourceNode in sourceNodes) { string collection = sourceNode.Attributes["definitions"].InnerText; ImplementationConversionCollection newCollection = new ImplementationConversionCollection(); newCollection.ImplementationSet = collection; foreach (XmlNode childNode in sourceNode.ChildNodes) { if (childNode.Name != "add") { continue; } string item = childNode.Attributes["item"].InnerText; Guid guid = Guid.Empty; XmlNode guidNode = childNode.SelectSingleNode("guid"); if (guidNode != null) { guid = new Guid(guidNode.InnerText); } string configuration = null; XmlNode configurationNode = childNode.SelectSingleNode("configuration"); if (configurationNode != null) { configuration = configurationNode.InnerText; } ComponentDescription description = ComponentHelper.FindDescription(guid); if (description != null) { ImplementationConversion newConversion = new ImplementationConversion(); newConversion.ImplementationName = item; newConversion.ToName = description.ComponentName; newConversion.ToGUID = description.Metadata.GUID; ComponentConfiguration theConfiguration = null; if (configuration != null) { theConfiguration = description.Metadata.Configurations.FirstOrDefault(check => check.Name == configuration); if (theConfiguration != null) { newConversion.ToConfiguration = theConfiguration.Name; if (theConfiguration.Icon != null) { newConversion.ToIcon = theConfiguration.Icon; } else { newConversion.ToIcon = description.Metadata.Icon; } } else if (description.Metadata.Icon != null) { newConversion.ToIcon = description.Metadata.Icon; } } else if (description.Metadata.Icon != null) { newConversion.ToIcon = description.Metadata.Icon; } newCollection.Items.Add(newConversion); ComponentHelper.SetStandardComponent(newCollection.ImplementationSet, newConversion.ImplementationName, description, theConfiguration); } } implementationConversions.Add(newCollection); } } catch (Exception) { // Invalid XML file } } return(implementationConversions); }