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 ParentType3_Object_DynamicEditableRoot_EditableChildCollection() { Assert.True(RelationRulesEngine.IsParentAllowed(CslaObjectType.DynamicEditableRoot, CslaObjectType.EditableChildCollection)); Assert.AreEqual(string.Empty, 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 void ParentType5_Object_ReadOnlyObject_ReadOnlyCollection() { Assert.True(RelationRulesEngine.IsParentAllowed(CslaObjectType.ReadOnlyObject, CslaObjectType.ReadOnlyCollection)); Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg); }
public void ParentType4_Object_DynamicEditableRoot_ReadOnlyObject() { Assert.True(RelationRulesEngine.IsParentAllowed(CslaObjectType.DynamicEditableRoot, CslaObjectType.ReadOnlyObject)); Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg); }
public void ParentType2_Object_EditableRoot_EditableSwitchable() { Assert.True(RelationRulesEngine.IsParentAllowed(CslaObjectType.EditableRoot, CslaObjectType.EditableSwitchable)); Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg); }
public void ParentType2_Collection_EditableChildCollection_EditableChild() { Assert.True(RelationRulesEngine.IsParentAllowed(CslaObjectType.EditableChildCollection, CslaObjectType.EditableChild)); 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 ParentType6_Collection_DynamicEditableRootCollection_DynamicEditableRoot() { Assert.True(RelationRulesEngine.IsParentAllowed(CslaObjectType.DynamicEditableRootCollection, CslaObjectType.DynamicEditableRoot)); 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); }