Esempio n. 1
0
        /// <summary>
        /// Add bindable property value
        /// </summary>
        /// <param name="inlines">Inlines to fill</param>
        /// <param name="tipProperty">Property</param>
        /// <param name="source">Source object</param>
        private static void _AddBindableProperty(InlineCollection inlines, TipProperty tipProperty, object source)
        {
            try
            {
                PropertyPath propertyPath = new PropertyPath(tipProperty.PrefixPath + tipProperty.Name);

                Binding binding = new Binding();
                binding.Path   = propertyPath;
                binding.Source = source;

                FrameworkElement fe = new FrameworkElement();
                BindingOperations.SetBinding(fe, FrameworkElement.DataContextProperty, binding);

                object value = fe.DataContext;
                if (value != null)
                {
                    string valueStr;

                    if (value is double && tipProperty.ValueUnits.HasValue && tipProperty.DisplayUnits.HasValue)
                    {
                        Unit valueUnits   = tipProperty.ValueUnits.Value;
                        Unit displayUnits = tipProperty.DisplayUnits.Value;
                        if (valueUnits != displayUnits)
                        {
                            value = UnitConvertor.Convert((double)value, valueUnits, displayUnits);
                        }

                        valueStr = UnitFormatter.Format((double)value, displayUnits);
                    }
                    else
                    {
                        // Special case for planned date
                        if (tipProperty.Name.Equals(Order.PropertyNamePlannedDate))
                        {
                            DateTime dateTime = (DateTime)value;
                            valueStr = dateTime.ToShortDateString();
                        }
                        else if (tipProperty.Name.Equals(Stop.PropertyNameStopType))
                        {
                            valueStr = _GetStopTypeStr((StopType)value, (Stop)source);
                        }
                        else
                        {
                            valueStr = value.ToString();
                        }
                    }

                    if (valueStr.Length > 0)
                    {
                        _AddLine(tipProperty.Title, valueStr, inlines, false);
                    }
                }

                BindingOperations.ClearBinding(fe, FrameworkElement.DataContextProperty);
            }
            catch (Exception ex)
            {
                Logger.Info(ex);
            }
        }
        private string molWeightDisplayValue(double value)
        {
            var displayUnit   = _molWeightDimension.DefaultUnit;
            var unitFormatter = new UnitFormatter(displayUnit);

            return(unitFormatter.Format(_molWeightDimension.BaseUnitValueToUnitValue(displayUnit, value)));
        }
Esempio n. 3
0
        ///////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////
        protected override void DoValidate(double objectToValidate, object currentTarget, string key, ValidationResults validationResults)
        {
            Type         type     = currentTarget.GetType();
            PropertyInfo property = type.GetProperty(key);

            UnitPropertyAttribute unitAttribute = (UnitPropertyAttribute)Attribute.GetCustomAttribute(property, typeof(UnitPropertyAttribute));

            Unit displayUnits = (RegionInfo.CurrentRegion.IsMetric)? unitAttribute.DisplayUnitMetric : unitAttribute.DisplayUnitUS;
            Unit valueUnits   = unitAttribute.ValueUnits;

            if ((objectToValidate < _minValue) || (_maxValue < objectToValidate))
            {
                string format = this.MessageTemplate;

                double maxValue = _maxValue;
                if (valueUnits != displayUnits)
                {
                    maxValue = UnitConvertor.Convert(maxValue, valueUnits, displayUnits);
                }

                string valueToDisplay = UnitFormatter.Format(maxValue, displayUnits);

                string message = string.Format(format, valueToDisplay);
                this.LogValidationResult(validationResults, message, currentTarget, key);
            }
        }
        public void UnitFormatter_When_InputIs2Digits_Then_ResultIsInvalidDigitsException()
        {
            // arrange
            var formatter = new UnitFormatter();

            // act
            // assert
            Assert.Throws <InvalidDigitsException>(() => formatter.Format(10));
        }
        public void UnitFormatter_When_InputIs1Digit_Then_ResultIsNoException()
        {
            // arrange
            var formatter = new UnitFormatter();

            // act
            // assert
            Assert.DoesNotThrow(() => formatter.Format(9));
        }
Esempio n. 6
0
        private string numericFormatter <TInput>(TInput input, double value, Func <TInput, Unit> unitRetrieverFunc)
        {
            var withDimension = input as IWithDimension;

            if (withDimension == null)
            {
                return(_numericFormatter.Format(value));
            }

            if (unitRetrieverFunc == null || withDimension.Dimension == null)
            {
                return(_numericFormatter.Format(value));
            }

            var displayUnit  = unitRetrieverFunc(input);
            var displayValue = withDimension.Dimension.BaseUnitValueToUnitValue(displayUnit, value);

            return(_numericFormatter.Format(displayValue, displayUnit));
        }
        public void UnitFormatter_When_InputIs1_Then_ResultIsOne()
        {
            // arrange
            var formatter = new UnitFormatter();

            // act
            var value = formatter.Format(1);

            // assert
            Assert.That(value, Is.EqualTo("one"));
        }
        private string startValueDisplayFor(TStartValue startValue)
        {
            if (startValue.Formula != null)
            {
                var name    = startValue.Formula.Name;
                var display = startValue.Formula.ToString();
                return(string.Equals(name, display) ? name : $"{name} ({display})");
            }

            var value = startValue.ConvertToDisplayUnit(startValue.StartValue);

            return(_unitFormatter.Format(value, startValue.DisplayUnit));
        }
