|
@@ -0,0 +1,129 @@
|
|
|
+import 'package:vid/us/vid_us_unit.dart';
|
|
|
+
|
|
|
+class UnitDescriptionMap {
|
|
|
+ static UnitDescriptionMap? _instance;
|
|
|
+ static UnitDescriptionMap get _singleton {
|
|
|
+ if (_instance == null) {
|
|
|
+ _instance = UnitDescriptionMap._();
|
|
|
+ _instance!._initMap();
|
|
|
+ }
|
|
|
+ return _instance!;
|
|
|
+ }
|
|
|
+
|
|
|
+ final Map<VidUsUnit, String> _map = {};
|
|
|
+ UnitDescriptionMap._();
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ static String getDesc(VidUsUnit unit) {
|
|
|
+ return _singleton._getDesc(unit);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ static String getDescByInt(int value) {
|
|
|
+ final unit = VidUsUnitMap.getUnit(value);
|
|
|
+ return _singleton._getDesc(unit);
|
|
|
+ }
|
|
|
+
|
|
|
+ String _getDesc(VidUsUnit unit) {
|
|
|
+ if (_map.containsKey(unit)) {
|
|
|
+ return _map[unit]!;
|
|
|
+ }
|
|
|
+ return unit.name;
|
|
|
+ }
|
|
|
+
|
|
|
+ void _add(VidUsUnit unit, [String? description]) {
|
|
|
+ final desc = description ?? unit.name;
|
|
|
+ _map[unit] = desc;
|
|
|
+ }
|
|
|
+
|
|
|
+ void _initMap() {
|
|
|
+ _add(VidUsUnit.None, '');
|
|
|
+ _add(VidUsUnit.percent, '%');
|
|
|
+
|
|
|
+ _add(VidUsUnit.cm);
|
|
|
+ _add(VidUsUnit.mm);
|
|
|
+ _add(VidUsUnit.inch, 'in');
|
|
|
+ _add(VidUsUnit.ft);
|
|
|
+
|
|
|
+ _add(VidUsUnit.s);
|
|
|
+ _add(VidUsUnit.minute, 'min');
|
|
|
+ _add(VidUsUnit.hour, 'h');
|
|
|
+ _add(VidUsUnit.day, 'Day');
|
|
|
+ _add(VidUsUnit.week, 'Week');
|
|
|
+ _add(VidUsUnit.week_day, 'WeekDay');
|
|
|
+ _add(VidUsUnit.Tick, '');
|
|
|
+ _add(VidUsUnit.msec, 'ms');
|
|
|
+
|
|
|
+ _add(VidUsUnit.degree, '° ');
|
|
|
+ _add(VidUsUnit.radian, 'rad');
|
|
|
+
|
|
|
+ _add(VidUsUnit.g);
|
|
|
+ _add(VidUsUnit.mg);
|
|
|
+ _add(VidUsUnit.ng);
|
|
|
+ _add(VidUsUnit.kg);
|
|
|
+ _add(VidUsUnit.oz);
|
|
|
+ _add(VidUsUnit.lb);
|
|
|
+
|
|
|
+ _add(VidUsUnit.cm2, 'cm²');
|
|
|
+ _add(VidUsUnit.mm2, 'mm²');
|
|
|
+ _add(VidUsUnit.m2, 'm²');
|
|
|
+
|
|
|
+ _add(VidUsUnit.cm3, 'cm³');
|
|
|
+ _add(VidUsUnit.mm3, 'cm³');
|
|
|
+ _add(VidUsUnit.ml);
|
|
|
+ _add(VidUsUnit.L);
|
|
|
+
|
|
|
+ _add(VidUsUnit.cms, 'cm/s');
|
|
|
+ _add(VidUsUnit.mms, 'mm/s');
|
|
|
+ _add(VidUsUnit.ms, 'm/s');
|
|
|
+
|
|
|
+ _add(VidUsUnit.cms2, 'cm/s²');
|
|
|
+ _add(VidUsUnit.mms2, 'mm/s²');
|
|
|
+
|
|
|
+ _add(VidUsUnit.cm3s, 'cm³/s');
|
|
|
+ _add(VidUsUnit.mls, 'ml/s');
|
|
|
+ _add(VidUsUnit.mlmin, 'ml/min');
|
|
|
+ _add(VidUsUnit.Lmin, 'L/min');
|
|
|
+
|
|
|
+ _add(VidUsUnit.gcm3, 'g/cm³');
|
|
|
+ _add(VidUsUnit.gml, 'g/ml');
|
|
|
+ _add(VidUsUnit.ngml, 'ng/ml');
|
|
|
+
|
|
|
+ _add(VidUsUnit.mmHg);
|
|
|
+
|
|
|
+ _add(VidUsUnit.mV);
|
|
|
+
|
|
|
+ _add(VidUsUnit.Hz);
|
|
|
+ _add(VidUsUnit.KHz, 'kHz');
|
|
|
+ _add(VidUsUnit.HR, 'bpm');
|
|
|
+
|
|
|
+ _add(VidUsUnit.cm3m2, 'cm³/m²');
|
|
|
+ _add(VidUsUnit.mlm2, 'ml/m²');
|
|
|
+
|
|
|
+ _add(VidUsUnit.cm3sm2, 'cm³/s/m²');
|
|
|
+ _add(VidUsUnit.mlsm2, 'ml/s/m²');
|
|
|
+ _add(VidUsUnit.cm3minm2, 'cm³/min/m²');
|
|
|
+ _add(VidUsUnit.mlminm2, 'ml/min/m²');
|
|
|
+ _add(VidUsUnit.Lminm2, 'L/min.m²');
|
|
|
+ _add(VidUsUnit.circs, 'circ/s');
|
|
|
+
|
|
|
+ _add(VidUsUnit.mlbeat, 'ml/beat');
|
|
|
+
|
|
|
+ _add(VidUsUnit.mm2pa, 'mm²/Pa');
|
|
|
+ _add(VidUsUnit.d1mpa, '1/MPa');
|
|
|
+ _add(VidUsUnit.kpa, 'kPa');
|
|
|
+ _add(VidUsUnit.mmHgs, 'mmHg/s');
|
|
|
+ _add(VidUsUnit.gm2, 'g/m²');
|
|
|
+
|
|
|
+ _add(VidUsUnit.cm2m2, 'cm²/m²');
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+}
|