/// <summary> /// Check items required by a newly checked item /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static void lvExtensions_ItemChecked(object sender, ItemCheckedEventArgs e) { ListViewItem item = e.Item; if (item.Checked) { ExtensionLoader extensionLoader = ORMDesignerPackage.ExtensionLoader; ExtensionModelBinding checkedType = extensionLoader.AvailableCustomExtensions[(string)item.Tag]; ListView.ListViewItemCollection items = item.ListView.Items; foreach (Guid extendsModelId in checkedType.ExtendsDomainModelIds) { string extensionName = extensionLoader.MapExtensionDomainModelToName(extendsModelId); if (extensionName != null) { foreach (ListViewItem requiresItem in items) { if ((string)requiresItem.Tag == extensionName) { if (!requiresItem.Checked) { requiresItem.Checked = true; } break; } } } } } }
/// <summary> /// This method adds the passed in ExtensionModelBinding to the ListView on the ExtensionManager dialogue. /// </summary> /// <param name="extensionBinding">The extension you want to add.</param> private void AddItemToListView(ExtensionModelBinding extensionBinding) { Type type = extensionBinding.Type; ListViewItem lvi = new ListViewItem(); lvi.Tag = extensionBinding.NamespaceUri; if (null != myStore.FindDomainModel(extensionBinding.DomainModelId)) { lvi.Checked = true; } //Add the DisplayName lvi.SubItems.Add(DomainTypeDescriptor.GetDisplayName(type)); //Add the Description lvi.SubItems.Add(DomainTypeDescriptor.GetDescription(type)); lvExtensions.Items.Add(lvi); }