ItEr28S11AltaEtiquetasTipoEtiquetaItEr27S11: Show inherited labels in OrderElement Labels tab
This commit is contained in:
parent
d5167874ac
commit
5222b9bb2c
7 changed files with 78 additions and 17 deletions
|
|
@ -16,7 +16,7 @@
|
|||
<many-to-one name="type" class="LabelType" column="LABEL_TYPE_ID" />
|
||||
</properties>
|
||||
|
||||
<set name="orderElements" table="ORDER_ELEMENT_LABEL">
|
||||
<set name="orderElements" table="ORDER_ELEMENT_LABEL" cascade="all,delete-orphan">
|
||||
<key column="LABEL_ID" not-null="false"/>
|
||||
<many-to-many column="ORDER_ELEMENT_ID" class="org.navalplanner.business.orders.entities.OrderElement"/>
|
||||
</set>
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@
|
|||
<one-to-many class="org.navalplanner.business.advance.entities.DirectAdvanceAssignment" />
|
||||
</set>
|
||||
|
||||
<set name="labels" table="ORDER_ELEMENT_LABEL" access="field">
|
||||
<set name="labels" table="ORDER_ELEMENT_LABEL" access="field" cascade="all,delete-orphan">
|
||||
<key column="ORDER_ELEMENT_ID" not-null="true"/>
|
||||
<many-to-many column="LABEL_ID" class="org.navalplanner.business.labels.entities.Label" />
|
||||
</set>
|
||||
|
|
|
|||
|
|
@ -72,9 +72,19 @@ public class AssignedLabelsToOrderElementController extends
|
|||
return assignedLabelsToOrderElementModel.getLabels();
|
||||
}
|
||||
|
||||
public List<Label> getInheritedLabels() {
|
||||
return assignedLabelsToOrderElementModel.getInheritedLabels();
|
||||
}
|
||||
|
||||
public void deleteLabel(Label label) {
|
||||
assignedLabelsToOrderElementModel.deleteLabel(label);
|
||||
Util.reloadBindings(directLabels);
|
||||
}
|
||||
|
||||
public void openWindow(IOrderElementModel orderElementModel) {
|
||||
assignedLabelsToOrderElementModel.init(orderElementModel
|
||||
.getOrderElement());
|
||||
Util.reloadBindings(self);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package org.navalplanner.web.orders;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.navalplanner.business.labels.daos.ILabelDAO;
|
||||
import org.navalplanner.business.labels.daos.ILabelTypeDAO;
|
||||
|
|
@ -9,6 +10,7 @@ import org.navalplanner.business.labels.entities.Label;
|
|||
import org.navalplanner.business.labels.entities.LabelType;
|
||||
import org.navalplanner.business.orders.daos.IOrderElementDAO;
|
||||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
import org.navalplanner.business.orders.entities.OrderLineGroup;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
|
|
@ -26,31 +28,42 @@ public class AssignedLabelsToOrderElementModel implements
|
|||
@Autowired
|
||||
IOrderElementDAO orderDAO;
|
||||
|
||||
OrderElement orderElement;
|
||||
|
||||
@Autowired
|
||||
ILabelTypeDAO labelTypeDAO;
|
||||
|
||||
@Autowired
|
||||
ILabelDAO labelDAO;
|
||||
|
||||
@Override
|
||||
public OrderElement getOrderElement() {
|
||||
return orderElement;
|
||||
}
|
||||
OrderElement orderElement;
|
||||
|
||||
@Override
|
||||
public void setOrderElement(OrderElement orderElement) {
|
||||
@Transactional(readOnly = true)
|
||||
public void init(OrderElement orderElement) {
|
||||
// orderDAO.save(orderElement);
|
||||
this.orderElement = orderElement;
|
||||
reattachOrderElement(this.orderElement);
|
||||
}
|
||||
|
||||
private void reattachLabels() {
|
||||
|
||||
private void reattachOrderElement(OrderElement orderElement) {
|
||||
orderDAO.save(orderElement);
|
||||
orderElement.getName();
|
||||
if (orderElement.getParent() != null) {
|
||||
orderElement.getParent().getName();
|
||||
}
|
||||
reattachLabels(orderElement.getLabels());
|
||||
}
|
||||
|
||||
private void reattachLabels(Set<Label> labels) {
|
||||
for (Label label : labels) {
|
||||
label.getName();
|
||||
label.getType().getName();
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
public List<Label> getLabels() {
|
||||
List<Label> result = new ArrayList<Label>();
|
||||
if (orderElement.getLabels() != null) {
|
||||
if (orderElement != null && orderElement.getLabels() != null) {
|
||||
result.addAll(orderElement.getLabels());
|
||||
}
|
||||
return result;
|
||||
|
|
@ -72,4 +85,34 @@ public class AssignedLabelsToOrderElementModel implements
|
|||
public void deleteLabel(Label label) {
|
||||
orderElement.removeLabel(label);
|
||||
}
|
||||
|
||||
@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();
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrderElement getOrderElement() {
|
||||
return orderElement;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOrderElement(OrderElement orderElement) {
|
||||
this.orderElement = orderElement;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,4 +52,12 @@ public interface IAssignedLabelsToOrderElementModel {
|
|||
*/
|
||||
void deleteLabel(Label label);
|
||||
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<Label> getInheritedLabels();
|
||||
|
||||
void init(OrderElement orderElement);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -199,7 +199,6 @@ public class OrderElementController extends GenericForwardComposer {
|
|||
throws Exception {
|
||||
assignedLabelsController = new AssignedLabelsToOrderElementController();
|
||||
assignedLabelsController.doAfterCompose(comp);
|
||||
assignedLabelsController.setOrderElement(getOrderElement());
|
||||
}
|
||||
|
||||
private void setupManageOrderElementAdvancesController(Component comp)
|
||||
|
|
@ -222,6 +221,7 @@ public class OrderElementController extends GenericForwardComposer {
|
|||
|
||||
asignedHoursController.openWindow(model);
|
||||
manageOrderElementAdvancesController.openWindow(model);
|
||||
assignedLabelsController.openWindow(model);
|
||||
|
||||
// If is a container
|
||||
if (orderElement instanceof OrderLineGroup) {
|
||||
|
|
|
|||
|
|
@ -2,15 +2,15 @@
|
|||
<!-- Indirect labels -->
|
||||
<vbox>
|
||||
<label value="${i18n:_('Indirect labels')}" />
|
||||
<grid>
|
||||
<grid id="inheritedLabels" model="@{assignedLabelsController.inheritedLabels}">
|
||||
<columns>
|
||||
<column label="${i18n:_('Label type')}" />
|
||||
<column label="${i18n:_('Value')}" />
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<label value=""/>
|
||||
<label value=""/>
|
||||
<row self="@{each='label'}" value="@{label}">
|
||||
<label value="@{label.type.name}" />
|
||||
<label value="@{label.name}"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue