示例#1
0
 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);
 }
示例#2
0
        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.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)
                        {
                            if (RelationRulesEngine.IsChildAllowed(obj.ObjectType, o.ObjectType))
                            {
                                _lstProperties.Items.Add(o.ObjectName);
                            }
                        }
                    }
                    _lstProperties.Sorted = true;

                    if (_lstProperties.Items.Contains(obj.ItemType))
                    {
                        _lstProperties.SelectedItem = obj.ItemType;
                    }
                    else
                    {
                        _lstProperties.SelectedItem = "(None)";
                    }

                    _editorService.DropDownControl(_lstProperties);
                    if (_lstProperties.SelectedIndex < 0 || _lstProperties.SelectedItem.ToString() == "(None)")
                    {
                        return(string.Empty);
                    }

                    return(_lstProperties.SelectedItem.ToString());
                }
            }

            return(value);
        }
示例#3
0
 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);
 }
示例#4
0
 public void ChildType4_Object_ReadOnlyCollection_ReadOnlyObject()
 {
     Assert.True(RelationRulesEngine.IsChildAllowed(CslaObjectType.ReadOnlyCollection, CslaObjectType.ReadOnlyObject));
     Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg);
 }
示例#5
0
 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);
 }
示例#6
0
 public void ChildType1_Object_EditableChild_EditableChild()
 {
     Assert.True(RelationRulesEngine.IsChildAllowed(CslaObjectType.EditableChild, CslaObjectType.EditableChild));
     Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg);
 }
示例#7
0
 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);
 }
示例#8
0
 public void ChildType1_Collection_EditableRoot_ReadOnlyCollection()
 {
     Assert.True(RelationRulesEngine.IsChildAllowed(CslaObjectType.EditableRoot, CslaObjectType.ReadOnlyCollection));
     Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg);
 }
示例#9
0
 public void ChildType1_Object_DynamicEditableRoot_ReadOnlyObject()
 {
     Assert.True(RelationRulesEngine.IsChildAllowed(CslaObjectType.DynamicEditableRoot, CslaObjectType.ReadOnlyObject));
     Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg);
 }
示例#10
0
 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);
 }
示例#11
0
 public void ChildType5_Object_DynamicEditableRootCollection_DynamicEditableRoot()
 {
     Assert.True(RelationRulesEngine.IsChildAllowed(CslaObjectType.DynamicEditableRootCollection, CslaObjectType.DynamicEditableRoot));
     Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg);
 }
示例#12
0
 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);
 }
示例#13
0
 public void ChildType2_Object_EditableRootCollection_EditableSwitchable()
 {
     Assert.True(RelationRulesEngine.IsChildAllowed(CslaObjectType.EditableRootCollection, CslaObjectType.EditableSwitchable));
     Assert.AreEqual(string.Empty, RelationRulesEngine.BrokenRuleMsg);
 }