private void SetState(ItemState value)
        {
            var namesList = ALData.GetItemStateNamesList(ItemType.Nutrition);

            fView.StateCombo.AddRange(namesList, false);
            fView.StateCombo.SetSelectedTag <ItemState>(value);
        }
        public void RecalcValues()
        {
            var tankShape = fView.ShapeCombo.GetSelectedTag <TankShape>();

            fView.TankVolumeField.Enabled = (tankShape == TankShape.Unknown);

            if (tankShape != TankShape.Unknown)
            {
                double tankVolume = fRecord.CalcTankVolume(tankShape);
                fView.TankVolumeField.SetDecimalVal(tankVolume);
            }

            double underfillHeight = ALCore.GetDecimalVal(fView.UnderfillHeightField.Text);
            double soilHeight      = ALCore.GetDecimalVal(fView.SoilHeightField.Text);

            double waterVolume = fRecord.CalcWaterVolume(tankShape, underfillHeight, soilHeight);

            fView.WaterVolumeField.Text = ALData.CastStr(waterVolume, MeasurementType.Volume);

            double soilVolume = fRecord.CalcSoilVolume(tankShape, soilHeight);

            fView.SoilVolumeField.Text = ALData.CastStr(soilVolume, MeasurementType.Volume);

            double soilMass = soilVolume * ALData.DefaultSoilDensity;

            fView.SoilMassField.Text = ALData.CastStr(soilMass, MeasurementType.Mass);

            double waterMass = waterVolume * ALData.WaterDensity;
            //txtWaterMass.Text = ALData.CastStr(waterMass, MeasurementType.Mass);

            double totalMass = waterMass + soilMass;
        }
예제 #3
0
        /// <summary>
        /// The base area of an aquarium (cm2).
        /// </summary>
        public override double CalcBaseArea()
        {
            double glassThickness = GlassThickness;
            double width          = Width;
            double centreWidth    = CentreWidth;
            double length         = Length;

            if (glassThickness > 0.0d)
            {
                double thicknessX2 = glassThickness * 2.0d;

                width       -= thicknessX2; // two sides
                centreWidth -= thicknessX2; // two sides
                length      -= thicknessX2; // two sides
            }

            double chordWidth = centreWidth - width;

            float radius, wedgeAngle;

            ALData.CalcSegmentParams((float)chordWidth, (float)length, out radius, out wedgeAngle);

            double segmSquare = (radius * radius * (wedgeAngle - Math.Sin(wedgeAngle))) / 2.0d;
            double rectSquare = (length * width);
            double baseArea   = segmSquare + rectSquare;

            return(baseArea);
        }
예제 #4
0
 public override void SetPropNames()
 {
     base.SetPropNames();
     ALCore.SetDisplayNameValue(this, "Length", ALData.GetLSuom(LSID.Length, MeasurementType.Length));
     ALCore.SetDisplayNameValue(this, "Width", ALData.GetLSuom(LSID.Width, MeasurementType.Length));
     ALCore.SetDisplayNameValue(this, "Height", ALData.GetLSuom(LSID.Height, MeasurementType.Length));
 }
예제 #5
0
        public override void SetLocale()
        {
            Text           = Localizer.LS(LSID.Aquarium);
            btnAccept.Text = Localizer.LS(LSID.Accept);
            btnCancel.Text = Localizer.LS(LSID.Cancel);

            tabCommon.Text = Localizer.LS(LSID.Common);
            tabTank.Text   = Localizer.LS(LSID.Tank);

            lblName.Text = Localizer.LS(LSID.Name);
            lblDesc.Text = Localizer.LS(LSID.Description);

            // deprecated
            //lblStartDate.Text = Localizer.LS(LSID.StartDate);
            //lblStopDate.Text = Localizer.LS(LSID.StopDate);

            lblShape.Text     = Localizer.LS(LSID.Shape);
            lblWaterType.Text = Localizer.LS(LSID.WaterType);

            lblVolume.Text      = ALData.GetLSuom(LSID.TankVolume, MeasurementType.Volume);
            lblWaterVolume.Text = ALData.GetLSuom(LSID.WaterVolume, MeasurementType.Volume);

            btnTank.Text = Localizer.LS(LSID.Tank) + "...";

            lblUnderfillHeight.Text = ALData.GetLSuom(LSID.UnderfillHeight, MeasurementType.Length);
            lblSoilHeight.Text      = ALData.GetLSuom(LSID.SoilHeight, MeasurementType.Length);
            lblSoilVolume.Text      = ALData.GetLSuom(LSID.SoilVolume, MeasurementType.Volume);
            lblSoilMass.Text        = ALData.GetLSuom(LSID.SoilMass, MeasurementType.Mass);
            lblBrand.Text           = Localizer.LS(LSID.Brand);
        }
