Avoid exponential increase of calculations done, only visiting a node
when all their predecessors have already been processed. This
guarantees that the nodes are processed in a topological order, i.e.,
a node is not processed until their predecessors are processed.
FEA: ItEr74S04BugFixing
getRecalculationsNeeded took a huge amount of time when tasks can be
reached from several paths in complex graphs. In the case a task is
reached from another path the recalculation for that task was removed
from the result and added to the pending queue. Thus it was guaranteed
that the result was a topological order, since recalculations would be
pushed to the end. But the recalculations dependent of the already
added were still in the pending queue and executed. This caused more
removals from the result and subsequent additions to the pending
queue.
Now a topological order is applied to the recalculations
calculated. For each task point a depth value is calculated. A
topological order is necessary, so a recalculation is executed after
all its predecessors.
FEA: ItEr74S04BugFixing
Highlight was not working outside the execution of a event. Previously
it was executing bound to a bookmark change event, but now using
matrix parameters it is no longer true.
Now highlight would work outside the handling of an event listener.
FEA: ItEr74S04BugFixing
It was done to force the showing of the constraint violations after
the components have been created. Now this is not needed thanks to the
support for receiving pending of notification events.
FEA: ItEr74S04BugFixing
Some events can be lost due to not existing a listener at the
time. Now they are stored and when adding a listener it can be
configured to receive all pending events.
FEA: ItEr74S04BugFixing
When a task is fixed, no constraints were preserved and the last check
for all constraints was avoided. Now although the task is not moved
due to be fixed, the final check with all constraints is done.
FEA: ItEr74S04BugFixing
Use ComponentsFinder to find which row contains WorkReportLine.
If a ValidationException happens but cannot find a row that contains
the WorkReportLine that launched the exception, then show
ValidationException as messageForUser.
FEA: ItEr74S04BugFixing
Revert "[Bug #952] Show list of resources in 'Resource load view' in
order". The left part is always ordered by alphabetic order, but the
right part remained in the original order.
This reverts commit 7bb18e5ea4.
FEA: ItEr74S04BugFixing
I refactored the code that does the checking in the business layer.
Instead of putting it directly in a method executed by
HibernateValidator I put it in a static method in the business layer.
This way it can be reused easily from the view layer.
The validation returns a ValidationException pointing to the object that
caused the error. Its corresponding component is localized in the view
and the error is shown as a WrongValidationException.
FEA: ItEr73S04BugFixing
Thus there is no problem if inside code executed within a
LongOperation, a LongOperation is submitted again. In this case the
code is executed but no extra modal window is created.
FEA: ItEr71S04BugFixing
* Not all tasks were taking into account calculating initial date. Till now only
initial tasks were taken into account but depending on constraints it could
happen that some tasks start before than initial tasks.
FEA: ItEr71S04BugFixing