Beispiel #1
0
 public BxSubSetUnit(IBxUnit baseUnit, IBxUnitCategory cate, string name, int nIndex)
 {
     _baseUnit = baseUnit;
     _cate     = cate;
     _name     = name;
     _nIndex   = nIndex;
 }
Beispiel #2
0
 public double GetValue(IBxUnit unit)
 {
     if (unit.BaseUnitCate != Unit.BaseUnitCate)
     {
         throw new Exception("Unit Category is not Matching!");
     }
     return(Unit.EMConverTo(Value, unit));
 }
        public IBxUnit Parse(string unitID)
        {
            IBxUnit unit = _subsetUnits.Find(x => x.ID == unitID);

            if (unit == null)
            {
                unit = _baseCategory.Parse(unitID);
            }
            return(unit);
        }
Beispiel #4
0
        public void InitDefaultUnit(string fullID)
        {
            IBxDefaultUnit du = BxSystemInfo.Instance.DefaultUnitCenter.GetDefaultUnit(fullID);

            if (du != null)
            {
                _unit = du.DefaultUnit;
                OnModified();
            }
        }
        public IBxUnit ParseByName(string name)
        {
            IBxUnit unit = _subsetUnits.Find(x => x.Name == name);

            if (unit == null)
            {
                unit = _baseCategory.ParseByName(name);
            }
            return(unit);
        }
        public IBxUnit Find(string unitCode)
        {
            IBxUnit unit = _subsetUnits.Find(x => x.Code == unitCode);

            if (unit == null)
            {
                unit = _baseCategory.Find(unitCode);
            }
            return(unit);
        }
 public IBxFormula GetFormula(IBxUnit src, IBxUnit trg)
 {
     if ((src.BaseUnitCate != this.BaseUnitCate) || (trg.BaseUnitCate != this.BaseUnitCate))
     {
         throw new Exception();
     }
     //IBxUnit baseSrcUnit = src.BaseUnit;
     // IBxUnit baseTrgUnit = trg.BaseUnit;
     return(_baseCategory.GetFormula(src.BaseUnit, trg.BaseUnit));
 }
Beispiel #8
0
        public bool SetUIValue(string val, IBxUnit unit)
        {
            double d;

            if (double.TryParse(val, out d))
            {
                SetUV(d, unit);
                return(true);
            }
            return(false);
        }
Beispiel #9
0
        public override bool LoadFromString(string s)
        {
            string[] parts = s.Split(new char[] { ',' });
            if (parts.Length != 3)
            {
                Valid = false;
                return(false);
            }
            IBxUnit unit = BxSystemInfo.Instance.UnitsCenter.Parse(parts[1]).Parse(parts[2]);

            return(SetUIValue(parts[0], unit));
        }
Beispiel #10
0
        public bool SetUIValue(string val, IBxUnit unit)
        {
            double d;

            if (double.TryParse(val, NumberStyles.Any, CultureInfo.InvariantCulture, out d))
            {
                SetValue(d, unit);
                return(true);
            }
            Valid = false;
            return(false);
        }
Beispiel #11
0
        public override void LoadStorageNode(IBxStorageNode node)
        {
            string val = node.GetElementValue(BxStorageLable.elementValue);
            string uc  = node.GetElementValue(BxStorageLable.elementUnitCate);
            string u   = node.GetElementValue(BxStorageLable.elementUnit);

            if (!string.IsNullOrEmpty(uc))
            {
                IBxUnit unit = BxSystemInfo.Instance.UnitsCenter.Parse(uc).Parse(u);
                SetUIValue(val, unit);
            }
        }
Beispiel #12
0
 void InitUnit()
 {
     if (_InitedUnit)
     {
         return;
     }
     if (_config != null)
     {
         _unit = _config.Unit;
     }
     _InitedUnit = true;
 }
Beispiel #13
0
 public void ChangeUnit(IBxUnit unit)
 {
     if (Unit != null)
     {
         if (Unit.Category != unit.Category)
         {
             throw new Exception("can not switch unit between diffrent unit category!");
         }
         _value = Unit.EMConverTo(_value, unit);
         Unit   = unit;
     }
 }
Beispiel #14
0
        public IBxFormula GetFormula(IBxUnit src, IBxUnit trg)
        {
            if ((src.BaseUnitCate != this) || (trg.BaseUnitCate != this))
            {
                throw new Exception();
            }
            Int32 index1 = (src.BaseUnit as IBxIndexedUnit).Index;
            Int32 index2 = (trg.BaseUnit as IBxIndexedUnit).Index;

            return(GetFormula(index1, index2));

            //return GetFormula((src as IBxIndexedUnit).Index, (trg as IBxIndexedUnit).Index);
        }
