public override void SetUp() { base.SetUp(); _values = new IBusinessObject[5]; _values[0] = (IBusinessObject)TypeWithString.Create("0", "A"); _values[1] = (IBusinessObject)TypeWithString.Create("1", "A"); _values[2] = (IBusinessObject)TypeWithString.Create("2", "B"); _values[3] = (IBusinessObject)TypeWithString.Create("3", "B"); _values[4] = (IBusinessObject)TypeWithString.Create("4", "C"); _newValues = new IBusinessObject[2]; _newValues[0] = (IBusinessObject)TypeWithString.Create("5", "C"); _newValues[1] = (IBusinessObject)TypeWithString.Create("6", "D"); _typeWithStringClass = BindableObjectProviderTestHelper.GetBindableObjectClass(typeof(TypeWithString)); _typeWithStringFirstValuePath = BusinessObjectPropertyPath.CreateStatic(_typeWithStringClass, "FirstValue"); _typeWithStringSecondValuePath = BusinessObjectPropertyPath.CreateStatic(_typeWithStringClass, "SecondValue"); _typeWithStringFirstValueSimpleColumn = new BocSimpleColumnDefinition(); _typeWithStringFirstValueSimpleColumn.SetPropertyPath(_typeWithStringFirstValuePath); _typeWithStringSecondValueSimpleColumn = new BocSimpleColumnDefinition(); _typeWithStringSecondValueSimpleColumn.SetPropertyPath(_typeWithStringSecondValuePath); _bocList = new BocListMock(); _bocList.ID = "BocList"; NamingContainer.Controls.Add(_bocList); _bocList.LoadUnboundValue(_values, false); _bocList.SwitchListIntoEditMode(); Assert.That(_bocList.IsListEditModeActive, Is.True); }
public override IBusinessObjectBoundEditableWebControl Create(BocSimpleColumnDefinition column, int columnIndex) { var control = (BusinessObjectBoundEditableWebControl)base.Create(column, columnIndex); control.Required = true; return(control); }
protected bool IsColumnEditable(BocSimpleColumnDefinition column) { if (column == null) { return(false); } if (column.IsReadOnly) { return(false); } var propertyPath = column.GetPropertyPath(); if (propertyPath.IsDynamic) { return(false); } if (propertyPath.Properties.Count > 1) { return(false); } return(true); }
public virtual void SetUp() { _stringValueClass = BindableObjectProviderTestHelper.GetBindableObjectClass(typeof(TypeWithString)); _stringValuePropertyPath = BusinessObjectPropertyPath.CreateStatic(_stringValueClass, "FirstValue"); _stringValueColumn = new BocSimpleColumnDefinition(); _stringValueColumn.SetPropertyPath(_stringValuePropertyPath); _factory = EditableRowControlFactory.CreateEditableRowControlFactory(); }
public void GetComparer_WithPropertyPathNull() { var column = new BocSimpleColumnDefinition(); column.SetPropertyPath(null); var comparer = ((IBocSortableColumnDefinition)column).CreateCellValueComparer(); Assert.That(comparer, Is.InstanceOf <BusinessObjectPropertyPathBasedComparer>()); Assert.That(((BusinessObjectPropertyPathBasedComparer)comparer).PropertyPath, Is.InstanceOf <NullBusinessObjectPropertyPath>()); }
public void GetComparer_WithPropertyPathSet() { var propertyPath = MockRepository.GenerateStub <IBusinessObjectPropertyPath>(); var column = new BocSimpleColumnDefinition(); column.SetPropertyPath(propertyPath); var comparer = ((IBocSortableColumnDefinition)column).CreateCellValueComparer(); Assert.That(comparer, Is.InstanceOf <BusinessObjectPropertyPathBasedComparer>()); Assert.That(((BusinessObjectPropertyPathBasedComparer)comparer).PropertyPath, Is.SameAs(propertyPath)); }
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 override void SetUp() { base.SetUp(); _editModeHost = new FakeEditModeHost(); _editModeHost.ID = "BocList"; _editModeHost.RowIDProvider = new FakeRowIDProvider(); _editModeHost.EditModeControlFactory = EditableRowControlFactory.CreateEditableRowControlFactory(); _editModeHost.EditModeDataSourceFactory = new EditableRowDataSourceFactory(); _editableRow = new EditableRow(_editModeHost); _editableRow.ID = "Row"; NamingContainer.Controls.Add(_editableRow); _value01 = (IBusinessObject)TypeWithAllDataTypes.Create("A", 1); _typeWithAllDataTypesClass = BindableObjectProviderTestHelper.GetBindableObjectClass(typeof(TypeWithAllDataTypes)); _typeWithAllDataTypesStringValuePath = BusinessObjectPropertyPath.CreateStatic(_typeWithAllDataTypesClass, "String"); _typeWithAllDataTypesInt32ValuePath = BusinessObjectPropertyPath.CreateStatic(_typeWithAllDataTypesClass, "Int32"); _typeWithAllDataTypesStringValueSimpleColumn = new BocSimpleColumnDefinition(); _typeWithAllDataTypesStringValueSimpleColumn.SetPropertyPath(_typeWithAllDataTypesStringValuePath); _typeWithAllDataTypesStringValueSimpleColumnAsDynamic = new BocSimpleColumnDefinition(); _typeWithAllDataTypesStringValueSimpleColumnAsDynamic.SetPropertyPath(BusinessObjectPropertyPath.CreateDynamic("StringValue")); _typeWithAllDataTypesStringValueSimpleColumnAsDynamic.IsDynamic = true; _typeWithAllDataTypesInt32ValueSimpleColumn = new BocSimpleColumnDefinition(); _typeWithAllDataTypesInt32ValueSimpleColumn.SetPropertyPath(_typeWithAllDataTypesInt32ValuePath); _typeWithAllDataTypesStringValueFirstValueCompoundColumn = new BocCompoundColumnDefinition(); _typeWithAllDataTypesStringValueFirstValueCompoundColumn.PropertyPathBindings.Add( new PropertyPathBinding(_typeWithAllDataTypesStringValuePath)); _typeWithAllDataTypesStringValueFirstValueCompoundColumn.PropertyPathBindings.Add( new PropertyPathBinding(_typeWithAllDataTypesStringValuePath)); _typeWithAllDataTypesStringValueFirstValueCompoundColumn.FormatString = "{0}, {1}"; _typeWithAllDataTypesStringValueCustomColumn = new BocCustomColumnDefinition(); _typeWithAllDataTypesStringValueCustomColumn.SetPropertyPath(_typeWithAllDataTypesStringValuePath); _typeWithAllDataTypesStringValueCustomColumn.IsSortable = true; _commandColumn = new BocCommandColumnDefinition(); _rowEditModeColumn = new BocRowEditModeColumnDefinition(); _dropDownMenuColumn = new BocDropDownMenuColumnDefinition(); }
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; }
private void InitializeListFieldViews() { IBusinessObjectProperty endDate = ListField.Property.ReferenceClass.GetPropertyDefinition("EndDate"); BocSimpleColumnDefinition endDateColumnDefinition = new BocSimpleColumnDefinition(); endDateColumnDefinition.ColumnTitle = "EndDate"; endDateColumnDefinition.SetPropertyPath(BusinessObjectPropertyPath.CreateStatic(new[] { endDate })); BocListView emptyView = new BocListView(); emptyView.Title = "Empty"; emptyView.ColumnDefinitions.AddRange(new BocColumnDefinition[] {}); BocListView datesView = new BocListView(); datesView.Title = "Dates"; datesView.ColumnDefinitions.AddRange(new BocColumnDefinition[] { endDateColumnDefinition }); ListField.AvailableViews.AddRange(new BocListView[] { emptyView, datesView }); }
public void SetUp() { Column = new BocSimpleColumnDefinition(); Column.ColumnTitle = "TestColumn1"; Column.CssClass = c_columnCssClass; Initialize(); var editModeController = MockRepository.GenerateMock <IEditModeController>(); editModeController.Stub(mock => mock.RenderTitleCellMarkers(Html.Writer, Column, 0)).WhenCalled( invocation => ((HtmlTextWriter)invocation.Arguments[0]).Write(string.Empty)); List.Stub(mock => mock.EditModeController).Return(editModeController); List.Stub(mock => mock.IsClientSideSortingEnabled).Return(true); List.Stub(mock => mock.IsShowSortingOrderEnabled).Return(true); _bocListQuirksModeCssClassDefinition = new BocListQuirksModeCssClassDefinition(); _renderingContext = new BocColumnRenderingContext <BocSimpleColumnDefinition> (new BocColumnRenderingContext(HttpContext, Html.Writer, List, Column, 0, 0)); }
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 }
override protected void OnLoad(EventArgs e) { base.OnLoad(e); IBusinessObjectProperty dateOfBirth = CurrentObject.BusinessObjectClass.GetPropertyDefinition("DateOfBirth"); IBusinessObjectProperty dateOfDeath = CurrentObject.BusinessObjectClass.GetPropertyDefinition("DateOfDeath"); IBusinessObjectProperty height = CurrentObject.BusinessObjectClass.GetPropertyDefinition("Height"); IBusinessObjectProperty gender = CurrentObject.BusinessObjectClass.GetPropertyDefinition("Gender"); IBusinessObjectProperty cv = CurrentObject.BusinessObjectClass.GetPropertyDefinition("CV"); IBusinessObjectProperty income = CurrentObject.BusinessObjectClass.GetPropertyDefinition("Income"); // Additional columns, in-code generated BocSimpleColumnDefinition birthdayColumnDefinition = new BocSimpleColumnDefinition(); birthdayColumnDefinition.ColumnTitle = "Birthday"; birthdayColumnDefinition.SetPropertyPath(BusinessObjectPropertyPath.CreateStatic(new [] { dateOfBirth })); BocSimpleColumnDefinition dayofDeathColumnDefinition = new BocSimpleColumnDefinition(); dayofDeathColumnDefinition.ColumnTitle = "Day of Death"; dayofDeathColumnDefinition.SetPropertyPath(BusinessObjectPropertyPath.CreateStatic(new [] { dateOfDeath })); dayofDeathColumnDefinition.Width = Unit.Parse("9.1em", CultureInfo.InvariantCulture); dayofDeathColumnDefinition.EnforceWidth = true; BocSimpleColumnDefinition heightColumnDefinition = new BocSimpleColumnDefinition(); heightColumnDefinition.SetPropertyPath(BusinessObjectPropertyPath.CreateStatic(new [] { height })); BocSimpleColumnDefinition genderColumnDefinition = new BocSimpleColumnDefinition(); genderColumnDefinition.SetPropertyPath(BusinessObjectPropertyPath.CreateStatic(new [] { gender })); BocSimpleColumnDefinition cvColumnDefinition = new BocSimpleColumnDefinition(); cvColumnDefinition.SetPropertyPath(BusinessObjectPropertyPath.CreateStatic(new [] { cv })); BocSimpleColumnDefinition incomeColumnDefinition = new BocSimpleColumnDefinition(); incomeColumnDefinition.SetPropertyPath(BusinessObjectPropertyPath.CreateStatic(new [] { income })); BocListView datesView = new BocListView(); datesView.Title = "Dates"; datesView.ColumnDefinitions.AddRange( new BocColumnDefinition[] { birthdayColumnDefinition, dayofDeathColumnDefinition }); BocListView statsView = new BocListView(); statsView.Title = "Stats"; statsView.ColumnDefinitions.AddRange( new BocColumnDefinition[] { heightColumnDefinition, genderColumnDefinition }); BocListView cvView = new BocListView(); cvView.Title = "CV"; cvView.ColumnDefinitions.AddRange( new BocColumnDefinition[] { cvColumnDefinition }); BocListView incomeView = new BocListView(); incomeView.Title = "Income"; incomeView.ColumnDefinitions.AddRange( new BocColumnDefinition[] { incomeColumnDefinition }); ChildrenList.AvailableViews.AddRange(new BocListView[] { datesView, statsView, cvView, incomeView }); if (!IsPostBack) { ChildrenList.SelectedView = datesView; } if (!IsPostBack) { // ChildrenList.SetSortingOrder ( // new BocListSortingOrderEntry[] { // new BocListSortingOrderEntry ((BocColumnDefinition) ChildrenList.FixedColumns[7], SortingDirection.Ascending) }); } if (!IsPostBack) { ChildrenList.SwitchListIntoEditMode(); } if (!IsPostBack) { NumberOfNewRowsField.Value = 1; } NumberOfNewRowsField.IsDirty = false; }
override protected void OnLoad (EventArgs e) { base.OnLoad (e); IBusinessObjectProperty dateOfBirth = CurrentObject.BusinessObjectClass.GetPropertyDefinition ("DateOfBirth"); IBusinessObjectProperty dateOfDeath = CurrentObject.BusinessObjectClass.GetPropertyDefinition ("DateOfDeath"); IBusinessObjectProperty height = CurrentObject.BusinessObjectClass.GetPropertyDefinition ("Height"); IBusinessObjectProperty gender = CurrentObject.BusinessObjectClass.GetPropertyDefinition ("Gender"); IBusinessObjectProperty cv = CurrentObject.BusinessObjectClass.GetPropertyDefinition ("CV"); IBusinessObjectProperty income = CurrentObject.BusinessObjectClass.GetPropertyDefinition ("Income"); // Additional columns, in-code generated BocSimpleColumnDefinition birthdayColumnDefinition = new BocSimpleColumnDefinition(); birthdayColumnDefinition.ColumnTitle = "Birthday"; birthdayColumnDefinition.SetPropertyPath (BusinessObjectPropertyPath.CreateStatic (new []{dateOfBirth})); birthdayColumnDefinition.Width = Unit.Parse ("14em"); birthdayColumnDefinition.EnforceWidth = true; BocSimpleColumnDefinition dayofDeathColumnDefinition = new BocSimpleColumnDefinition(); dayofDeathColumnDefinition.ColumnTitle = "Day of Death"; dayofDeathColumnDefinition.SetPropertyPath (BusinessObjectPropertyPath.CreateStatic (new []{dateOfDeath})); dayofDeathColumnDefinition.Width = Unit.Parse ("7em"); dayofDeathColumnDefinition.EnforceWidth = true; BocSimpleColumnDefinition heightColumnDefinition = new BocSimpleColumnDefinition(); heightColumnDefinition.SetPropertyPath (BusinessObjectPropertyPath.CreateStatic (new []{height})); BocSimpleColumnDefinition genderColumnDefinition = new BocSimpleColumnDefinition(); genderColumnDefinition.SetPropertyPath (BusinessObjectPropertyPath.CreateStatic (new []{gender})); BocSimpleColumnDefinition cvColumnDefinition = new BocSimpleColumnDefinition(); cvColumnDefinition.SetPropertyPath (BusinessObjectPropertyPath.CreateStatic (new []{cv})); cvColumnDefinition.FormatString = "lines=3"; BocSimpleColumnDefinition incomeColumnDefinition = new BocSimpleColumnDefinition(); incomeColumnDefinition.SetPropertyPath (BusinessObjectPropertyPath.CreateStatic (new []{income})); BocListView datesView = new BocListView(); datesView.Title = "Dates"; datesView.ColumnDefinitions.AddRange (new BocColumnDefinition[] {birthdayColumnDefinition, dayofDeathColumnDefinition}); BocListView statsView = new BocListView(); statsView.Title = "Stats"; statsView.ColumnDefinitions.AddRange (new BocColumnDefinition[] {heightColumnDefinition, genderColumnDefinition}); BocListView cvView = new BocListView(); cvView.Title = "CV"; cvView.ColumnDefinitions.AddRange (new BocColumnDefinition[] {cvColumnDefinition}); BocListView incomeView = new BocListView(); incomeView.Title = "Income"; incomeView.ColumnDefinitions.AddRange (new BocColumnDefinition[] {incomeColumnDefinition}); ChildrenList.AvailableViews.AddRange (new BocListView[] { datesView, statsView, cvView, incomeView}); if (! IsPostBack) ChildrenList.SelectedView = datesView; if (!IsPostBack) { ChildrenList.SetSortingOrder ( new BocListSortingOrderEntry[] { new BocListSortingOrderEntry ((IBocSortableColumnDefinition) ChildrenList.FixedColumns[7], SortingDirection.Ascending) }); } if (IsPostBack) { // BocListSortingOrderEntry[] sortingOrder = ChildrenList.GetSortingOrder(); } if (!IsPostBack) { JobList.SetSelectedRows (new[] { 1 }); ChildrenList.SetSelectedBusinessObjects (new[] { ChildrenList.Value[1] }); } }
public override void SetUp() { base.SetUp(); _actualEvents = new StringCollection(); _values = new IBusinessObject[5]; _values[0] = (IBusinessObject)TypeWithAllDataTypes.Create("A", 1); _values[1] = (IBusinessObject)TypeWithAllDataTypes.Create("B", 2); _values[2] = (IBusinessObject)TypeWithAllDataTypes.Create("C", 3); _values[3] = (IBusinessObject)TypeWithAllDataTypes.Create("D", 4); _values[4] = (IBusinessObject)TypeWithAllDataTypes.Create("E", 5); _newValues = new IBusinessObject[2]; _newValues[0] = (IBusinessObject)TypeWithAllDataTypes.Create("F", 6); _newValues[1] = (IBusinessObject)TypeWithAllDataTypes.Create("G", 7); _class = BindableObjectProviderTestHelper.GetBindableObjectClass(typeof(TypeWithAllDataTypes)); _stringValuePath = BusinessObjectPropertyPath.CreateStatic(_class, "String"); _int32ValuePath = BusinessObjectPropertyPath.CreateStatic(_class, "Int32"); _stringValueSimpleColumn = new BocSimpleColumnDefinition(); _stringValueSimpleColumn.SetPropertyPath(_stringValuePath); _int32ValueSimpleColumn = new BocSimpleColumnDefinition(); _int32ValueSimpleColumn.SetPropertyPath(_int32ValuePath); _columns = new BocColumnDefinition[2]; _columns[0] = _stringValueSimpleColumn; _columns[1] = _int32ValueSimpleColumn; _editModeHost = new FakeEditModeHost(); _editModeHost.ID = "BocList"; _controller = new EditModeController(_editModeHost); _controller.ID = "Controller"; NamingContainer.Controls.Add(_controller); _controllerInvoker = new ControlInvoker(_controller); _editModeHost.NotifyOnEditableRowChangesCanceled = (i, o) => _actualEvents.Add(FormatChangesCanceledEventMessage(i, o)); _editModeHost.NotifyOnEditableRowChangesCanceling = (i, o) => _actualEvents.Add(FormatChangesCancelingEventMessage(i, o)); _editModeHost.NotifyOnEditableRowChangesSaved = (i, o) => _actualEvents.Add(FormatChangesSavedEventMessage(i, o)); _editModeHost.NotifyOnEditableRowChangesSaving = (i, o) => _actualEvents.Add(FormatChangesSavingEventMessage(i, o)); _editModeHost.NotifyAddRows = objects => { var oldLength = _editModeHost.Value.Count; _editModeHost.Value = ((IBusinessObject[])_editModeHost.Value).Concat(objects).ToArray(); return(((IBusinessObject[])_editModeHost.Value).Select((o, i) => new BocListRow(i, o)).Skip(oldLength).ToArray()); }; _editModeHost.NotifyRemoveRows = objects => { var removedRows = ((IBusinessObject[])_editModeHost.Value) .Select((o, i) => new BocListRow(i, o)) .Where(r => objects.Contains(r.BusinessObject)) .ToArray(); _editModeHost.Value = ((IBusinessObject[])_editModeHost.Value).Except(objects).ToArray(); return(removedRows); }; _editModeHost.NotifyEndRowEditModeCleanUp = i => _actualEvents.Add(FormatEndRowEditModeCleanUp(i)); _editModeHost.NotifyEndListEditModeCleanUp = () => _actualEvents.Add(FormatEndListEditModeCleanUp()); _editModeHost.NotifyValidateEditableRows = () => _actualEvents.Add(FormatValidateEditableRows()); _editModeHost.Value = _values; _editModeHost.RowIDProvider = new FakeRowIDProvider(); _editModeHost.EditModeControlFactory = EditableRowControlFactory.CreateEditableRowControlFactory(); _editModeHost.EditModeDataSourceFactory = new EditableRowDataSourceFactory(); _editModeHost.EnableEditModeValidator = true; _editModeHost.AreCustomCellsValid = true; }