ItEr48S04ValidacionEProbasFuncionaisItEr47S04: Adding is milestone property in order to avoid proxy problems checking if a task is a milestone

This commit is contained in:
Óscar González Fernández 2010-02-17 14:35:26 +01:00
parent 9e7c9627bb
commit 3355e7bab1
4 changed files with 36 additions and 8 deletions

View file

@ -494,4 +494,9 @@ public class Task extends TaskElement {
return canBeResized() && !isSubcontracted();
}
@Override
public boolean isMilestone() {
return false;
}
}

View file

@ -412,4 +412,6 @@ public abstract class TaskElement extends BaseEntity {
return result;
}
public abstract boolean isMilestone();
}

View file

@ -105,21 +105,32 @@ public class TaskGroup extends TaskElement {
}
public void setTaskChildrenTo(List<TaskElement> children) {
int positionOnTaskElements = 0;
for (int i = 0; i < children.size(); i++) {
TaskElement element = children.get(i);
if (i >= taskElements.size()) {
if (positionOnTaskElements >= taskElements.size()) {
taskElements.add(element);
} else {
taskElements.set(i, element);
while (positionOnTaskElements < taskElements.size()
&& taskElements.get(positionOnTaskElements)
.isMilestone()) {
positionOnTaskElements++;
}
if (positionOnTaskElements >= taskElements.size()) {
taskElements.add(element);
} else {
taskElements.set(positionOnTaskElements, element);
}
}
positionOnTaskElements++;
}
if (children.size() < taskElements.size()) {
ListIterator<TaskElement> listIterator = taskElements
.listIterator(children.size());
do {
listIterator.next();
ListIterator<TaskElement> listIterator = taskElements
.listIterator(positionOnTaskElements);
while (listIterator.hasNext()) {
TaskElement current = listIterator.next();
if (!current.isMilestone()) {
listIterator.remove();
} while (listIterator.hasNext());
}
}
}
@ -147,4 +158,9 @@ public class TaskGroup extends TaskElement {
public boolean canBeExplicitlyResized() {
return false;
}
@Override
public boolean isMilestone() {
return false;
}
}

View file

@ -124,4 +124,9 @@ public class TaskMilestone extends TaskElement {
public boolean canBeExplicitlyResized() {
return false;
}
@Override
public boolean isMilestone() {
return true;
}
}