Beispiel #15
0
        public void LoadXmlNode(XmlElement node)
        {
            string s = node.GetAttribute("id");

            if (!string.IsNullOrEmpty(s))
            {
                _id = s;
            }

            string cate = node.GetAttribute("unitCate");
            string unit = node.GetAttribute("unit");

            _unit = BxSystemInfo.Instance.UnitsCenter.EMParse(cate, unit);
        }
Beispiel #16
0
        public string GetUIValue(IBxUnit unit)
        {
            if (!Valid)
            {
                return(null);
            }
            if (unit.BaseUnitCate != Unit.BaseUnitCate)
            {
                return(null);
            }

            double val = Unit.EMConverTo(Value, unit);

            return(val.ToString(CultureInfo.InvariantCulture));
        }
Beispiel #17
0
        public string GetUIValue(IBxUnit trgUnit, IBxUnit decimalDigitsUnit, int decimalDigits)
        {
            if (!Valid)
            {
                return(null);
            }
            if (trgUnit.BaseUnitCate != Unit.BaseUnitCate)
            {
                return(null);
            }

            string val = BxUnitConvert.ConverToEx(Value, Unit, trgUnit, decimalDigitsUnit, decimalDigits);

            return(val);
        }
Beispiel #18
0
        static public string Conver(double srcValue, int srcDecimalDigits, IBxUnit srcUnit, IBxUnit trgUnit)
        {
            IBxUnitCategory cate    = srcUnit.Category;
            int             ddAdopt = trgUnit.DecimalDigits - srcUnit.DecimalDigits;
            int             trgDD   = srcDecimalDigits + ddAdopt;

            if (trgDD < 0)
            {
                trgDD = 0;
            }
            double trgValue = cate.GetFormula(srcUnit, trgUnit).Calc(srcValue);
            string sFromat  = "{0:F" + trgDD.ToString() + "}";
            string s        = string.Format(sFromat, trgValue);

            return(s);
        }
Beispiel #19
0
        public void SetFormula(string srcUnit, string trgUnit, IBxFormula fml)
        {
            if (srcUnit == trgUnit)
            {
                return;
            }
            IBxUnit src = Parse(srcUnit);
            IBxUnit trg = Parse(trgUnit);

            if ((src == null) || (trg == null))
            {
                return;
            }
            _SrcUnitFormulas formulas = m_formulas[src.Index];

            formulas.SetFormula(trg.Index, fml);
        }
Beispiel #20
0
 public IBxFormula GetFormula(IBxUnit src, IBxUnit trg)
 {
     return(GetFormula(src.Index, trg.Index));
 }
Beispiel #21
0
 public BxUnitS(IBxUnit val) : base()
 {
     Value.InitValue(val);
 }
Beispiel #22
0
        public string GetUIValue(IBxUnit unit)
        {
            double val = Unit.EMConverTo(_value, unit);

            return(val.ToString());
        }
Beispiel #23
0
 public BxUnitDouble()
 {
     _value = default(double); _unit = null;
 }
Beispiel #24
0
 public void SetUV(double val, IBxUnit unit)
 {
     _value = val;
     Unit   = unit;
 }
Beispiel #25
0
        static public double EMConverTo(this IBxUnit srcUnit, double srcValue, string trgUnit)
        {
            IBxUnitCategory cate = srcUnit.Category;

            return(cate.GetFormula(srcUnit, cate.Parse(trgUnit)).Calc(srcValue));
        }
Beispiel #26
0
        static public double EMConverFrom(this IBxUnit trgUnit, double srcValue, string srcUnit)
        {
            IBxUnitCategory cate = trgUnit.Category;

            return(cate.GetFormula(cate.Parse(srcUnit), trgUnit).Calc(srcValue));
        }
Beispiel #27
0
 public void ChangeUnit(IBxUnit unit)
 {
     _value.ChangeUnit(unit);
 }
Beispiel #28
0
 public void SetUV(double val, IBxUnit unit)
 {
     _value.SetUV(val, unit);
 }
Beispiel #29
0
 public BxUnitValue(double val, IBxUnit unit)
 {
     _value = val;
     Unit   = unit;
 }
Beispiel #30
0
 public BxUnitValue()
 {
     _value = default(double); _unit = null; _InitedUnit = false;
 }