updated README.md
This commit is contained in:
parent
de01503598
commit
95748c79b1
43
README.md
43
README.md
|
@ -1,32 +1,19 @@
|
||||||
# PM3-HS22-IT21b_WIN-Team1
|
# GardenPlanner
|
||||||
PM3 FivePlants Gartenverwaltung
|
|
||||||
|
|
||||||
## Class Diagram
|
## Installations- und Gebrauchsanweisung
|
||||||
Umletino: https://www.umletino.com/umletino.html
|
### Vorbedingungen
|
||||||
|
- Das Java Runtime Environment (JRE) muss in der Version 17 auf Ihrem Computer installiert sein.
|
||||||
|
- Das Java Development Kit (JDK) muss in der Version 17 auf Ihrem Computer installiert sein.
|
||||||
|
|
||||||
Draft File: doc/ClassDiagramDraft.uxf
|
### Installation und Starten der Applikation
|
||||||
|
1. Laden sie die neuste Version der Applikation herunter. Sie finden die Applikation hier:
|
||||||
|
https://github.zhaw.ch/schrom01/PM3-HS22-IT21b_WIN-Team1/tags
|
||||||
|
2. Extrahieren sie die heruntergeladene ZIP-Datei
|
||||||
|
3. Öffnen sie ein Kommandozeilenfenster und navigieren sie an den Speicherort der Entpack-ten Applikation.
|
||||||
|
4. Führen sie den Befehl: «./gradlew.bat run» (auf Windows) oder «./gradlew run» (auf ma-cOS und Linux) aus.
|
||||||
|
|
||||||
## Branch model
|
### Anwendung
|
||||||
- production branch: `main`
|
Eine Bedienungsanleitung finden Sie im Dokument [a "Technischer Bericht II"](doc/PM3-HS22-IT21b_WIN-Technischer_Bericht_II-Team1.pdf) im Kapitel 6.3.3.
|
||||||
|
|
||||||
This branch has a working version of the code.
|
## Projektdokumentation
|
||||||
|
Die gesamte Projektdokumentation ist im Dokument [a "Technischer Bericht II"](doc/PM3-HS22-IT21b_WIN-Technischer_Bericht_II-Team1.pdf) zu finden.
|
||||||
- development branch: `dev`
|
|
||||||
|
|
||||||
This branch should contain a running (although not necessarily working) version of the code. Working states are to be merged into the `main` branch regularly.
|
|
||||||
|
|
||||||
- feature: `feature_xy_<Milestone>`
|
|
||||||
|
|
||||||
These branches contain features in active development. When the code is ready it will be merged into the `dev` branch.
|
|
||||||
|
|
||||||
- bugfix: `bugfix_xy_<Milestone>`
|
|
||||||
|
|
||||||
These branches are for bugfixes.
|
|
||||||
|
|
||||||
- documentation: `doc_xy_<Milestone>`
|
|
||||||
|
|
||||||
These branches are for javadoc and project documentation (such as the readme, class diagrams etc.).
|
|
||||||
|
|
||||||
|
|
||||||
## User Manual
|
|
||||||
- Search Plant List: if first Char is '#': only exact match in ID.
|
|
|
@ -1,92 +0,0 @@
|
||||||
<diagram program="umletino" version="15.0.0"><zoom_level>10</zoom_level><element><id>UMLClass</id><coordinates><x>720</x><y>30</y><w>100</w><h>30</h></coordinates><panel_attributes>Main</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1240</x><y>250</y><w>300</w><h>140</h></coordinates><panel_attributes><<Interface>>
|
|
||||||
PlantDatabase
|
|
||||||
--
|
|
||||||
+ getPlantList(zone: HardinessZone): List<Plant>
|
|
||||||
+ getPlant(id: long): Optional<Plant></panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>940</x><y>580</y><w>220</w><h>40</h></coordinates><panel_attributes>TaskListController</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1240</x><y>10</y><w>300</w><h>180</h></coordinates><panel_attributes><<Record>>
|
|
||||||
Plant
|
|
||||||
--
|
|
||||||
+ id: long
|
|
||||||
+ name: String
|
|
||||||
+ description: String
|
|
||||||
+ spacing: int
|
|
||||||
+ lifecycle: List<GrowthPhase>
|
|
||||||
--
|
|
||||||
+ calculateStartDate(harvestDate: Date): Date
|
|
||||||
+ generateTasks()
|
|
||||||
</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1210</x><y>580</y><w>210</w><h>120</h></coordinates><panel_attributes>TaskListModel
|
|
||||||
--
|
|
||||||
- tasks: ListProperty<Task>
|
|
||||||
- taskDb: TaskDatabase
|
|
||||||
--
|
|
||||||
+ getTask(id: long): Optional<Task>
|
|
||||||
+ saveTask(task: Task)
|
|
||||||
+ removeTask(task: Task)</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>590</x><y>560</y><w>250</w><h>110</h></coordinates><panel_attributes>GardenPlanModel
|
|
||||||
--
|
|
||||||
- tasks: ListProperty<Task>
|
|
||||||
- gardenPlan: GardenPlan
|
|
||||||
--
|
|
||||||
+ savePlanting(planting: UserPlanting)
|
|
||||||
+ removePlanting(planting: UserPlanting)</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>340</x><y>550</y><w>180</w><h>80</h></coordinates><panel_attributes>GardenPlanController</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1660</x><y>720</y><w>490</w><h>240</h></coordinates><panel_attributes>Task
|
|
||||||
--
|
|
||||||
+ id: long
|
|
||||||
+ name: String {readOnly}
|
|
||||||
+ description: String {readOnly}
|
|
||||||
+ startDate: Date {readOnly}
|
|
||||||
+ isReadOnly: boolean {readOnly}
|
|
||||||
- interval: int
|
|
||||||
- endDate: Date
|
|
||||||
--
|
|
||||||
+ Task(name: String, description: String, startDate: String, isReadOnly: boolean): Task
|
|
||||||
+ withInterval(interval: int): Task
|
|
||||||
+ withEndDate(endDate: Date): Task
|
|
||||||
+ withId(id: long): Task
|
|
||||||
--
|
|
||||||
+ getInterval(): Optional<int>
|
|
||||||
+ getEndDate(): Optional<Date></panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1170</x><y>760</y><w>280</w><h>140</h></coordinates><panel_attributes><<Interface>>
|
|
||||||
TaskDatabase
|
|
||||||
--
|
|
||||||
+ getTaskList(start: Date, end: Date): List<Task>
|
|
||||||
+ saveTask(Task task) throws ??Exception
|
|
||||||
+ removeTask(Task task) throws ??Exception</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>780</x><y>310</y><w>100</w><h>100</h></coordinates><panel_attributes>MainWindow</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>440</x><y>180</y><w>180</w><h>130</h></coordinates><panel_attributes>MainWindowController</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1340</x><y>1070</y><w>210</w><h>70</h></coordinates><panel_attributes>NotificationService
|
|
||||||
--
|
|
||||||
- taskDb: TaskDatabase
|
|
||||||
--
|
|
||||||
+ tick()</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1640</x><y>1210</y><w>240</w><h>140</h></coordinates><panel_attributes><<Interface>>
|
|
||||||
WeatherProvider
|
|
||||||
--
|
|
||||||
+ getWeatherForecast: WeatherForecast</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1620</x><y>1040</y><w>400</w><h>100</h></coordinates><panel_attributes>WeatherService
|
|
||||||
--
|
|
||||||
- weatherPovider: WeatherProvider
|
|
||||||
- taskDb: TaskDatabase
|
|
||||||
--
|
|
||||||
+ WeatherService(provider: WeatherProvider, taskDb: TaskDatabase)
|
|
||||||
- updateTasks()</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1620</x><y>10</y><w>260</w><h>150</h></coordinates><panel_attributes><<Record>>
|
|
||||||
GrowthPhase
|
|
||||||
--
|
|
||||||
+ startDate: Date
|
|
||||||
+ endDate: Date
|
|
||||||
+ type: GrowthPhaseType
|
|
||||||
|
|
||||||
</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1530</x><y>80</y><w>110</w><h>30</h></coordinates><panel_attributes>lt=<->>>>></panel_attributes><additional_attributes>90;10;10;10</additional_attributes></element><element><id>Text</id><coordinates><x>420</x><y>0</y><w>190</w><h>70</h></coordinates><panel_attributes>Note:
|
|
||||||
--
|
|
||||||
{final, readOnly} omitted on public data fields in <<Record>> Entities for clarity
|
|
||||||
style=wordwrap</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1440</x><y>820</y><w>240</w><h>30</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>220;10;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1300</x><y>690</y><w>30</w><h>90</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>10;70;10;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>600</x><y>980</y><w>210</w><h>120</h></coordinates><panel_attributes><<Record>>
|
|
||||||
UserPlanting
|
|
||||||
--
|
|
||||||
+ plantId: long
|
|
||||||
+ asSowing: boolean
|
|
||||||
+ startDate: Date
|
|
||||||
+ area: int</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1380</x><y>180</y><w>30</w><h>90</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>10;10;10;70</additional_attributes></element><element><id>UMLClass</id><coordinates><x>1950</x><y>10</y><w>140</w><h>120</h></coordinates><panel_attributes><<Enumeration>>
|
|
||||||
GrowthPhaseType
|
|
||||||
--
|
|
||||||
SOW
|
|
||||||
PLANT
|
|
||||||
HARVEST</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1870</x><y>70</y><w>100</w><h>30</h></coordinates><panel_attributes>lt=<->>>></panel_attributes><additional_attributes>80;10;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1150</x><y>590</y><w>80</w><h>30</h></coordinates><panel_attributes>lt=<->>>></panel_attributes><additional_attributes>60;10;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>700</x><y>890</y><w>30</w><h>110</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>10;90;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>510</x><y>580</y><w>100</w><h>30</h></coordinates><panel_attributes>lt=<->>>></panel_attributes><additional_attributes>80;10;10;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>570</x><y>760</y><w>280</w><h>140</h></coordinates><panel_attributes><<Interface>>
|
|
||||||
GardenPlan
|
|
||||||
--
|
|
||||||
+ getPlantings(): List<UserPlanting>
|
|
||||||
+ addPlanting(plantId: long, startDate)
|
|
||||||
+ savePlanting(planting: UserPlanting)
|
|
||||||
</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>690</x><y>660</y><w>30</w><h>120</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>10;100;10;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>60</x><y>390</y><w>180</w><h>80</h></coordinates><panel_attributes>PlantingCell
|
|
||||||
{extends ListCell<>}</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>0</x><y>540</y><w>290</w><h>80</h></coordinates><panel_attributes>PlantingCellFactory
|
|
||||||
{implements Callback<ListView<UserPlanting> >}</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>140</x><y>460</y><w>30</w><h>100</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>10;10;10;80</additional_attributes></element><element><id>Relation</id><coordinates><x>1750</x><y>1130</y><w>30</w><h>100</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>10;80;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1350</x><y>890</y><w>120</w><h>200</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>10;10;100;180</additional_attributes></element><element><id>Relation</id><coordinates><x>1380</x><y>890</y><w>260</w><h>220</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>10;10;240;200</additional_attributes></element><element><id>UMLClass</id><coordinates><x>1090</x><y>1060</y><w>200</w><h>50</h></coordinates><panel_attributes>JsonTaskDatabase</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1180</x><y>890</y><w>30</w><h>190</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>10;10;10;170</additional_attributes></element><element><id>UMLClass</id><coordinates><x>1620</x><y>310</y><w>200</w><h>50</h></coordinates><panel_attributes>JsonPlantDatabase</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1530</x><y>320</y><w>110</w><h>30</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>10;10;90;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>300</x><y>800</y><w>200</w><h>50</h></coordinates><panel_attributes>JsonGardenPlan</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>490</x><y>810</y><w>100</w><h>30</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>80;10;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>280</x><y>570</y><w>80</w><h>30</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>10;10;60;10</additional_attributes></element><element><id>Relation</id><coordinates><x>850</x><y>400</y><w>220</w><h>200</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>200;180;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>440</x><y>400</y><w>390</w><h>170</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>10;150;370;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>850</x><y>120</y><w>160</w><h>60</h></coordinates><panel_attributes>PlantListController</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>760</x><y>50</y><w>90</w><h>280</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>70;260;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>610</x><y>230</y><w>190</w><h>140</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>10;10;170;120</additional_attributes></element><element><id>Relation</id><coordinates><x>870</x><y>170</y><w>80</w><h>210</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>60;10;10;190</additional_attributes></element><element><id>UMLClass</id><coordinates><x>1020</x><y>290</y><w>160</w><h>60</h></coordinates><panel_attributes>PlantListModel</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1000</x><y>150</y><w>110</w><h>160</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>90;140;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1170</x><y>310</y><w>90</w><h>30</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>70;10;10;10</additional_attributes></element></diagram>
|
|
Binary file not shown.
Before Width: | Height: | Size: 25 KiB |
|
@ -1,7 +0,0 @@
|
||||||
<diagram program="umletino" version="15.0.0"><zoom_level>10</zoom_level><element><id>UMLPackage</id><coordinates><x>390</x><y>60</y><w>340</w><h>100</h></coordinates><panel_attributes>UI</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLPackage</id><coordinates><x>390</x><y>180</y><w>460</w><h>120</h></coordinates><panel_attributes>Domain</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLPackage</id><coordinates><x>390</x><y>330</y><w>460</w><h>120</h></coordinates><panel_attributes>Technical Services</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLPackage</id><coordinates><x>400</x><y>90</y><w>100</w><h>60</h></coordinates><panel_attributes>Views (JFX)</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLPackage</id><coordinates><x>400</x><y>220</y><w>100</w><h>60</h></coordinates><panel_attributes>IO</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLPackage</id><coordinates><x>400</x><y>370</y><w>100</w><h>60</h></coordinates><panel_attributes>Jackson</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLPackage</id><coordinates><x>510</x><y>220</y><w>100</w><h>60</h></coordinates><panel_attributes>Types</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLPackage</id><coordinates><x>620</x><y>220</y><w>100</w><h>60</h></coordinates><panel_attributes>Models</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLPackage</id><coordinates><x>510</x><y>90</y><w>110</w><h>60</h></coordinates><panel_attributes>Controllers (JFX)</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLPackage</id><coordinates><x>510</x><y>370</y><w>100</w><h>60</h></coordinates><panel_attributes>Logging</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLPackage</id><coordinates><x>620</x><y>370</y><w>100</w><h>60</h></coordinates><panel_attributes>JavaFX</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLPackage</id><coordinates><x>730</x><y>220</y><w>110</w><h>60</h></coordinates><panel_attributes>Services</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLPackage</id><coordinates><x>730</x><y>370</y><w>110</w><h>60</h></coordinates><panel_attributes>HTTP/API</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>570</x><y>150</y><w>90</w><h>70</h></coordinates><panel_attributes>lt=.>
|
|
||||||
</panel_attributes><additional_attributes>70;10;10;50</additional_attributes></element><element><id>Relation</id><coordinates><x>570</x><y>290</y><w>110</w><h>80</h></coordinates><panel_attributes>lt=.>
|
|
||||||
</panel_attributes><additional_attributes>90;10;10;60</additional_attributes></element><element><id>Relation</id><coordinates><x>340</x><y>120</y><w>350</w><h>400</h></coordinates><panel_attributes>lt=.>
|
|
||||||
</panel_attributes><additional_attributes>60;10;10;10;10;380;330;380;330;310</additional_attributes></element><element><id>Relation</id><coordinates><x>770</x><y>270</y><w>30</w><h>120</h></coordinates><panel_attributes>lt=.>
|
|
||||||
</panel_attributes><additional_attributes>10;10;10;100</additional_attributes></element><element><id>Relation</id><coordinates><x>360</x><y>250</y><w>60</w><h>180</h></coordinates><panel_attributes>lt=.>
|
|
||||||
</panel_attributes><additional_attributes>40;10;10;10;10;160;40;160</additional_attributes></element><element><id>Relation</id><coordinates><x>610</x><y>120</y><w>70</w><h>120</h></coordinates><panel_attributes>lt=.>
|
|
||||||
</panel_attributes><additional_attributes>10;10;50;10;50;100</additional_attributes></element></diagram>
|
|
Binary file not shown.
Before Width: | Height: | Size: 286 KiB |
|
@ -1,144 +0,0 @@
|
||||||
<diagram program="umletino" version="15.0.0"><zoom_level>10</zoom_level><element><id>UMLClass</id><coordinates><x>482</x><y>360</y><w>100</w><h>30</h></coordinates><panel_attributes>Main</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1082</x><y>380</y><w>370</w><h>100</h></coordinates><panel_attributes><<Interface>>
|
|
||||||
PlantDatabase
|
|
||||||
--
|
|
||||||
+ getPlantList(zone: HardinessZone): List<Plant>
|
|
||||||
+ getPlantById(zone: HardinessZone id: long): Optional<Plant></panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>672</x><y>710</y><w>220</w><h>40</h></coordinates><panel_attributes>TaskListController</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1132</x><y>110</y><w>300</w><h>180</h></coordinates><panel_attributes><<Record>>
|
|
||||||
Plant
|
|
||||||
--
|
|
||||||
+ id: long
|
|
||||||
+ name: String
|
|
||||||
+ description: String
|
|
||||||
+ spacing: int
|
|
||||||
+ lifecycle: List<GrowthPhase>
|
|
||||||
--
|
|
||||||
+ calculateStartDate(harvestDate: Date): Date
|
|
||||||
+ generateTasks()
|
|
||||||
</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>942</x><y>710</y><w>210</w><h>120</h></coordinates><panel_attributes>TaskListModel
|
|
||||||
--
|
|
||||||
- tasks: ListProperty<Task>
|
|
||||||
- taskDb: TaskDatabase
|
|
||||||
--
|
|
||||||
+ getTask(id: long): Optional<Task>
|
|
||||||
+ saveTask(task: Task)
|
|
||||||
+ removeTask(task: Task)</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>322</x><y>690</y><w>250</w><h>120</h></coordinates><panel_attributes>GardenPlanModel
|
|
||||||
--
|
|
||||||
- tasks: ListProperty<Crop>
|
|
||||||
- gardenPlan: GardenPlan
|
|
||||||
--
|
|
||||||
+ plantAsCrop(planting: UserPlanting)
|
|
||||||
+ removePlanting(planting: UserPlanting)</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>72</x><y>680</y><w>180</w><h>80</h></coordinates><panel_attributes>GardenPlanController</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1362</x><y>830</y><w>490</w><h>240</h></coordinates><panel_attributes>Task
|
|
||||||
--
|
|
||||||
+ id: long
|
|
||||||
+ name: String {readOnly}
|
|
||||||
+ description: String {readOnly}
|
|
||||||
+ startDate: Date {readOnly}
|
|
||||||
+ isOptional: boolean {readOnly}
|
|
||||||
- interval: int
|
|
||||||
- endDate: Date
|
|
||||||
--
|
|
||||||
+ Task(name: String, description: String, startDate: String, isReadOnly: boolean): Task
|
|
||||||
+ withInterval(interval: int): Task
|
|
||||||
+ withEndDate(endDate: Date): Task
|
|
||||||
+ withId(id: long): Task
|
|
||||||
--
|
|
||||||
+ getInterval(): Optional<int>
|
|
||||||
+ getEndDate(): Optional<Date></panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>902</x><y>930</y><w>280</w><h>140</h></coordinates><panel_attributes><<Interface>>
|
|
||||||
TaskDatabase
|
|
||||||
--
|
|
||||||
+ getTaskList(start: Date, end: Date): List<Task>
|
|
||||||
+ saveTask(Task task) throws ??Exception
|
|
||||||
+ removeTask(Task task) throws ??Exception</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>442</x><y>440</y><w>170</w><h>80</h></coordinates><panel_attributes>MainWindowController</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>962</x><y>1310</y><w>210</w><h>70</h></coordinates><panel_attributes>NotificationService
|
|
||||||
--
|
|
||||||
- taskDb: TaskDatabase
|
|
||||||
--
|
|
||||||
+ tick()</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1412</x><y>1310</y><w>240</w><h>90</h></coordinates><panel_attributes><<Interface>>
|
|
||||||
WeatherProvider
|
|
||||||
--
|
|
||||||
+ getWeatherForecast: WeatherForecast</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1392</x><y>1150</y><w>400</w><h>100</h></coordinates><panel_attributes>WeatherService
|
|
||||||
--
|
|
||||||
- weatherPovider: WeatherProvider
|
|
||||||
- taskDb: TaskDatabase
|
|
||||||
--
|
|
||||||
+ WeatherService(provider: WeatherProvider, taskDb: TaskDatabase)
|
|
||||||
- updateTasks()</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1502</x><y>110</y><w>260</w><h>150</h></coordinates><panel_attributes><<Record>>
|
|
||||||
GrowthPhase
|
|
||||||
--
|
|
||||||
+ startDate: MonthDay
|
|
||||||
+ endDate: MonthDay
|
|
||||||
+ type: GrowthPhaseType
|
|
||||||
|
|
||||||
</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1422</x><y>180</y><w>100</w><h>40</h></coordinates><panel_attributes>lt=<->>>>>
|
|
||||||
m1=*
|
|
||||||
m2=1</panel_attributes><additional_attributes>80;10;10;10</additional_attributes></element><element><id>Text</id><coordinates><x>152</x><y>130</y><w>190</w><h>70</h></coordinates><panel_attributes>Note:
|
|
||||||
--
|
|
||||||
{final, readOnly} omitted on public data fields in <<Record>> Entities for clarity
|
|
||||||
style=wordwrap</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1172</x><y>970</y><w>210</w><h>50</h></coordinates><panel_attributes>lt=<.
|
|
||||||
m1=*
|
|
||||||
m2=1
|
|
||||||
returns ></panel_attributes><additional_attributes>190;20;10;20</additional_attributes></element><element><id>Relation</id><coordinates><x>1032</x><y>820</y><w>140</w><h>130</h></coordinates><panel_attributes>lt=<-
|
|
||||||
m1=1 external database
|
|
||||||
m2=1 internal list
|
|
||||||
accesses</panel_attributes><additional_attributes>10;110;10;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>322</x><y>1120</y><w>240</w><h>150</h></coordinates><panel_attributes>Crop
|
|
||||||
--
|
|
||||||
- cropId: Long
|
|
||||||
+ plantId: long {final, readOnly}
|
|
||||||
+ startDate: LocalDate {final, readOnly}
|
|
||||||
+ area: Double
|
|
||||||
--
|
|
||||||
+ withId(long): Crop
|
|
||||||
+ withArea(double): Crop
|
|
||||||
--
|
|
||||||
+ getCropId(): Optional<Long></panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1262</x><y>280</y><w>70</w><h>120</h></coordinates><panel_attributes>lt=<.
|
|
||||||
m1=*
|
|
||||||
m2=1
|
|
||||||
returns</panel_attributes><additional_attributes>10;10;10;100</additional_attributes></element><element><id>UMLClass</id><coordinates><x>1632</x><y>290</y><w>130</w><h>100</h></coordinates><panel_attributes><<Enumeration>>
|
|
||||||
GrowthPhaseType
|
|
||||||
--
|
|
||||||
SOW
|
|
||||||
PLANT
|
|
||||||
HARVEST</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1582</x><y>250</y><w>70</w><h>120</h></coordinates><panel_attributes>lt=<->>>>
|
|
||||||
m1=1
|
|
||||||
m2=*</panel_attributes><additional_attributes>50;90;10;90;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>882</x><y>720</y><w>80</w><h>30</h></coordinates><panel_attributes>lt=<->>>></panel_attributes><additional_attributes>60;10;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>432</x><y>1020</y><w>110</w><h>120</h></coordinates><panel_attributes>lt=<.
|
|
||||||
m1=*
|
|
||||||
m2=1
|
|
||||||
returns / saves</panel_attributes><additional_attributes>10;100;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>242</x><y>710</y><w>100</w><h>30</h></coordinates><panel_attributes>lt=<->>>></panel_attributes><additional_attributes>80;10;10;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>302</x><y>890</y><w>280</w><h>140</h></coordinates><panel_attributes><<Interface>>
|
|
||||||
GardenPlan
|
|
||||||
--
|
|
||||||
+ getPlantings(): List<UserPlanting>
|
|
||||||
+ addPlanting(plantId: long, startDate)
|
|
||||||
+ savePlanting(planting: UserPlanting)
|
|
||||||
</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>422</x><y>800</y><w>80</w><h>110</h></coordinates><panel_attributes>lt=<.
|
|
||||||
m1=1
|
|
||||||
m2=1
|
|
||||||
accesses</panel_attributes><additional_attributes>10;90;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1522</x><y>1240</y><w>30</w><h>90</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>10;70;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1062</x><y>1060</y><w>80</w><h>270</h></coordinates><panel_attributes>lt=<-
|
|
||||||
m1=1
|
|
||||||
m2=1
|
|
||||||
accesses</panel_attributes><additional_attributes>10;10;10;250</additional_attributes></element><element><id>Relation</id><coordinates><x>1142</x><y>1060</y><w>270</w><h>170</h></coordinates><panel_attributes>lt=<-
|
|
||||||
m1=1
|
|
||||||
m2=1
|
|
||||||
adds Tasks</panel_attributes><additional_attributes>10;10;10;140;250;140</additional_attributes></element><element><id>UMLClass</id><coordinates><x>822</x><y>1140</y><w>200</w><h>50</h></coordinates><panel_attributes>JsonTaskDatabase</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>912</x><y>1060</y><w>30</w><h>100</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>10;10;10;80</additional_attributes></element><element><id>UMLClass</id><coordinates><x>1562</x><y>430</y><w>200</w><h>50</h></coordinates><panel_attributes>JsonPlantDatabase</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1442</x><y>440</y><w>140</w><h>30</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>10;10;120;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>32</x><y>930</y><w>200</w><h>50</h></coordinates><panel_attributes>JsonGardenPlan</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>222</x><y>940</y><w>100</w><h>30</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>80;10;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>582</x><y>510</y><w>220</w><h>220</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>200;200;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>172</x><y>510</y><w>340</w><h>190</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>10;170;320;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>582</x><y>250</y><w>160</w><h>60</h></coordinates><panel_attributes>PlantListController</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>522</x><y>380</y><w>30</w><h>80</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>10;60;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>602</x><y>300</y><w>80</w><h>210</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>60;10;10;190</additional_attributes></element><element><id>UMLClass</id><coordinates><x>732</x><y>390</y><w>160</w><h>60</h></coordinates><panel_attributes>PlantListModel</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>732</x><y>280</y><w>90</w><h>130</h></coordinates><panel_attributes>lt=<.</panel_attributes><additional_attributes>70;110;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>882</x><y>400</y><w>220</w><h>70</h></coordinates><panel_attributes>lt=<-
|
|
||||||
m1=1\nexternal\ndatabase
|
|
||||||
m2=1\ninternal\nlist
|
|
||||||
accesses ></panel_attributes><additional_attributes>200;20;10;20</additional_attributes></element><element><id>Relation</id><coordinates><x>582</x><y>0</y><w>190</w><h>50</h></coordinates><panel_attributes>lt=-
|
|
||||||
m1=0..n
|
|
||||||
m2=0..1
|
|
||||||
teaches to ></panel_attributes><additional_attributes>10;20;170;20</additional_attributes></element><element><id>UMLClass</id><coordinates><x>1412</x><y>530</y><w>420</w><h>200</h></coordinates><panel_attributes>TaskTemplate
|
|
||||||
--
|
|
||||||
+ name: String {readOnly}
|
|
||||||
+ description: String {readOnly}
|
|
||||||
+ relativeStartDate: int {readOnly}
|
|
||||||
- interval: Integer
|
|
||||||
- relativeEndDate: Integer
|
|
||||||
- isOptional: boolean
|
|
||||||
--
|
|
||||||
+ Task(name: String, description: String, startDate: String): TaskTemplate
|
|
||||||
+ setRelativeEndDate(relativeEndDate: int)
|
|
||||||
+ setInterval(interval: Integer)
|
|
||||||
+ generateTask(realStartDate: LocalDate): Task
|
|
||||||
</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1752</x><y>180</y><w>130</w><h>490</h></coordinates><panel_attributes>lt=<->>>>>
|
|
||||||
m1=*
|
|
||||||
m2=1</panel_attributes><additional_attributes>80;460;110;460;110;10;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1602</x><y>720</y><w>90</w><h>130</h></coordinates><panel_attributes>lt=<.
|
|
||||||
m1=*
|
|
||||||
m2=1
|
|
||||||
generates</panel_attributes><additional_attributes>10;110;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>562</x><y>770</y><w>400</w><h>40</h></coordinates><panel_attributes>lt=<-
|
|
||||||
delegates generating Tasks</panel_attributes><additional_attributes>380;20;10;20</additional_attributes></element></diagram>
|
|
File diff suppressed because one or more lines are too long
|
@ -1,70 +0,0 @@
|
||||||
<diagram program="umletino" version="15.0.0"><zoom_level>12</zoom_level><element><id>UMLClass</id><coordinates><x>852</x><y>372</y><w>120</w><h>72</h></coordinates><panel_attributes>Gardener
|
|
||||||
--
|
|
||||||
Name
|
|
||||||
Type</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>144</x><y>372</y><w>120</w><h>120</h></coordinates><panel_attributes>Plant
|
|
||||||
--
|
|
||||||
name
|
|
||||||
description</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>600</x><y>372</y><w>120</w><h>84</h></coordinates><panel_attributes>Garden
|
|
||||||
--
|
|
||||||
Location
|
|
||||||
hardiness zone</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>384</x><y>372</y><w>120</w><h>72</h></coordinates><panel_attributes>Bed
|
|
||||||
--
|
|
||||||
Area</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1152</x><y>624</y><w>120</w><h>36</h></coordinates><panel_attributes>Weather</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>852</x><y>816</y><w>120</w><h>36</h></coordinates><panel_attributes>Calendar</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>852</x><y>96</y><w>144</w><h>72</h></coordinates><panel_attributes>Community
|
|
||||||
--
|
|
||||||
Plant Information
|
|
||||||
</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>288</x><y>636</y><w>120</w><h>72</h></coordinates><panel_attributes>Growth phase
|
|
||||||
--
|
|
||||||
duration</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>852</x><y>624</y><w>120</w><h>84</h></coordinates><panel_attributes>Gardening task
|
|
||||||
--
|
|
||||||
start date
|
|
||||||
end date
|
|
||||||
interval</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>852</x><y>156</y><w>120</w><h>240</h></coordinates><panel_attributes>lt=-
|
|
||||||
m1=0..*
|
|
||||||
m2=1..*
|
|
||||||
< is part of </panel_attributes><additional_attributes>10;180;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>708</x><y>372</y><w>168</w><h>60</h></coordinates><panel_attributes>lt=-
|
|
||||||
m1=1
|
|
||||||
m2=1..*
|
|
||||||
< has </panel_attributes><additional_attributes>120;20;10;20</additional_attributes></element><element><id>Relation</id><coordinates><x>252</x><y>372</y><w>156</w><h>60</h></coordinates><panel_attributes>lt=-
|
|
||||||
m1=1
|
|
||||||
m2=0..*
|
|
||||||
< contains </panel_attributes><additional_attributes>110;20;10;20</additional_attributes></element><element><id>Relation</id><coordinates><x>252</x><y>444</y><w>156</w><h>216</h></coordinates><panel_attributes>lt=-
|
|
||||||
m1=1
|
|
||||||
m2=1..*
|
|
||||||
has ></panel_attributes><additional_attributes>10;10;80;10;80;160</additional_attributes></element><element><id>Relation</id><coordinates><x>492</x><y>372</y><w>132</w><h>60</h></coordinates><panel_attributes>lt=-
|
|
||||||
m1=1
|
|
||||||
m2=1..*
|
|
||||||
< contains </panel_attributes><additional_attributes>90;20;10;20</additional_attributes></element><element><id>Relation</id><coordinates><x>900</x><y>432</y><w>120</w><h>216</h></coordinates><panel_attributes>lt=-
|
|
||||||
m1=1
|
|
||||||
m2=1..*
|
|
||||||
< manages </panel_attributes><additional_attributes>10;10;10;160</additional_attributes></element><element><id>Relation</id><coordinates><x>960</x><y>624</y><w>216</w><h>60</h></coordinates><panel_attributes>lt=-
|
|
||||||
m1=1
|
|
||||||
m2=1..*
|
|
||||||
< manipulates</panel_attributes><additional_attributes>160;20;10;20</additional_attributes></element><element><id>Relation</id><coordinates><x>900</x><y>696</y><w>108</w><h>144</h></coordinates><panel_attributes>lt=-
|
|
||||||
m1=1
|
|
||||||
m2=0..*
|
|
||||||
< contains</panel_attributes><additional_attributes>10;10;10;100</additional_attributes></element><element><id>Relation</id><coordinates><x>960</x><y>408</y><w>468</w><h>468</h></coordinates><panel_attributes>lt=-
|
|
||||||
m1=1
|
|
||||||
m2=1
|
|
||||||
< informs </panel_attributes><additional_attributes>10;360;310;360;310;10;10;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>12</x><y>636</y><w>120</w><h>84</h></coordinates><panel_attributes>Need
|
|
||||||
--
|
|
||||||
start date
|
|
||||||
end date</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>60</x><y>432</y><w>108</w><h>228</h></coordinates><panel_attributes>lt=-
|
|
||||||
m1=1..*
|
|
||||||
m2=1..*
|
|
||||||
has ></panel_attributes><additional_attributes>10;170;10;10;70;10</additional_attributes></element><element><id>Relation</id><coordinates><x>60</x><y>672</y><w>816</w><h>120</h></coordinates><panel_attributes>lt=-
|
|
||||||
m1=1
|
|
||||||
m2=1
|
|
||||||
requires ></panel_attributes><additional_attributes>660;10;520;10;520;80;10;80;10;40</additional_attributes></element><element><id>UMLClass</id><coordinates><x>456</x><y>588</y><w>120</w><h>36</h></coordinates><panel_attributes>Team
|
|
||||||
</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>564</x><y>432</y><w>312</w><h>180</h></coordinates><panel_attributes>lt=-
|
|
||||||
m1=1
|
|
||||||
m2=1..*
|
|
||||||
contains of ></panel_attributes><additional_attributes>10;130;240;10</additional_attributes></element><element><id>Relation</id><coordinates><x>564</x><y>600</y><w>312</w><h>60</h></coordinates><panel_attributes>lt=-
|
|
||||||
m1=1
|
|
||||||
m2=0..*
|
|
||||||
manages ></panel_attributes><additional_attributes>10;20;240;20</additional_attributes></element><element><id>Relation</id><coordinates><x>960</x><y>156</y><w>216</w><h>240</h></coordinates><panel_attributes>lt=-
|
|
||||||
m1=0..n
|
|
||||||
m2=1..n
|
|
||||||
exchanges Informatione ></panel_attributes><additional_attributes>10;10;10;180</additional_attributes></element><element><id>Relation</id><coordinates><x>120</x><y>648</y><w>192</w><h>60</h></coordinates><panel_attributes>lt=-
|
|
||||||
m1=0..n
|
|
||||||
m2=1
|
|
||||||
< contains </panel_attributes><additional_attributes>10;20;140;20</additional_attributes></element></diagram>
|
|
Binary file not shown.
Before Width: | Height: | Size: 44 KiB |
Binary file not shown.
Loading…
Reference in New Issue