ItEr44S10CUGravacionModelosUnidadesTraballoItEr43S12: Adding scheduling state to OrderElementTemplate

This commit is contained in:
Óscar González Fernández 2010-01-21 01:56:33 +01:00
parent 0d23c14da4
commit 453c6d6a37

View file

@ -20,6 +20,7 @@
package org.navalplanner.business.templates.entities;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
@ -46,6 +47,8 @@ import org.navalplanner.business.orders.entities.Order;
import org.navalplanner.business.orders.entities.OrderElement;
import org.navalplanner.business.orders.entities.OrderLineGroup;
import org.navalplanner.business.orders.entities.SchedulingState;
import org.navalplanner.business.orders.entities.SchedulingState.ITypeChangedListener;
import org.navalplanner.business.orders.entities.SchedulingState.Type;
import org.navalplanner.business.qualityforms.entities.QualityForm;
import org.navalplanner.business.trees.ITreeNode;
@ -216,6 +219,37 @@ public abstract class OrderElementTemplate extends BaseEntity implements
private Set<AdvanceAssignmentTemplate> advanceAssignmentTemplates = new HashSet<AdvanceAssignmentTemplate>();
private SchedulingState schedulingState;
public SchedulingState getSchedulingState() {
if (schedulingState == null) {
schedulingState = SchedulingState.createSchedulingState(
getSchedulingStateType(),
getChildrenStates(), new ITypeChangedListener() {
@Override
public void typeChanged(Type newType) {
schedulingStateType = newType;
}
});
}
return schedulingState;
}
private List<SchedulingState> getChildrenStates() {
List<SchedulingState> result = new ArrayList<SchedulingState>();
for (OrderElementTemplate each : getChildren()) {
result.add(each.getSchedulingState());
}
return result;
}
public SchedulingState.Type getSchedulingStateType() {
if (schedulingStateType == null) {
schedulingStateType = Type.NO_SCHEDULED;
}
return schedulingStateType;
}
public OrderLineGroupTemplate getParent() {
return parent;
}