package ru.khasang.cachoeira.view.mainwindow.diagram.ganttplan.labelslayer; import javafx.scene.layout.Pane; import ru.khasang.cachoeira.model.ITask; import ru.khasang.cachoeira.view.mainwindow.diagram.ganttplan.labelslayer.label.TaskBarLabel; import ru.khasang.cachoeira.view.mainwindow.diagram.ganttplan.objectslayer.taskbar.TaskBar; public abstract class TaskBarLabelsLayer extends Pane { public TaskBarLabelsLayer() { } public abstract void setLabelToTaskBar(TaskBar taskBar); public void removeLabel(ITask task) { this.getChildren().removeIf(node -> { TaskBarLabel taskBarLabel = (TaskBarLabel) node; return taskBarLabel.getTaskBar().getTask().equals(task); }); } public TaskBarLabel findLabelByTask(ITask task) { return (TaskBarLabel) this.getChildren().stream() .filter(node -> { TaskBarLabel taskBarLabel = (TaskBarLabel) node; return taskBarLabel.getTaskBar().getTask().equals(task); }) .findFirst() .orElse(null); } }