package ru.khasang.cachoeira.view.mainwindow.diagram.tables;
import javafx.beans.property.DoubleProperty;
import javafx.scene.control.TreeTableColumn;
import javafx.scene.control.TreeTableView;
import ru.khasang.cachoeira.model.IResource;
import ru.khasang.cachoeira.model.ResourceType;
import java.util.Arrays;
public class ResourceTableView<S> extends AbstractTableView<S> {
public ResourceTableView(DoubleProperty horizontalScrollValue, DoubleProperty verticalScrollValue) {
this.horizontalScrollValue = horizontalScrollValue;
this.verticalScrollValue = verticalScrollValue;
}
@Override
public void createTable() {
TreeTableColumn<S, String> resourceNameColumn = new TreeTableColumn<>("Name");
TreeTableColumn<S, ResourceType> resourceTypeColumn = new TreeTableColumn<>("Type");
TreeTableColumn<S, String> resourceEmailColumn = new TreeTableColumn<>("E-Mail");
resourceNameColumn.setCellValueFactory(cellData -> {
IResource resource = (IResource) cellData.getValue().getValue();
return resource.nameProperty();
});
resourceTypeColumn.setCellValueFactory(cellData -> {
IResource resource = (IResource) cellData.getValue().getValue();
return resource.resourceTypeProperty();
});
resourceEmailColumn.setCellValueFactory(cellData -> {
IResource resource = (IResource) cellData.getValue().getValue();
return resource.emailProperty();
});
resourceEmailColumn.setVisible(false);
resourceNameColumn.setStyle("-fx-alignment: CENTER-LEFT");
resourceTypeColumn.setStyle("-fx-alignment: CENTER-LEFT");
resourceEmailColumn.setStyle("-fx-alignment: CENTER-LEFT");
this.getColumns().addAll(Arrays.asList(resourceNameColumn, resourceTypeColumn, resourceEmailColumn));
this.setColumnResizePolicy(TreeTableView.CONSTRAINED_RESIZE_POLICY);
this.setShowRoot(false);
}
}