Beispiel #1
0
        public void Create()
        {
            IBusinessObjectReferenceDataSource dataSource = _factory.Create(_value);

            Assert.That(dataSource, Is.Not.Null);
            Assert.That(dataSource.BusinessObject, Is.SameAs(_value));
        }
        public void GetTrackedIDs()
        {
            Invoker.InitRecursive();

            _editableRow.DataSourceFactory = new EditableRowDataSourceFactory();
            _editableRow.ControlFactory    = EditableRowControlFactory.CreateEditableRowControlFactory();

            BocColumnDefinition[] columns = new BocColumnDefinition[3];
            columns[0] = _typeWithAllDataTypesStringValueSimpleColumn;
            columns[1] = _typeWithAllDataTypesInt32ValueSimpleColumn;
            columns[2] = _commandColumn;

            _editableRow.CreateControls(_value01, columns);

            IBusinessObjectReferenceDataSource dataSource = _editableRow.GetDataSource();

            dataSource.LoadValues(false);

            string id = "NamingContainer_Row_{0}_Value";

            string[] trackedIDs = new string[2];
            trackedIDs[0] = string.Format(id, 0);
            trackedIDs[1] = string.Format(id, 1);

            Assert.That(_editableRow.GetTrackedClientIDs(), Is.EqualTo(trackedIDs));
        }
        public void PrepareValidation()
        {
            Invoker.InitRecursive();

            _editableRow.DataSourceFactory = new EditableRowDataSourceFactory();
            _editableRow.ControlFactory    = EditableRowControlFactory.CreateEditableRowControlFactory();

            BocColumnDefinition[] columns = new BocColumnDefinition[3];
            columns[0] = _typeWithAllDataTypesStringValueSimpleColumn;
            columns[1] = _typeWithAllDataTypesInt32ValueSimpleColumn;
            columns[2] = _commandColumn;

            _editableRow.CreateControls(_value01, columns);
            _editableRow.EnsureValidatorsRestored();

            IBusinessObjectReferenceDataSource dataSource = _editableRow.GetDataSource();

            dataSource.LoadValues(false);

            BocTextValue stringValueField = (BocTextValue)_editableRow.GetEditControl(0);
            BocTextValue int32ValueField  = (BocTextValue)_editableRow.GetEditControl(1);

            _editableRow.PrepareValidation();

            Assert.That(stringValueField.Text, Is.EqualTo(stringValueField.Text));
            Assert.That(int32ValueField.Text, Is.EqualTo(int32ValueField.Text));
        }
        public void IsDirty()
        {
            Invoker.InitRecursive();

            _editableRow.DataSourceFactory = new EditableRowDataSourceFactory();
            _editableRow.ControlFactory    = EditableRowControlFactory.CreateEditableRowControlFactory();

            BocColumnDefinition[] columns = new BocColumnDefinition[3];
            columns[0] = _typeWithAllDataTypesStringValueSimpleColumn;
            columns[1] = _typeWithAllDataTypesInt32ValueSimpleColumn;
            columns[2] = _commandColumn;

            _editableRow.CreateControls(_value01, columns);

            IBusinessObjectReferenceDataSource dataSource = _editableRow.GetDataSource();

            dataSource.LoadValues(false);

            Assert.That(_editableRow.IsDirty(), Is.False);

            BocTextValue textBoxStringValue = (BocTextValue)_editableRow.GetEditControl(0);

            textBoxStringValue.Value = "a";

            Assert.That(_editableRow.IsDirty(), Is.True);
        }
        public void SaveValue()
        {
            Invoker.InitRecursive();

            _editableRow.DataSourceFactory = new EditableRowDataSourceFactory();
            _editableRow.ControlFactory    = EditableRowControlFactory.CreateEditableRowControlFactory();

            BocColumnDefinition[] columns = new BocColumnDefinition[2];
            columns[0] = _typeWithAllDataTypesStringValueSimpleColumn;
            columns[1] = _typeWithAllDataTypesInt32ValueSimpleColumn;

            _editableRow.CreateControls(_value01, columns);

            IBusinessObjectReferenceDataSource dataSource = _editableRow.GetDataSource();

            dataSource.LoadValues(false);

            BocTextValue textBoxStringValue = (BocTextValue)_editableRow.GetEditControl(0);
            BocTextValue textBoxInt32Value  = (BocTextValue)_editableRow.GetEditControl(1);

            Assert.That(textBoxStringValue.Value, Is.EqualTo("A"));
            Assert.That(textBoxInt32Value.Value, Is.EqualTo(1));

            textBoxStringValue.Value = "New Value A";
            textBoxInt32Value.Value  = "100";

            dataSource.SaveValues(false);

            Assert.That(((TypeWithAllDataTypes)_value01).String, Is.EqualTo("New Value A"));
            Assert.That(((TypeWithAllDataTypes)_value01).Int32, Is.EqualTo(100));
        }
        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 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 ValidateWithInvalidValues()
        {
            Invoker.InitRecursive();

            _editableRow.DataSourceFactory = new EditableRowDataSourceFactory();
            _editableRow.ControlFactory    = EditableRowControlFactory.CreateEditableRowControlFactory();

            BocColumnDefinition[] columns = new BocColumnDefinition[3];
            columns[0] = _typeWithAllDataTypesStringValueSimpleColumn;
            columns[1] = _typeWithAllDataTypesInt32ValueSimpleColumn;
            columns[2] = _commandColumn;

            _editableRow.CreateControls(_value01, columns);
            _editableRow.EnsureValidatorsRestored();

            IBusinessObjectReferenceDataSource dataSource = _editableRow.GetDataSource();

            dataSource.LoadValues(false);

            SetValues(_editableRow, "A", "");

            Assert.That(_editableRow.Validate(), Is.False);
        }
        public void CreateControlsWithEmptyColumns()
        {
            Invoker.InitRecursive();

            Assert.That(_editableRow.HasEditControls(), Is.False);
            Assert.That(_editableRow.HasValidators(), Is.False);

            _editableRow.DataSourceFactory = new EditableRowDataSourceFactory();
            _editableRow.ControlFactory    = EditableRowControlFactory.CreateEditableRowControlFactory();

            _editableRow.CreateControls(_value01, new BocColumnDefinition[0]);

            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));
        }