/// <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); } }
/// <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 ------------------------- }
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()); }
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()); }
/// <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."); } }
/// <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."); } }
/// <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); } }