public void CreateWithStringProperty() { IBusinessObjectBoundEditableWebControl control = _factory.Create(_stringValueColumn, 0); Assert.That(control, Is.Not.Null); Assert.That(control is BocTextValue, Is.True); }
public void GetEditControl() { Invoker.InitRecursive(); Assert.That(_editableRow.HasEditControls(), Is.False); Assert.That(_editableRow.HasEditControl(0), Is.False); Assert.That(_editableRow.HasEditControl(0), Is.False); _editableRow.DataSourceFactory = new EditableRowDataSourceFactory(); _editableRow.ControlFactory = EditableRowControlFactory.CreateEditableRowControlFactory(); BocColumnDefinition[] columns = new BocColumnDefinition[2]; columns[0] = _typeWithAllDataTypesInt32ValueSimpleColumn; columns[1] = _commandColumn; _editableRow.CreateControls(_value01, columns); Assert.That(_editableRow.HasEditControls(), Is.True); Assert.That(_editableRow.HasEditControl(0), Is.True); Assert.That(_editableRow.HasEditControl(1), Is.False); IBusinessObjectBoundEditableWebControl control = _editableRow.GetEditControl(0); Assert.That(control, Is.Not.Null); Assert.That(control is BocTextValue, Is.True); Assert.That(_editableRow.GetEditControl(1), Is.Null); }
protected void PrepareValidation(int columnIndex) { if (HasEditControl(columnIndex)) { IBusinessObjectBoundEditableWebControl editControl = GetEditControl(columnIndex); editControl.PrepareValidation(); } }
protected void CreateValidators(int columnIndex) { if (HasEditControl(columnIndex)) { IBusinessObjectBoundEditableWebControl editControl = GetEditControl(columnIndex); var validators = editControl.CreateValidators(); AddToValidators(columnIndex, validators); } }
protected void SetEditControl(int index, IBusinessObjectBoundEditableWebControl control) { Control webControl = ArgumentUtility.CheckNotNullAndType <Control> ("control", control); ControlCollection cellControls = GetEditControls(index); cellControls.Clear(); cellControls.Add(webControl); }
public void CreateControlsWithColumns() { Invoker.InitRecursive(); Assert.That(_editableRow.HasEditControls(), Is.False); Assert.That(_editableRow.HasValidators(), Is.False); Assert.That(_editableRow.HasEditControl(0), Is.False); _editableRow.DataSourceFactory = new EditableRowDataSourceFactory(); _editableRow.ControlFactory = EditableRowControlFactory.CreateEditableRowControlFactory(); BocColumnDefinition[] columns = new BocColumnDefinition[8]; columns[0] = _typeWithAllDataTypesStringValueSimpleColumn; columns[1] = _typeWithAllDataTypesStringValueFirstValueCompoundColumn; columns[2] = _typeWithAllDataTypesStringValueCustomColumn; columns[3] = _commandColumn; columns[4] = _rowEditModeColumn; columns[5] = _dropDownMenuColumn; columns[6] = _typeWithAllDataTypesInt32ValueSimpleColumn; columns[7] = _typeWithAllDataTypesStringValueSimpleColumnAsDynamic; _editableRow.CreateControls(_value01, columns); Assert.That(_editableRow.HasEditControls(), Is.True); Assert.That(_editableRow.HasValidators(), Is.True); Assert.That(_editableRow.DataSourceFactory, Is.Not.Null); Assert.That(_editableRow.ControlFactory, Is.Not.Null); IBusinessObjectReferenceDataSource dataSource = _editableRow.GetDataSource(); Assert.That(dataSource, Is.Not.Null); Assert.That(dataSource.BusinessObject, Is.SameAs(_value01)); Assert.That(_editableRow.HasEditControl(0), Is.True); Assert.That(_editableRow.HasEditControl(1), Is.False); Assert.That(_editableRow.HasEditControl(2), Is.False); Assert.That(_editableRow.HasEditControl(3), Is.False); Assert.That(_editableRow.HasEditControl(4), Is.False); Assert.That(_editableRow.HasEditControl(5), Is.False); Assert.That(_editableRow.HasEditControl(6), Is.True); Assert.That(_editableRow.HasEditControl(7), Is.False); IBusinessObjectBoundEditableWebControl textBoxFirstValue = _editableRow.GetEditControl(0); Assert.That(textBoxFirstValue is BocTextValue, Is.True); Assert.That(textBoxFirstValue.DataSource, Is.SameAs(dataSource)); Assert.That(textBoxFirstValue.Property, Is.SameAs(_typeWithAllDataTypesStringValuePath.Properties.Last())); IBusinessObjectBoundEditableWebControl textBoxSecondValue = _editableRow.GetEditControl(6); Assert.That(textBoxSecondValue is BocTextValue, Is.True); Assert.That(textBoxSecondValue.DataSource, Is.SameAs(dataSource)); Assert.That(textBoxSecondValue.Property, Is.SameAs(_typeWithAllDataTypesInt32ValuePath.Properties.Last())); }
public virtual IBusinessObjectBoundEditableWebControl Create(BocSimpleColumnDefinition column, int columnIndex) { ArgumentUtility.CheckNotNull("column", column); if (columnIndex < 0) { throw new ArgumentOutOfRangeException("columnIndex"); } IBusinessObjectBoundEditableWebControl control = column.CreateEditModeControl(); if (control == null) { control = CreateFromPropertyPath(column.GetPropertyPath()); } return(control); }
public virtual void CreateControls(IBusinessObject value, BocColumnDefinition[] columns) { ArgumentUtility.CheckNotNull("value", value); ArgumentUtility.CheckNotNullOrItemsNull("columns", columns); if (_dataSourceFactory == null) { throw new InvalidOperationException( string.Format("BocList '{0}': DataSourceFactory has not been set prior to invoking CreateControls().", _editModeHost.ID)); } if (_controlFactory == null) { throw new InvalidOperationException( string.Format("BocList '{0}': ControlFactory has not been set prior to invoking CreateControls().", _editModeHost.ID)); } CreatePlaceHolders(columns); _dataSource = _dataSourceFactory.Create(value); _rowEditModeControls = new IBusinessObjectBoundEditableWebControl[columns.Length]; for (int idxColumns = 0; idxColumns < columns.Length; idxColumns++) { BocSimpleColumnDefinition simpleColumn = columns[idxColumns] as BocSimpleColumnDefinition; if (IsColumnEditable(simpleColumn)) { IBusinessObjectBoundEditableWebControl control = _controlFactory.Create(simpleColumn, idxColumns); if (control != null) { control.ID = idxColumns.ToString(); control.DataSource = _dataSource; IBusinessObjectPropertyPath propertyPath = simpleColumn.GetPropertyPath(); control.Property = propertyPath.Properties[0]; SetEditControl(idxColumns, control); _rowEditModeControls[idxColumns] = control; } } } _isRowEditModeValidatorsRestored = false; }
public void RenderSimpleColumnCellEditModeControl( HtmlTextWriter writer, BocSimpleColumnDefinition column, IBusinessObject businessObject, int columnIndex) { ArgumentUtility.CheckNotNull("writer", writer); ArgumentUtility.CheckNotNull("column", column); ArgumentUtility.CheckNotNull("businessObject", businessObject); if (!HasEditControl(columnIndex)) { return; } ControlCollection validators = GetValidators(columnIndex); IBusinessObjectBoundEditableWebControl editModeControl = _rowEditModeControls[columnIndex]; bool enforceWidth = column.EnforceWidth && !column.Width.IsEmpty && column.Width.Type != UnitType.Percentage; if (enforceWidth) { writer.AddStyleAttribute(HtmlTextWriterStyle.Width, column.Width.ToString(CultureInfo.InvariantCulture)); } writer.AddAttribute(HtmlTextWriterAttribute.Class, "bocListEditableCell"); writer.RenderBeginTag(HtmlTextWriterTag.Span); // Span Container if (_editModeHost.ShowEditModeValidationMarkers) { bool isCellValid = true; Image validationErrorMarker = _editModeHost.GetValidationErrorMarker(); for (int i = 0; i < validators.Count; i++) { BaseValidator validator = (BaseValidator)validators[i]; isCellValid &= validator.IsValid; if (!validator.IsValid) { if (string.IsNullOrEmpty(validationErrorMarker.ToolTip)) { validationErrorMarker.ToolTip = validator.ErrorMessage; } else { validationErrorMarker.ToolTip += "\r\n"; validationErrorMarker.ToolTip += validator.ErrorMessage; } } } if (!isCellValid) { validationErrorMarker.RenderControl(writer); } } writer.AddAttribute(HtmlTextWriterAttribute.Class, "control"); writer.RenderBeginTag(HtmlTextWriterTag.Span); // Span Control editModeControl.RenderControl(writer); writer.RenderEndTag(); // Span Control foreach (BaseValidator validator in validators) { writer.RenderBeginTag(HtmlTextWriterTag.Div); validator.RenderControl(writer); writer.RenderEndTag(); if (!validator.IsValid && validator.Display == ValidatorDisplay.None && !_editModeHost.DisableEditModeValidationMessages) { if (!string.IsNullOrEmpty(validator.CssClass)) { writer.AddAttribute(HtmlTextWriterAttribute.Class, validator.CssClass); } else { writer.AddAttribute(HtmlTextWriterAttribute.Class, CssClassEditModeValidationMessage); } writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.Write(validator.ErrorMessage); // Do not HTML encode. writer.RenderEndTag(); } } writer.RenderEndTag(); // Span Container }