package ru.khasang.cachoeira.view.createnewprojectwindow.panes;
import javafx.geometry.Insets;
import javafx.geometry.VPos;
import javafx.scene.control.*;
import javafx.scene.layout.ColumnConstraints;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import ru.khasang.cachoeira.view.MaterialButton;
public class FieldsPane extends GridPane implements IFieldsPane {
private static final double FIRST_COLUMN_PERCENT_WIDTH = 30;
private static final double SECOND_COLUMN_PERCENT_WIDTH = 70;
private Label projectNameLabel;
private Label projectPathLabel;
private Label startDateLabel;
private Label finishDateLabel;
private Label descriptionLabel;
private TextField projectNameField;
private TextField projectPathField;
private DatePicker startDatePicker;
private DatePicker finishDatePicker;
private TextArea descriptionTextArea;
private MaterialButton pathChooserButton;
public FieldsPane() {
projectNameLabel = new Label("Name");
projectPathLabel = new Label("Path");
startDateLabel = new Label("Start Date");
finishDateLabel = new Label("Finish Date");
descriptionLabel = new Label("Description");
projectNameField = new TextField();
projectPathField = new TextField();
pathChooserButton = new MaterialButton("...");
startDatePicker = new DatePicker();
finishDatePicker = new DatePicker();
descriptionTextArea = new TextArea();
}
@Override
public void createPane() {
this.setHgap(10);
this.setVgap(10);
ColumnConstraints firstColumnConstrains = new ColumnConstraints();
ColumnConstraints secondColumnConstrains = new ColumnConstraints();
firstColumnConstrains.setPercentWidth(FIRST_COLUMN_PERCENT_WIDTH);
secondColumnConstrains.setPercentWidth(SECOND_COLUMN_PERCENT_WIDTH);
secondColumnConstrains.setHgrow(Priority.ALWAYS);
this.getColumnConstraints().addAll(firstColumnConstrains, secondColumnConstrains);
this.addRow(0, projectNameLabel, projectNameField);
this.addRow(1, projectPathLabel, new HBox(projectPathField, pathChooserButton));
this.addRow(2, startDateLabel, startDatePicker);
this.addRow(3, finishDateLabel, finishDatePicker);
this.addRow(4, descriptionLabel, descriptionTextArea);
HBox.setHgrow(projectPathField, Priority.ALWAYS);
GridPane.setMargin(descriptionTextArea, new Insets(0, 0, 10, 0));
GridPane.setValignment(descriptionLabel, VPos.TOP);
startDatePicker.setPrefWidth(350);
finishDatePicker.setPrefWidth(350);
descriptionTextArea.setPrefHeight(200);
}
@Override
public TextField getProjectNameField() {
return projectNameField;
}
@Override
public TextField getProjectPathField() {
return projectPathField;
}
@Override
public DatePicker getStartDatePicker() {
return startDatePicker;
}
@Override
public DatePicker getFinishDatePicker() {
return finishDatePicker;
}
@Override
public TextArea getDescriptionTextArea() {
return descriptionTextArea;
}
@Override
public Button getPathChooserButton() {
return pathChooserButton;
}
}