Esempio n. 9
0
        public SetRestartSolverInValuePointCommand(TableFormula tableFormula, ValuePoint valuePoint, bool newRestartSolverValue, IBuildingBlock buildingBlock) : base(buildingBlock)
        {
            _tableFormulaId        = tableFormula.Id;
            _tableFormula          = tableFormula;
            _valuePoint            = valuePoint;
            _newRestartSolverValue = newRestartSolverValue;
            _oldRestartSolverValue = _valuePoint.RestartSolver;
            _x = _valuePoint.X;
            _y = _valuePoint.Y;
            var unitFormatter = new UnitFormatter();

            CommandType = AppConstants.Commands.EditCommand;
            var dimension   = tableFormula.XDimension;
            var xCoordinate = dimension.BaseUnitValueToUnitValue(tableFormula.XDisplayUnit, valuePoint.X);

            dimension = tableFormula.Dimension;
            var yCoordinate = dimension.BaseUnitValueToUnitValue(tableFormula.YDisplayUnit, valuePoint.Y);

            Description = AppConstants.Commands.SetRestartSolverInValuePoint(_tableFormula.Name,
                                                                             unitFormatter.Format(xCoordinate, tableFormula.XDisplayUnit),
                                                                             unitFormatter.Format(yCoordinate, tableFormula.YDisplayUnit),
                                                                             newRestartSolverValue, _oldRestartSolverValue, buildingBlock.Name);
            ObjectType = ObjectTypes.ValuePoint;
        }
Esempio n. 10
0
        /// <summary>
        /// Set Text property to textbox using correct region format.
        /// </summary>
        private void _SetTextToInnerTextBox()
        {
            if (!_inited || this.Value == null)
            {
                if (_inited)
                {
                    // Clear value.
                    _TextBox.Text = string.Empty;
                }

                return;
            }

            double value = (double)this.Value;

            if (_valueUnits != _displayUnits)
            {
                value = UnitConvertor.Convert(value, _valueUnits, _displayUnits);
            }

            string valueToDisplay = UnitFormatter.Format(value, _displayUnits);

            _TextBox.Text = valueToDisplay;
        }
Esempio n. 11
0
        /// <summary>
        /// Initialize control.
        /// </summary>
        private void _Init()
        {
            Xceed.Wpf.DataGrid.CellContentPresenter cellContentPresenter = this.VisualParent as Xceed.Wpf.DataGrid.CellContentPresenter;
            if (cellContentPresenter == null)
            {
                return;
            }

            Xceed.Wpf.DataGrid.DataCell dataCell = cellContentPresenter.TemplatedParent as Xceed.Wpf.DataGrid.DataCell;
            string columnName = dataCell.ParentColumn.FieldName;

            ESRI.ArcLogistics.Data.DataObject dataObject = dataCell.ParentRow.DataContext as ESRI.ArcLogistics.Data.DataObject;

            if (dataObject != null)
            {
                int capacityPropertyIndex = Capacities.GetCapacityPropertyIndex(columnName);
                if (capacityPropertyIndex != -1)
                {
                    CapacityInfo capacityInfo = App.Current.Project.CapacitiesInfo[capacityPropertyIndex];
                    if (RegionInfo.CurrentRegion.IsMetric)
                    {
                        _displayUnits = capacityInfo.DisplayUnitMetric;
                    }
                    else
                    {
                        _displayUnits = capacityInfo.DisplayUnitUS;
                    }

                    _valueUnits = _displayUnits;
                }
                else
                {
                    Type         type     = dataObject.GetType();
                    PropertyInfo property = type.GetProperty(columnName);

                    UnitPropertyAttribute unitAttribute = (UnitPropertyAttribute)Attribute.GetCustomAttribute(property, typeof(UnitPropertyAttribute));

                    _displayUnits = (RegionInfo.CurrentRegion.IsMetric) ? unitAttribute.DisplayUnitMetric : unitAttribute.DisplayUnitUS;
                    _valueUnits   = unitAttribute.ValueUnits;
                }

                _TextBox.Text = UnitFormatter.Format(0.0, _displayUnits);

                _inited = true;

                _SetTextToInnerTextBox();
            }
            else
            {
                // If this is not DataObject
                Break breakObject = dataCell.ParentRow.DataContext as Break;
                if (breakObject != null)
                {
                    // If this is Break. Get it`s type and initiate control in a proper way.
                    Type type = breakObject.GetType();

                    PropertyInfo property = type.GetProperty(columnName);
                    if (property != null)
                    {
                        Attribute attr = Attribute.GetCustomAttribute(property, typeof(UnitPropertyAttribute));

                        UnitPropertyAttribute unitAttribute = (UnitPropertyAttribute)attr;

                        _displayUnits = (RegionInfo.CurrentRegion.IsMetric) ? unitAttribute.DisplayUnitMetric : unitAttribute.DisplayUnitUS;
                        _valueUnits   = unitAttribute.ValueUnits;
                    }

                    _TextBox.Text = UnitFormatter.Format(0.0, _displayUnits);

                    _inited = true;

                    _SetTextToInnerTextBox();
                }
            }
        }