package ru.khasang.cachoeira.view.mainwindow.diagram.ganttplan; import javafx.scene.control.ScrollPane; import ru.khasang.cachoeira.viewcontroller.MainWindowController; import ru.khasang.cachoeira.view.mainwindow.diagram.ganttplan.dateline.DateLine; import ru.khasang.cachoeira.view.mainwindow.diagram.ganttplan.dateline.ResourceGanttPlanDateLine; import ru.khasang.cachoeira.view.mainwindow.diagram.ganttplan.gridlayer.GridLayer; import ru.khasang.cachoeira.view.mainwindow.diagram.ganttplan.gridlayer.ResourceGanttPlanGridLayer; import ru.khasang.cachoeira.view.mainwindow.diagram.ganttplan.labelslayer.TaskBarLabelsLayer; import ru.khasang.cachoeira.view.mainwindow.diagram.ganttplan.objectslayer.ResourceGanttPlanObjectsLayer; import ru.khasang.cachoeira.view.mainwindow.diagram.ganttplan.relationlayer.RelationsLayer; import ru.khasang.cachoeira.view.mainwindow.diagram.ganttplan.selectedobjectlayer.SelectedObjectLayer; public class ResourceGanttPlan extends AbstractGanttPlan { public ResourceGanttPlan(MainWindowController controller) { this.controller = controller; } @Override protected GridLayer createGridLayer() { return new ResourceGanttPlanGridLayer(controller); } @Override protected ScrollPane createObjectsLayer() { objectsLayer = new ResourceGanttPlanObjectsLayer(controller); // Запихиваем слой объектов в скролл пэйн ScrollPane verticalScrollPane = new ScrollPane(objectsLayer); verticalScrollPane.setFitToWidth(true); verticalScrollPane.getStylesheets().add(this.getClass().getResource("/css/scrollpane.css").toExternalForm()); //делаем вертикальный скроллпэйн прозрачным // Синхронизируем вертикальный скролл слоя объектов cо скроллом таблицы задач verticalScrollPane.vvalueProperty().bindBidirectional(controller.resourceVerticalScrollValueProperty()); return verticalScrollPane; } @Override protected DateLine createDateLine() { DateLine dateLine = new ResourceGanttPlanDateLine(controller); dateLine.initDateLine( controller.getProject().getStartDate(), controller.getProject().getFinishDate(), controller.getZoomMultiplier()); dateLine.setListeners( controller.getProject().startDateProperty(), controller.getProject().finishDateProperty(), controller.zoomMultiplierProperty()); return dateLine; } @Override public RelationsLayer getRelationsLayer() { throw new RuntimeException("Not Supported"); } @Override public TaskBarLabelsLayer getLabelsLayer() { throw new RuntimeException("Not Supported"); } @Override public SelectedObjectLayer getSelectedObjectLayer() { throw new RuntimeException("Not Supported"); } }