Schedule-Creator

Java GUI to create schedules for UNCG students
git clone git://git.wrycode.com/wrycode/archive/Schedule-Creator.git
Log | Files | Refs | README

commit 47ae032adb14749ef10aa18b4331cdc0da847c4b
parent 1bd18ccd11e19f5670c3f989cc8b906c943bd679
Author: jamisonv93 <47033011+jamisonv93@users.noreply.github.com>
Date:   Sun, 22 Mar 2020 09:55:47 -0400

improve schedule grid design (#44)

* fix schedule grid issue

* change appearance of grid entry borders; fix remove course bug

* improve resizing

* improve resizing

* change colors of entries in grid; minor change removeCourse implementation

* grid entry color change
Diffstat:
MScheduleCreator/App.java | 1+
MScheduleCreator/controllers/CoursesController.java | 98+++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------
MScheduleCreator/models/Schedule.java | 10++--------
MScheduleCreator/models/Section.java | 6+++++-
MScheduleCreator/models/Semester.java | 2+-
MScheduleCreator/resources/views/select_courses.fxml | 156++++++++++++++++++++++++++++++++++++++++++-------------------------------------
6 files changed, 160 insertions(+), 113 deletions(-)

diff --git a/ScheduleCreator/App.java b/ScheduleCreator/App.java @@ -37,6 +37,7 @@ public class App extends Application { primaryStage.setMinHeight(560); primaryStage.setMinWidth(1090); + // shows window on screen primaryStage.show(); } diff --git a/ScheduleCreator/controllers/CoursesController.java b/ScheduleCreator/controllers/CoursesController.java @@ -22,6 +22,7 @@ import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.geometry.HPos; +import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.geometry.VPos; import javafx.scene.control.Button; @@ -39,7 +40,7 @@ import javafx.scene.shape.Rectangle; * * @author Jamison Valentine, Ilyass Sfar, Nick Econopouly, Nathan Tolodzieki * - * Last Updated: 3/18/2020 + * Last Updated: 3/21/2020 */ public class CoursesController implements Initializable { @@ -48,7 +49,7 @@ public class CoursesController implements Initializable { @FXML protected ListView availableCourses; @FXML - protected ListView selectedCourses; + protected ListView selectedCoursesListView; @FXML protected ListView sectionListView; @FXML @@ -103,7 +104,7 @@ public class CoursesController implements Initializable { if (this.availableCourses.getFocusModel().getFocusedItem() != null) { String selectedCourse = this.availableCourses.getFocusModel().getFocusedItem().toString(); if (this.currentSemester.addCourse(selectedCourse)) { - this.selectedCourses.getItems().add(selectedCourse); + this.selectedCoursesListView.getItems().add(selectedCourse); this.currentSemester.generateSchedules(); } regenerateSchedules(); @@ -139,22 +140,22 @@ public class CoursesController implements Initializable { for (BorderPane entry : entries) { scheduleGrid.getChildren().remove(entry); } - } - - protected void clearSectionList() { - System.out.println("Dummy function to clear the list of available sections for when we switch semesters"); + entries.clear(); } // TODO: connect "delete" while in the selectedCourses ListView to this method and // allow for selecting and deleting multiple courses public void removeSelectedCourse(ActionEvent _event) throws Exception { - if (this.focusedCourse != null) { - Object itemToRemove = this.selectedCourses.getSelectionModel().getSelectedItem(); - this.selectedCourses.getItems().remove(itemToRemove); + + if (this.selectedCoursesListView.getSelectionModel().getSelectedItem() != null) { + Object itemToRemove = this.selectedCoursesListView.getSelectionModel().getSelectedItem(); + this.selectedCoursesListView.getItems().remove(itemToRemove); String courseToDelete = ((String) itemToRemove).trim(); this.currentSemester.removeCourse(courseToDelete); + if (this.focusedCourse != null && this.focusedCourse.getFullText().equalsIgnoreCase(courseToDelete)) this.sectionListView.getItems().clear();; + this.currentSemester.generateSchedules(); regenerateSchedules(); } @@ -178,8 +179,8 @@ public class CoursesController implements Initializable { List<Section> courseSections = new ArrayList(); - if (this.selectedCourses.getFocusModel().getFocusedItem() != null) { - String currentSelection = this.selectedCourses.getFocusModel().getFocusedItem().toString(); + if (this.selectedCoursesListView.getSelectionModel().getSelectedItem() != null) { + String currentSelection = this.selectedCoursesListView.getSelectionModel().getSelectedItem().toString(); for (Course course : this.currentSemester.getSelectedCourses()) { if (course.getFullText().equals(currentSelection)) { @@ -286,7 +287,7 @@ public class CoursesController implements Initializable { public void loadSelectedCourses(String _semester) throws Exception { List<String> courses = Translator.getSelectedCourses(_semester); - this.selectedCourses.setItems(FXCollections.observableList(courses)); + this.selectedCoursesListView.setItems(FXCollections.observableList(courses)); regenerateSchedules(); } @@ -316,16 +317,17 @@ public class CoursesController implements Initializable { } public void addSection(ActionEvent _event) { - if (this.focusedCourse != null) { - int secIndex = this.sectionListView.getFocusModel().getFocusedIndex(); - Section focusedSection = this.focusedCourse.getSections().get(secIndex); - this.currentSemester.addSelectedSection(focusedCourse, focusedSection); - this.currentSemester.generateSchedules(); - loadSchedule(this.currentSemester.getSchedules().get(0)); - } +// if (this.focusedCourse != null) { +// int secIndex = this.sectionListView.getSelectionModel().getSelectedIndex(); +// Section focusedSection = this.focusedCourse.getSections().get(secIndex); +// this.currentSemester.addSelectedSection(focusedCourse, focusedSection); +// this.currentSemester.generateSchedules(); +// loadSchedule(this.currentSemester.getSchedules().get(0)); +// } } - public void addEntry(Section _section) { + public void addEntry(Section _section, int _numberOfCampusCourses) { + char[] daysString = _section.getDays().toCharArray(); ArrayList<Integer> days = new ArrayList(); @@ -349,26 +351,59 @@ public class CoursesController implements Initializable { } + String color = ""; + switch (_numberOfCampusCourses) { + case 1: + //green + color = "#ccffcc"; + break; + case 2: + //blue + color = "#b3e1ff"; + break; + case 3: + //red + color = "#ffb3b3 "; + break; + case 4: + //yellow + color = "#e6e600"; + break; + case 5: + //orange + color = "#ffda75"; + break; + case 6: + color = "#ff6666"; + break; + + default: + color = "lightblue"; + + } + int row = (int) _section.getStartTime() / 100 - 7; + double topMargin = (_section.getStartTime() % 100 ) / 60; for (Integer col : days) { - BorderPane region = grid[row][col]; Label label = new Label(_section.getCourseID() + " - " + _section.getSectionNumber()); - BorderPane cont = new BorderPane(); + BorderPane entryContainer = new BorderPane(); + entryContainer.paddingProperty().set(new Insets(grid[row][col].heightProperty().multiply(topMargin).doubleValue(), 0, 0, 0)); StackPane pane = new StackPane(); Rectangle rect = new Rectangle(); - rect.setStyle("-fx-fill:lightblue;"); + rect.setStyle("-fx-fill:" + color + "; -fx-stroke: black; -fx-stroke-line-cap: round; -fx-arc-height: 10; -fx-arc-width: 10;"); label.setAlignment(Pos.CENTER); - pane.setStyle("-fx-border-color:blue;"); + pane.setStyle(""); pane.getChildren().addAll(rect, label); - cont.setTop(pane); + entryContainer.setTop(pane); - scheduleGrid.getChildren().add(cont); - GridPane.setConstraints(cont, col, row, 1, GridPane.REMAINING, HPos.CENTER, VPos.TOP); + scheduleGrid.getChildren().add(entryContainer); + GridPane.setConstraints(entryContainer, col, row, 1, GridPane.REMAINING, HPos.CENTER, VPos.TOP); + BorderPane region = grid[row][col]; rect.heightProperty().bind(region.heightProperty().subtract(2).multiply(_section.getDurationHours())); rect.widthProperty().bind(region.widthProperty().subtract(2)); - entries.add(cont); + entries.add(entryContainer); } @@ -377,8 +412,11 @@ public class CoursesController implements Initializable { public void loadSchedule(Schedule _schedule) { clearCalendar(); + int numberOfCampusCourses = 0; for (Section section : _schedule.getAddedSections()) { - addEntry(section); + if (!section.isOnline()) { + addEntry(section, ++numberOfCampusCourses); + } } scheduleLabel.setText(this.currentScheduleIndex + 1 + "/" + this.currentSemester.getNumberOfSchedules()); } diff --git a/ScheduleCreator/models/Schedule.java b/ScheduleCreator/models/Schedule.java @@ -9,20 +9,14 @@ import java.util.List; * * @author Jamison Valentine * - * Last Updated: 3/16/2020 + * Last Updated: 3/31/2020 */ public class Schedule { protected List<Section> addedSections; protected String totalCredits; - - //checkConflicts - //addSection - //removeSection //getCRNS - //saveSchedule - //resetSchedule - //generateRandomSchedules + public Schedule() { addedSections = new ArrayList(); } diff --git a/ScheduleCreator/models/Section.java b/ScheduleCreator/models/Section.java @@ -7,7 +7,7 @@ import java.util.Scanner; * * @author Jamison Valentine * - * Last Updated: 3/18/2020 + * Last Updated: 3/21/2020 */ public class Section { @@ -47,6 +47,10 @@ public class Section { return hours; } + public Boolean isOnline() { + return this.isOnline; + } + public String getDaysAndTimes() { return daysAndTimes; } diff --git a/ScheduleCreator/models/Semester.java b/ScheduleCreator/models/Semester.java @@ -12,7 +12,7 @@ import java.util.List; * * @author Nick Econopouly, Jamison Valentine * - * Last Updated: 3/17/2020 + * Last Updated: 3/31/2020 */ public class Semester { diff --git a/ScheduleCreator/resources/views/select_courses.fxml b/ScheduleCreator/resources/views/select_courses.fxml @@ -19,37 +19,26 @@ <?import javafx.scene.layout.GridPane?> <?import javafx.scene.layout.RowConstraints?> -<AnchorPane fx:id="mainPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="744.0" prefWidth="1101.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ScheduleCreator.controllers.CoursesController"> +<GridPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ScheduleCreator.controllers.CoursesController"> + <columnConstraints> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="2.0" prefWidth="20.0" /> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" /> + <ColumnConstraints fillWidth="false" hgrow="SOMETIMES" minWidth="10.0" percentWidth="2.0" prefWidth="10.0" /> + </columnConstraints> + <rowConstraints> + <RowConstraints fillHeight="false" maxHeight="100.0" minHeight="10.0" prefHeight="20.0" vgrow="NEVER" /> + <RowConstraints minHeight="10.0" vgrow="SOMETIMES" /> + <RowConstraints fillHeight="false" maxHeight="100.0" minHeight="10.0" prefHeight="20.0" vgrow="NEVER" /> + </rowConstraints> <children> - <GridPane AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> - <columnConstraints> - <ColumnConstraints hgrow="SOMETIMES" maxWidth="539.0" minWidth="10.0" prefWidth="465.0" /> - <ColumnConstraints hgrow="SOMETIMES" maxWidth="719.0" minWidth="10.0" prefWidth="626.0" /> - </columnConstraints> - <rowConstraints> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - </rowConstraints> + <GridPane GridPane.columnIndex="1" GridPane.rowIndex="1"> <children> - <GridPane hgap="10.0" vgap="20.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> - <columnConstraints> - <ColumnConstraints hgrow="SOMETIMES" maxWidth="469.0" minWidth="10.0" prefWidth="289.0" /> - <ColumnConstraints hgrow="SOMETIMES" maxWidth="342.0" minWidth="10.0" prefWidth="155.0" /> - </columnConstraints> - <rowConstraints> - <RowConstraints maxHeight="214.0" minHeight="10.0" prefHeight="30.0" vgrow="NEVER" /> - <RowConstraints maxHeight="243.0" minHeight="0.0" prefHeight="35.0" vgrow="NEVER" /> - <RowConstraints maxHeight="375.0" minHeight="10.0" prefHeight="175.0" vgrow="NEVER" /> - <RowConstraints maxHeight="375.0" minHeight="10.0" prefHeight="30.0" vgrow="NEVER" /> - <RowConstraints maxHeight="338.0" minHeight="10.0" prefHeight="133.0" vgrow="NEVER" /> - <RowConstraints maxHeight="305.0" minHeight="10.0" prefHeight="30.0" vgrow="NEVER" /> - <RowConstraints maxHeight="305.0" minHeight="10.0" prefHeight="83.0" vgrow="SOMETIMES" /> - <RowConstraints maxHeight="305.0" minHeight="10.0" prefHeight="30.0" vgrow="NEVER" /> - </rowConstraints> + <GridPane hgap="10.0" maxHeight="1.7976931348623157E308" vgap="20.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" GridPane.columnIndex="1"> <children> <TextField fx:id="searchField" onAction="#addSelectedCourse" prefHeight="25.0" prefWidth="262.0" promptText="Search" GridPane.columnSpan="2" GridPane.rowIndex="1" /> - <ComboBox fx:id="semesterComboBox" onAction="#switchSemester" prefHeight="33.0" prefWidth="469.0" promptText="Choose Semester" GridPane.columnSpan="2" GridPane.hgrow="ALWAYS" /> - <ListView fx:id="selectedCourses" prefHeight="114.0" prefWidth="454.0" GridPane.columnSpan="2" GridPane.rowIndex="4" /> - <Button fx:id="getSectionsButton" mnemonicParsing="false" onAction="#loadCourseSections" prefHeight="58.0" prefWidth="292.0" text="Get Sections" GridPane.hgrow="NEVER" GridPane.rowIndex="5" GridPane.vgrow="NEVER" /> + <ComboBox fx:id="semesterComboBox" onAction="#switchSemester" prefHeight="26.0" prefWidth="138.0" promptText="Choose Semester" GridPane.columnSpan="2" GridPane.hgrow="ALWAYS" /> + <ListView fx:id="selectedCoursesListView" maxHeight="1.7976931348623157E308" prefHeight="114.0" prefWidth="454.0" GridPane.columnSpan="2" GridPane.rowIndex="4" /> + <Button fx:id="getSectionsButton" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#loadCourseSections" prefHeight="58.0" prefWidth="292.0" text="Get Sections" GridPane.hgrow="NEVER" GridPane.rowIndex="5" GridPane.vgrow="NEVER" /> <Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#removeSelectedCourse" prefHeight="72.0" prefWidth="172.0" text="Remove" GridPane.columnIndex="1" GridPane.hgrow="NEVER" GridPane.rowIndex="5" GridPane.vgrow="NEVER" /> <ListView fx:id="sectionListView" prefHeight="200.0" prefWidth="200.0" GridPane.columnSpan="2" GridPane.rowIndex="6" /> <Button mnemonicParsing="false" prefHeight="79.0" prefWidth="517.0" text="Select/Deselect All" GridPane.hgrow="NEVER" GridPane.rowIndex="7" GridPane.vgrow="NEVER" /> @@ -57,48 +46,27 @@ <ListView fx:id="availableCourses" prefHeight="184.0" prefWidth="271.0" GridPane.columnSpan="2" GridPane.rowIndex="2" /> <Button mnemonicParsing="false" onAction="#addSelectedCourse" prefHeight="26.0" prefWidth="703.0" text="Add Course" GridPane.columnSpan="2" GridPane.rowIndex="3" /> </children> + <columnConstraints> + <ColumnConstraints hgrow="SOMETIMES" maxWidth="469.0" minWidth="10.0" prefWidth="289.0" /> + <ColumnConstraints hgrow="SOMETIMES" maxWidth="342.0" minWidth="10.0" prefWidth="155.0" /> + </columnConstraints> <padding> <Insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </padding> + <rowConstraints> + <RowConstraints maxHeight="214.0" minHeight="10.0" prefHeight="30.0" vgrow="NEVER" /> + <RowConstraints maxHeight="243.0" minHeight="0.0" prefHeight="35.0" vgrow="NEVER" /> + <RowConstraints minHeight="10.0" prefHeight="134.0" vgrow="ALWAYS" /> + <RowConstraints maxHeight="375.0" minHeight="0.0" prefHeight="30.0" /> + <RowConstraints minHeight="10.0" prefHeight="122.0" vgrow="ALWAYS" /> + <RowConstraints maxHeight="305.0" minHeight="10.0" prefHeight="30.0" /> + <RowConstraints minHeight="10.0" prefHeight="112.0" vgrow="ALWAYS" /> + <RowConstraints maxHeight="305.0" minHeight="10.0" prefHeight="30.0" /> + </rowConstraints> </GridPane> - <GridPane GridPane.columnIndex="1"> - <columnConstraints> - <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> - <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> - </columnConstraints> - <rowConstraints> - <RowConstraints maxHeight="560.0" minHeight="10.0" prefHeight="489.0" vgrow="SOMETIMES" /> - <RowConstraints maxHeight="275.0" minHeight="10.0" prefHeight="44.0" vgrow="SOMETIMES" /> - <RowConstraints maxHeight="275.0" minHeight="0.0" prefHeight="40.0" vgrow="SOMETIMES" /> - </rowConstraints> + <GridPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" GridPane.columnIndex="2"> <children> - - <GridPane fx:id="scheduleGrid" gridLinesVisible="false" prefHeight="822.0" prefWidth="872.0" GridPane.columnSpan="2"> - <columnConstraints> - <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> - <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> - <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> - <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> - <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> - <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> - </columnConstraints> - <rowConstraints> - <RowConstraints fx:id="topRow" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - </rowConstraints> + <GridPane fx:id="scheduleGrid" gridLinesVisible="false" maxHeight="1.7976931348623157E308" maxWidth="1050.0" prefHeight="822.0" prefWidth="872.0" GridPane.columnSpan="2" GridPane.vgrow="ALWAYS"> <children> <Label text="Monday" GridPane.columnIndex="1" GridPane.halignment="CENTER" /> <Label text="Tuesday" GridPane.columnIndex="2" GridPane.halignment="CENTER" /> @@ -119,18 +87,34 @@ <Label text="7:00 PM" GridPane.halignment="CENTER" GridPane.rowIndex="12" GridPane.valignment="TOP" /> <Label text="8:00 PM" GridPane.halignment="CENTER" GridPane.rowIndex="13" GridPane.valignment="TOP" /> <Label text="9:00 PM" GridPane.halignment="CENTER" GridPane.rowIndex="14" GridPane.valignment="TOP" /> - </children> - </GridPane> - <GridPane GridPane.columnSpan="2" GridPane.rowIndex="1"> <columnConstraints> - <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" /> - <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="12.0" prefWidth="100.0" /> - <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" /> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> </columnConstraints> <rowConstraints> - <RowConstraints minHeight="10.0" vgrow="SOMETIMES" /> + <RowConstraints fx:id="topRow" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> </rowConstraints> + </GridPane> + <GridPane GridPane.columnSpan="2" GridPane.rowIndex="1"> <children> <BorderPane prefHeight="200.0" prefWidth="200.0"> <center> @@ -155,11 +139,37 @@ </center> </BorderPane> </children> + <columnConstraints> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" /> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" percentWidth="12.0" prefWidth="100.0" /> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" /> + </columnConstraints> + <rowConstraints> + <RowConstraints minHeight="10.0" vgrow="SOMETIMES" /> + </rowConstraints> </GridPane> </children> + <columnConstraints> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> + </columnConstraints> + <rowConstraints> + <RowConstraints fx:id="heightRestricted" minHeight="10.0" prefHeight="489.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="44.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="0.0" prefHeight="40.0" vgrow="SOMETIMES" /> + </rowConstraints> </GridPane> </children> + <columnConstraints> + <ColumnConstraints hgrow="SOMETIMES" maxWidth="539.0" minWidth="0.0" prefWidth="0.0" /> + <ColumnConstraints hgrow="SOMETIMES" maxWidth="568.0" minWidth="10.0" prefWidth="568.0" /> + <ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308" minWidth="10.0" prefWidth="642.0" /> + <ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308" minWidth="0.0" prefWidth="0.0" /> + </columnConstraints> + <rowConstraints> + <RowConstraints maxHeight="1.7976931348623157E308" minHeight="10.0" prefHeight="669.0" vgrow="SOMETIMES" /> + <RowConstraints maxHeight="0.0" minHeight="0.0" prefHeight="0.0" vgrow="SOMETIMES" /> + </rowConstraints> </GridPane> - </children> -</AnchorPane> +</GridPane>