ItEr60S04ValidacionEProbasFuncionaisItEr59S04 : [Bug #546] Fix bug.
Now it updates the advance of the current taskComponent and its parents when the user accepts but before closing the pop-up.
This commit is contained in:
parent
381f0a0807
commit
269277eedb
2 changed files with 34 additions and 32 deletions
|
|
@ -151,7 +151,7 @@ public class TaskList extends XulElement implements AfterCompose {
|
|||
reload(true);
|
||||
}
|
||||
|
||||
TaskComponent find(Task task) {
|
||||
public TaskComponent find(Task task) {
|
||||
List<TaskComponent> taskComponents = getTaskComponents();
|
||||
for (TaskComponent taskComponent : taskComponents) {
|
||||
if (taskComponent.getTask().equals(task)) {
|
||||
|
|
@ -311,31 +311,8 @@ public class TaskList extends XulElement implements AfterCompose {
|
|||
}
|
||||
for (CommandOnTaskContextualized<?> command : commandsOnTasksContextualized) {
|
||||
if (command.accepts(taskComponent)) {
|
||||
if (command.getName().equals("Advance assignment")) {
|
||||
final CommandOnTaskContextualized<?> commandAdvances = command;
|
||||
menuBuilder.item(command.getName(), command.getIcon(),
|
||||
new ItemAction<TaskComponent>() {
|
||||
@Override
|
||||
public void onEvent(TaskComponent choosen,
|
||||
Event event) {
|
||||
commandAdvances.doAction(choosen);
|
||||
if (commandAdvances.getMapper() != null) {
|
||||
List<Task> listTaskComponents = new ArrayList<Task>(
|
||||
commandAdvances
|
||||
.getMapper()
|
||||
.getParents(
|
||||
choosen
|
||||
.getTask()));
|
||||
listTaskComponents.add(choosen
|
||||
.getTask());
|
||||
updateTaskAndItsParents(listTaskComponents);
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
menuBuilder.item(command.getName(), command.getIcon(),
|
||||
command.toItemAction());
|
||||
}
|
||||
}
|
||||
}
|
||||
Menupopup result = menuBuilder.createWithoutSettingContext();
|
||||
|
|
@ -345,14 +322,6 @@ public class TaskList extends XulElement implements AfterCompose {
|
|||
return contextMenus.get(taskComponent);
|
||||
}
|
||||
|
||||
private void updateTaskAndItsParents(List<Task> taskList) {
|
||||
for (Task task : taskList) {
|
||||
TaskComponent choosen = this.find(task);
|
||||
choosen.updateCompletionIfPossible();
|
||||
choosen.updateTooltipText();
|
||||
}
|
||||
}
|
||||
|
||||
GanttPanel getGanttPanel() {
|
||||
return (GanttPanel) getParent();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,9 @@
|
|||
|
||||
package org.navalplanner.web.planner.advances;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
|
|
@ -29,6 +32,9 @@ import org.navalplanner.web.orders.ManageOrderElementAdvancesController;
|
|||
import org.navalplanner.web.planner.order.PlanningState;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.zkoss.ganttz.TaskComponent;
|
||||
import org.zkoss.ganttz.TaskList;
|
||||
import org.zkoss.ganttz.data.Task;
|
||||
import org.zkoss.ganttz.extensions.IContextWithPlannerTask;
|
||||
import org.zkoss.zk.ui.Component;
|
||||
import org.zkoss.zk.ui.SuspendNotAllowedException;
|
||||
|
|
@ -52,6 +58,8 @@ public class AdvanceAssignmentPlanningController extends GenericForwardComposer
|
|||
|
||||
private Window window;
|
||||
|
||||
private IContextWithPlannerTask<TaskElement> context;
|
||||
|
||||
@Override
|
||||
public void doAfterCompose(Component comp) throws Exception {
|
||||
super.doAfterCompose(comp);
|
||||
|
|
@ -63,6 +71,7 @@ public class AdvanceAssignmentPlanningController extends GenericForwardComposer
|
|||
TaskElement task,
|
||||
PlanningState planningState) {
|
||||
|
||||
this.context = context;
|
||||
advanceAssignmentPlanningModel.initAdvancesFor(task, context,
|
||||
planningState);
|
||||
showAdvanceWindow(advanceAssignmentPlanningModel.getOrderElement());
|
||||
|
|
@ -98,10 +107,34 @@ public class AdvanceAssignmentPlanningController extends GenericForwardComposer
|
|||
boolean result = manageOrderElementAdvancesController.close();
|
||||
if (result) {
|
||||
advanceAssignmentPlanningModel.accept();
|
||||
updateTaskComponents();
|
||||
close();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateTaskComponents() {
|
||||
if (context.getRelativeTo() instanceof TaskComponent) {
|
||||
// update the current taskComponent
|
||||
TaskComponent taskComponent = (TaskComponent) context
|
||||
.getRelativeTo();
|
||||
updateTaskComponent(taskComponent);
|
||||
|
||||
// update the current taskComponent's parents
|
||||
List<Task> parents = new ArrayList<Task>(context.getMapper()
|
||||
.getParents(taskComponent.getTask()));
|
||||
TaskList taskList = taskComponent.getTaskList();
|
||||
for (Task task : parents) {
|
||||
TaskComponent parentComponent = taskList.find(task);
|
||||
updateTaskComponent(parentComponent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void updateTaskComponent(TaskComponent taskComponent) {
|
||||
taskComponent.updateCompletionIfPossible();
|
||||
taskComponent.updateTooltipText();
|
||||
}
|
||||
|
||||
private void close() {
|
||||
window.setVisible(false);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue