[Bug #962] Cancel action in "Progress assignment" window leave the Task as it was before editing
Remove new advanceMeasurements in every advanceAssignment when user clicks cancel FEA: ItEr73S04BugFixing
This commit is contained in:
parent
1663f5d627
commit
83efb2b4f9
6 changed files with 48 additions and 3 deletions
|
|
@ -162,6 +162,15 @@ public class DirectAdvanceAssignment extends AdvanceAssignment {
|
|||
getOrderElement().markAsDirtyLastAdvanceMeasurementForSpreading();
|
||||
}
|
||||
|
||||
public void removeAdvanceMeasurements(
|
||||
Set<AdvanceMeasurement> advanceMeasurements) {
|
||||
for (AdvanceMeasurement each: advanceMeasurements) {
|
||||
each.setAdvanceAssignment(null);
|
||||
}
|
||||
this.advanceMeasurements.removeAll(advanceMeasurements);
|
||||
getOrderElement().markAsDirtyLastAdvanceMeasurementForSpreading();
|
||||
}
|
||||
|
||||
public void clearAdvanceMeasurements() {
|
||||
this.advanceMeasurements.clear();
|
||||
if (getOrderElement() != null) {
|
||||
|
|
|
|||
|
|
@ -119,4 +119,7 @@ public interface IManageOrderElementAdvancesModel {
|
|||
void createPercentageAdvances(OrderElement orderElement)
|
||||
throws DuplicateAdvanceAssignmentForOrderElementException,
|
||||
DuplicateValueTrueReportGlobalAdvanceException;
|
||||
|
||||
void cancel();
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -118,6 +118,10 @@ public class ManageOrderElementAdvancesController extends
|
|||
return manageOrderElementAdvancesModel.getAdvanceAssignments();
|
||||
}
|
||||
|
||||
public void cancel() {
|
||||
manageOrderElementAdvancesModel.cancel();
|
||||
}
|
||||
|
||||
public boolean close() {
|
||||
return save();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -277,6 +277,30 @@ public class ManageOrderElementAdvancesModel implements
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel() {
|
||||
for (AdvanceAssignment each : listAdvanceAssignments) {
|
||||
if (each instanceof DirectAdvanceAssignment) {
|
||||
DirectAdvanceAssignment directAdvanceAssignment = (DirectAdvanceAssignment) each;
|
||||
Set<AdvanceMeasurement> advanceMeasurements = getNewAdvanceMeasurementsFor(directAdvanceAssignment);
|
||||
directAdvanceAssignment
|
||||
.removeAdvanceMeasurements(advanceMeasurements);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Set<AdvanceMeasurement> getNewAdvanceMeasurementsFor(
|
||||
DirectAdvanceAssignment directAdvanceAssignment) {
|
||||
Set<AdvanceMeasurement> result = new HashSet<AdvanceMeasurement>();
|
||||
for (AdvanceMeasurement each : directAdvanceAssignment
|
||||
.getAdvanceMeasurements()) {
|
||||
if (each.getId() == null) {
|
||||
result.add(each);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addNewLineAdvanceAssignment() {
|
||||
DirectAdvanceAssignment newAdvance = DirectAdvanceAssignment.create();
|
||||
|
|
@ -761,7 +785,6 @@ public class ManageOrderElementAdvancesModel implements
|
|||
types.add(PredefinedAdvancedTypes.CHILDREN.getTypeName());
|
||||
}
|
||||
|
||||
orderElementDAO.reattach(orderElement);
|
||||
Set<IndirectAdvanceAssignment> indirects = getSpreadIndirectAdvanceAssignmentWithSameType(
|
||||
orderElement, types);
|
||||
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ import org.zkoss.ganttz.data.Task;
|
|||
import org.zkoss.ganttz.extensions.IContextWithPlannerTask;
|
||||
import org.zkoss.zk.ui.Component;
|
||||
import org.zkoss.zk.ui.SuspendNotAllowedException;
|
||||
import org.zkoss.zk.ui.event.Event;
|
||||
import org.zkoss.zk.ui.util.GenericForwardComposer;
|
||||
import org.zkoss.zul.Window;
|
||||
|
||||
|
|
@ -99,7 +100,13 @@ public class AdvanceAssignmentPlanningController extends GenericForwardComposer
|
|||
manageOrderElementAdvancesController.openWindow(orderElement);
|
||||
}
|
||||
|
||||
public void onClose(Event event) {
|
||||
cancel();
|
||||
event.stopPropagation();
|
||||
}
|
||||
|
||||
public void cancel() {
|
||||
manageOrderElementAdvancesController.cancel();
|
||||
advanceAssignmentPlanningModel.cancel();
|
||||
close();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,8 +56,7 @@
|
|||
title="${advanceAssignmentController.title}"
|
||||
width="950px"
|
||||
visible="false"
|
||||
closable="true"
|
||||
onClose="self.visible = false; event.stopPropagation();" >
|
||||
closable="true" >
|
||||
|
||||
<vbox id="messagesAdvanceAssignmentContainer" />
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue