Removed added method in EntitiesTree and moved to business.
* Created a new method "onChildAddedAdditionalActions" on TreeNodeOnListWithSchedulingState. * Calling "updateCriterionRequirements" from new method instead of EntitiesTree implementation. FEA: ItEr74S07WBSTreeRefactoring
This commit is contained in:
parent
00ef88227a
commit
54c2fc2817
6 changed files with 25 additions and 42 deletions
|
|
@ -554,13 +554,15 @@ public abstract class CriterionRequirementHandler<T, S, R> implements
|
|||
public void updateMyCriterionRequirements(T orderElement) {
|
||||
final T parent = getParent(orderElement);
|
||||
|
||||
Set<CriterionRequirement> requirementsParent = getCriterionRequirements(parent);
|
||||
Set<IndirectCriterionRequirement> currentIndirects = getCurrentIndirectRequirements(
|
||||
getIndirectCriterionRequirement(orderElement),
|
||||
requirementsParent);
|
||||
transformDirectToIndirectIfNeeded(orderElement, currentIndirects);
|
||||
removeOldIndirects(orderElement, currentIndirects);
|
||||
addNewsIndirects(orderElement, currentIndirects);
|
||||
if (parent != null) {
|
||||
Set<CriterionRequirement> requirementsParent = getCriterionRequirements(parent);
|
||||
Set<IndirectCriterionRequirement> currentIndirects = getCurrentIndirectRequirements(
|
||||
getIndirectCriterionRequirement(orderElement),
|
||||
requirementsParent);
|
||||
transformDirectToIndirectIfNeeded(orderElement, currentIndirects);
|
||||
removeOldIndirects(orderElement, currentIndirects);
|
||||
addNewsIndirects(orderElement, currentIndirects);
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract T getParent(T orderElement);
|
||||
|
|
|
|||
|
|
@ -90,11 +90,17 @@ public class OrderLineGroup extends OrderElement implements
|
|||
return node.getSchedulingState();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onChildAddedAdditionalActions(OrderElement newChild) {
|
||||
updateCriterionRequirements();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onChildRemovedAdditionalActions(OrderElement removedChild) {
|
||||
if (removedChild.isScheduled() && getThis().isScheduled()) {
|
||||
removeChildTask(removedChild);
|
||||
}
|
||||
updateCriterionRequirements();
|
||||
}
|
||||
|
||||
private void removeChildTask(OrderElement removedChild) {
|
||||
|
|
|
|||
|
|
@ -46,6 +46,15 @@ public abstract class TreeNodeOnListWithSchedulingState<T extends ITreeNode<T>>
|
|||
@Override
|
||||
protected void onChildAdded(T newChild) {
|
||||
updateSchedulingStateGiven(newChild);
|
||||
onChildAddedAdditionalActions(newChild);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is intended to be overridden
|
||||
*
|
||||
* @param previousChild
|
||||
*/
|
||||
protected void onChildAddedAdditionalActions(T newChild) {
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -55,7 +64,7 @@ public abstract class TreeNodeOnListWithSchedulingState<T extends ITreeNode<T>>
|
|||
}
|
||||
|
||||
/**
|
||||
* This method is intended to be overriden
|
||||
* This method is intended to be overridden
|
||||
* @param previousChild
|
||||
*/
|
||||
protected void onChildRemovedAdditionalActions(T previousChild) {
|
||||
|
|
|
|||
|
|
@ -28,8 +28,6 @@ import java.util.List;
|
|||
import org.navalplanner.business.orders.entities.Order;
|
||||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
import org.navalplanner.business.orders.entities.OrderLine;
|
||||
import org.navalplanner.business.trees.ITreeNode;
|
||||
import org.navalplanner.business.trees.ITreeParentNode;
|
||||
import org.navalplanner.web.tree.EntitiesTree;
|
||||
|
||||
/**
|
||||
|
|
@ -48,24 +46,6 @@ public class OrderElementTreeModel extends EntitiesTree<OrderElement> {
|
|||
super(OrderElement.class, root);
|
||||
}
|
||||
|
||||
private void updateCriterionRequirementsInHierarchy(
|
||||
OrderElement destination, OrderElement origin,
|
||||
OrderElement container) {
|
||||
if (destination instanceof OrderLine) {
|
||||
container.updateCriterionRequirements();
|
||||
} else {
|
||||
origin.updateCriterionRequirements();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void added(ITreeNode<OrderElement> destination,
|
||||
ITreeNode<OrderElement> added,
|
||||
ITreeParentNode<OrderElement> turnedIntoContainer) {
|
||||
updateCriterionRequirementsInHierarchy(destination.getThis(), added
|
||||
.getThis(), turnedIntoContainer.getThis());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected OrderElement createNewElement() {
|
||||
OrderElement newOrderElement = OrderLine
|
||||
|
|
|
|||
|
|
@ -24,8 +24,6 @@ import static org.navalplanner.business.i18n.I18nHelper._;
|
|||
|
||||
import org.navalplanner.business.templates.entities.OrderElementTemplate;
|
||||
import org.navalplanner.business.templates.entities.OrderLineTemplate;
|
||||
import org.navalplanner.business.trees.ITreeNode;
|
||||
import org.navalplanner.business.trees.ITreeParentNode;
|
||||
import org.navalplanner.web.tree.EntitiesTree;
|
||||
|
||||
/**
|
||||
|
|
@ -38,13 +36,6 @@ public class TemplatesTree extends EntitiesTree<OrderElementTemplate> {
|
|||
super(OrderElementTemplate.class, root);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void added(ITreeNode<OrderElementTemplate> destination,
|
||||
ITreeNode<OrderElementTemplate> added,
|
||||
ITreeParentNode<OrderElementTemplate> turnedIntoContainer) {
|
||||
// do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
protected OrderElementTemplate createNewElement() {
|
||||
OrderLineTemplate result = OrderLineTemplate.createNew();
|
||||
|
|
|
|||
|
|
@ -140,7 +140,6 @@ public abstract class EntitiesTree<T extends ITreeNode<T>> {
|
|||
ITreeParentNode<T> container = turnIntoContainerIfNeeded(parent);
|
||||
container.add(element.getThis());
|
||||
addToTree(container.getThis(), element);
|
||||
added(parent, element, container);
|
||||
}
|
||||
|
||||
private void addOrderElementAt(ITreeNode<T> destinationNode,
|
||||
|
|
@ -153,12 +152,8 @@ public abstract class EntitiesTree<T extends ITreeNode<T>> {
|
|||
// children, so it should be redrawn
|
||||
tree.sendContentsChangedEventFor(container.getThis());
|
||||
}
|
||||
added(destinationNode, elementToAdd, container);
|
||||
}
|
||||
|
||||
protected abstract void added(ITreeNode<T> destination, ITreeNode<T> added,
|
||||
ITreeParentNode<T> turnedIntoContainer);
|
||||
|
||||
private ITreeParentNode<T> turnIntoContainerIfNeeded(
|
||||
ITreeNode<T> selectedForTurningIntoContainer) {
|
||||
if (selectedForTurningIntoContainer instanceof ITreeParentNode) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue