From 269277eedb2398d2d816ce5e62d5faf0624d68a6 Mon Sep 17 00:00:00 2001 From: Susana Montes Pedreira Date: Wed, 14 Jul 2010 14:10:14 +0200 Subject: [PATCH] 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. --- .../main/java/org/zkoss/ganttz/TaskList.java | 33 +------------------ .../AdvanceAssignmentPlanningController.java | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+), 32 deletions(-) diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java b/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java index da3b6e245..14b2c6018 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java @@ -151,7 +151,7 @@ public class TaskList extends XulElement implements AfterCompose { reload(true); } - TaskComponent find(Task task) { + public TaskComponent find(Task task) { List 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() { - @Override - public void onEvent(TaskComponent choosen, - Event event) { - commandAdvances.doAction(choosen); - if (commandAdvances.getMapper() != null) { - List listTaskComponents = new ArrayList( - 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 taskList) { - for (Task task : taskList) { - TaskComponent choosen = this.find(task); - choosen.updateCompletionIfPossible(); - choosen.updateTooltipText(); - } - } - GanttPanel getGanttPanel() { return (GanttPanel) getParent(); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/advances/AdvanceAssignmentPlanningController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/advances/AdvanceAssignmentPlanningController.java index c1d678b99..423a85597 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/advances/AdvanceAssignmentPlanningController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/advances/AdvanceAssignmentPlanningController.java @@ -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 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 parents = new ArrayList(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); }