예제 #6
0
 public override void SetPropNames()
 {
     base.SetPropNames();
     ALCore.SetDisplayNameValue(this, "Height", ALData.GetLSuom(LSID.Height, MeasurementType.Length));
     ALCore.SetDisplayNameValue(this, "BottomDiameter", ALData.GetLSuom(LSID.BottomDiameter, MeasurementType.Length));
     ALCore.SetDisplayNameValue(this, "TopDiameter", ALData.GetLSuom(LSID.TopDiameter, MeasurementType.Length));
 }
예제 #7
0
        private void SetState(ItemType itemType, ItemState itemState)
        {
            var namesList = ALData.GetItemStateNamesList(itemType);

            fView.StateCombo.AddRange(namesList, false);
            fView.StateCombo.SetSelectedTag(fRecord.State);
        }
예제 #8
0
        public override void UpdateView()
        {
            if (fRecord != null)
            {
                fView.AquariumCombo.AddRange(fModel.QueryAquariumsList(!fRecord.IsNewRecord));
                fView.AquariumCombo.SetSelectedTag(fRecord.AquariumId);

                var pointsList = ALData.GetEntityNamesList(fModel.TSDB.GetPoints());
                fView.TSPointsCombo.AddItem(" --- ", 0);
                foreach (var item in pointsList)
                {
                    fView.TSPointsCombo.Add(item);
                }
                fView.TSPointsCombo.SetSelectedTag(fRecord.PointId);

                fView.BrandCombo.AddRange(fModel.QueryDeviceBrands(), true);
                fView.BrandCombo.Text = fRecord.Brand;

                fView.TypeCombo.SetSelectedTag(fRecord.Type);
                fView.NameField.Text       = fRecord.Name;
                fView.EnabledCheck.Checked = fRecord.Enabled;
                fView.DigitalCheck.Checked = fRecord.Digital;
                fView.PowerField.SetDecimalVal(fRecord.Power);
                fView.WorkTimeField.SetDecimalVal(fRecord.WorkTime);
                fView.NoteField.Text = fRecord.Note;

                var namesList = ALData.GetItemStateNamesList(ItemType.Device);
                fView.StateCombo.AddRange(namesList, false);
                fView.StateCombo.SetSelectedTag(fRecord.State);
            }
        }
        public void CalcCO2()
        {
            double degKH = fView.KHField.GetDecimalVal();
            double PH    = fView.PHField.GetDecimalVal();
            double CO2   = ALData.CalcCO2(degKH, PH);

            fView.CO2Field.SetDecimalVal(CO2);
        }
        public void CalcNH3()
        {
            double temp    = fView.TemperatureField.GetDecimalVal();
            double totalNH = fView.NHField.GetDecimalVal();
            double pH      = fView.PHField.GetDecimalVal();
            double NH3     = ALData.CalcNH3(pH, temp, totalNH);

            fView.NH3Field.SetDecimalVal(NH3);
        }
        public ScheduleEditorPresenter(IScheduleEditorView view) : base(view)
        {
            var scheduleTypesList = ALData.GetNamesList <ScheduleType>(ALData.ScheduleTypes);

            fView.TypeCombo.AddRange(scheduleTypesList, false);

            var taskStatusesList = ALData.GetNamesList <TaskStatus>(ALData.TaskStatuses);

            fView.StatusCombo.AddRange(taskStatusesList, false);
        }
        public AquariumEditorPresenter(IAquariumEditorView view) : base(view)
        {
            var tankShapesList = ALData.GetNamesList <TankShape>(ALData.TankShapes);

            fView.ShapeCombo.AddRange(tankShapesList, false);

            var waterTypesList = ALData.GetNamesList <AquariumWaterType>(ALData.WaterTypes);

            fView.WaterTypeCombo.AddRange(waterTypesList, false);
        }
