diff --git a/appveyor.yml b/appveyor.yml index 4ea26a4e1..2ebabd583 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -21,6 +21,7 @@ skip_branch_with_pr: true branches: only: - develop + - hotfix/v9.1 pull_requests: do_not_increment_build_number: true diff --git a/src/PKSim.Core/CoreConstants.cs b/src/PKSim.Core/CoreConstants.cs index 373958cc8..6a57a2e9f 100644 --- a/src/PKSim.Core/CoreConstants.cs +++ b/src/PKSim.Core/CoreConstants.cs @@ -74,7 +74,7 @@ public static class Filter public static readonly string PK_SIM_DB_FILE = $"PKSimDB{Filter.MODEL_DB_EXTENSION}"; public static readonly string TEMPLATE_USER_DATABASE_TEMPLATE = "PKSimTemplateDBUser.template"; public const string PRODUCT_NAME = "PK-Sim"; - public static readonly string PRODUCT_NAME_WITH_TRADEMARK = "PK-Sim®"; + public static readonly string PRODUCT_NAME_WITH_TRADEMARK = "PK-Sim®"; public static readonly string DEFAULT_SKIN = "Office 2013 Light Gray"; public static readonly string VALUE_PROPERTY_NAME = "Value"; public static readonly string PROJECT_UNDEFINED = "Undefined"; @@ -125,18 +125,18 @@ public static class DirectoryKey public static class Units { - public static readonly string KgPerM2 = "kg/m²"; + public static readonly string KgPerM2 = "kg/m²"; public static readonly string Kg = "kg"; public static readonly string cm = "cm"; public static readonly string mg = "mg"; - public static readonly string MicroMolPerLiter = "µmol/l"; + public static readonly string MicroMolPerLiter = "µmol/l"; public static readonly string Percent = "%"; public static readonly string Days = "day(s)"; public static readonly string Weeks = "week(s)"; public static readonly string Years = "year(s)"; public static readonly string KgPerKg = "kg/kg"; public static readonly string MgPerKg = "mg/kg"; - public static readonly string MgPerM2 = "mg/m²"; + public static readonly string MgPerM2 = "mg/m²"; } public static class Observer diff --git a/src/PKSim.Core/Services/CompetitiveInhibitionsKineticUpdaterSpecification.cs b/src/PKSim.Core/Services/CompetitiveInhibitionsKineticUpdaterSpecification.cs index 90d027139..bb83e988d 100644 --- a/src/PKSim.Core/Services/CompetitiveInhibitionsKineticUpdaterSpecification.cs +++ b/src/PKSim.Core/Services/CompetitiveInhibitionsKineticUpdaterSpecification.cs @@ -10,8 +10,8 @@ namespace PKSim.Core.Services public class CompetitiveInhibitionsKineticUpdaterSpecification : InteractionKineticUpdaterSpecificationBase { public CompetitiveInhibitionsKineticUpdaterSpecification(IObjectPathFactory objectPathFactory, IDimensionRepository dimensionRepository, IInteractionTask interactionTask) : - base(objectPathFactory, dimensionRepository, interactionTask, InteractionType.CompetitiveInhibition, - kiNumeratorAlias: CoreConstants.Alias.COMPETITIVE_INHIBITION_KI, +\ base(objectPathFactory, dimensionRepository, interactionTask, InteractionType.CompetitiveInhibition, += kiNumeratorAlias: CoreConstants.Alias.COMPETITIVE_INHIBITION_KI, kiNumeratorParameter: CoreConstants.Parameters.KI, kiDenominatorAlias: CoreConstants.Alias.COMPETITIVE_INHIBITION_KI, kiDenominatorParameter: CoreConstants.Parameters.KI, diff --git a/src/PKSim.Presentation/DTO/Simulations/SimulationIntervalDTO.cs b/src/PKSim.Presentation/DTO/Simulations/SimulationIntervalDTO.cs deleted file mode 100644 index 1ad127c93..000000000 --- a/src/PKSim.Presentation/DTO/Simulations/SimulationIntervalDTO.cs +++ /dev/null @@ -1,62 +0,0 @@ -using OSPSuite.Core.Domain; -using OSPSuite.Presentation.DTO; -using OSPSuite.Utility.Validation; -using PKSim.Assets; -using PKSim.Presentation.DTO.Parameters; - -namespace PKSim.Presentation.DTO.Simulations -{ - public class SimulationIntervalDTO : ValidatableDTO - { - public OutputInterval SimulationInterval { get; set; } - public ParameterDTO StartTimeParameter { get; set; } - public ParameterDTO EndTimeParameter { get; set; } - public ParameterDTO ResolutionParameter { get; set; } - - public SimulationIntervalDTO() - { - Rules.Add(startTimeLessThanEndTime); - Rules.Add(endTimeGreaterThanStartTime); - } - - public double StartTime - { - get { return StartTimeParameter.Value; } - set { StartTimeParameter.Value = value; } - } - - public double EndTime - { - get { return EndTimeParameter.Value; } - set { EndTimeParameter.Value = value; } - } - - public double Resolution - { - get { return ResolutionParameter.Value; } - set { ResolutionParameter.Value = value; } - } - - private IBusinessRule startTimeLessThanEndTime - { - get - { - return CreateRule.For() - .Property(x => x.StartTime) - .WithRule((dto, value) => StartTimeParameter.Parameter.ConvertToBaseUnit(value) < EndTimeParameter.KernelValue) - .WithError(PKSimConstants.Rules.Parameter.StartTimeLessThanOrEqualToEndTime); - } - } - - private IBusinessRule endTimeGreaterThanStartTime - { - get - { - return CreateRule.For() - .Property(x => x.EndTime) - .WithRule((dto, value) => EndTimeParameter.Parameter.ConvertToBaseUnit(value) > StartTimeParameter.KernelValue) - .WithError(PKSimConstants.Rules.Parameter.EndTimeGreaterThanOrEqualToStartTime); - } - } - } -} \ No newline at end of file diff --git a/src/PKSim.UI/Views/Compounds/CompoundParameterWithDefaultAlternativeBaseView.cs b/src/PKSim.UI/Views/Compounds/CompoundParameterWithDefaultAlternativeBaseView.cs index 7ed4e762b..211b76515 100644 --- a/src/PKSim.UI/Views/Compounds/CompoundParameterWithDefaultAlternativeBaseView.cs +++ b/src/PKSim.UI/Views/Compounds/CompoundParameterWithDefaultAlternativeBaseView.cs @@ -111,7 +111,13 @@ protected override bool ColumnIsButton(GridColumn column) { return Equals(_colButtons?.XtraColumn, column); } - + + + protected override bool ColumnIsCheckBox(GridColumn column) + { + return Equals(_colDefault?.XtraColumn, column); + } + public override void InitializeResources() { base.InitializeResources(); diff --git a/src/PKSim.UI/Views/Core/BaseUserControlWithValueInGrid.cs b/src/PKSim.UI/Views/Core/BaseUserControlWithValueInGrid.cs index 7dee4d81f..36867e454 100644 --- a/src/PKSim.UI/Views/Core/BaseUserControlWithValueInGrid.cs +++ b/src/PKSim.UI/Views/Core/BaseUserControlWithValueInGrid.cs @@ -37,6 +37,12 @@ protected virtual void OnGridViewMouseDown(UxGridView gridView, MouseEventArgs e return; } + if (ColumnIsCheckBox(col)) + { + RaiseCheckEditClick(gridView, col, rowHandle, e); + return; + } + if (!ColumnIsValue(col)) { gridView.EditorShowMode = EditorShowMode.Default; @@ -46,12 +52,22 @@ protected virtual void OnGridViewMouseDown(UxGridView gridView, MouseEventArgs e OnValueColumnMouseDown(gridView, col, rowHandle); } - - protected virtual bool ColumnIsButton(GridColumn column) + protected virtual void RaiseCheckEditClick(UxGridView gridView, GridColumn column, int rowHandle, MouseEventArgs e) { - return false; + //Adapted from https://supportcenter.devexpress.com/ticket/details/t230842/grid-the-buttonclick-event-is-not-raised-immediately-when-multi-selection-is-enabled + gridView.FocusedRowHandle = rowHandle; + gridView.FocusedColumn = column; + gridView.ShowEditor(); + //force button click + var edit = gridView.ActiveEditor.DowncastTo(); + edit.Toggle(); + ((DXMouseEventArgs) e).Handled = true; } - + + protected virtual bool ColumnIsButton(GridColumn column) => false; + + protected virtual bool ColumnIsCheckBox(GridColumn column) => false; + protected virtual void OnValueColumnMouseDown(UxGridView gridView, GridColumn col, int rowHandle) { gridView.EditorShowMode = EditorShowMode.MouseUp;