Ejemplo n.º 1
0
        /// <summary>
        /// Loads form tab data from the reader
        /// </summary>
        protected override void LoadFromReader()
        {
            _tab = _defClassFactory.CreateUIFormTab();
            _reader.Read();
            _tab.Name = _reader.GetAttribute("name");
            _reader.Read();
            var fields      = new List <IUIFormField>();
            var contentType = "";

            while (_reader.Name != "tab")
            {
                if (_reader.Name == "columnLayout")
                {
                    if (contentType.Length > 0 && contentType != "columnLayout")
                    {
                        throw new InvalidXmlDefinitionException(MixedContentMessage);
                    }
                    contentType = "columnLayout";
                    var columnLoader = new XmlUIFormColumnLoader(DtdLoader, _defClassFactory);
                    _tab.Add(columnLoader.LoadUIFormColumn(_reader.ReadOuterXml()));
                }
                else if (_reader.Name == "field")
                {
                    if (contentType.Length > 0 && contentType != "field")
                    {
                        throw new InvalidXmlDefinitionException(MixedContentMessage);
                    }
                    contentType = "field";
                    var fieldLoader = new XmlUIFormFieldLoader(DtdLoader, _defClassFactory);
                    fields.Add(fieldLoader.LoadUIProperty(_reader.ReadOuterXml()));
                }
                else
                {
                    throw new InvalidXmlDefinitionException(MixedContentMessage);
                }
            }
            if (contentType == "field")
            {
                var col = _defClassFactory.CreateUIFormColumn();
                fields.ForEach(col.Add);
                _tab.Add(col);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Loads form column data from the reader
        /// </summary>
        protected override void LoadFromReader()
        {
            _column = _defClassFactory.CreateUIFormColumn();
            //_column = new UIFormColumn();

            //_reader.Read();
            //string className = _reader.GetAttribute("class");
            //string assemblyName = _reader.GetAttribute("assembly");
            //_collection.Class = TypeLoader.LoadType(assemblyName, className);
            //_collection.Name = new UIPropertyCollectionName(_collection.Class, _reader.GetAttribute("name"));

            _reader.Read();
            try
            {
                _column.Width = Convert.ToInt32(_reader.GetAttribute("width"));
            }
            catch (Exception ex)
            {
                throw new InvalidXmlDefinitionException("In a 'columnLayout' " +
                                                        "element, the 'width' attribute has been given " +
                                                        "an invalid integer pixel value.", ex);
            }

            _reader.Read();
            while (_reader.Name == "field")
            {
                XmlUIFormFieldLoader propLoader = new XmlUIFormFieldLoader(DtdLoader, _defClassFactory);
                _column.Add(propLoader.LoadUIProperty(_reader.ReadOuterXml()));
            }

            if (_column.Count == 0)
            {
                throw new InvalidXmlDefinitionException("No 'field' " +
                                                        "elements were specified in a 'columnLayout' element.  Ensure " +
                                                        "that the element " +
                                                        "contains one or more 'field' elements, which " +
                                                        "specify the property editing controls to appear in the " +
                                                        "editing form column.");
            }
        }
 protected  void Initialise() {
     loader = new XmlUIFormFieldLoader(new DtdLoader(), GetDefClassFactory());
 }
 public void TestLayoutStyle_Invalid()
 {
     //---------------Set up test pack-------------------
     loader = new XmlUIFormFieldLoader(new DtdLoader(), GetDefClassFactory());
     //---------------Execute Test ----------------------
     try
     {
         IUIFormField field = loader.LoadUIProperty(@"<field property=""prop"" layout=""Invalid"" />");
         Assert.Fail("Invalid layout should raise an error");
     } 
     //---------------Test Result -----------------------
     catch (InvalidXmlDefinitionException ex)
     {
         StringAssert.Contains("In the definition for the field 'prop' the 'layout' " +
            "was set to an invalid value ('Invalid'). The valid options are " +
            "Label and GroupBox.", ex.Message);
     }
     //---------------Tear Down -------------------------          
 }
        public void TestLayoutStyle()
        {
            //---------------Set up test pack-------------------
            loader = new XmlUIFormFieldLoader(new DtdLoader(), GetDefClassFactory());
            //---------------Execute Test ----------------------
            IUIFormField field = loader.LoadUIProperty(@"<field property=""prop"" layout=""GroupBox"" />");

            //---------------Test Result -----------------------
            Assert.AreEqual(LayoutStyle.GroupBox, field.Layout);
            //---------------Tear Down -------------------------          
        }       
Ejemplo n.º 6
0
 public void TestLabelText_UsesQuestionMark_WhenCheckBoxField()
 {
     XmlUIFormFieldLoader loader = new XmlUIFormFieldLoader(new DtdLoader(), new DefClassFactory());
     UIFormField uiProp = (UIFormField) loader.LoadUIProperty(@"<field property=""TestPropName"" type=""CheckBox"" />");
     Assert.AreEqual(null, uiProp.Label);
     Assert.AreEqual("Test Prop Name?", uiProp.GetLabel());
 }
Ejemplo n.º 7
0
 public void TestLabelText_UsesPropertyNameWithCamelCase()
 {
     XmlUIFormFieldLoader loader = new XmlUIFormFieldLoader(new DtdLoader(), new DefClassFactory());
     UIFormField uiProp = (UIFormField) loader.LoadUIProperty(@"<field property=""TestPropName"" />");
     Assert.AreEqual(null, uiProp.Label);
     Assert.AreEqual("Test Prop Name:", uiProp.GetLabel());
 }
Ejemplo n.º 8
0
        /// <summary>
        /// Loads form column data from the reader
        /// </summary>
        protected override void LoadFromReader()
        {
			_column = _defClassFactory.CreateUIFormColumn();
			//_column = new UIFormColumn();

            //_reader.Read();
            //string className = _reader.GetAttribute("class");
            //string assemblyName = _reader.GetAttribute("assembly");
            //_collection.Class = TypeLoader.LoadType(assemblyName, className);
            //_collection.Name = new UIPropertyCollectionName(_collection.Class, _reader.GetAttribute("name"));

            _reader.Read();
            try
            {
                _column.Width = Convert.ToInt32(_reader.GetAttribute("width"));
            }
            catch (Exception ex)
            {
                throw new InvalidXmlDefinitionException("In a 'columnLayout' " + 
                    "element, the 'width' attribute has been given " +
                    "an invalid integer pixel value.", ex);
            }

            _reader.Read();
            while (_reader.Name == "field")
            {
                XmlUIFormFieldLoader propLoader = new XmlUIFormFieldLoader(DtdLoader, _defClassFactory);
                _column.Add(propLoader.LoadUIProperty(_reader.ReadOuterXml()));
            }

            if (_column.Count == 0)
            {
                throw new InvalidXmlDefinitionException("No 'field' " +
                    "elements were specified in a 'columnLayout' element.  Ensure " +
                    "that the element " +
                    "contains one or more 'field' elements, which " +
                    "specify the property editing controls to appear in the " +
                    "editing form column.");
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Loads form definition data from the reader
        /// </summary>
        protected override void LoadFromReader()
        {
            _uiForm = _defClassFactory.CreateUIFormDef();

            _reader.Read();
            _uiForm.Title = _reader.GetAttribute("title");
            try
            {
                _uiForm.Width  = Convert.ToInt32(_reader.GetAttribute("width"));
                _uiForm.Height = Convert.ToInt32(_reader.GetAttribute("height"));
            }
            catch (Exception ex)
            {
                throw new InvalidXmlDefinitionException("In a 'form' element, " +
                                                        "either the 'width' or 'height' attribute has been given " +
                                                        "an invalid integer pixel value.", ex);
            }


            _reader.Read();
            List <IUIFormColumn> columns = new List <IUIFormColumn>();
            List <IUIFormField>  fields  = new List <IUIFormField>();
            string contentType           = "";

            while (_reader.Name != "form")
            {
                if (_reader.Name == "tab")
                {
                    if (contentType.Length > 0 && contentType != "tab")
                    {
                        throw new InvalidXmlDefinitionException(
                                  "A form can have either a set of 'tab', 'columnLayout' or 'field' nodes, but not a mixture.");
                    }
                    contentType = "tab";
                    XmlUIFormTabLoader tabLoader = new XmlUIFormTabLoader(DtdLoader, _defClassFactory);
                    _uiForm.Add(tabLoader.LoadUIFormTab(_reader.ReadOuterXml()));
                }
                else if (_reader.Name == "columnLayout")
                {
                    if (contentType.Length > 0 && contentType != "columnLayout")
                    {
                        throw new InvalidXmlDefinitionException(
                                  "A form can have either a set of 'tab', 'columnLayout' or 'field' nodes, but not a mixture.");
                    }
                    contentType = "columnLayout";
                    XmlUIFormColumnLoader columnLoader = new XmlUIFormColumnLoader(DtdLoader, _defClassFactory);
                    columns.Add(columnLoader.LoadUIFormColumn(_reader.ReadOuterXml()));
                }
                else if (_reader.Name == "field")
                {
                    if (contentType.Length > 0 && contentType != "field")
                    {
                        throw new InvalidXmlDefinitionException(
                                  "A form can have either a set of 'tab', 'columnLayout' or 'field' nodes, but not a mixture.");
                    }
                    contentType = "field";
                    XmlUIFormFieldLoader fieldLoader = new XmlUIFormFieldLoader(DtdLoader, _defClassFactory);
                    fields.Add(fieldLoader.LoadUIProperty(_reader.ReadOuterXml()));
                }
                else
                {
                    throw new InvalidXmlDefinitionException(
                              "A form can have either a set of 'tab', 'columnLayout' or 'field' nodes.");
                }
            }
            if (contentType == "columnLayout")
            {
                IUIFormTab tab = _defClassFactory.CreateUIFormTab();
                columns.ForEach(tab.Add);
                _uiForm.Add(tab);
            }
            else if (contentType == "field")
            {
                IUIFormTab    tab = _defClassFactory.CreateUIFormTab();
                IUIFormColumn col = _defClassFactory.CreateUIFormColumn();
                fields.ForEach(col.Add);
                tab.Add(col);
                _uiForm.Add(tab);
            }

            if (_uiForm.Count == 0)
            {
                throw new InvalidXmlDefinitionException("No 'tab', 'columnLayout' or 'field' " +
                                                        "elements were specified in a 'form' element.  Ensure " +
                                                        "that the element contains one or more of either 'tab', 'columnLayout' or 'field' elements, " +
                                                        "which each define what must appear in the editing form for " +
                                                        "the business object.");
            }
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Loads form definition data from the reader
        /// </summary>
        protected override void LoadFromReader()
        {
			_uiForm = _defClassFactory.CreateUIFormDef();

            _reader.Read();
            _uiForm.Title = _reader.GetAttribute("title");
            try
            {
                _uiForm.Width = Convert.ToInt32(_reader.GetAttribute("width"));
                _uiForm.Height = Convert.ToInt32(_reader.GetAttribute("height"));
            }
            catch (Exception ex)
            {
                throw new InvalidXmlDefinitionException("In a 'form' element, " +
                    "either the 'width' or 'height' attribute has been given " +
                    "an invalid integer pixel value.", ex);
            }


            _reader.Read();
            List<IUIFormColumn> columns = new List<IUIFormColumn>();
            List<IUIFormField> fields = new List<IUIFormField>();
            string contentType = "";
            while (_reader.Name != "form") {
                if (_reader.Name == "tab") {
                    if (contentType.Length > 0 && contentType != "tab") {
                        throw new InvalidXmlDefinitionException(
                            "A form can have either a set of 'tab', 'columnLayout' or 'field' nodes, but not a mixture.");
                    }
                    contentType = "tab";
                    XmlUIFormTabLoader tabLoader = new XmlUIFormTabLoader(DtdLoader, _defClassFactory);
                    _uiForm.Add(tabLoader.LoadUIFormTab(_reader.ReadOuterXml()));
                }
                else if (_reader.Name == "columnLayout") {
                    if (contentType.Length > 0 && contentType != "columnLayout") {
                        throw new InvalidXmlDefinitionException(
                            "A form can have either a set of 'tab', 'columnLayout' or 'field' nodes, but not a mixture.");
                    }
                    contentType = "columnLayout";
                    XmlUIFormColumnLoader columnLoader = new XmlUIFormColumnLoader(DtdLoader, _defClassFactory);
                    columns.Add(columnLoader.LoadUIFormColumn(_reader.ReadOuterXml()));
                }
                else if (_reader.Name == "field") {
                    if (contentType.Length > 0 && contentType != "field") {
                        throw new InvalidXmlDefinitionException(
                            "A form can have either a set of 'tab', 'columnLayout' or 'field' nodes, but not a mixture.");
                    }
                    contentType = "field";
                    XmlUIFormFieldLoader fieldLoader = new XmlUIFormFieldLoader(DtdLoader, _defClassFactory);
                    fields.Add(fieldLoader.LoadUIProperty(_reader.ReadOuterXml()));

                } else {
                    throw new InvalidXmlDefinitionException(
                        "A form can have either a set of 'tab', 'columnLayout' or 'field' nodes.");
                }
            }
            if (contentType == "columnLayout") {
                IUIFormTab tab = _defClassFactory.CreateUIFormTab();
                columns.ForEach(tab.Add);
                _uiForm.Add(tab);
            }
            else if (contentType == "field") {
                IUIFormTab tab = _defClassFactory.CreateUIFormTab();
                IUIFormColumn col = _defClassFactory.CreateUIFormColumn();
                fields.ForEach(col.Add);
                tab.Add(col);
                _uiForm.Add(tab);
            }

            if (_uiForm.Count == 0)
            {
                throw new InvalidXmlDefinitionException("No 'tab', 'columnLayout' or 'field' " +
                    "elements were specified in a 'form' element.  Ensure " +
                    "that the element contains one or more of either 'tab', 'columnLayout' or 'field' elements, " +
                    "which each define what must appear in the editing form for " +
                    "the business object.");
            }
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Loads form tab data from the reader
        /// </summary>
        protected override void LoadFromReader()
        {
			_tab = _defClassFactory.CreateUIFormTab();
            _reader.Read();
            _tab.Name = _reader.GetAttribute("name");
            _reader.Read();
            var fields = new List<IUIFormField>();
            var contentType = "";
            while (_reader.Name != "tab")
            {
                if (_reader.Name == "columnLayout")
                {
                    if (contentType.Length > 0 && contentType != "columnLayout")
                    {
                        throw new InvalidXmlDefinitionException(MixedContentMessage);
                    }
                    contentType = "columnLayout";
                    var columnLoader = new XmlUIFormColumnLoader(DtdLoader, _defClassFactory);
                    _tab.Add(columnLoader.LoadUIFormColumn(_reader.ReadOuterXml()));
                }
                else if (_reader.Name == "field")
                {
                    if (contentType.Length > 0 && contentType != "field")
                    {
                        throw new InvalidXmlDefinitionException(MixedContentMessage);
                    }
                    contentType = "field";
                    var fieldLoader = new XmlUIFormFieldLoader(DtdLoader, _defClassFactory);
                    fields.Add(fieldLoader.LoadUIProperty(_reader.ReadOuterXml()));

                }
                else
                {
                    throw new InvalidXmlDefinitionException(MixedContentMessage);
                }
            }
            if (contentType == "field")
            {
                var col = _defClassFactory.CreateUIFormColumn();
                fields.ForEach(col.Add);
                _tab.Add(col);
            }
        }