diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementController.java index b8ccf9ac0..6c045ae52 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementController.java @@ -241,18 +241,17 @@ public class OrderElementController extends GenericForwardComposer { } private void close() { - validateTabs(); - self.setVisible(false); - Util.reloadBindings(self.getParent()); + if (validateTabs()) { + self.setVisible(false); + Util.reloadBindings(self.getParent()); + } } - private void validateTabs() { - validateProgressTab(); - validateTaskQualityTab(); - validateCriterionRequirementsTab(); + private boolean validateTabs() { + return (validateProgressTab() && validateTaskQualityTab() && validateCriterionRequirementsTab()); } - private void validateTaskQualityTab() { + private boolean validateTaskQualityTab() { try { if (assignedTaskQualityFormsController != null) { assignedTaskQualityFormsController.confirm(); @@ -261,9 +260,10 @@ public class OrderElementController extends GenericForwardComposer { selectTab("tabTaskQualityForm"); throw e; } + return true; } - private void validateCriterionRequirementsTab() { + private boolean validateCriterionRequirementsTab() { try { if (assignedCriterionRequirementController != null) { assignedCriterionRequirementController.close(); @@ -272,17 +272,20 @@ public class OrderElementController extends GenericForwardComposer { selectTab("tabRequirements"); throw e; } + return true; } - private void validateProgressTab() { + private boolean validateProgressTab() { try { - if (manageOrderElementAdvancesController != null) { - manageOrderElementAdvancesController.close(); + if ((manageOrderElementAdvancesController != null) && (!manageOrderElementAdvancesController.close())){ + selectTab("tabAdvances"); + return false; } } catch (WrongValueException e) { selectTab("tabAdvances"); throw e; } + return true; } public void close(Event event) {