diff --git a/src/main/java/ch/zhaw/gartenverwaltung/CropDetailController.java b/src/main/java/ch/zhaw/gartenverwaltung/CropDetailController.java index c644865..ab76e34 100644 --- a/src/main/java/ch/zhaw/gartenverwaltung/CropDetailController.java +++ b/src/main/java/ch/zhaw/gartenverwaltung/CropDetailController.java @@ -31,6 +31,9 @@ import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; +/** + * Controller class for the CropDetail.fxml file + */ public class CropDetailController { private Crop crop; @@ -63,15 +66,9 @@ public class CropDetailController { @FXML private Label description_label; - @FXML - private Label location_label; - @FXML private Label light_label; - @FXML - private Button location_button; - @FXML private Label soil_label; @@ -106,15 +103,7 @@ public class CropDetailController { */ @FXML void setArea() throws IOException { - openTextFieldDialog("set Text Area", "Text Area", area_label.getText(), false); - } - - /** - * open dialog to set location - */ - @FXML - void setLocation() throws IOException { - openTextFieldDialog("set Location", "Location", location_label.getText(), true); + openTextFieldDialog(); } /** @@ -138,7 +127,6 @@ public class CropDetailController { imageView.setImage(plant.image()); } area_label.setText(String.valueOf(crop.getArea())); - location_label.setText(""); setTaskListProperty(crop); taskList_listView.itemsProperty().bind(taskListProperty); @@ -152,11 +140,13 @@ public class CropDetailController { } setIconToButton(addTask_button, "addIcon.png"); setIconToButton(area_button, "areaIcon.png"); - setIconToButton(location_button, "locationIcon.png"); setCellFactoryPests(); setCellFactoryTasks(); } + /** + * cell Factory for TaskListView + */ private void setCellFactoryTasks() { taskList_listView.setCellFactory(param -> new ListCell<>() { @Override @@ -174,6 +164,9 @@ public class CropDetailController { }); } + /** + * cell Factory for PestListView + */ private void setCellFactoryPests() { pests_listView.setCellFactory(param -> new ListCell<>() { @Override @@ -191,6 +184,10 @@ public class CropDetailController { }); } + /** + * update task list + * @param crop {@link Crop} that is selected + */ private void setTaskListProperty(Crop crop) { crop.getCropId().ifPresent(id -> { List taskList; @@ -205,6 +202,11 @@ public class CropDetailController { }); } + /** + * Creates a {@link HBox} for the given {@link Task}. + * @param task {@link Task} which is selected + * @return {@link HBox} that was created + */ private HBox createTaskHBox(Task task) { HBox hBox = new HBox(10); Label taskName = new Label(task.getName()+": "); @@ -231,6 +233,11 @@ public class CropDetailController { return hBox; } + /** + * Creates a {@link HBox} for the given {@link Pest}. + * @param pest {@link Pest} which is selected + * @return {@link HBox} that was created + */ private HBox createPestHBox(Pest pest) { Label label = new Label(pest.name() + ": "); label.setStyle("-fx-font-weight: bold"); @@ -239,12 +246,8 @@ public class CropDetailController { Label description = new Label(pest.description()); description.setAlignment(Pos.TOP_LEFT); description.setWrapText(true); - description.setMaxWidth(600); - Pane puffer = new Pane(); - HBox.setHgrow(puffer, Priority.ALWAYS); - Button button = new Button("Get Counter Measures"); - HBox.setHgrow(button, Priority.NEVER); - hBox.getChildren().addAll(label, description, puffer, button); + description.setMaxWidth(800); + hBox.getChildren().addAll(label, description); return hBox; } @@ -261,6 +264,11 @@ public class CropDetailController { button.setGraphic(imageView); } + /** + * opens dialog of {@link Task} edit. + * @param task {@link Task} + * @return {@link EventHandler} for the case of editing a {@link Task} + */ private EventHandler getEditTaskEvent(Task task) { return (event) -> { try { @@ -271,12 +279,24 @@ public class CropDetailController { }; } + /** + * opens alert of {@link Task} deletion. + * @param task {@link Task} + * @return {@link EventHandler} for the case of deleting a {@link Task} + */ private EventHandler deleteTask(Task task) { return (event) -> { showDeleteTask(task); }; } + /** + * opens a dialog to create a new Task or edit the given Task + * @param newTask boolean if it is a new Task + * @param givenTask {@link Task} which was selected + * @throws IOException Exception + * @throws HardinessZoneNotSetException Exception + */ private void createTaskDialog(boolean newTask, Task givenTask) throws IOException, HardinessZoneNotSetException { Dialog dialog = new Dialog<>(); dialog.setTitle("Set Task"); @@ -319,10 +339,14 @@ public class CropDetailController { } - private void openTextFieldDialog(String title, String labelDescription, String value, boolean isLocation) throws IOException { + /** + * opens TextField Dialog to enter the plant area. + * @throws IOException Exception + */ + private void openTextFieldDialog() throws IOException { Dialog dialog = new Dialog<>(); - dialog.setTitle(title); - dialog.setHeaderText(title); + dialog.setTitle("set Text Area"); + dialog.setHeaderText("set Text Area"); dialog.setResizable(false); DialogPane dialogPane = dialog.getDialogPane(); @@ -331,30 +355,28 @@ public class CropDetailController { dialogPane.getButtonTypes().addAll(save, ButtonType.CANCEL); if (appLoader.loadPaneToDialog("TextFieldFormular.fxml", dialogPane) instanceof TextFieldFormularController controller) { - controller.setDescription_label(labelDescription); - controller.setValueTextArea(value); + controller.setDescription_label("Text Area"); + controller.setValueTextArea(area_label.getText()); controller.initSaveButton((Button) dialogPane.lookupButton(save)); dialog.setResultConverter(button -> button.equals(save) ? controller.getValue() : null); dialog.showAndWait() .ifPresent(string -> { - if (isLocation) { - System.out.println(string); - //ToDo method to set location - location_label.setText(string); - } else { - try { - garden.updateCrop(this.crop.withArea(Double.parseDouble(string))); - } catch (IOException e) { - e.printStackTrace(); - } - area_label.setText(string); + try { + garden.updateCrop(this.crop.withArea(Double.parseDouble(string))); + } catch (IOException e) { + e.printStackTrace(); } + area_label.setText(string); }); } } + /** + * Alert to delete Task. + * @param task {@link Task} which is being deleted + */ private void showDeleteTask(Task task) { Alert alert = new Alert(Alert.AlertType.CONFIRMATION); alert.setTitle("Delete " + task.getName()); diff --git a/src/main/java/ch/zhaw/gartenverwaltung/HomeController.java b/src/main/java/ch/zhaw/gartenverwaltung/HomeController.java index 5c9014c..cccaa3a 100644 --- a/src/main/java/ch/zhaw/gartenverwaltung/HomeController.java +++ b/src/main/java/ch/zhaw/gartenverwaltung/HomeController.java @@ -8,6 +8,9 @@ import javafx.scene.image.ImageView; import java.net.URL; import java.util.ResourceBundle; +/** + * Controller class for the Home.fxml file + */ public class HomeController implements Initializable { @FXML @@ -34,6 +37,11 @@ public class HomeController implements Initializable { setImages(imageViewPhilippe, ""); } + /** + * set image to image view + * @param imageView the imageView to update + * @param photoName the file name of the photo + */ private void setImages(ImageView imageView, String photoName) { Image img; if (photoName.equals("")) { diff --git a/src/main/java/ch/zhaw/gartenverwaltung/MainFXMLController.java b/src/main/java/ch/zhaw/gartenverwaltung/MainFXMLController.java index 33a67c5..9877d22 100644 --- a/src/main/java/ch/zhaw/gartenverwaltung/MainFXMLController.java +++ b/src/main/java/ch/zhaw/gartenverwaltung/MainFXMLController.java @@ -19,6 +19,9 @@ import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; +/** + * Controller class for the MainFXML.fxml file + */ public class MainFXMLController { private static final Logger LOG = Logger.getLogger(MainFXMLController.class.getName()); @@ -176,6 +179,10 @@ public class MainFXMLController { tutorial_button.visibleProperty().bind(Settings.getInstance().getShowTutorialProperty()); } + /** + * close Tutorial Window + * @param windowEvent event + */ private void closeWindowHandler(WindowEvent windowEvent) { tutorialModal.close(); } diff --git a/src/main/java/ch/zhaw/gartenverwaltung/MyGardenController.java b/src/main/java/ch/zhaw/gartenverwaltung/MyGardenController.java index 34cf1a7..49fc9a0 100644 --- a/src/main/java/ch/zhaw/gartenverwaltung/MyGardenController.java +++ b/src/main/java/ch/zhaw/gartenverwaltung/MyGardenController.java @@ -27,6 +27,9 @@ import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; +/** + * Controller class for the MyGarden.fxml file + */ public class MyGardenController { private static final Logger LOG = Logger.getLogger(MyGardenController.class.getName()); @Inject diff --git a/src/main/java/ch/zhaw/gartenverwaltung/MyScheduleController.java b/src/main/java/ch/zhaw/gartenverwaltung/MyScheduleController.java index f73feb2..768b3aa 100644 --- a/src/main/java/ch/zhaw/gartenverwaltung/MyScheduleController.java +++ b/src/main/java/ch/zhaw/gartenverwaltung/MyScheduleController.java @@ -12,6 +12,8 @@ import ch.zhaw.gartenverwaltung.types.Task; import javafx.beans.property.ListProperty; import javafx.beans.property.SimpleListProperty; import javafx.collections.FXCollections; +import javafx.event.ActionEvent; +import javafx.event.EventHandler; import javafx.fxml.FXML; import javafx.scene.control.*; import javafx.scene.layout.HBox; @@ -25,6 +27,9 @@ import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; +/** + * Controller class for the MySchedule.fxml file + */ public class MyScheduleController { private static final Logger LOG = Logger.getLogger(MyScheduleController.class.getName()); private final ListProperty> taskListProperty = new SimpleListProperty<>(FXCollections.observableArrayList()); @@ -63,6 +68,9 @@ public class MyScheduleController { } } + /** + * sort scheduler to selected crop + */ private void lookForSelectedListEntries() { scheduledPlants_listview.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> { selectedCrop = newValue; @@ -74,6 +82,9 @@ public class MyScheduleController { }); } + /** + * set cellFactory for the crops. + */ private void setCellFactoryCropListView() { scheduledPlants_listview.setCellFactory(param -> new ListCell<>() { @Override @@ -96,6 +107,9 @@ public class MyScheduleController { }); } + /** + * set CallFactory for the given Tasks + */ private void setCellFactoryTaskListView() { week_listView.setCellFactory(param -> new ListCell<>() { @Override @@ -113,6 +127,10 @@ public class MyScheduleController { }); } + /** + * update task list + * @throws IOException exception + */ private void loadTaskList() throws IOException { List> taskLists; if (selectedCrop != null) { @@ -124,6 +142,12 @@ public class MyScheduleController { taskListProperty.addAll(taskLists); } + /** + * Create a {@link VBox} of the given TaskList. + * @param tasks List of {@link Task}s + * @param dayIndex index of the day + * @return {@link VBox} of the given Task of the day + */ private VBox weekTaskVBox(List tasks, int dayIndex) { VBox vBox = new VBox(10); LocalDate today = LocalDate.now(); @@ -144,14 +168,15 @@ public class MyScheduleController { taskDescription.setMaxSize(600, Double.MAX_VALUE); Pane puffer = new Pane(); HBox.setHgrow(puffer, Priority.ALWAYS); - CheckBox checkBox = new CheckBox("Task completed?"); - checkBox.selectedProperty().addListener((observable, oldValue, newValue) -> { - if (newValue) { - showConfirmation(task, checkBox); + Button button = new Button("Task completed!"); + button.setOnAction(new EventHandler() { + @Override + public void handle(ActionEvent event) { + showConfirmation(task); } }); - HBox.setHgrow(checkBox, Priority.NEVER); - hBoxDescription.getChildren().addAll(taskDescription, puffer, checkBox); + HBox.setHgrow(button, Priority.NEVER); + hBoxDescription.getChildren().addAll(taskDescription, puffer, button); vBox.getChildren().addAll(hBox, hBoxDescription); } return vBox; @@ -161,7 +186,7 @@ public class MyScheduleController { * Alert to confirm that task has been completed. * @param task {@link Task} which is selected */ - private void showConfirmation(Task task, CheckBox checkBox) { + private void showConfirmation(Task task) { Alert alert = new Alert(Alert.AlertType.CONFIRMATION); alert.setTitle("Task Completed?"); alert.setHeaderText("Are you sure you have completed this task?"); @@ -176,8 +201,6 @@ public class MyScheduleController { } catch (IOException e) { e.printStackTrace(); } - } else { - checkBox.setSelected(false); } }); } diff --git a/src/main/java/ch/zhaw/gartenverwaltung/PlantsController.java b/src/main/java/ch/zhaw/gartenverwaltung/PlantsController.java index 2acee0d..cc8e997 100644 --- a/src/main/java/ch/zhaw/gartenverwaltung/PlantsController.java +++ b/src/main/java/ch/zhaw/gartenverwaltung/PlantsController.java @@ -28,6 +28,9 @@ import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; +/** + * Controller class for the Plants.fxml file + */ public class PlantsController { private static final Logger LOG = Logger.getLogger(PlantsController.class.getName()); diff --git a/src/main/java/ch/zhaw/gartenverwaltung/SelectSowDayController.java b/src/main/java/ch/zhaw/gartenverwaltung/SelectSowDayController.java index c6ff944..a26246c 100644 --- a/src/main/java/ch/zhaw/gartenverwaltung/SelectSowDayController.java +++ b/src/main/java/ch/zhaw/gartenverwaltung/SelectSowDayController.java @@ -8,6 +8,10 @@ import javafx.util.Callback; import java.time.LocalDate; +/** + * Controller class for the SelectSowDay.fxml file + * Gets opened with a dialog. + */ public class SelectSowDayController { private Plant selectedPlant; diff --git a/src/main/java/ch/zhaw/gartenverwaltung/Settings.java b/src/main/java/ch/zhaw/gartenverwaltung/Settings.java index 462237c..8433dce 100644 --- a/src/main/java/ch/zhaw/gartenverwaltung/Settings.java +++ b/src/main/java/ch/zhaw/gartenverwaltung/Settings.java @@ -19,6 +19,8 @@ public class Settings { private String mailNotificationSubjectTemplate = "Task %s is due!"; // {0} = Task Name private String mailNotificationTextTemplate = "Dear user\nYour gardentask %s for plant %s is due at %tF. Don't forget to confirm in your application if the task is done.\nTask description:\n%s"; // {0} = Task Name, {1} = plantname, {2} = nextExecution, {3} = Task description + private String location = ""; + static { instance = new Settings(); } @@ -49,6 +51,14 @@ public class Settings { return this.showTutorial.get(); } + public void setLocation(String location) { + this.location = location; + } + + public String getLocation() { + return this.location; + } + public SmtpCredentials getSmtpCredentials() { return smtpCredentials; } diff --git a/src/main/java/ch/zhaw/gartenverwaltung/SettingsController.java b/src/main/java/ch/zhaw/gartenverwaltung/SettingsController.java index 9a8158f..e9301e2 100644 --- a/src/main/java/ch/zhaw/gartenverwaltung/SettingsController.java +++ b/src/main/java/ch/zhaw/gartenverwaltung/SettingsController.java @@ -1,23 +1,49 @@ package ch.zhaw.gartenverwaltung; +import ch.zhaw.gartenverwaltung.bootstrap.AppLoader; +import ch.zhaw.gartenverwaltung.bootstrap.Inject; import ch.zhaw.gartenverwaltung.types.HardinessZone; +import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.Initializable; -import javafx.scene.control.CheckBox; -import javafx.scene.control.ComboBox; +import javafx.scene.control.*; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import java.io.IOException; import java.net.URL; import java.util.ResourceBundle; +/** + * Controller class for the Settings.fxml file + */ public class SettingsController implements Initializable { Settings settings = Settings.getInstance(); + @Inject + AppLoader appLoader; @FXML private ComboBox selectHardinessZone_comboBox; @FXML private CheckBox showTutorial_checkBox; + @FXML + private Button location_button; + + @FXML + private Label location_label; + + /** + * open dialog to set location + * @param event event + * @throws IOException exception + */ + @FXML + void setLocation(ActionEvent event) throws IOException { + openTextFieldDialog(); + } + /** * save selected values to {@link Settings} */ @@ -36,5 +62,50 @@ public class SettingsController implements Initializable { showTutorial_checkBox.setSelected(settings.getShowTutorial()); selectHardinessZone_comboBox.getItems().addAll(HardinessZone.values()); selectHardinessZone_comboBox.setValue(settings.getCurrentHardinessZone()); + setIconToButton(location_button, "locationIcon.png"); + location_label.setText(settings.getLocation()); + } + + /** + * adds icon to button + * @param button the button which get the icon + * @param iconFileName file name of icon + */ + private void setIconToButton(Button button, String iconFileName) { + Image img = new Image(String.valueOf(getClass().getResource("icons/" + iconFileName))); + ImageView imageView = new ImageView(img); + imageView.setFitHeight(20); + imageView.setPreserveRatio(true); + button.setGraphic(imageView); + } + + /** + * opens Dialog to set exception + * @throws IOException exception + */ + private void openTextFieldDialog() throws IOException { + Dialog dialog = new Dialog<>(); + dialog.setTitle("Set Location of your Garden"); + dialog.setHeaderText("set Location of your Garden!"); + dialog.setResizable(false); + + DialogPane dialogPane = dialog.getDialogPane(); + + ButtonType save = new ButtonType("Save", ButtonBar.ButtonData.OK_DONE); + dialogPane.getButtonTypes().addAll(save, ButtonType.CANCEL); + + if (appLoader.loadPaneToDialog("TextFieldFormular.fxml", dialogPane) instanceof TextFieldFormularController controller) { + controller.setDescription_label("Set"); + controller.setValueTextArea(settings.getLocation()); + controller.initSaveButton((Button) dialogPane.lookupButton(save)); + + dialog.setResultConverter(button -> button.equals(save) ? controller.getValue() : null); + + dialog.showAndWait() + .ifPresent(string -> { + settings.setLocation(string); + location_label.setText(settings.getLocation()); + }); + } } } diff --git a/src/main/java/ch/zhaw/gartenverwaltung/TaskFormularController.java b/src/main/java/ch/zhaw/gartenverwaltung/TaskFormularController.java index b4bb93b..2344995 100644 --- a/src/main/java/ch/zhaw/gartenverwaltung/TaskFormularController.java +++ b/src/main/java/ch/zhaw/gartenverwaltung/TaskFormularController.java @@ -19,6 +19,9 @@ import java.net.URL; import java.time.LocalDate; import java.util.ResourceBundle; +/** + * Controller class for the TaskFormular.fxml file + */ public class TaskFormularController implements Initializable { private Crop crop; private Plant plant; @@ -49,6 +52,11 @@ public class TaskFormularController implements Initializable { @AfterInject @SuppressWarnings("unused") + /** + * returns the edited or added {@link Task} + * @param crop {@link Crop} which was selected + * @return {@link Task} which was edited or added + */ public Task returnResult(Crop crop) { int interval = 0; if (!(interval_field.getText().isEmpty() || interval_field.getText().equals(""))) { @@ -61,11 +69,21 @@ public class TaskFormularController implements Initializable { return task; } + /** + * set selected crop and get the plant from the crop. + * @param crop {@link Crop} which was selected + * @throws HardinessZoneNotSetException exception + * @throws IOException exception + */ public void setCorp(Crop crop) throws HardinessZoneNotSetException, IOException { this.crop = crop; this.plant = plantList.getPlantById(Settings.getInstance().getCurrentHardinessZone(), crop.getPlantId()).get(); } + /** + * set the values of task into the labels and datePicker. + * @param task {@link Task} which was given + */ public void setTaskValue(Task task) { this.task = task; taskName_field.setText(task.getName()); @@ -79,6 +97,10 @@ public class TaskFormularController implements Initializable { } } + /** + * dayCellFactory of the start date + * @return {@link Callback} of the dayCellFactory + */ private Callback getDayCellFactoryStartDate() { return (datePicker) -> new DateCell() { @@ -103,6 +125,10 @@ public class TaskFormularController implements Initializable { }; } + /** + * dayCellFactory of the end date + * @return {@link Callback} of the dayCellFactory + */ private Callback getDayCellFactoryEndDate() { return (datePicker) -> new DateCell() { @@ -127,6 +153,10 @@ public class TaskFormularController implements Initializable { }; } + /** + * disable button until condition meet. + * @param button {@link Button} which was given + */ public void initSaveButton(Button button) { interval_field.textProperty().addListener((observable, oldValue, newValue) -> { if (!newValue.matches("\\d*")) { @@ -139,6 +169,16 @@ public class TaskFormularController implements Initializable { .or(description_area.textProperty().isEmpty())); } + /** + * initialize dayCellFactories + * @param location + * The location used to resolve relative paths for the root object, or + * {@code null} if the location is not known. + * + * @param resources + * The resources used to localize the root object, or {@code null} if + * the root object was not localized. + */ @Override public void initialize(URL location, ResourceBundle resources) { start_datePicker.setDayCellFactory(getDayCellFactoryStartDate()); diff --git a/src/main/java/ch/zhaw/gartenverwaltung/TextFieldFormularController.java b/src/main/java/ch/zhaw/gartenverwaltung/TextFieldFormularController.java index 97742d9..f045ae5 100644 --- a/src/main/java/ch/zhaw/gartenverwaltung/TextFieldFormularController.java +++ b/src/main/java/ch/zhaw/gartenverwaltung/TextFieldFormularController.java @@ -5,6 +5,9 @@ import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TextField; +/** + * Controller class for the TexFieldFormular.fxml file + */ public class TextFieldFormularController { @FXML @@ -14,18 +17,34 @@ public class TextFieldFormularController { private TextField text_area; + /** + * set description label + * @param string string of the description + */ public void setDescription_label(String string) { description_label.setText(string); } + /** + * set text area value + * @param string string of text area value + */ public void setValueTextArea(String string) { text_area.setText(string); } + /** + * return value of text area + * @return string of the tex area + */ public String getValue() { return text_area.getText(); } + /** + * Disable Button until condition meet + * @param button {@link Button} which is gets dissabled + */ public void initSaveButton(Button button) { text_area.textProperty().addListener((observable, oldValue, newValue) -> { if (newValue.matches("\\d*\\.?\\d*")) { diff --git a/src/main/java/ch/zhaw/gartenverwaltung/TutorialController.java b/src/main/java/ch/zhaw/gartenverwaltung/TutorialController.java index a1de10b..eb4ad5d 100644 --- a/src/main/java/ch/zhaw/gartenverwaltung/TutorialController.java +++ b/src/main/java/ch/zhaw/gartenverwaltung/TutorialController.java @@ -8,6 +8,9 @@ import javafx.scene.image.ImageView; import javafx.scene.layout.StackPane; import javafx.stage.Stage; +/** + * Controller class for the Tutorial.fxml file + */ public class TutorialController { @FXML @@ -44,16 +47,25 @@ public class TutorialController { setButtonAbilities(); } + /** + * disable next or close button according to the location of button + */ private void setButtonAbilities() { previousPageButton.setDisable(page <= 0); nextPageButton.setDisable(page >= tourPages.getChildren().size() - 1); } + /** + * switch to next view + */ private void switchViews() { tourPages.getChildren().forEach(node -> node.setOpacity(0)); tourPages.getChildren().get(page).setOpacity(1); } + /** + * close Tutorial + */ public void closeTutorial() { Stage root = (Stage) tourPages.getScene().getWindow(); root.close(); diff --git a/src/main/resources/ch/zhaw/gartenverwaltung/CropDetail.fxml b/src/main/resources/ch/zhaw/gartenverwaltung/CropDetail.fxml index 1ee27fb..86303a7 100644 --- a/src/main/resources/ch/zhaw/gartenverwaltung/CropDetail.fxml +++ b/src/main/resources/ch/zhaw/gartenverwaltung/CropDetail.fxml @@ -15,12 +15,9 @@ - + - - - - + - + + + diff --git a/src/main/resources/ch/zhaw/gartenverwaltung/MySchedule.fxml b/src/main/resources/ch/zhaw/gartenverwaltung/MySchedule.fxml index d09db93..1e31955 100644 --- a/src/main/resources/ch/zhaw/gartenverwaltung/MySchedule.fxml +++ b/src/main/resources/ch/zhaw/gartenverwaltung/MySchedule.fxml @@ -5,46 +5,56 @@ - - - + - - - - - + + - - - - + + + + - + - - - - - - + - + - + + + + diff --git a/src/main/resources/ch/zhaw/gartenverwaltung/Plants.fxml b/src/main/resources/ch/zhaw/gartenverwaltung/Plants.fxml index 39303a0..24c5d4b 100644 --- a/src/main/resources/ch/zhaw/gartenverwaltung/Plants.fxml +++ b/src/main/resources/ch/zhaw/gartenverwaltung/Plants.fxml @@ -4,91 +4,109 @@ - + - + - - - + + + + - + - - - + - - + + + + + + + + + + + + + + + +