ItEr28S11AltaEtiquetasTipoEtiquetaItEr27S11: Add checkings when creating and assigning label to OrderElement
This commit is contained in:
parent
5f5b60a399
commit
05bf7a4123
3 changed files with 97 additions and 78 deletions
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue