ItEr28S11AltaEtiquetasTipoEtiquetaItEr27S11: Add checkings when creating and assigning label to OrderElement

This commit is contained in:
Diego Pino Garcia 2009-10-01 18:12:36 +02:00 committed by Javier Moran Rua
parent 5f5b60a399
commit 05bf7a4123
3 changed files with 97 additions and 78 deletions

View file

@ -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<Label> getLabels() {
return assignedLabelsToOrderElementModel.getLabels();
}

View file

@ -36,10 +36,19 @@ public class AssignedLabelsToOrderElementModel implements
OrderElement orderElement;
@Override
public OrderElement getOrderElement() {
return orderElement;
}
@Override
public void setOrderElement(OrderElement orderElement) {
this.orderElement = orderElement;
}
@Override
@Transactional(readOnly = true)
public void init(OrderElement orderElement) {
// orderDAO.save(orderElement);
this.orderElement = orderElement;
reattachOrderElement(this.orderElement);
}
@ -55,11 +64,15 @@ public class AssignedLabelsToOrderElementModel implements
private void reattachLabels(Set<Label> labels) {
for (Label label : labels) {
label.getName();
label.getType().getName();
reattachLabel(label);
}
}
public void reattachLabel(Label label) {
label.getName();
label.getType().getName();
}
@Transactional(readOnly = true)
public List<Label> getLabels() {
List<Label> result = new ArrayList<Label>();
@ -69,16 +82,26 @@ public class AssignedLabelsToOrderElementModel implements
return result;
}
@Override
@Transactional(readOnly = true)
public boolean existsLabelByNameAndType(String labelName,
LabelType labelType) {
return (labelDAO.findByNameAndType(labelName, labelType) != null);
public List<Label> getInheritedLabels() {
List<Label> result = new ArrayList<Label>();
if (orderElement != null) {
OrderLineGroup parent = orderElement.getParent();
while (parent != null) {
reattachOrderElement(parent);
result.addAll(parent.getLabels());
parent = parent.getParent();
}
}
return result;
}
public void addLabel(String labelName, LabelType labelType) {
public Label createLabel(String labelName, LabelType labelType) {
Label label = Label.create(labelName);
label.setType(labelType);
orderElement.addLabel(label);
return label;
}
public void assignLabel(Label label) {
@ -92,43 +115,23 @@ public class AssignedLabelsToOrderElementModel implements
@Override
@Transactional(readOnly = true)
public List<Label> getInheritedLabels() {
System.out.println("### getInheritedLabels");
List<Label> result = new ArrayList<Label>();
if (orderElement != null) {
OrderLineGroup parent = orderElement.getParent();
while (parent != null) {
reattachOrderElement(parent);
// System.out.println("### labels: " + parent.getLabels());
result.addAll(parent.getLabels());
parent = parent.getParent();
}
public Label findLabelByNameAndType(String labelName, LabelType labelType) {
final Label label = labelDAO.findByNameAndType(labelName, labelType);
if (label != null) {
reattachLabel(label);
}
return result;
}
@Override
public OrderElement getOrderElement() {
return orderElement;
}
@Override
public void setOrderElement(OrderElement orderElement) {
this.orderElement = orderElement;
}
/**
*
* @param labelName
* @param labelType
* @return
*/
public Label createLabel(String labelName, LabelType labelType) {
Label label = Label.create(labelName);
label.setType(labelType);
return label;
}
@Override
public boolean isAssigned(Label label) {
final Set<Label> labels = orderElement.getLabels();
for (Label element : labels) {
if (element.getId().equals(label.getId())) {
return true;
}
}
return false;
}
}

View file

@ -12,32 +12,43 @@ import org.navalplanner.business.orders.entities.OrderElement;
public interface IAssignedLabelsToOrderElementModel {
/**
* Assigns {@link Label} to {@link OrderElement}
*
* @param label
*/
void assignLabel(Label label);
/**
* Creates new {@link Label}
*
* @param labelName
* @param labelType
* @return
*/
boolean existsLabelByNameAndType(String labelName, LabelType labelType);
Label createLabel(String labelName, LabelType labelType);
/**
* Delete {@link Label}
*
* @param label
*/
void deleteLabel(Label label);
/**
* Returns {@link Label} by name and type
*
* @param labelName
* @param labelType
* @return
*/
void addLabel(String labelName, LabelType labelType);
Label findLabelByNameAndType(String labelName, LabelType labelType);
/**
* Returns all {@link Label} from {@link OrderElement} ancestors
*
* @return
*/
OrderElement getOrderElement();
/**
* Set {@link OrderElement}
*
* @param orderElement
*/
void setOrderElement(OrderElement orderElement);
List<Label> getInheritedLabels();
/**
* Returns {@link OrderElement}
@ -46,32 +57,27 @@ public interface IAssignedLabelsToOrderElementModel {
*/
public List<Label> getLabels();
/**
*
* @param label
*/
void deleteLabel(Label label);
/**
*
* @return
*/
List<Label> getInheritedLabels();
OrderElement getOrderElement();
void init(OrderElement orderElement);
/**
*
* @param labelName
* @param labelType
* @return
*/
Label createLabel(String labelName, LabelType labelType);
/**
* Check whether {@link Label} has been already assigned to
* {@link OrderElement} or not
*
* @param label
*/
void assignLabel(Label label);
boolean isAssigned(Label label);
/**
* Set {@link OrderElement}
*
* @param orderElement
*/
void setOrderElement(OrderElement orderElement);
}