예제 #13
0
        public override void SetLocale()
        {
            Text           = Localizer.LS(LSID.Measure);
            btnAccept.Text = Localizer.LS(LSID.Accept);
            btnCancel.Text = Localizer.LS(LSID.Cancel);

            lblAquarium.Text    = Localizer.LS(LSID.Aquarium);
            lblTimestamp.Text   = Localizer.LS(LSID.Timestamp);
            lblTemperature.Text = ALData.GetLSuom(LSID.Temperature, MeasurementType.Temperature);
        }
        public SpeciesEditorPresenter(ISpeciesEditorView view) : base(view)
        {
            var speciesTypesList = ALData.GetNamesList <SpeciesType>(ALData.SpeciesTypes);

            fView.TypeCombo.AddRange(speciesTypesList, true);

            var swimLevelsList = ALData.GetNamesList <SwimLevel>(ALData.SwimLevels);

            fView.SwimLevelCombo.AddRange(swimLevelsList, false);

            var careLevelsList = ALData.GetNamesList <CareLevel>(ALData.CareLevels);

            fView.CareLevelCombo.AddRange(careLevelsList, false);

            var temperamentsList = ALData.GetNamesList <Temperament>(ALData.Temperaments);

            fView.TemperamentCombo.AddRange(temperamentsList, false);
        }
예제 #15
0
        // Draw an arc strip of a given height from y=0
        private void DrawBowfront(float x1, float x2, float z1, float width, float fullWidth, float height, out float centerZ, out IList <Point3D> points)
        {
            float chordLength = x2 - x1;
            float chordWidth  = fullWidth - width;

            float radius, wedgeAngle;

            ALData.CalcSegmentParams(chordWidth, chordLength, out radius, out wedgeAngle);
            wedgeAngle = (float)MathHelper.RadiansToDegrees(wedgeAngle);

            centerZ = (z1 + fullWidth - radius);
            Point3D p0         = new Point3D(0.0f, 0.0f, centerZ);
            Point3D p1         = new Point3D(x2, 0.0f, centerZ);
            Point3D p2         = new Point3D(x2, 0.0f, z1 + width);
            float   startAngle = Vector3D.GetAngle(p1.Sub(p0), p2.Sub(p0));

            fScene.PushMatrix();
            fScene.Translatef(0.0f, 0.0f, centerZ);
            points = GetArcPoints(30, radius, startAngle, wedgeAngle);
            DrawCylinder(points, height, radius);
            fScene.PopMatrix();
        }
예제 #16
0
        public override void UpdateView()
        {
            var speciesList  = fModel.QuerySpecies();
            var species      = speciesList.FirstOrDefault(sp => sp.Id == fRecord.SpeciesId);
            var speciesNames = ALData.GetEntityNamesList(speciesList);

            fView.SpeciesCombo.AddRange(speciesNames);
            fView.SpeciesCombo.SetSelectedTag(fRecord.SpeciesId);

            fView.NameField.Text = fRecord.Name;
            fView.NoteField.Text = fRecord.Note;
            fView.SexCombo.SetSelectedTag(fRecord.Sex);

            ItemType itemType;

            if (species != null)
            {
                itemType = ALCore.GetItemType(species.Type);
                ItemState itemState;
                DateTime  exclusionDate;
                fModel.GetItemState(fRecord.Id, itemType, out itemState, out exclusionDate);
                bool noTransferState = (itemState == ItemState.Unknown);
                fView.StateCombo.Enabled = noTransferState;

                if (!noTransferState)
                {
                    SetState(itemType, fRecord.State);
                }
            }
            else
            {
                itemType = ItemType.None;
                fView.StateCombo.Clear();
            }

            fView.SetImage(itemType, fRecord.Id);
        }
