From b446658fe266fa3fec7f87996046dc5744675661 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Wed, 23 Dec 2009 17:23:15 +0100 Subject: [PATCH] ItEr40S16CUImportacionOrganizacionsTraballoItEr39S17: Added some constraints on behaviour when you assign labels to an order element from the interface. --- .../business/labels/entities/Label.java | 13 +++++ .../orders/entities/OrderElement.java | 54 +++++++++++++++---- ...ssignedLabelsToOrderElementController.java | 12 ++++- .../AssignedLabelsToOrderElementModel.java | 23 ++++++-- 4 files changed, 87 insertions(+), 15 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/labels/entities/Label.java b/navalplanner-business/src/main/java/org/navalplanner/business/labels/entities/Label.java index 2cc47464f..e08b54747 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/labels/entities/Label.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/labels/entities/Label.java @@ -87,4 +87,17 @@ public class Label extends BaseEntity { public void removeOrderElement(OrderElement orderElement) { orderElements.add(orderElement); } + + public boolean isEqualTo(Label label) { + if ((this.getName() != null) && (label.getName() != null) + && (this.getType() != null) && (label.getType() != null) + && (this.getType().getName() != null) + && (label.getType().getName() != null) + && this.getName().equals(label.getName()) + && this.getType().getName().equals(label.getType().getName())) { + return true; + } + return false; + } + } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java index 4420391c4..c784bc3c2 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java @@ -371,6 +371,15 @@ public abstract class OrderElement extends BaseEntity { public void addLabel(Label label) { Validate.notNull(label); + + if (!checkAncestorsNoOtherLabelRepeated(label)) { + throw new IllegalArgumentException( + _("Some ancestor has the same label assigned, " + + "so this element is already inheriting this label")); + } + + removeLabelOnChildren(label); + labels.add(label); } @@ -763,19 +772,46 @@ public abstract class OrderElement extends BaseEntity { private boolean containsLabel(HashSet