diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/DependencyList.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/DependencyList.java index 753f9ce59..5dd5d7a28 100644 --- a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/DependencyList.java +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/DependencyList.java @@ -22,9 +22,7 @@ import org.zkoss.zul.Menupopup; import org.zkoss.zul.impl.XulElement; /** - * * @author Francisco Javier Moran Rúa - * */ public class DependencyList extends XulElement implements AfterCompose { @@ -48,7 +46,6 @@ public class DependencyList extends XulElement implements AfterCompose { void addDependency(Dependency dependency) { appendChild(dependency); addContextMenu(dependency); - publishDependency(dependency); } private void addContextMenu(Dependency dependency) { @@ -59,6 +56,12 @@ public class DependencyList extends XulElement implements AfterCompose { return (GanttPanel) getParent(); } + public void setDependencies(List dependencies) { + for (Dependency dependency : dependencies) { + addDependency(dependency); + } + } + @Override public void afterCompose() { if (listener == null) { @@ -90,24 +93,9 @@ public class DependencyList extends XulElement implements AfterCompose { taskRemovedListener); } addContextMenu(); - publishDependencies(); } - private void publishDependencies() { - for (Dependency dependency : getDependencies()) { - publishDependency(dependency); - } - } - - private void publishDependency(Dependency dependency) { - getPlanner().publishDependency(dependency); - } - - private Planner getPlanner() { - return getGanttPanel().getPlanner(); - } - private void addContextMenu() { for (Dependency dependency : getDependencies()) { addContextMenu(dependency); 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 1808e68ad..ea90507d2 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 @@ -1,25 +1,48 @@ package org.zkoss.ganttz; -import java.util.List; - +import org.zkoss.ganttz.util.DependencyRegistry; +import org.zkoss.zk.ui.ext.AfterCompose; import org.zkoss.zul.impl.XulElement; -public class GanttPanel extends XulElement { +public class GanttPanel extends XulElement implements AfterCompose { + + private TaskList tasksLists; + + private TimeTracker timeTracker; + + private DependencyList dependencyList; + + private final DependencyRegistry dependencyRegistry; + + public GanttPanel(DependencyRegistry dependencyRegistry) { + this.dependencyRegistry = dependencyRegistry; + timeTracker = new TimeTracker(); + appendChild(timeTracker); + tasksLists = TaskList.createFor(dependencyRegistry.getTasks()); + dependencyList = new DependencyList(); + appendChild(tasksLists); + appendChild(dependencyList); + } + + @Override + public void afterCompose() { + tasksLists.afterCompose(); + dependencyList.setDependencies(tasksLists + .asDependencies(dependencyRegistry.getDependencies())); + timeTracker.afterCompose(); + dependencyList.afterCompose(); + } public TimeTracker getTimeTracker() { - List children = getChildren(); - return Planner.findComponentsOfType(TimeTracker.class, children).get(0); + return timeTracker; } public TaskList getTaskList() { - List children = getChildren(); - return Planner.findComponentsOfType(TaskList.class, children).get(0); + return tasksLists; } public DependencyList getDependencyList() { - List children = getChildren(); - return Planner.findComponentsOfType(DependencyList.class, children) - .get(0); + return dependencyList; } public Planner getPlanner() { diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ListDetails.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ListDetails.java index a2b8c5e34..b1cd46fc5 100644 --- a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ListDetails.java +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/ListDetails.java @@ -1,22 +1,25 @@ package org.zkoss.ganttz; +import java.util.Calendar; import java.util.Date; import java.util.List; -import java.util.UUID; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.zkoss.util.resource.Labels; +import org.zkoss.ganttz.util.TaskBean; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.HtmlMacroComponent; public class ListDetails extends HtmlMacroComponent { private static Log LOG = LogFactory.getLog(ListDetails.class); + private TaskRemovedListener taskRemovedListener; - public ListDetails() { - LOG.info("constructing list details"); + private final List taskBeans; + + public ListDetails(List taskBeans) { + this.taskBeans = taskBeans; } Planner getPlanner() { @@ -28,10 +31,10 @@ public class ListDetails extends HtmlMacroComponent { return Planner.findComponentsOfType(TaskDetail.class, children); } - public void taskRemoved(Task taskRemoved) { + public void taskRemoved(TaskBean taskRemoved) { List taskDetails = getTaskDetails(); for (TaskDetail taskDetail : taskDetails) { - if (taskDetail.getTaskId().equals(taskRemoved.getId())) { + if (taskDetail.getTaskBean().equals(taskRemoved)) { removeDetail(taskDetail); return; } @@ -44,20 +47,34 @@ public class ListDetails extends HtmlMacroComponent { } public void addTask() { - TaskDetail taskDetail = new TaskDetail(); - String newId = UUID.randomUUID().toString(); - taskDetail.setTaskId(newId); - taskDetail.setDynamicProperty("start", TaskDetail.format(new Date())); - taskDetail.setDynamicProperty("length", "30 days"); - taskDetail.setDynamicProperty("taskName", Labels - .getLabel("task.new_task_name")); - Component insertionPoint = getInsertionPoint(); - taskDetail.setParent(insertionPoint); + TaskBean newTask = new TaskBean(); + newTask.setName("Nova Tarefa"); + newTask.setBeginDate(new Date()); + newTask.setEndDate(threeMonthsLater(newTask.getBeginDate())); + System.out.println(newTask.getEndDate()); + addTask(newTask); + getPlanner().addTask(newTask); + } + + private static Date threeMonthsLater(Date now) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(now); + calendar.add(Calendar.MONTH, 3); + return calendar.getTime(); + } + + @Override + public void afterCompose() { + super.afterCompose(); + for (TaskBean taskBean : taskBeans) { + addTask(taskBean); + } + } + + private void addTask(TaskBean taskBean) { + TaskDetail taskDetail = TaskDetail.create(taskBean); + getInsertionPoint().appendChild(taskDetail); taskDetail.afterCompose(); - Task task = new Task(); - getPlanner().addTask(task); - task.setColor("#007bbe"); - task.setId(newId); } private Component getInsertionPoint() { 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 ca1018019..9ecec5e68 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 @@ -1,12 +1,11 @@ package org.zkoss.ganttz; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import org.zkoss.ganttz.util.DependencyRegistry; import org.zkoss.ganttz.util.TaskBean; +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; @@ -15,14 +14,16 @@ public class Planner extends XulElement implements AfterCompose { private DependencyAddedListener dependencyAddedListener; - private Map tasksById = new HashMap(); - private DependencyRegistry dependencyRegistry = new DependencyRegistry(); private DependencyRemovedListener dependencyRemovedListener; private TaskRemovedListener taskRemovedListener; + private ListDetails listDetails; + + private GanttPanel ganttPanel; + public Planner() { } @@ -42,22 +43,6 @@ public class Planner extends XulElement implements AfterCompose { return result.get(0); } - void publish(String taskId, TaskBean task) { - if (taskId == null) - throw new IllegalArgumentException("taskId cannot be null"); - if (task == null) - throw new IllegalArgumentException("task cannot be null"); - if (tasksById.containsKey(taskId)) - throw new IllegalArgumentException("task with id " + taskId - + " is already in " + tasksById); - tasksById.put(taskId, task); - dependencyRegistry.add(task); - } - - TaskBean retrieve(String taskId) { - return tasksById.get(taskId); - } - public static List findComponentsOfType(Class type, List children) { ArrayList result = new ArrayList(); @@ -73,12 +58,16 @@ public class Planner extends XulElement implements AfterCompose { return Executions.getCurrent().getContextPath(); } - private GanttPanel getGanntPanel() { - return findOneComponentOfType(GanttPanel.class); + private void removePreviousGanntPanel() { + List children = getChildren(); + for (GanttPanel ganttPanel : findComponentsOfType(GanttPanel.class, + children)) { + removeChild(ganttPanel); + } } public DependencyList getDependencyList() { - List children = getGanntPanel().getChildren(); + List children = ganttPanel.getChildren(); List found = findComponentsOfType(DependencyList.class, children); if (found.isEmpty()) @@ -86,18 +75,29 @@ public class Planner extends XulElement implements AfterCompose { return found.get(0); } - private ListDetails getDetails() { + private void removePreviousDetails() { List children = getChildren(); - return Planner.findComponentsOfType(ListDetails.class, children).get(0); + for (ListDetails l : Planner.findComponentsOfType(ListDetails.class, + children)) { + removeChild(l); + } + } + + public TaskEditFormComposer getModalFormComposer() { + return getTaskList().getModalFormComposer(); } @Override public void afterCompose() { + if (dependencyRegistry == null) + throw new IllegalStateException("dependencyRegistry must be set"); + ganttPanel.afterCompose(); TaskList taskList = getTaskList(); dependencyAddedListener = new DependencyAddedListener() { @Override public void dependenceAdded(Dependency dependency) { getDependencyList().addDependency(dependency); + publishDependency(dependency); } }; taskList.addDependencyListener(dependencyAddedListener); @@ -105,8 +105,8 @@ public class Planner extends XulElement implements AfterCompose { @Override public void taskRemoved(Task taskRemoved) { dependencyRegistry.remove(taskRemoved.getTaskBean()); - getDetails().taskRemoved(taskRemoved); - getGanntPanel().invalidate(); + listDetails.taskRemoved(taskRemoved.getTaskBean()); + ganttPanel.invalidate(); } }; taskList.addTaskRemovedListener(taskRemovedListener); @@ -121,12 +121,31 @@ public class Planner extends XulElement implements AfterCompose { dependencyRemovedListener); } - public void addTask(Task task) { - getTaskList().addTask(task); + public void addTask(TaskBean newTask) { + getTaskList().addTask(newTask); + getDependencyList().invalidate(); + dependencyRegistry.add(newTask); } - public void publishDependency(Dependency dependency) { - dependencyRegistry.add(dependency); + private void publishDependency(Dependency dependency) { + dependencyRegistry.add(dependency.getDependencyBean()); + } + + public DependencyRegistry getDependencyRegistry() { + return dependencyRegistry; + } + + public void setDependencyRegistry(DependencyRegistry dependencyRegistry) { + this.dependencyRegistry = dependencyRegistry; + removePreviousDetails(); + this.listDetails = new ListDetails(dependencyRegistry.getTasks()); + insertBefore(this.listDetails, + (Component) (getChildren().isEmpty() ? null : getChildren() + .get(0))); + this.listDetails.afterCompose(); + removePreviousGanntPanel(); + this.ganttPanel = new GanttPanel(this.dependencyRegistry); + appendChild(ganttPanel); } } diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/Task.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/Task.java index 10bcecd29..bc8c581a3 100755 --- a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/Task.java +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/Task.java @@ -12,6 +12,7 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; +import java.util.UUID; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -27,13 +28,13 @@ import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.UiException; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.Events; +import org.zkoss.zk.ui.ext.AfterCompose; import org.zkoss.zul.Div; /** - * * @author javi */ -public class Task extends Div { +public class Task extends Div implements AfterCompose { private static Pattern pixelsSpecificationPattern = Pattern .compile("\\s*(\\d+)px\\s*;?\\s*"); @@ -122,16 +123,34 @@ public class Task extends Div { } }; - public Task() { + public static Task asTask(TaskBean taskBean) { + return new Task(taskBean); + } + + public Task(TaskBean taskBean) { setHeight("20px"); /* Initial constant for standard task height */ setContext("idContextMenuTaskAssigment"); + this.taskBean = taskBean; + setColor("#007bbe"); + setId(UUID.randomUUID().toString()); + } + + public void afterCompose() { + updateProperties(); + this.taskBean.addPropertyChangeListener(new PropertyChangeListener() { + + @Override + public void propertyChange(PropertyChangeEvent evt) { + updateProperties(); + } + }); } private String _color; private List> dependencyListeners = new LinkedList>(); - private TaskBean taskBean; + private final TaskBean taskBean; public TaskBean getTaskBean() { return taskBean; @@ -141,22 +160,6 @@ public class Task extends Div { return taskBean.getName(); } - @Override - public void setId(String id) { - super.setId(id); - if (taskBean != null) - throw new IllegalStateException("taskBean already set"); - taskBean = getPlanner().retrieve(id); - updateProperties(); - taskBean.addPropertyChangeListener(new PropertyChangeListener() { - - @Override - public void propertyChange(PropertyChangeEvent evt) { - updateProperties(); - } - }); - } - public String getLength() { return null; } @@ -202,12 +205,10 @@ public class Task extends Div { // Command action to do void doUpdatePosition(String leftX, String topY) { - System.out.println("leftX:" + getLeft() + "newLeft:" + leftX); this.taskBean.setBeginDate(getMapper().toDate(stripPx(leftX))); } void doUpdateSize(String size) { - System.out.println("size:" + getWidth() + "newWidth:" + size); int pixels = stripPx(size); this.taskBean.setLengthMilliseconds(getMapper().toMilliseconds(pixels)); } @@ -303,5 +304,4 @@ public class Task extends Div { getTaskList().removeTask(this); } - } diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TaskDetail.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TaskDetail.java index 6913ebe60..889f6b3ef 100644 --- a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TaskDetail.java +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TaskDetail.java @@ -3,7 +3,6 @@ package org.zkoss.ganttz; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.text.DateFormat; -import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; @@ -15,7 +14,6 @@ import java.util.regex.Pattern; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.zkoss.ganttz.util.TaskBean; -import org.zkoss.zk.ui.AbstractComponent; import org.zkoss.zk.ui.HtmlMacroComponent; import org.zkoss.zk.ui.ext.AfterCompose; import org.zkoss.zul.Datebox; @@ -23,18 +21,6 @@ import org.zkoss.zul.Textbox; public class TaskDetail extends HtmlMacroComponent implements AfterCompose { - private static long parseLength(String length) { - return LengthType.getTimeInMilliseconds(length); - } - - private static Date parseStartDate(String start) { - try { - return dateFormat.parse(start); - } catch (ParseException e) { - throw new RuntimeException(e); - } - } - static String format(Date date) { return dateFormat.format(date); } @@ -77,7 +63,7 @@ public class TaskDetail extends HtmlMacroComponent implements AfterCompose { private String taskId; - private TaskBean taskBean; + private final TaskBean taskBean; public TaskBean getTaskBean() { return taskBean; @@ -116,37 +102,21 @@ public class TaskDetail extends HtmlMacroComponent implements AfterCompose { private Datebox endDateBox; - public String getTaskId() { - return taskId; + public static TaskDetail create(TaskBean bean) { + return new TaskDetail(bean); } - public void setTaskId(String taskId) { - this.taskId = taskId; - } - - public TaskDetail() { - LOG.info("Detail component constructor"); + private TaskDetail(TaskBean task) { + this.taskBean = task; } public TaskBean getData() { return taskBean; } - private Planner getPlanner() { - AbstractComponent parent = (AbstractComponent) getParent(); - while (!(parent instanceof ListDetails)) { - parent = (AbstractComponent) parent.getParent(); - } - return ((ListDetails) parent).getPlanner(); - } - @Override public void afterCompose() { super.afterCompose(); - taskBean = new TaskBean((String) getDynamicProperty("taskName"), - parseStartDate((String) getDynamicProperty("start")), - parseLength((String) getDynamicProperty("length"))); - getPlanner().publish(taskId, taskBean); updateComponents(); taskBean.addPropertyChangeListener(new PropertyChangeListener() { @@ -172,4 +142,5 @@ public class TaskDetail extends HtmlMacroComponent implements AfterCompose { getStartDateBox().setValue(taskBean.getBeginDate()); getEndDateBox().setValue(taskBean.getEndDate()); } + } 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 986c2b62d..4bd83bc18 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 @@ -7,11 +7,15 @@ package org.zkoss.ganttz; import java.lang.ref.WeakReference; import java.util.ArrayList; +import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; +import java.util.Map; +import org.zkoss.ganttz.util.DependencyBean; import org.zkoss.ganttz.util.MenuBuilder; +import org.zkoss.ganttz.util.TaskBean; import org.zkoss.ganttz.util.WeakReferencedListeners; import org.zkoss.ganttz.util.MenuBuilder.ItemAction; import org.zkoss.ganttz.util.WeakReferencedListeners.ListenerNotification; @@ -26,9 +30,8 @@ import org.zkoss.zul.Menupopup; import org.zkoss.zul.impl.XulElement; /** - * - * @author Francisco Javier Moran Rúa - * + * Component to show the list of task in the planner + * @author Javier Moran Rua */ public class TaskList extends XulElement implements AfterCompose { @@ -45,10 +48,40 @@ public class TaskList extends XulElement implements AfterCompose { private TaskEditFormComposer taskEditFormComposer = new TaskEditFormComposer(); + private List originalTasks; + + public TaskList(List tasks) { + this.originalTasks = tasks; + } + + public static TaskList createFor(List tasks) { + TaskList result = new TaskList(tasks); + return result; + } + + public List asDependencies(List dependencies) { + List children = getChildren(); + List tasks = Planner.findComponentsOfType(Task.class, children); + Map taskByTaskBean = new HashMap(); + for (Task task : tasks) { + taskByTaskBean.put(task.getTaskBean(), task); + } + List result = new ArrayList(); + for (DependencyBean dependencyBean : dependencies) { + result.add(new Dependency(taskByTaskBean.get(dependencyBean + .getSource()), taskByTaskBean.get(dependencyBean + .getDestination()))); + } + return result; + } + + public void addTask(TaskBean newTask) { + addTask(Task.asTask(newTask)); + } + public synchronized void addTask(Task task) { task.setParent(this); invalidate(); - getDependencyList().invalidate(); addContextMenu(task); addListenerForTaskEditForm(task); ListIterator> iterator = listeners @@ -61,16 +94,7 @@ public class TaskList extends XulElement implements AfterCompose { iterator.remove(); } } - } - - private DependencyList getDependencyList() { - return getGanttPanel().getDependencyList(); - } - - private void addListenersForTaskEditForm() { - for (Task task : getTasks()) { - addListenerForTaskEditForm(task); - } + task.afterCompose(); } private void addListenerForTaskEditForm(final Task task) { @@ -88,17 +112,15 @@ public class TaskList extends XulElement implements AfterCompose { @Override public void onEvent(Event event) throws Exception { - getContextMenuForTasks().open(task); + try { + getContextMenuForTasks().open(task); + } catch (Exception e) { + e.printStackTrace(); + } } }); } - private void addContextMenu() { - for (Task task : getTasks()) { - addContextMenu(task); - } - } - public void addRemoveListener(TaskRemovedListener listener) { taskRemovedListeners.addListener(listener); } @@ -124,11 +146,13 @@ public class TaskList extends XulElement implements AfterCompose { public String getSameHeightElementId() { TimeTracker timeTracker = getTimeTracker(); AbstractComponent fakeRow = timeTracker.getFakeRow(); + if (fakeRow == null) + return ""; return fakeRow.getUuid(); } private TimeTracker getTimeTracker() { - return (getGanttPanel()).getTimeTracker(); + return getGanttPanel().getTimeTracker(); } DatesMapper getMapper() { @@ -162,6 +186,9 @@ public class TaskList extends XulElement implements AfterCompose { @Override public void afterCompose() { + for (TaskBean taskBean : originalTasks) { + addTask(Task.asTask(taskBean)); + } if (zoomLevelChangedListener == null) { zoomLevelChangedListener = new ZoomLevelChangedListener() { @Override @@ -175,8 +202,6 @@ public class TaskList extends XulElement implements AfterCompose { }; getTimeTracker().addZoomListener(zoomLevelChangedListener); } - addListenersForTaskEditForm(); - addContextMenu(); } private Menupopup getContextMenuForTasks() { @@ -209,4 +234,5 @@ public class TaskList extends XulElement implements AfterCompose { public TaskEditFormComposer getModalFormComposer() { return taskEditFormComposer; } + } diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TimeTracker.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TimeTracker.java index 1cdf35758..f2a97c261 100644 --- a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TimeTracker.java +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TimeTracker.java @@ -21,16 +21,13 @@ import org.zkoss.zk.ui.HtmlMacroComponent; import org.zkoss.zul.Label; /** - * - * - * @author Francisco Javier Moran Rúa - * + * @author Javier Moran Rua */ public class TimeTracker extends HtmlMacroComponent { private static Interval getTestInterval() { - return new Interval(TimeTrackerState.year(2009), TimeTrackerState + return new Interval(TimeTrackerState.year(2008), TimeTrackerState .year(2019)); } @@ -44,6 +41,12 @@ public class TimeTracker extends HtmlMacroComponent { private Collection detailsSecondLevelCached = null; + private ZoomLevel detailLevel; + + public TimeTracker() { + this.detailLevel = ZoomLevel.DETAIL_ONE; + } + public void addZoomListener(ZoomLevelChangedListener listener) { zoomListeners .add(new WeakReference(listener)); @@ -102,7 +105,7 @@ public class TimeTracker extends HtmlMacroComponent { } private void changeDetailLevel(ZoomLevel d) { - setDynamicProperty("detailLevel", d); + this.detailLevel = d; datesMapper = null; detailsFirstLevelCached = null; detailsSecondLevelCached = null; @@ -117,7 +120,7 @@ public class TimeTracker extends HtmlMacroComponent { } private ZoomLevel getDetailLevel() { - return (ZoomLevel) getDynamicProperty("detailLevel"); + return detailLevel; } public AbstractComponent getFakeRow() { diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/DependencyRegistry.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/DependencyRegistry.java index d5d0c8ab1..e75cf664c 100644 --- a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/DependencyRegistry.java +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/DependencyRegistry.java @@ -18,9 +18,7 @@ import org.zkoss.ganttz.Dependency; * the {@link DependencyBean dependency} as arcs. It enforces the rules embodied * in the dependencies and in the duration of the tasks using listeners.
* Created at Apr 24, 2009 - * * @author Óscar González Fernández - * */ public class DependencyRegistry { @@ -98,10 +96,10 @@ public class DependencyRegistry { rulesEnforcersByTask.get(destination).update(); } - public void add(Dependency dependency) { - TaskBean destination = dependency.getDestination().getTaskBean(); - graph.addEdge(dependency.getSource().getTaskBean(), destination, - dependency.getDependencyBean()); + public void add(DependencyBean dependency) { + TaskBean source = dependency.getSource(); + TaskBean destination = dependency.getDestination(); + graph.addEdge(source, destination, dependency); getEnforcer(destination).update(); } @@ -109,4 +107,13 @@ public class DependencyRegistry { return rulesEnforcersByTask.get(destination); } + public List getTasks() { + return new ArrayList(graph.vertexSet()); + } + + public List getDependencies() { + Set edgeSet = graph.edgeSet(); + return new ArrayList(edgeSet); + } + } diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/zoom/TimeTrackerState.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/zoom/TimeTrackerState.java index 876fbe4e0..5efd85ece 100644 --- a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/zoom/TimeTrackerState.java +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/zoom/TimeTrackerState.java @@ -15,9 +15,7 @@ import java.util.List; import org.zkoss.ganttz.util.Interval; /** - * * @author Francisco Javier Moran Rúa - * */ public abstract class TimeTrackerState { @@ -26,9 +24,7 @@ public abstract class TimeTrackerState { /** * This class is conceived as an immutable class. - * * @author Francisco Javier Moran Rúa - * */ public final static class DetailItem { @@ -123,8 +119,6 @@ public abstract class TimeTrackerState { protected static long calculateYearsBetween(Date initialDate, Date endDate) { - System.out.println("Initial date:" + initialDate); - System.out.println("End date:" + endDate); long milsecondsDiff = endDate.getTime() - initialDate.getTime(); // To chech later: If you put MILLSECONDS_IN_YEAR the diff --git a/navalplanner-gantt-zk/src/main/resources/web/ganttz/zul/listdetails.zul b/navalplanner-gantt-zk/src/main/resources/web/ganttz/zul/listdetails.zul index 2dd7272aa..88cc1a4e9 100644 --- a/navalplanner-gantt-zk/src/main/resources/web/ganttz/zul/listdetails.zul +++ b/navalplanner-gantt-zk/src/main/resources/web/ganttz/zul/listdetails.zul @@ -3,27 +3,5 @@