From c15a93229e720e8288f00c046102ba7775377a38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Thu, 16 Jul 2009 10:40:58 +0200 Subject: [PATCH] ItEr17S10CUCreacionProxectoPlanificacionItEr16S12: Refactoring Planner so it doesn't send exceptions when the configuration is still not ready. --- .../main/java/org/zkoss/ganttz/GanttPanel.java | 6 ++++-- .../src/main/java/org/zkoss/ganttz/Planner.java | 17 +++++++++++------ .../main/java/org/zkoss/ganttz/TaskList.java | 14 ++++++++------ 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/GanttPanel.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/GanttPanel.java index 5b8d22871..a7c00d232 100644 --- a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/GanttPanel.java +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/GanttPanel.java @@ -17,11 +17,13 @@ public class GanttPanel extends XulElement implements AfterCompose { private final DependencyRegistry dependencyRegistry; - public GanttPanel(DependencyRegistry dependencyRegistry) { + public GanttPanel(DependencyRegistry dependencyRegistry, + TaskEditFormComposer taskEditFormComposer) { this.dependencyRegistry = dependencyRegistry; timeTracker = new TimeTracker(this); appendChild(timeTracker); - tasksLists = TaskList.createFor(dependencyRegistry.getTopLevelTasks()); + tasksLists = TaskList.createFor(taskEditFormComposer, + dependencyRegistry.getTopLevelTasks()); dependencyList = new DependencyList(); appendChild(tasksLists); appendChild(dependencyList); diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/Planner.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/Planner.java index abc6a16e0..64f70057d 100644 --- a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/Planner.java +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/Planner.java @@ -20,10 +20,9 @@ import org.zkoss.ganttz.util.TaskContainerBean; import org.zkoss.ganttz.util.TaskLeafBean; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Executions; -import org.zkoss.zk.ui.ext.AfterCompose; import org.zkoss.zul.impl.XulElement; -public class Planner extends XulElement implements AfterCompose { +public class Planner extends XulElement { private static final Log LOG = LogFactory.getLog(Planner.class); @@ -32,8 +31,11 @@ public class Planner extends XulElement implements AfterCompose { private DependencyRemovedListener dependencyRemovedListener; private TaskRemovedListener taskRemovedListener; private ListDetails listDetails; + private GanttPanel ganttPanel; + private TaskEditFormComposer taskEditFormComposer = new TaskEditFormComposer(); + private OneToOneMapper domainObjectsMapper; public Planner() { @@ -96,11 +98,10 @@ public class Planner extends XulElement implements AfterCompose { } public TaskEditFormComposer getModalFormComposer() { - return getTaskList().getModalFormComposer(); + return taskEditFormComposer; } - @Override - public void afterCompose() { + public void registerListeners() { if (dependencyRegistry == null) throw new IllegalStateException("dependencyRegistry must be set"); ganttPanel.afterCompose(); @@ -180,6 +181,8 @@ public class Planner extends XulElement implements AfterCompose { } public void setConfiguration(PlannerConfiguration configuration) { + if (configuration == null) + return; this.dependencyRegistry = new DependencyRegistry(); OneToOneMapper mapper = new OneToOneMapper(); domainObjectsMapper = mapper; @@ -232,7 +235,9 @@ public class Planner extends XulElement implements AfterCompose { .get(0))); this.listDetails.afterCompose(); removePreviousGanntPanel(); - this.ganttPanel = new GanttPanel(this.dependencyRegistry); + this.ganttPanel = new GanttPanel(this.dependencyRegistry, + taskEditFormComposer); appendChild(ganttPanel); + registerListeners(); } } diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TaskList.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TaskList.java index 8e4a4691c..ca274c8c0 100644 --- a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TaskList.java +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TaskList.java @@ -46,16 +46,18 @@ public class TaskList extends XulElement implements AfterCompose { private Menupopup contextMenu; - private TaskEditFormComposer taskEditFormComposer = new TaskEditFormComposer(); - private List originalTasks; - public TaskList(List tasks) { + private final TaskEditFormComposer taskEditFormComposer; + + public TaskList(TaskEditFormComposer formComposer, List tasks) { + this.taskEditFormComposer = formComposer; this.originalTasks = tasks; } - public static TaskList createFor(List tasks) { - TaskList result = new TaskList(tasks); + public static TaskList createFor(TaskEditFormComposer formComposer, + List tasks) { + TaskList result = new TaskList(formComposer, tasks); return result; } @@ -253,7 +255,7 @@ public class TaskList extends XulElement implements AfterCompose { } public void redrawDependencies() { - getGanttPanel().getDependencyList().redrawDependencies() ; + getGanttPanel().getDependencyList().redrawDependencies(); } } \ No newline at end of file