From 9e1de6f85b7d0dfede9aaa38477a86b4b4c3c9b0 Mon Sep 17 00:00:00 2001 From: IllianiCBT Date: Sat, 24 Aug 2024 18:36:01 -0500 Subject: [PATCH] Refactored salary editing logic in PersonnelTableMouseAdapter Added a utility function to clamp salary values, ensuring they fall within a specified range. --- .../adapter/PersonnelTableMouseAdapter.java | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/MekHQ/src/mekhq/gui/adapter/PersonnelTableMouseAdapter.java b/MekHQ/src/mekhq/gui/adapter/PersonnelTableMouseAdapter.java index 6055e7cebc..265b8f7f84 100644 --- a/MekHQ/src/mekhq/gui/adapter/PersonnelTableMouseAdapter.java +++ b/MekHQ/src/mekhq/gui/adapter/PersonnelTableMouseAdapter.java @@ -21,6 +21,7 @@ import megamek.client.generator.RandomCallsignGenerator; import megamek.client.generator.RandomNameGenerator; import megamek.client.ui.dialogs.PortraitChooserDialog; +import megamek.codeUtilities.MathUtility; import megamek.common.Compute; import megamek.common.Crew; import megamek.common.EntityWeightClass; @@ -1046,19 +1047,30 @@ public void actionPerformed(ActionEvent action) { break; } case CMD_EDIT_SALARY: { - PopupValueChoiceDialog pcvd = new PopupValueChoiceDialog(gui.getFrame(), true, + int originalSalary = selectedPerson.getSalary(gui.getCampaign()).getAmount().intValue(); + + PopupValueChoiceDialog salaryDialog = new PopupValueChoiceDialog( + gui.getFrame(), + true, resources.getString("changeSalary.text"), - selectedPerson.getSalary(gui.getCampaign()).getAmount().intValue(), - -1, 100000); - pcvd.setVisible(true); - int salary = pcvd.getValue(); - if (salary < -1) { + MathUtility.clamp(originalSalary, -1, 1000000000), + -1, + 1000000000 + ); + + salaryDialog.setVisible(true); + + int newSalary = salaryDialog.getValue(); + + if (newSalary < -1) { return; } + for (Person person : people) { - person.setSalary(Money.of(salary)); + person.setSalary(Money.of(newSalary)); MekHQ.triggerEvent(new PersonChangedEvent(person)); } + break; } case CMD_GIVE_PAYMENT: {