package ru.khasang.cachoeira.view.mainwindow.diagram.ganttplan.objectslayer;
import ru.khasang.cachoeira.model.IResource;
import ru.khasang.cachoeira.model.ITask;
import ru.khasang.cachoeira.viewcontroller.MainWindowController;
import ru.khasang.cachoeira.viewcontroller.tooltipfactory.TaskTooltipFactory;
import ru.khasang.cachoeira.viewcontroller.tooltipfactory.TooltipFactory;
import ru.khasang.cachoeira.view.mainwindow.diagram.ganttplan.objectslayer.taskbar.ResourceGanttPlanTaskBar;
import ru.khasang.cachoeira.view.mainwindow.diagram.ganttplan.objectslayer.taskbar.TaskBar;
public class ResourceGanttPlanObjectsLayer extends ObjectsLayer {
TooltipFactory<ITask> tooltipFactory = new TaskTooltipFactory();
public ResourceGanttPlanObjectsLayer(MainWindowController controller) {
this.controller = controller;
}
@Override
public TaskBar createTaskBar(ITask task, IResource resource) {
TaskBar taskBar = new ResourceGanttPlanTaskBar(controller);
taskBar.initTaskRectangle(task, resource);
taskBar.setTask(task);
taskBar.setResource(resource);
taskBar.setContextMenu(task);
taskBar.setTooltip(tooltipFactory.createTooltip(task));
return taskBar;
}
@Override
public void refreshPlan() {
this.getChildren().clear();
for (ITask task : controller.getProject().getTaskList()) {
for (IResource resource : task.getResourceList()) {
TaskBar taskBar = createTaskBar(task, resource);
this.getChildren().add(taskBar);
}
}
}
}