diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/AssignedLabelsToOrderElementController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/AssignedLabelsToOrderElementController.java index c2d413808..c73dc52c3 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/AssignedLabelsToOrderElementController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/AssignedLabelsToOrderElementController.java @@ -57,11 +57,26 @@ public class AssignedLabelsToOrderElementController extends final String labelName = txtLabelName.getValue(); final LabelType labelType = (LabelType) comboitem.getValue(); - if (!assignedLabelsToOrderElementModel.existsLabelByNameAndType( - labelName, labelType)) { - final Label label = createLabel(labelName, labelType); - assignLabel(label); + + // Label does not exist, create + Label label = assignedLabelsToOrderElementModel + .findLabelByNameAndType(labelName, labelType); + if (label == null) { + label = createLabel(labelName, labelType); + } else { + // Label is already assigned? + if (isAssigned(label)) { + throw new WrongValueException(txtLabelName, + _("already assigned")); + } } + + // Assign label + assignLabel(label); + } + + private boolean isAssigned(Label label) { + return assignedLabelsToOrderElementModel.isAssigned(label); } private void assignLabel(Label label) { @@ -74,11 +89,6 @@ public class AssignedLabelsToOrderElementController extends labelType); } - private void addLabel(String labelName, LabelType labelType) { - assignedLabelsToOrderElementModel.addLabel(labelName, labelType); - Util.reloadBindings(directLabels); - } - public List