private void SaveCustomPropertyTypes() { IResourceStore store = Core.ResourceStore; foreach (int propID in _deletedPropIDs) { Core.DisplayColumnManager.RemoveAvailableColumn(null, store.PropTypes [propID].Name); DeleteCustomPropCondition(propID); store.PropTypes.Delete(propID); } foreach (ListViewItem lvItem in _lvTypes.Items) { PropTypeTag tag = (PropTypeTag)lvItem.Tag; if (tag.PropID == -1) { string propName = "Custom." + lvItem.Text; int propID = store.PropTypes.Register(propName, tag.DataType); store.PropTypes.RegisterDisplayName(propID, lvItem.Text); IResource res = store.FindUniqueResource("PropType", Core.Props.Name, propName); res.SetProp("Custom", 1); Core.DisplayColumnManager.RegisterAvailableColumn(null, new ColumnDescriptor(propName, 100)); RegisterCustomPropCondition(propID); } } }
private void _btnDelete_Click(object sender, EventArgs e) { if (_lvTypes.SelectedItems.Count > 0) { ListViewItem lvItem = _lvTypes.SelectedItems [0]; PropTypeTag tag = (PropTypeTag)lvItem.Tag; if (tag != null) { if (tag.PropID >= 0) { string warnText = ". Are you sure you wish to delete it?"; IResourceList resList = Core.ResourceStore.FindResourcesWithProp(null, tag.PropID); IResourceList conditions = Core.ResourceStore.FindResources(SelectionType.Normal, FilterManagerProps.ConditionResName, "ApplicableToProp", "Custom." + lvItem.Text); DialogResult dr = DialogResult.Yes; if (resList.Count > 0) { if (conditions.Count > 0) { warnText = resList.Count + " resources have the property " + lvItem.Text + " and " + conditions.Count + " views use it" + warnText; } else { warnText = resList.Count + " resources have the property " + lvItem.Text + warnText; } dr = MessageBox.Show(Core.MainWindow, warnText, "Delete Custom Property Type", MessageBoxButtons.YesNo); } if (dr == DialogResult.Yes) { _deletedPropIDs.Add(tag.PropID); _lvTypes.Items.Remove(lvItem); } } else { _lvTypes.Items.Remove(lvItem); } } } }