public void ChildType4_Collection_ReadOnlyCollection_ReadOnlyCollection() { Assert.True(RelationRulesEngine.IsChildAllowed(CslaObjectType.ReadOnlyCollection, CslaObjectType.ReadOnlyCollection)); //Console.WriteLine(RelationRulesEngine.BrokenRuleMsg); //Assert.AreEqual("The child or ItemType is 'ReadOnlyCollection' but should be 'ReadOnlyObject'.", RelationRulesEngine.BrokenRuleMsg); Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg); }
public void ParentType6_Collection_DynamicEditableRoot() { Assert.True(RelationRulesEngine.IsParentAllowed(CslaObjectType.ReadOnlyCollection, CslaObjectType.DynamicEditableRoot)); Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg); //Console.WriteLine(RelationRulesEngine.BrokenRuleMsg); //Assert.AreEqual("\r\nRelation rule: Specific rule; see below * * *\r\nThe ParentType is 'ReadOnlyCollection' but should be 'DynamicEditableRootCollection' or 'ReadOnlyCollection'.", RelationRulesEngine.BrokenRuleMsg); }
public void ParentType3_Collection_ReadOnlyCollection_EditableChildCollection() { Assert.True(RelationRulesEngine.IsParentAllowed(CslaObjectType.ReadOnlyCollection, CslaObjectType.EditableChildCollection)); Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg); //Console.WriteLine(RelationRulesEngine.BrokenRuleMsg); //Assert.AreEqual("\r\nRelation rule: The parent of an Editable collection must be an Editable object. * * *\r\nThe ParentType is 'ReadOnlyCollection' but should be 'EditableRoot' or 'EditableChild' or 'EditableSwitchable' or 'DynamicEditableRoot' or 'ReadOnlyCollection'.", RelationRulesEngine.BrokenRuleMsg); }
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { _editorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); if (_editorService != null) { if (context.Instance != null) { // CR modifying to accomodate PropertyBag Type instanceType = null; object objinfo = null; ContextHelper.GetChildPropertyContextInstanceObject(context, ref objinfo, ref instanceType); var prop = (ChildProperty)objinfo; _lstProperties.Items.Clear(); _lstProperties.Items.Add("(None)"); var currentCslaObject = GeneratorController.Current.CurrentCslaObject; currentCslaObject.ChildCollectionProperties.MarkAllAsCollection(); currentCslaObject.InheritedChildCollectionProperties.MarkAllAsCollection(); var isCollection = ((ChildProperty)objinfo).IsCollection; var objectTree = currentCslaObject.GetObjectTree(); if (prop != null && objectTree.Contains(prop.TypeName)) { objectTree.Remove(prop.TypeName); } foreach (var obj in GeneratorController.Current.CurrentUnit.CslaObjects) { var ancestor = obj.FindAncestor(); if (((isCollection && obj.ObjectType.IsCollectionType()) || (!isCollection && !obj.ObjectType.IsCollectionType())) && ReferenceEquals(obj, ancestor) && !objectTree.Contains(obj.ObjectName) && RelationRulesEngine.IsParentAllowed(currentCslaObject.ObjectType, obj.ObjectType)) { _lstProperties.Items.Add(obj.ObjectName); } } _lstProperties.Sorted = true; _lstProperties.SelectedItem = prop.TypeName; _editorService.DropDownControl(_lstProperties); if (_lstProperties.SelectedIndex < 0 || _lstProperties.SelectedItem.ToString() == "(None)") { return(string.Empty); } return(_lstProperties.SelectedItem.ToString()); } } return(value); }
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { _editorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); if (_editorService != null) { if (context.Instance != null) { // CR modifying to accomodate PropertyBag Type instanceType = null; object objinfo = null; TypeHelper.GetContextInstanceObject(context, ref objinfo, ref instanceType); var obj = (CslaObjectInfo)objinfo; _lstProperties.Items.Clear(); _lstProperties.Items.Add("(None)"); foreach (var o in GeneratorController.Current.CurrentUnit.CslaObjects) { /*if (o.ObjectName != obj.ObjectName) * lstProperties.Items.Add(o.ObjectName);*/ if (o.ObjectName != obj.ObjectName) { if (RelationRulesEngine.IsParentAllowed(o.ObjectType, obj.ObjectType)) { _lstProperties.Items.Add(o.ObjectName); } } } _lstProperties.Sorted = true; if (_lstProperties.Items.Contains(obj.ParentType)) { _lstProperties.SelectedItem = obj.ParentType; } else { _lstProperties.SelectedItem = "(None)"; } _editorService.DropDownControl(_lstProperties); if (_lstProperties.SelectedIndex < 0 || _lstProperties.SelectedItem.ToString() == "(None)") { return(string.Empty); } return(_lstProperties.SelectedItem.ToString()); } } return(value); }
public void ChildType4_Collection_ReadOnlyCollection_DynamicEditableRootCollection() { Assert.False(RelationRulesEngine.IsChildAllowed(CslaObjectType.ReadOnlyCollection, CslaObjectType.DynamicEditableRootCollection)); //Console.WriteLine(RelationRulesEngine.BrokenRuleMsg); Assert.AreEqual("\r\nRelation rule: Specific rule; see below * * *\r\nThe child or ItemType is 'DynamicEditableRootCollection' but should be 'EditableChild' or 'EditableSwitchable' or 'DynamicEditableRoot' or 'ReadOnlyObject' or 'EditableChildCollection' or 'ReadOnlyCollection'.", RelationRulesEngine.BrokenRuleMsg); }
public void ParentType4_Object_ReadOnlyObject_ReadOnlyObject() { Assert.True(RelationRulesEngine.IsParentAllowed(CslaObjectType.ReadOnlyObject, CslaObjectType.ReadOnlyObject)); Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg); }
public void ChildType4_Object_ReadOnlyCollection_ReadOnlyObject() { Assert.True(RelationRulesEngine.IsChildAllowed(CslaObjectType.ReadOnlyCollection, CslaObjectType.ReadOnlyObject)); Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg); }
public void ChildType5_Object_DynamicEditableRootCollection_DynamicEditableRoot() { Assert.True(RelationRulesEngine.IsChildAllowed(CslaObjectType.DynamicEditableRootCollection, CslaObjectType.DynamicEditableRoot)); Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg); }
public void ParentType1_Collection_ReadOnlyCollection() { Assert.True(RelationRulesEngine.IsNoParentAllowed(CslaObjectType.ReadOnlyCollection)); Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg); }
public void ParentType6_Object_EditableSwitchable_DynamicEditableRoot() { Assert.False(RelationRulesEngine.IsParentAllowed(CslaObjectType.EditableSwitchable, CslaObjectType.DynamicEditableRoot)); //Console.WriteLine(RelationRulesEngine.BrokenRuleMsg); Assert.AreEqual("\r\nRelation rule: Specific rule; see below * * *\r\nThe ParentType is 'EditableSwitchable' but should be 'DynamicEditableRootCollection' or 'ReadOnlyCollection'.", RelationRulesEngine.BrokenRuleMsg); }
public void ParentType1_Object_EditableRoot() { Assert.True(RelationRulesEngine.IsNoParentAllowed(CslaObjectType.EditableRoot)); Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg); }
public void ParentType1_Object_DynamicEditableRoot() { Assert.False(RelationRulesEngine.IsNoParentAllowed(CslaObjectType.DynamicEditableRoot)); Assert.AreEqual("DynamicEditableRoot must have a ParentType.", RelationRulesEngine.BrokenRuleMsg); }
public void ParentType5_Object_DynamicEditableRoot_ReadOnlyCollection() { Assert.True(RelationRulesEngine.IsParentAllowed(CslaObjectType.DynamicEditableRoot, CslaObjectType.ReadOnlyCollection)); Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg); }
public void ParentType3_Object_EditableSwitchable_EditableChildCollection() { Assert.True(RelationRulesEngine.IsParentAllowed(CslaObjectType.EditableSwitchable, CslaObjectType.EditableChildCollection)); Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg); }
public void ChildType1_Object_EditableChild_EditableChild() { Assert.True(RelationRulesEngine.IsChildAllowed(CslaObjectType.EditableChild, CslaObjectType.EditableChild)); Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg); }
public void ChildType1_Collection_EditableRoot_EditableRootCollection() { Assert.False(RelationRulesEngine.IsChildAllowed(CslaObjectType.EditableRoot, CslaObjectType.EditableRootCollection)); //Console.WriteLine(RelationRulesEngine.BrokenRuleMsg); Assert.AreEqual("\r\nRelation rule: The child of an Editable object must be Editable (object or collection). * * *\r\nThe child or ItemType is 'EditableRootCollection' but should be 'EditableChild' or 'EditableSwitchable' or 'ReadOnlyObject' or 'EditableChildCollection' or 'ReadOnlyCollection'.", RelationRulesEngine.BrokenRuleMsg); }
public void ChildType1_Collection_EditableRoot_ReadOnlyCollection() { Assert.True(RelationRulesEngine.IsChildAllowed(CslaObjectType.EditableRoot, CslaObjectType.ReadOnlyCollection)); Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg); }
public void ChildType1_Object_DynamicEditableRoot_ReadOnlyObject() { Assert.True(RelationRulesEngine.IsChildAllowed(CslaObjectType.DynamicEditableRoot, CslaObjectType.ReadOnlyObject)); Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg); }
public void ChildType5_Object_DynamicEditableRootCollection_EditableSwitchable() { Assert.False(RelationRulesEngine.IsChildAllowed(CslaObjectType.DynamicEditableRootCollection, CslaObjectType.EditableSwitchable)); //Console.WriteLine(RelationRulesEngine.BrokenRuleMsg); Assert.AreEqual("\r\nRelation rule: Specific rule; see below * * *\r\nThe child or ItemType is 'EditableSwitchable' but should be 'DynamicEditableRoot'.", RelationRulesEngine.BrokenRuleMsg); }
public void ParentType5_Collection_DynamicEditableRootCollection_ReadOnlyCollection() { Assert.False(RelationRulesEngine.IsParentAllowed(CslaObjectType.DynamicEditableRootCollection, CslaObjectType.ReadOnlyCollection)); //Console.WriteLine(RelationRulesEngine.BrokenRuleMsg); Assert.AreEqual("\r\nRelation rule: The parent of a ReadOnly collection must be an object (Editable or ReadOnly). * * *\r\nThe ParentType is 'DynamicEditableRootCollection' but should be 'EditableRoot' or 'EditableChild' or 'EditableSwitchable' or 'DynamicEditableRoot' or 'ReadOnlyObject' or 'ReadOnlyCollection'.", RelationRulesEngine.BrokenRuleMsg); }
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { _editorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); if (_editorService != null) { if (context.Instance != null) { // CR modifying to accomodate PropertyBag Type instanceType = null; object objinfo = null; TypeHelper.GetAssociativeEntityContextInstanceObject(context, ref objinfo, ref instanceType); var associativeEntity = (AssociativeEntity)objinfo; _lstProperties.Items.Clear(); _lstProperties.Items.Add("(None)"); if (context.PropertyDescriptor.DisplayName == "Primary Object" || (context.PropertyDescriptor.DisplayName == "Secondary Object" && associativeEntity.RelationType == ObjectRelationType.ManyToMany)) { foreach (var obj in GeneratorController.Current.CurrentUnit.CslaObjects) { if (RelationRulesEngine.IsAllowedEntityObject(obj)) { _lstProperties.Items.Add(obj.ObjectName); } } } if (context.PropertyDescriptor.DisplayName == "Primary Collection Type Name" || (context.PropertyDescriptor.DisplayName == "Secondary Collection Type Name" && associativeEntity.RelationType == ObjectRelationType.ManyToMany)) { foreach (var obj in GeneratorController.Current.CurrentUnit.CslaObjects) { if (RelationRulesEngine.IsAllowedEntityCollection(obj)) { _lstProperties.Items.Add(obj.ObjectName); } } } if (context.PropertyDescriptor.DisplayName == "Primary Item Type Name" || (context.PropertyDescriptor.DisplayName == "Secondary Item Type Name" && associativeEntity.RelationType == ObjectRelationType.ManyToMany)) { foreach (var obj in GeneratorController.Current.CurrentUnit.CslaObjects) { if (RelationRulesEngine.IsAllowedEntityCollectionItem(obj)) { _lstProperties.Items.Add(obj.ObjectName); } } } _lstProperties.Sorted = true; if (context.PropertyDescriptor.DisplayName == "Primary Object" && associativeEntity.MainObject != null) { if (_lstProperties.Items.Contains(associativeEntity.MainObject)) { _lstProperties.SelectedItem = associativeEntity.MainObject; } } else if (context.PropertyDescriptor.DisplayName == "Secondary Object" && associativeEntity.SecondaryObject != null) { if (_lstProperties.Items.Contains(associativeEntity.SecondaryObject)) { _lstProperties.SelectedItem = associativeEntity.SecondaryObject; } } else if (context.PropertyDescriptor.DisplayName == "Primary Collection Type Name" && associativeEntity.MainCollectionTypeName != null) { if (_lstProperties.Items.Contains(associativeEntity.MainCollectionTypeName)) { _lstProperties.SelectedItem = associativeEntity.MainCollectionTypeName; } } else if (context.PropertyDescriptor.DisplayName == "Secondary Collection Type Name" && associativeEntity.SecondaryCollectionTypeName != null) { if (_lstProperties.Items.Contains(associativeEntity.SecondaryCollectionTypeName)) { _lstProperties.SelectedItem = associativeEntity.SecondaryCollectionTypeName; } } else if (context.PropertyDescriptor.DisplayName == "Primary Item Type Name" && associativeEntity.MainItemTypeName != null) { if (_lstProperties.Items.Contains(associativeEntity.MainItemTypeName)) { _lstProperties.SelectedItem = associativeEntity.MainItemTypeName; } } else if (context.PropertyDescriptor.DisplayName == "Secondary Item Type Name" && associativeEntity.SecondaryItemTypeName != null) { if (_lstProperties.Items.Contains(associativeEntity.SecondaryItemTypeName)) { _lstProperties.SelectedItem = associativeEntity.SecondaryItemTypeName; } } else { _lstProperties.SelectedItem = "(None)"; } _editorService.DropDownControl(_lstProperties); if (_lstProperties.SelectedIndex < 0 || _lstProperties.SelectedItem.ToString() == "(None)") { return(string.Empty); } return(_lstProperties.SelectedItem.ToString()); } } return(value); }
public void ParentType2_Object_DynamicEditableRoot_EditableSwitchable() { Assert.True(RelationRulesEngine.IsParentAllowed(CslaObjectType.DynamicEditableRoot, CslaObjectType.EditableSwitchable)); Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg); }
public void ParentType2_Object_ReadOnlyObject_EditableChild() { Assert.False(RelationRulesEngine.IsParentAllowed(CslaObjectType.ReadOnlyObject, CslaObjectType.EditableChild)); //Console.WriteLine(RelationRulesEngine.BrokenRuleMsg); Assert.AreEqual("\r\nRelation rule: The parent of an Editable object must be Editable (object or collection). * * *\r\nThe ParentType is 'ReadOnlyObject' but should be 'EditableRoot' or 'EditableChild' or 'EditableSwitchable' or 'DynamicEditableRoot' or 'EditableRootCollection' or 'EditableChildCollection' or 'ReadOnlyCollection'.", RelationRulesEngine.BrokenRuleMsg); }
public void ParentType1_Object_EditableSwitchable() { Assert.False(RelationRulesEngine.IsNoParentAllowed(CslaObjectType.EditableSwitchable)); Assert.AreEqual("EditableSwitchable must have a ParentType.", RelationRulesEngine.BrokenRuleMsg); }
public void ParentType2_Collection_EditableRootCollection_EditableChild() { Assert.True(RelationRulesEngine.IsParentAllowed(CslaObjectType.EditableRootCollection, CslaObjectType.EditableChild)); Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg); }
public void ParentType1_Collection_DynamicEditableRootCollection() { Assert.True(RelationRulesEngine.IsNoParentAllowed(CslaObjectType.DynamicEditableRootCollection)); Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg); }
public void ChildType3_Collection_ReadOnlyObject_DynamicEditableRootCollection() { Assert.False(RelationRulesEngine.IsChildAllowed(CslaObjectType.ReadOnlyObject, CslaObjectType.DynamicEditableRootCollection)); //Console.WriteLine(RelationRulesEngine.BrokenRuleMsg); Assert.AreEqual("\r\nRelation rule: The child of a ReadOnly object must be ReadOnly (object or collection). * * *\r\nThe child or ItemType is 'DynamicEditableRootCollection' but should be 'ReadOnlyObject' or 'ReadOnlyCollection'.", RelationRulesEngine.BrokenRuleMsg); }
public void ParentType1_Collection_EditableChildCollection() { Assert.False(RelationRulesEngine.IsNoParentAllowed(CslaObjectType.EditableChildCollection)); Assert.AreEqual("EditableChildCollection must have a ParentType.", RelationRulesEngine.BrokenRuleMsg); }
public void ChildType2_Collection_EditableRootCollection_DynamicEditableRootCollection() { Assert.False(RelationRulesEngine.IsChildAllowed(CslaObjectType.EditableRootCollection, CslaObjectType.DynamicEditableRootCollection)); //Console.WriteLine(RelationRulesEngine.BrokenRuleMsg); Assert.AreEqual("\r\nRelation rule: The item of an Editable collection must be an Editable object. * * *\r\nThe child or ItemType is 'DynamicEditableRootCollection' but should be 'EditableChild' or 'EditableSwitchable'.", RelationRulesEngine.BrokenRuleMsg); }