public void CreateWithStringProperty()
        {
            IBusinessObjectBoundEditableWebControl control = _factory.Create(_stringValueColumn, 0);

            Assert.That(control, Is.Not.Null);
            Assert.That(control is BocTextValue, Is.True);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 protected void PrepareValidation(int columnIndex)
 {
     if (HasEditControl(columnIndex))
     {
         IBusinessObjectBoundEditableWebControl editControl = GetEditControl(columnIndex);
         editControl.PrepareValidation();
     }
 }
Ejemplo n.º 4
0
 protected void CreateValidators(int columnIndex)
 {
     if (HasEditControl(columnIndex))
     {
         IBusinessObjectBoundEditableWebControl editControl = GetEditControl(columnIndex);
         var validators = editControl.CreateValidators();
         AddToValidators(columnIndex, validators);
     }
 }
Ejemplo n.º 5
0
        protected void SetEditControl(int index, IBusinessObjectBoundEditableWebControl control)
        {
            Control webControl = ArgumentUtility.CheckNotNullAndType <Control> ("control", control);

            ControlCollection cellControls = GetEditControls(index);

            cellControls.Clear();
            cellControls.Add(webControl);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 8
0
        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;
        }
Ejemplo n.º 9
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
        }