Merge pull request #76 from schrom01/feature_guiOverhaul_M3
changesFXMLFile_and_JavaDocControllerFiles
This commit is contained in:
commit
7c015d78f4
|
@ -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<Task> 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<ActionEvent> 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<ActionEvent> 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<Task> 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<String> 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);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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());
|
||||
|
|
|
@ -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("")) {
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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<List<Task>> 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<List<Task>> 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<Task> 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<ActionEvent>() {
|
||||
@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);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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<HardinessZone> 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<String> 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());
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<DatePicker, DateCell> 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<DatePicker, DateCell> 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());
|
||||
|
|
|
@ -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*")) {
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -15,12 +15,9 @@
|
|||
|
||||
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="785.0" prefWidth="899.0" xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ch.zhaw.gartenverwaltung.CropDetailController">
|
||||
<children>
|
||||
<ScrollPane fitToWidth="true" prefHeight="759.0" prefWidth="664.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<ScrollPane fitToHeight="true" fitToWidth="true" prefHeight="759.0" prefWidth="664.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<content>
|
||||
<VBox maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="781.0" prefWidth="897.0">
|
||||
<padding>
|
||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||
</padding>
|
||||
<VBox fx:id="cropDetailVBox" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="781.0" prefWidth="897.0" spacing="5.0">
|
||||
<children>
|
||||
<Button mnemonicParsing="false" onAction="#goBack" prefHeight="25.0" prefWidth="91.0" text="Go Back">
|
||||
<VBox.margin>
|
||||
|
@ -32,18 +29,18 @@
|
|||
<Insets bottom="10.0" />
|
||||
</VBox.margin>
|
||||
</Label>
|
||||
<HBox prefHeight="265.0" prefWidth="879.0">
|
||||
<HBox maxHeight="1.7976931348623157E308" prefHeight="268.0" prefWidth="855.0" spacing="10.0" VBox.vgrow="NEVER">
|
||||
<children>
|
||||
<GridPane maxWidth="1.7976931348623157E308" prefHeight="296.0" prefWidth="577.0" HBox.hgrow="ALWAYS">
|
||||
<GridPane maxWidth="1.7976931348623157E308" prefHeight="231.0" prefWidth="555.0" HBox.hgrow="ALWAYS">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints halignment="LEFT" hgrow="SOMETIMES" maxWidth="284.0" minWidth="10.0" prefWidth="97.33334350585938" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="488.99999237060547" minWidth="10.0" prefWidth="481.9999898274739" />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints maxHeight="149.66665903727215" minHeight="10.0" prefHeight="149.66665903727215" valignment="TOP" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="187.9999647140503" minHeight="10.0" prefHeight="51.00000762939453" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="105.66662597656247" minHeight="10.0" prefHeight="54.0" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="105.66662597656247" minHeight="10.0" prefHeight="46.66666666666666" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="149.66665903727215" minHeight="10.0" prefHeight="126.33328501383463" valignment="TOP" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="187.9999647140503" minHeight="10.0" prefHeight="45.00002034505208" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="105.66662597656247" minHeight="10.0" prefHeight="46.33331298828125" vgrow="SOMETIMES" />
|
||||
<RowConstraints maxHeight="105.66662597656247" minHeight="10.0" prefHeight="45.66668701171875" vgrow="SOMETIMES" />
|
||||
</rowConstraints>
|
||||
<children>
|
||||
<Label prefHeight="17.0" prefWidth="65.0" text="Description:">
|
||||
|
@ -76,31 +73,31 @@
|
|||
</Label>
|
||||
</children>
|
||||
</GridPane>
|
||||
<ImageView fx:id="imageView" fitHeight="300.0" fitWidth="300.0" pickOnBounds="true" preserveRatio="true" HBox.hgrow="NEVER" />
|
||||
<ImageView fx:id="imageView" fitHeight="250.0" fitWidth="250.0" pickOnBounds="true" preserveRatio="true" HBox.hgrow="NEVER" />
|
||||
</children>
|
||||
</HBox>
|
||||
<Label text="Tasks:">
|
||||
<VBox.margin>
|
||||
<Insets bottom="10.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
</Label>
|
||||
<ListView fx:id="taskList_listView" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="200.0" prefWidth="877.0" VBox.vgrow="ALWAYS">
|
||||
<ListView fx:id="taskList_listView" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" prefHeight="100.0" prefWidth="869.0" VBox.vgrow="ALWAYS">
|
||||
<VBox.margin>
|
||||
<Insets bottom="10.0" />
|
||||
</VBox.margin>
|
||||
</ListView>
|
||||
<Button fx:id="addTask_button" mnemonicParsing="false" onAction="#addTask" prefHeight="25.0" prefWidth="45.0">
|
||||
<Button fx:id="addTask_button" mnemonicParsing="false" onAction="#addTask" prefHeight="25.0" prefWidth="45.0" VBox.vgrow="NEVER">
|
||||
<VBox.margin>
|
||||
<Insets bottom="10.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
</Button>
|
||||
<Label text="Pests:" />
|
||||
<ListView fx:id="pests_listView" maxHeight="1.7976931348623157E308" prefHeight="200.0" prefWidth="200.0" VBox.vgrow="ALWAYS">
|
||||
<Label text="Pests:" VBox.vgrow="NEVER" />
|
||||
<ListView fx:id="pests_listView" maxHeight="1.7976931348623157E308" minHeight="-Infinity" prefHeight="100.0" prefWidth="855.0" VBox.vgrow="SOMETIMES">
|
||||
<VBox.margin>
|
||||
<Insets bottom="10.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
</ListView>
|
||||
<HBox alignment="CENTER_LEFT" prefHeight="100.0" prefWidth="200.0" VBox.vgrow="NEVER">
|
||||
<HBox alignment="CENTER_LEFT" prefHeight="27.0" prefWidth="869.0" VBox.vgrow="NEVER">
|
||||
<children>
|
||||
<Label text="Area:">
|
||||
<HBox.margin>
|
||||
|
@ -115,27 +112,15 @@
|
|||
<Button fx:id="area_button" mnemonicParsing="false" onAction="#setArea" prefHeight="25.0" prefWidth="116.0" text="Set Area" />
|
||||
</children>
|
||||
<VBox.margin>
|
||||
<Insets bottom="10.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
</HBox>
|
||||
<HBox alignment="CENTER_LEFT" layoutX="20.0" layoutY="719.0" prefHeight="100.0" prefWidth="200.0" VBox.vgrow="NEVER">
|
||||
<children>
|
||||
<Label text="Location:">
|
||||
<HBox.margin>
|
||||
<Insets right="40.0" />
|
||||
</HBox.margin>
|
||||
</Label>
|
||||
<Label fx:id="location_label" minHeight="-Infinity" prefWidth="50.0" text="Label">
|
||||
<HBox.margin>
|
||||
<Insets right="10.0" />
|
||||
</HBox.margin>
|
||||
</Label>
|
||||
<Button fx:id="location_button" mnemonicParsing="false" onAction="#setLocation" prefHeight="25.0" prefWidth="115.0" text="Set Location" />
|
||||
</children>
|
||||
</HBox>
|
||||
</children>
|
||||
</VBox>
|
||||
</content>
|
||||
<padding>
|
||||
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
|
||||
</padding>
|
||||
</ScrollPane>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
|
|
|
@ -6,26 +6,24 @@
|
|||
<?import javafx.scene.image.ImageView?>
|
||||
<?import javafx.scene.layout.AnchorPane?>
|
||||
<?import javafx.scene.layout.HBox?>
|
||||
<?import javafx.scene.layout.Pane?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="1091.0" prefWidth="1060.0" xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ch.zhaw.gartenverwaltung.HomeController">
|
||||
<children>
|
||||
<ScrollPane fitToWidth="true" prefHeight="1157.0" prefWidth="1060.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<padding>
|
||||
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
|
||||
</padding>
|
||||
<content>
|
||||
<VBox prefHeight="1091.0" prefWidth="1058.0">
|
||||
<children>
|
||||
<Pane prefHeight="1085.0" prefWidth="1018.0">
|
||||
<children>
|
||||
<VBox prefHeight="1047.0" prefWidth="1019.0">
|
||||
<VBox fx:id="homeVBox" prefHeight="1047.0" prefWidth="1019.0" spacing="10.0">
|
||||
<children>
|
||||
<Label text="Garden Management">
|
||||
<font>
|
||||
<Font size="34.0" />
|
||||
</font>
|
||||
<VBox.margin>
|
||||
<Insets bottom="30.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
</Label>
|
||||
<Label alignment="TOP_LEFT" prefHeight="22.0" prefWidth="1039.0" text="This Application was created to help the user manage his or her garden. For this the Application has many functionalities:" wrapText="true">
|
||||
|
@ -33,9 +31,11 @@
|
|||
<Font size="14.0" />
|
||||
</font>
|
||||
<VBox.margin>
|
||||
<Insets bottom="10.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
</Label>
|
||||
<VBox prefHeight="200.0" prefWidth="100.0" spacing="5.0" style="-fx-background-color: white; -fx-border-color: black;">
|
||||
<children>
|
||||
<Label text="Base Functionalities:">
|
||||
<font>
|
||||
<Font name="System Bold" size="14.0" />
|
||||
|
@ -46,86 +46,107 @@
|
|||
<Font size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label layoutX="10.0" layoutY="62.0" text="- The user can filter the plants according to seasons, hardiness zone and search query">
|
||||
<Label text="- The user can filter the plants according to seasons, hardiness zone and search query">
|
||||
<font>
|
||||
<Font size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label layoutX="10.0" layoutY="62.0" text="- The user can select the harverst or sow date. ">
|
||||
<Label text="- The user can select the harverst or sow date. ">
|
||||
<font>
|
||||
<Font size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label layoutX="10.0" layoutY="102.0" text="- The user can get a detailed information of the plant he wants to harvest.">
|
||||
<Label text="- The user can get a detailed information of the plant he wants to harvest.">
|
||||
<font>
|
||||
<Font size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label layoutX="10.0" layoutY="122.0" text="- The user can get view the task list of the given plant.">
|
||||
<Label text="- The user can get view the task list of the given plant.">
|
||||
<font>
|
||||
<Font size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label layoutX="10.0" layoutY="142.0" text="- The user can get the tasks of the next seven days in the scheduler.">
|
||||
<Label text="- The user can get the tasks of the next seven days in the scheduler.">
|
||||
<font>
|
||||
<Font size="14.0" />
|
||||
</font>
|
||||
<VBox.margin>
|
||||
<Insets bottom="10.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
</Label>
|
||||
<Label layoutX="10.0" layoutY="42.0" text="Advanced Functionalities:">
|
||||
</children>
|
||||
<padding>
|
||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||
</padding>
|
||||
</VBox>
|
||||
<VBox prefHeight="200.0" prefWidth="100.0" spacing="5.0" style="-fx-background-color: white; -fx-border-color: black;">
|
||||
<children>
|
||||
<Label text="Advanced Functionalities:">
|
||||
<font>
|
||||
<Font name="System Bold" size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label layoutX="10.0" layoutY="62.0" text="- The user can edit the task list and add custom tasks.">
|
||||
<Label text="- The user can edit the task list and add custom tasks.">
|
||||
<font>
|
||||
<Font size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label layoutX="10.0" layoutY="212.0" text="- The user can set the area (sqare meter) for the plants.">
|
||||
<Label text="- The user can set the area (sqare meter) for the plants.">
|
||||
<font>
|
||||
<Font size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label layoutX="10.0" layoutY="232.0" text="- The user can set the location (PLZ) for the plants.">
|
||||
<Label text="- The user can set the location (PLZ) for the plants.">
|
||||
<font>
|
||||
<Font size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label layoutX="10.0" layoutY="162.0" text="- The user can set the pesticide which will be used, which will create additonal tasks.">
|
||||
<Label text="- The user can set the pesticide which will be used, which will create additonal tasks.">
|
||||
<font>
|
||||
<Font size="14.0" />
|
||||
</font>
|
||||
<VBox.margin>
|
||||
<Insets bottom="10.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
</Label>
|
||||
<Label layoutX="10.0" layoutY="192.0" text="Weather Forcast:">
|
||||
</children>
|
||||
<padding>
|
||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||
</padding>
|
||||
</VBox>
|
||||
<VBox prefHeight="200.0" prefWidth="100.0" spacing="5.0" style="-fx-background-color: white; -fx-border-color: black;">
|
||||
<children>
|
||||
<Label text="Weather Forcast:">
|
||||
<font>
|
||||
<Font name="System Bold" size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label layoutX="10.0" layoutY="212.0" text="- According to the location the weather forcast will crate or delete tasks.">
|
||||
<Label text="- According to the location the weather forcast will crate or delete tasks.">
|
||||
<font>
|
||||
<Font size="14.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label layoutX="10.0" layoutY="272.0" text="- The user receives notifications that aditional tasks werde created or some tasks were deleted.">
|
||||
<Label text="- The user receives notifications that aditional tasks werde created or some tasks were deleted.">
|
||||
<font>
|
||||
<Font size="14.0" />
|
||||
</font>
|
||||
<VBox.margin>
|
||||
<Insets bottom="10.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
</Label>
|
||||
</children>
|
||||
<padding>
|
||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||
</padding>
|
||||
</VBox>
|
||||
<VBox prefHeight="200.0" prefWidth="100.0" spacing="15.0" style="-fx-background-color: white; -fx-border-color: black;">
|
||||
<children>
|
||||
<Label text="Created by:">
|
||||
<font>
|
||||
<Font name="System Bold" size="14.0" />
|
||||
</font>
|
||||
<VBox.margin>
|
||||
<Insets bottom="10.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
</Label>
|
||||
<HBox alignment="CENTER_LEFT" prefHeight="100.0" prefWidth="200.0">
|
||||
|
@ -135,11 +156,16 @@
|
|||
<Insets right="30.0" />
|
||||
</HBox.margin>
|
||||
</ImageView>
|
||||
<Label text="Elias Csomor" />
|
||||
<Label minWidth="150.0" text="Elias Csomor" />
|
||||
<Label minWidth="200.0" text="csomoeli@students.zhaw.ch" />
|
||||
<Label text="Assistent Project Lead/Developer" />
|
||||
</children>
|
||||
<VBox.margin>
|
||||
<Insets bottom="15.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
<padding>
|
||||
<Insets left="50.0" />
|
||||
</padding>
|
||||
</HBox>
|
||||
<HBox alignment="CENTER_LEFT" prefHeight="100.0" prefWidth="200.0">
|
||||
<children>
|
||||
|
@ -148,11 +174,16 @@
|
|||
<Insets right="30.0" />
|
||||
</HBox.margin>
|
||||
</ImageView>
|
||||
<Label text="Philippe Giavarini" />
|
||||
<Label minWidth="150.0" text="Philippe Giavarini" />
|
||||
<Label minWidth="200.0" text="giavaphi@students.zhaw.ch" />
|
||||
<Label text="Project Lead/Developer" />
|
||||
</children>
|
||||
<VBox.margin>
|
||||
<Insets bottom="15.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
<padding>
|
||||
<Insets left="50.0" />
|
||||
</padding>
|
||||
</HBox>
|
||||
<HBox alignment="CENTER_LEFT" prefHeight="100.0" prefWidth="200.0">
|
||||
<children>
|
||||
|
@ -161,11 +192,16 @@
|
|||
<Insets right="30.0" />
|
||||
</HBox.margin>
|
||||
</ImageView>
|
||||
<Label text="David Guler" />
|
||||
<Label minWidth="150.0" text="David Guler" />
|
||||
<Label minWidth="200.0" text="gulerdav@students.zhaw.ch" />
|
||||
<Label text="Developer" />
|
||||
</children>
|
||||
<VBox.margin>
|
||||
<Insets bottom="15.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
<padding>
|
||||
<Insets left="50.0" />
|
||||
</padding>
|
||||
</HBox>
|
||||
<HBox alignment="CENTER_LEFT" prefHeight="100.0" prefWidth="200.0">
|
||||
<children>
|
||||
|
@ -174,11 +210,16 @@
|
|||
<Insets right="30.0" />
|
||||
</HBox.margin>
|
||||
</ImageView>
|
||||
<Label text="Gian-Andrea Hutter" />
|
||||
<Label minWidth="150.0" text="Gian-Andrea Hutter" />
|
||||
<Label minWidth="200.0" text="huttergia@students.zhaw.ch" />
|
||||
<Label text="Developer" />
|
||||
</children>
|
||||
<VBox.margin>
|
||||
<Insets bottom="15.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
<padding>
|
||||
<Insets left="50.0" />
|
||||
</padding>
|
||||
</HBox>
|
||||
<HBox alignment="CENTER_LEFT" prefHeight="100.0" prefWidth="200.0">
|
||||
<children>
|
||||
|
@ -187,24 +228,24 @@
|
|||
<Insets right="30.0" />
|
||||
</HBox.margin>
|
||||
</ImageView>
|
||||
<Label text="Roman Schenk" />
|
||||
<Label minWidth="150.0" text="Roman Schenk" />
|
||||
<Label minWidth="200.0" text="schrom01@students.zhaw.ch" />
|
||||
<Label text="Developer" />
|
||||
</children>
|
||||
<VBox.margin>
|
||||
<Insets bottom="15.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
<padding>
|
||||
<Insets left="50.0" />
|
||||
</padding>
|
||||
</HBox>
|
||||
</children>
|
||||
</VBox>
|
||||
</children>
|
||||
<VBox.margin>
|
||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||
</VBox.margin>
|
||||
</Pane>
|
||||
</children>
|
||||
<padding>
|
||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||
</padding>
|
||||
</VBox>
|
||||
</children>
|
||||
</VBox>
|
||||
</content>
|
||||
</ScrollPane>
|
||||
</children>
|
||||
|
|
|
@ -10,26 +10,26 @@
|
|||
|
||||
<AnchorPane fx:id="myGardenRoot" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="655.0" prefWidth="1175.0" xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ch.zhaw.gartenverwaltung.MyGardenController">
|
||||
<children>
|
||||
<VBox layoutY="49.0" prefHeight="655.0" prefWidth="1175.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<VBox layoutY="49.0" prefHeight="655.0" prefWidth="1175.0" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<children>
|
||||
<Label text="My Garden">
|
||||
<font>
|
||||
<Font name="System Bold" size="28.0" />
|
||||
</font>
|
||||
<VBox.margin>
|
||||
<Insets bottom="10.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
</Label>
|
||||
<ListView fx:id="myGarden_listView" maxHeight="1.7976931348623157E308" prefHeight="200.0" prefWidth="200.0" VBox.vgrow="ALWAYS" />
|
||||
<Button fx:id="addPlant_button" mnemonicParsing="false" onAction="#addPlant" prefHeight="45.0" prefWidth="155.0" text="Add new Plant">
|
||||
<VBox.margin>
|
||||
<Insets top="10.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
</Button>
|
||||
</children>
|
||||
<padding>
|
||||
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
|
||||
</padding>
|
||||
</VBox>
|
||||
</children>
|
||||
<padding>
|
||||
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
|
||||
</padding>
|
||||
</AnchorPane>
|
||||
|
|
|
@ -5,46 +5,56 @@
|
|||
<?import javafx.scene.control.ListView?>
|
||||
<?import javafx.scene.layout.AnchorPane?>
|
||||
<?import javafx.scene.layout.HBox?>
|
||||
<?import javafx.scene.layout.Pane?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="572.0" prefWidth="867.0" xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ch.zhaw.gartenverwaltung.MyScheduleController">
|
||||
<children>
|
||||
<Label layoutX="14.0" layoutY="14.0" text="MySchedule">
|
||||
<VBox prefHeight="200.0" prefWidth="100.0" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<children>
|
||||
<Label text="MySchedule" VBox.vgrow="NEVER">
|
||||
<font>
|
||||
<Font size="24.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<HBox layoutY="31.0" prefHeight="541.0" prefWidth="867.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="50.0">
|
||||
<HBox maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="541.0" prefWidth="867.0" spacing="10.0" VBox.vgrow="ALWAYS">
|
||||
<children>
|
||||
<ListView fx:id="scheduledPlants_listview" maxWidth="1.7976931348623157E308" prefHeight="522.0" prefWidth="271.0" HBox.hgrow="NEVER">
|
||||
<HBox.margin>
|
||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||
</HBox.margin></ListView>
|
||||
<VBox maxWidth="1.7976931348623157E308" prefHeight="537.0" prefWidth="650.0" HBox.hgrow="ALWAYS">
|
||||
<Insets />
|
||||
</HBox.margin>
|
||||
</ListView>
|
||||
<VBox maxWidth="1.7976931348623157E308" prefHeight="537.0" prefWidth="650.0" spacing="10.0" HBox.hgrow="ALWAYS">
|
||||
<children>
|
||||
<ListView fx:id="week_listView" maxWidth="1.7976931348623157E308" prefHeight="200.0" prefWidth="200.0" VBox.vgrow="ALWAYS">
|
||||
<VBox.margin>
|
||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
</ListView>
|
||||
<Pane prefHeight="131.0" prefWidth="593.0" VBox.vgrow="NEVER">
|
||||
<VBox prefHeight="131.0" prefWidth="603.0" spacing="5.0" style="-fx-background-color: white; -fx-border-color: black;" VBox.vgrow="NEVER">
|
||||
<children>
|
||||
<Label alignment="TOP_LEFT" layoutX="14.0" layoutY="14.0" prefHeight="17.0" prefWidth="550.0" text="Importants Information:" wrapText="true">
|
||||
<Label alignment="TOP_LEFT" maxWidth="1.7976931348623157E308" prefHeight="17.0" prefWidth="558.0" text="Importants Information:" wrapText="true" VBox.vgrow="NEVER">
|
||||
<font>
|
||||
<Font name="System Bold" size="12.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<Label fx:id="information_label" alignment="TOP_LEFT" layoutX="14.0" layoutY="31.0" maxWidth="1.7976931348623157E308" prefHeight="82.0" prefWidth="550.0" text="Label" wrapText="true" />
|
||||
<Label fx:id="information_label" alignment="TOP_LEFT" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="73.0" prefWidth="550.0" text="Label" wrapText="true" VBox.vgrow="ALWAYS" />
|
||||
</children>
|
||||
<VBox.margin>
|
||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
</Pane>
|
||||
<padding>
|
||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||
</padding>
|
||||
</VBox>
|
||||
</children>
|
||||
</VBox>
|
||||
</children>
|
||||
</HBox>
|
||||
</children>
|
||||
</VBox>
|
||||
</children>
|
||||
<padding>
|
||||
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
|
||||
</padding>
|
||||
</AnchorPane>
|
||||
|
|
|
@ -4,59 +4,72 @@
|
|||
<?import javafx.scene.control.Button?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.control.ListView?>
|
||||
<?import javafx.scene.control.SplitPane?>
|
||||
<?import javafx.scene.control.TextField?>
|
||||
<?import javafx.scene.control.TitledPane?>
|
||||
<?import javafx.scene.image.ImageView?>
|
||||
<?import javafx.scene.layout.AnchorPane?>
|
||||
<?import javafx.scene.layout.HBox?>
|
||||
<?import javafx.scene.layout.Pane?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
<AnchorPane maxHeight="-Infinity" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="1000.0" prefHeight="853.0"
|
||||
prefWidth="1219.0" xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1"
|
||||
fx:controller="ch.zhaw.gartenverwaltung.PlantsController"
|
||||
fx:id="plantsRoot">
|
||||
<AnchorPane fx:id="plantsRoot" maxHeight="-Infinity" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="1000.0" prefHeight="853.0" prefWidth="1219.0" xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ch.zhaw.gartenverwaltung.PlantsController">
|
||||
<children>
|
||||
<SplitPane dividerPositions="0.7377363661277062" layoutX="539.0" layoutY="266.0" prefHeight="853.0" prefWidth="1219.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<items>
|
||||
<AnchorPane maxWidth="1.7976931348623157E308" minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0">
|
||||
<VBox prefHeight="200.0" prefWidth="100.0" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<children>
|
||||
<VBox maxWidth="1.7976931348623157E308" prefHeight="850.6666666666666" prefWidth="894.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<children>
|
||||
<Label prefHeight="45.0" prefWidth="903.0" text="Plants">
|
||||
<Label prefHeight="45.0" prefWidth="903.0" text="Plants" VBox.vgrow="NEVER">
|
||||
<font>
|
||||
<Font name="System Bold" size="30.0" />
|
||||
</font>
|
||||
</Label>
|
||||
<TextField fx:id="search_plants" promptText="Search for Plant Name" />
|
||||
<HBox alignment="CENTER_LEFT" prefHeight="480.0" prefWidth="881.0" VBox.vgrow="ALWAYS">
|
||||
<HBox maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="100.0" prefWidth="200.0" spacing="10.0" VBox.vgrow="ALWAYS">
|
||||
<children>
|
||||
<AnchorPane maxWidth="1.7976931348623157E308" minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0" HBox.hgrow="ALWAYS">
|
||||
<children>
|
||||
<VBox maxWidth="1.7976931348623157E308" prefHeight="850.6666666666666" prefWidth="894.0" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<children>
|
||||
<TextField fx:id="search_plants" promptText="Search for Plant Name" VBox.vgrow="NEVER" />
|
||||
<HBox alignment="CENTER_LEFT" minHeight="300.0" prefHeight="480.0" prefWidth="881.0" spacing="10.0" VBox.vgrow="ALWAYS">
|
||||
<children>
|
||||
<ListView fx:id="list_plants" maxWidth="1.7976931348623157E308" prefHeight="497.0" prefWidth="400.0" HBox.hgrow="ALWAYS" />
|
||||
<ImageView fx:id="img_plant" fitWidth="300" pickOnBounds="true" preserveRatio="true" HBox.hgrow="NEVER" />
|
||||
<Pane maxHeight="1.7976931348623157E308" maxWidth="300.0" minWidth="300.0" prefHeight="200.0" prefWidth="200.0" style="-fx-background-color: white; -fx-border-color: black;" HBox.hgrow="NEVER">
|
||||
<children>
|
||||
<ImageView fx:id="img_plant" fitWidth="300" pickOnBounds="true" preserveRatio="true" />
|
||||
</children>
|
||||
</Pane>
|
||||
</children>
|
||||
</HBox>
|
||||
<Label prefHeight="33.0" prefWidth="919.0" text="Plant Information:">
|
||||
<VBox maxHeight="1.7976931348623157E308" prefHeight="237.0" prefWidth="879.0" style="-fx-background-color: white; -fx-border-color: black;" VBox.vgrow="ALWAYS">
|
||||
<children>
|
||||
<Label maxHeight="1.7976931348623157E308" prefHeight="33.0" prefWidth="919.0" text="Plant Information:" VBox.vgrow="NEVER">
|
||||
<font>
|
||||
<Font name="System Bold" size="12.0" />
|
||||
</font>
|
||||
<padding>
|
||||
<Insets top="15.0" />
|
||||
</padding>
|
||||
</Label>
|
||||
<Label fx:id="description_plant" alignment="TOP_LEFT" maxWidth="1.7976931348623157E308" prefHeight="194.0" prefWidth="893.0" text="Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet." textAlignment="JUSTIFY" wrapText="true">
|
||||
<Label fx:id="description_plant" alignment="TOP_LEFT" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="96.0" prefWidth="879.0" text="Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet." textAlignment="JUSTIFY" wrapText="true" VBox.vgrow="ALWAYS">
|
||||
<padding>
|
||||
<Insets bottom="10.0" top="10.0" />
|
||||
</padding>
|
||||
</Label>
|
||||
<Button fx:id="selectSowDay_button" alignment="CENTER" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#selectSowDate" prefHeight="38.0" prefWidth="917.0" text="Select Harvest/Sow Day" />
|
||||
<Button fx:id="selectSowDay_button" alignment="CENTER" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#selectSowDate" prefHeight="38.0" prefWidth="917.0" text="Select Harvest/Sow Day" VBox.vgrow="NEVER" />
|
||||
</children>
|
||||
<VBox.margin>
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
<padding>
|
||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||
</padding>
|
||||
</VBox>
|
||||
</children>
|
||||
</VBox>
|
||||
</children>
|
||||
<HBox.margin>
|
||||
<Insets />
|
||||
</HBox.margin>
|
||||
</AnchorPane>
|
||||
<AnchorPane maxWidth="300.0" minHeight="0.0" minWidth="300.0" prefHeight="160.0" prefWidth="100.0">
|
||||
<AnchorPane maxWidth="300.0" minHeight="0.0" minWidth="300.0" prefHeight="160.0" prefWidth="100.0" style="-fx-border-color: black; -fx-background-color: white;">
|
||||
<children>
|
||||
<VBox layoutX="38.0" layoutY="100.0" prefHeight="850.6666666666666" prefWidth="316.6666666666667" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<VBox layoutX="38.0" layoutY="100.0" prefHeight="850.6666666666666" prefWidth="316.6666666666667" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<children>
|
||||
<Label text="Filter">
|
||||
<font>
|
||||
|
@ -84,11 +97,16 @@
|
|||
</children>
|
||||
</VBox>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
</items>
|
||||
<padding>
|
||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||
</padding>
|
||||
</SplitPane>
|
||||
</AnchorPane>
|
||||
</children>
|
||||
</HBox>
|
||||
</children>
|
||||
</VBox>
|
||||
</children>
|
||||
<padding>
|
||||
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
|
||||
</padding>
|
||||
</AnchorPane>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.geometry.Insets?>
|
||||
<?import javafx.scene.control.Button?>
|
||||
<?import javafx.scene.control.CheckBox?>
|
||||
<?import javafx.scene.control.ComboBox?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
|
@ -8,10 +9,9 @@
|
|||
<?import javafx.scene.layout.HBox?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
|
||||
|
||||
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="80.0" prefWidth="374.0" xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ch.zhaw.gartenverwaltung.SettingsController">
|
||||
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="117.0" prefWidth="374.0" xmlns="http://javafx.com/javafx/17" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ch.zhaw.gartenverwaltung.SettingsController">
|
||||
<children>
|
||||
<VBox layoutX="14.0" layoutY="14.0" prefHeight="73.0" prefWidth="374.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<VBox layoutX="14.0" layoutY="14.0" prefHeight="73.0" prefWidth="374.0" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
<children>
|
||||
<HBox prefHeight="23.0" prefWidth="334.0">
|
||||
<children>
|
||||
|
@ -19,7 +19,7 @@
|
|||
<CheckBox fx:id="showTutorial_checkBox" mnemonicParsing="false" />
|
||||
</children>
|
||||
<VBox.margin>
|
||||
<Insets left="10.0" right="10.0" top="10.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
</HBox>
|
||||
<HBox alignment="CENTER_LEFT" layoutX="20.0" layoutY="20.0" prefHeight="23.0" prefWidth="334.0">
|
||||
|
@ -28,10 +28,20 @@
|
|||
<ComboBox fx:id="selectHardinessZone_comboBox" prefWidth="150.0" promptText="Hardniness Zone" />
|
||||
</children>
|
||||
<VBox.margin>
|
||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||
<Insets />
|
||||
</VBox.margin>
|
||||
</HBox>
|
||||
<HBox alignment="CENTER_LEFT" layoutX="20.0" layoutY="53.0" prefHeight="23.0" prefWidth="334.0" spacing="5.0">
|
||||
<children>
|
||||
<Label maxWidth="1.7976931348623157E308" text="Set Location" HBox.hgrow="ALWAYS" />
|
||||
<Label fx:id="location_label" />
|
||||
<Button fx:id="location_button" mnemonicParsing="false" onAction="#setLocation" />
|
||||
</children>
|
||||
</HBox>
|
||||
</children>
|
||||
<padding>
|
||||
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
|
||||
</padding>
|
||||
</VBox>
|
||||
</children>
|
||||
</AnchorPane>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/*
|
||||
|
||||
|
||||
#home_button, #myGarden_button,
|
||||
#mySchedule_button, #settings_button,
|
||||
|
@ -20,6 +20,6 @@
|
|||
-fx-background-color: darkgreen;
|
||||
}
|
||||
|
||||
.root, .split-pane {
|
||||
-fx-background-color: linear-gradient(green 0%, lawngreen 33%, lightgreen 66%, #eee 100%);
|
||||
}./
|
||||
.root, .scroll-pane, #homeVBox, #cropDetailVBox {
|
||||
-fx-background-color: #e6ffe6;
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.geometry.Insets?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
|
||||
<?import javafx.scene.control.Button?>
|
||||
<VBox alignment="CENTER" spacing="20.0" xmlns:fx="http://javafx.com/fxml"
|
||||
fx:controller="ch.zhaw.gartenverwaltung.HelloController">
|
||||
<padding>
|
||||
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0"/>
|
||||
</padding>
|
||||
|
||||
<Label fx:id="welcomeText"/>
|
||||
<Button text="Hello!" onAction="#onHelloButtonClick"/>
|
||||
</VBox>
|
|
@ -235,7 +235,7 @@
|
|||
"lifecycle": [
|
||||
{
|
||||
"startDate": "12-01",
|
||||
"endDate": "12-02",
|
||||
"endDate": "12-19",
|
||||
"type": "SOW",
|
||||
"zone": "ZONE_8A",
|
||||
"group": 0,
|
||||
|
@ -252,7 +252,7 @@
|
|||
},
|
||||
{
|
||||
"startDate": "12-03",
|
||||
"endDate": "12-15",
|
||||
"endDate": "12-22",
|
||||
"type": "PLANT",
|
||||
"zone": "ZONE_8A",
|
||||
"group": 0,
|
||||
|
@ -268,7 +268,7 @@
|
|||
},
|
||||
{
|
||||
"startDate": "12-16",
|
||||
"endDate": "12-18",
|
||||
"endDate": "12-30",
|
||||
"type": "HARVEST",
|
||||
"zone": "ZONE_8A",
|
||||
"group": 0,
|
||||
|
|
Loading…
Reference in New Issue