예제 #17
0
 public override void Calculate()
 {
     ResultValue = ALData.CalcSalt(Volume, Nitrite);
 }
        public MaintenanceEditorPresenter(IMaintenanceEditorView view) : base(view)
        {
            var maintenanceTypesList = ALData.GetNamesList <MaintenanceType>(ALData.MaintenanceTypes);

            fView.TypeCombo.AddRange(maintenanceTypesList, true);
        }
예제 #19
0
        public InhabitantEditorPresenter(IInhabitantEditorView view) : base(view)
        {
            var sexNamesList = ALData.GetNamesList <Sex>(ALData.SexNames);

            fView.SexCombo.AddRange(sexNamesList, false);
        }
예제 #20
0
        }                              // Photosynthetically Active Radiation, UoM: W/m2


        public override void SetPropNames()
        {
            ALCore.SetDisplayNameValue(this, "LightTemperature", ALData.GetLSuom(LSID.LightTemperature, MeasurementType.LightTemperature));
            ALCore.SetDisplayNameValue(this, "LuminousFlux", ALData.GetLSuom(LSID.LuminousFlux, MeasurementType.LuminousFlux));
            ALCore.SetDisplayNameValue(this, "PAR", ALData.GetLSuom(LSID.PhotosyntheticallyActiveRadiation, MeasurementType.PhotosyntheticallyActiveRadiation));
        }
        public InventoryEditorPresenter(IInventoryEditorView view) : base(view)
        {
            var inventoryTypesList = ALData.GetNamesList <InventoryType>(ALData.InventoryTypes);

            fView.TypeCombo.AddRange(inventoryTypesList, true);
        }
예제 #22
0
 public override void SetPropNames()
 {
     base.SetPropNames();
     ALCore.SetDisplayNameValue(this, "EdgeSize", ALData.GetLSuom(LSID.EdgeSize, MeasurementType.Length));
 }
예제 #23
0
 public virtual void SetPropNames()
 {
     ALCore.SetDisplayNameValue(this, "GlassThickness", ALData.GetLSuom(LSID.GlassThickness, MeasurementType.Length));
 }
        public TransferEditorPresenter(ITransferEditorView view) : base(view)
        {
            var transferTypesList = ALData.GetNamesList <TransferType>(ALData.TransferTypes);

            fView.TypeCombo.AddRange(transferTypesList, true);
        }
예제 #25
0
 public override void SetPropNames()
 {
     ALCore.SetDisplayNameValue(this, "Size", ALData.GetLSuom(LSID.Size, MeasurementType.Length));
     ALCore.SetDisplayNameValue(this, "Weight", ALData.GetLSuom(LSID.Weight, MeasurementType.Mass));
 }
예제 #26
0
        }                                 // UoM: l


        public override void SetPropNames()
        {
            base.SetPropNames();
            ALCore.SetDisplayNameValue(this, "Volume", ALData.GetLSuom(LSID.Volume, MeasurementType.Volume));
        }
예제 #27
0
        }                                  // kg/l


        public override void SetPropNames()
        {
            ALCore.SetDisplayNameValue(this, "Density", ALData.GetLSuom(LSID.Density, MeasurementType.Density));
        }
예제 #28
0
        public DeviceEditorPresenter(IDeviceEditorView view) : base(view)
        {
            var deviceTypesList = ALData.GetNamesList <DeviceType>(ALData.DeviceProps);

            fView.TypeCombo.AddRange(deviceTypesList, true);
        }