From c4309dd0c7a8022cb4e84d7883a5c7eb0ccc9bc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Thu, 9 Sep 2010 10:57:37 +0200 Subject: [PATCH] Fix bug. Avoid that effort duration picker appears repeated when saving and continuing FEA: ItEr60S04ValidacionEProbasFuncionaisItEr59S04 --- .../BaseCalendarEditionController.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarEditionController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarEditionController.java index 3da6fdcf4..b8a564b2f 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarEditionController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/calendars/BaseCalendarEditionController.java @@ -47,6 +47,7 @@ import org.navalplanner.business.workingday.EffortDuration.Granularity; import org.navalplanner.web.common.Util; import org.navalplanner.web.common.components.CalendarHighlightedDays; import org.navalplanner.web.common.components.EffortDurationPicker; +import org.zkoss.ganttz.util.ComponentsFinder; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.WrongValueException; import org.zkoss.zk.ui.event.Event; @@ -134,13 +135,26 @@ public abstract class BaseCalendarEditionController extends private EffortDurationPicker addEffortDurationPickerAtWorkableTimeRow( Component comp) { - Component container = comp.getFellow("exceptionDayWorkableTimeRow"); - EffortDurationPicker result = new EffortDurationPicker(); + EffortDurationPicker result = ensureOnePickerOn(comp); result.setValue(EffortDuration.zero()); - container.appendChild(result); return result; } + private EffortDurationPicker ensureOnePickerOn(Component comp) { + Component container = comp.getFellow("exceptionDayWorkableTimeRow"); + @SuppressWarnings("unchecked") + List existent = ComponentsFinder + .findComponentsOfType(EffortDurationPicker.class, + container.getChildren()); + if (!existent.isEmpty()) { + return existent.get(0); + } else { + EffortDurationPicker result = new EffortDurationPicker(); + container.appendChild(result); + return result; + } + } + private void prepareExceptionTypeCombo() { Combobox exceptionTypes = (Combobox) window .getFellow("exceptionTypes");