diff --git a/UML/TastyPages_Use-case_Class_Diagram6.drawio b/UML/TastyPages_Use-case_Class_Diagram6.drawio new file mode 100644 index 0000000000000000000000000000000000000000..549b06f39410a8a80fa2f4757cbd729987af6d8a --- /dev/null +++ b/UML/TastyPages_Use-case_Class_Diagram6.drawio @@ -0,0 +1,869 @@ +<mxfile host="app.diagrams.net" modified="2023-06-19T15:59:15.596Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/112.0" etag="l3LHdDbAK6yaNPSjJYRP" version="21.4.0" type="device" pages="2"> + <diagram name="Seite-1" id="guNTSU0fiwR1g74g93dq"> + <mxGraphModel dx="1890" dy="2275" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> + <root> + <mxCell id="0" /> + <mxCell id="1" parent="0" /> + <mxCell id="t6KV452nRaxTD-9MS5Kb-28" value="<div><b>&nbsp; Tasty Pages<br></b></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;" vertex="1" parent="1"> + <mxGeometry x="150" y="-210" width="750" height="940" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-1" value="User" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1"> + <mxGeometry x="30" y="420" width="30" height="60" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-17" value="add recipe" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="265" y="-105.25" width="120" height="30" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-18" value="select components" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="535" y="-144" width="140" height="20" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-24" value="Name the recipe" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="535" y="-184" width="140" height="20" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-29" value="add preparpation steps" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="545" y="-105.25" width="140" height="20" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-32" value="select categories" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="545" y="-59" width="140" height="20" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-34" value="add picture" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="545" y="-22.75" width="140" height="22.5" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-37" value="delete recipe" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="265" y="-65.25" width="120" height="30" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-40" value="edit recipe" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="265" y="-25.25" width="120" height="25" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-56" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;curved=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="4oh4sVMnw9r_FDRqXWCS-43" target="4oh4sVMnw9r_FDRqXWCS-53" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="310" y="190" /> + <mxPoint x="780" y="190" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-43" value="browse recipes" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="250" y="100" width="120" height="30" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-44" value="full text search" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="490" y="70" width="120" height="20" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-46" value="choose categories" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="490" y="105" width="120" height="20" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-49" value="show favorites" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="490" y="140" width="120" height="20" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-53" value="Display recipe" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="720" y="80" width="120" height="50" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-64" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;" parent="1" source="4oh4sVMnw9r_FDRqXWCS-60" target="4oh4sVMnw9r_FDRqXWCS-63" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-49" value="&lt;&lt;includes&gt;&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="4oh4sVMnw9r_FDRqXWCS-64"> + <mxGeometry x="0.0848" y="1" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-60" value="add ingredient" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="240" y="370" width="120" height="30" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-61" value="search ingredient" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="240" y="414" width="120" height="30" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-62" value="delete ingredient" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="240" y="460" width="120" height="30" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-63" value="set ingredient name" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="510" y="370" width="120" height="30" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-66" value="set nutrition values" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="510" y="414" width="120" height="30" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-68" value="<font style="font-size: 10px;">choose measurement type</font>" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="500" y="330" width="140" height="30" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-71" value="add recipe to shopping list" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="495" y="520" width="110" height="50" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-72" value="remove recipe from shopping list" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="490" y="580" width="120" height="50" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-74" value="add to meal plan" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="240" y="605" width="120" height="30" as="geometry" /> + </mxCell> + <mxCell id="4oh4sVMnw9r_FDRqXWCS-75" value="<div>remove from</div><div>&nbsp;meal plan</div>" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="240" y="655" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-7" value="other preexisting recipies" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="760" y="-153.37" width="119.77" height="38.75" as="geometry" /> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-8" value="Ingredients" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="760" y="-102.75" width="120" height="27.5" as="geometry" /> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-9" value="delete category" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="320" y="293" width="120" height="33.44" as="geometry" /> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-10" value="create category" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="320" y="257.69000000000005" width="120" height="28.75" as="geometry" /> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-11" value="Name cagegory" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="520" y="230" width="120" height="30" as="geometry" /> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-12" value="select color for categroy" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="520" y="269.56999999999994" width="120" height="45" as="geometry" /> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-15" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.822;exitY=0.121;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="1" source="t6KV452nRaxTD-9MS5Kb-10" target="t6KV452nRaxTD-9MS5Kb-11"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="335" y="141.26" as="sourcePoint" /> + <mxPoint x="370" y="112.5" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-16" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.821;exitY=0.892;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="1" source="t6KV452nRaxTD-9MS5Kb-10" target="t6KV452nRaxTD-9MS5Kb-12"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="545" y="178.13" as="sourcePoint" /> + <mxPoint x="595" y="128.13" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-17" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-17" target="4oh4sVMnw9r_FDRqXWCS-24"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="370" y="-170" as="sourcePoint" /> + <mxPoint x="420" y="-220" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-18" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-17" target="4oh4sVMnw9r_FDRqXWCS-18"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="620" y="-98.75" as="sourcePoint" /> + <mxPoint x="670" y="-148.75" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-19" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-17" target="4oh4sVMnw9r_FDRqXWCS-29"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="490" y="-110" as="sourcePoint" /> + <mxPoint x="540" y="-160" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-47" value="&lt;&lt;includes&gt;&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="t6KV452nRaxTD-9MS5Kb-19"> + <mxGeometry x="-0.1595" y="-1" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-20" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-17" target="4oh4sVMnw9r_FDRqXWCS-32"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="490" y="-110" as="sourcePoint" /> + <mxPoint x="540" y="-160" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-21" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-17" target="4oh4sVMnw9r_FDRqXWCS-34"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="490" y="-110" as="sourcePoint" /> + <mxPoint x="540" y="-160" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-22" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-18" target="t6KV452nRaxTD-9MS5Kb-7"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="490" y="-110" as="sourcePoint" /> + <mxPoint x="540" y="-160" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-23" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-18" target="t6KV452nRaxTD-9MS5Kb-8"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="490" y="-110" as="sourcePoint" /> + <mxPoint x="540" y="-160" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-64" value="&lt;&lt;includes&gt;&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="t6KV452nRaxTD-9MS5Kb-23"> + <mxGeometry x="-0.2368" y="1" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-31" value="Ingredient Database" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" vertex="1" parent="1"> + <mxGeometry x="1020" y="-114.62" width="30" height="60" as="geometry" /> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-33" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.3333333333333333;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="t6KV452nRaxTD-9MS5Kb-31" target="t6KV452nRaxTD-9MS5Kb-8"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1010" y="454" as="sourcePoint" /> + <mxPoint x="1060" y="404" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-36" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" target="4oh4sVMnw9r_FDRqXWCS-37"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="60" y="410" as="sourcePoint" /> + <mxPoint x="100" y="140" as="targetPoint" /> + <Array as="points"> + <mxPoint x="60" y="410" /> + <mxPoint x="60" y="-95" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-40" value="" style="endArrow=classic;html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;curved=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" target="4oh4sVMnw9r_FDRqXWCS-43"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="70" y="420" as="sourcePoint" /> + <mxPoint x="150" y="204.69" as="targetPoint" /> + <Array as="points"> + <mxPoint x="120" y="420" /> + <mxPoint x="120" y="115" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-41" value="" style="endArrow=classic;html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;curved=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" target="t6KV452nRaxTD-9MS5Kb-10"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="80" y="430" as="sourcePoint" /> + <mxPoint x="290" y="194.07" as="targetPoint" /> + <Array as="points"> + <mxPoint x="170" y="431" /> + <mxPoint x="170" y="272" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-42" value="" style="endArrow=classic;html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;curved=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" target="t6KV452nRaxTD-9MS5Kb-9"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="220" y="290" as="sourcePoint" /> + <mxPoint x="290" y="140" as="targetPoint" /> + <Array as="points"> + <mxPoint x="220" y="310" /> + <mxPoint x="320" y="310" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-44" value="" style="endArrow=classic;html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;curved=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-43" target="4oh4sVMnw9r_FDRqXWCS-46"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="430" y="100" as="sourcePoint" /> + <mxPoint x="480" y="50" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-63" value="&lt;&lt;includes&gt;&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="t6KV452nRaxTD-9MS5Kb-44"> + <mxGeometry x="0.1873" y="-1" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-45" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;curved=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-44" target="4oh4sVMnw9r_FDRqXWCS-49"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="420" y="180" as="sourcePoint" /> + <mxPoint x="470" y="130" as="targetPoint" /> + <Array as="points"> + <mxPoint x="460" y="80" /> + <mxPoint x="460" y="150" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-48" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;dashed=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-66" target="4oh4sVMnw9r_FDRqXWCS-68"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="430" y="410" as="sourcePoint" /> + <mxPoint x="480" y="360" as="targetPoint" /> + <Array as="points"> + <mxPoint x="460" y="429" /> + <mxPoint x="460" y="345" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-50" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" target="4oh4sVMnw9r_FDRqXWCS-61"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="80" y="440" as="sourcePoint" /> + <mxPoint x="270" y="380" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-51" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-17" target="4oh4sVMnw9r_FDRqXWCS-40"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="225" y="44.75" as="sourcePoint" /> + <mxPoint x="275" y="-5.25" as="targetPoint" /> + <Array as="points"> + <mxPoint x="215" y="-90.25" /> + <mxPoint x="215" y="-13.25" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-52" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" source="4oh4sVMnw9r_FDRqXWCS-62" target="4oh4sVMnw9r_FDRqXWCS-60"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="200" y="530" as="sourcePoint" /> + <mxPoint x="250" y="480" as="targetPoint" /> + <Array as="points"> + <mxPoint x="190" y="475" /> + <mxPoint x="190" y="385" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-55" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" target="4oh4sVMnw9r_FDRqXWCS-71"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="70" y="460" as="sourcePoint" /> + <mxPoint x="370" y="510" as="targetPoint" /> + <Array as="points"> + <mxPoint x="70" y="545" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-56" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" target="4oh4sVMnw9r_FDRqXWCS-72"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="390" y="550" as="sourcePoint" /> + <mxPoint x="635" y="490" as="targetPoint" /> + <Array as="points"> + <mxPoint x="390" y="605" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-61" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" target="4oh4sVMnw9r_FDRqXWCS-74"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="40" y="520" as="sourcePoint" /> + <mxPoint x="310" y="620" as="targetPoint" /> + <Array as="points"> + <mxPoint x="40" y="620" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="t6KV452nRaxTD-9MS5Kb-62" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;curved=1;" edge="1" parent="1" target="4oh4sVMnw9r_FDRqXWCS-75"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="90" y="600" as="sourcePoint" /> + <mxPoint x="125" y="690" as="targetPoint" /> + <Array as="points"> + <mxPoint x="90" y="675" /> + </Array> + </mxGeometry> + </mxCell> + </root> + </mxGraphModel> + </diagram> + <diagram id="IOxpQtQOinXd_60UH0zV" name="Seite-2"> + <mxGraphModel dx="3404" dy="2272" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> + <root> + <mxCell id="0" /> + <mxCell id="1" parent="0" /> + <mxCell id="4rBL8TMRcDE2g0Xyakx7-3" value="package : recipe" style="swimlane;whiteSpace=wrap;html=1;rounded=0;" parent="1" vertex="1"> + <mxGeometry x="-180" y="-160" width="1170" height="1520" as="geometry" /> + </mxCell> + <mxCell id="khY43H2GbW4oralui55t-9" value="RecipeManager" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1"> + <mxGeometry x="20" y="30" width="240" height="280" as="geometry" /> + </mxCell> + <mxCell id="khY43H2GbW4oralui55t-10" value="<div>- log : Logger<br></div><div>- allRecipes : Map&lt;String, Recipe&gt;</div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="khY43H2GbW4oralui55t-9" vertex="1"> + <mxGeometry y="26" width="240" height="44" as="geometry" /> + </mxCell> + <mxCell id="khY43H2GbW4oralui55t-11" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="khY43H2GbW4oralui55t-9" vertex="1"> + <mxGeometry y="70" width="240" height="8" as="geometry" /> + </mxCell> + <mxCell id="khY43H2GbW4oralui55t-12" value="<div>+ RecipeManager(List&lt;Recipe&gt; recipes)</div><div>+ RecipeManager()</div><div>+ addRecipe(Recipe recipe) <br></div><div>+ getRecipeByCode(String code) : Recipe</div><div>+ deleteRecipe(String name)</div><div>+ deleteRecipe(Recipe r)</div><div>- getRecipeByName(String name) : Optionale&lt;Recipe&gt;</div><div>+ clear()</div><div>+ getRecipes() : List&lt;Recipe&gt;<br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="khY43H2GbW4oralui55t-9" vertex="1"> + <mxGeometry y="78" width="240" height="202" as="geometry" /> + </mxCell> + <mxCell id="VXFt1rTyLLwseOzf8AC8-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.494;entryY=1.002;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.529;exitY=0.005;exitDx=0;exitDy=0;exitPerimeter=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" source="UTPdYlRnybRvfPgnSFpF-70" target="BmttCFs_K1xAuYzUHSLz-18" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="156" y="655" /> + <mxPoint x="156" y="655" /> + </Array> + <mxPoint x="155" y="670" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="VXFt1rTyLLwseOzf8AC8-8" value="implements" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="VXFt1rTyLLwseOzf8AC8-6" vertex="1" connectable="0"> + <mxGeometry x="0.5309" y="1" relative="1" as="geometry"> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="ev62EXm1IyDULqRkRese-13" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=0.326;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.447;entryY=-0.008;entryDx=0;entryDy=0;entryPerimeter=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" source="4LD2Q_2ablrLRUKtAQnm-15" target="4LD2Q_2ablrLRUKtAQnm-1" edge="1"> + <mxGeometry width="160" relative="1" as="geometry"> + <mxPoint x="665" y="532" as="sourcePoint" /> + <mxPoint x="825" y="532" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="BmttCFs_K1xAuYzUHSLz-17" value="&lt;&lt;interface&gt;&gt;<br><b>RecipeComponent</b>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#ffe6cc;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=#d79b00;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1"> + <mxGeometry x="40" y="350" width="235" height="130" as="geometry" /> + </mxCell> + <mxCell id="BmttCFs_K1xAuYzUHSLz-18" value="<div>+ getName() : String</div><div>+ fetNutrotionTable() : Nutritiontable</div><div>+ getMeasurement() : Measurement</div><div>+ getUniqueCode() : String</div><div><br></div><div>+ @Override equals(Object o) : boolean<br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="BmttCFs_K1xAuYzUHSLz-17" vertex="1"> + <mxGeometry y="26" width="235" height="104" as="geometry" /> + </mxCell> + <mxCell id="VXFt1rTyLLwseOzf8AC8-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.067;exitY=0.003;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.868;entryY=0.99;entryDx=0;entryDy=0;entryPerimeter=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" source="UTPdYlRnybRvfPgnSFpF-84" target="BmttCFs_K1xAuYzUHSLz-18" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="362" y="772" /> + <mxPoint x="362" y="640" /> + <mxPoint x="244" y="640" /> + </Array> + <mxPoint x="361.99000000000024" y="792.5480000000002" as="sourcePoint" /> + <mxPoint x="250" y="530" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="ev62EXm1IyDULqRkRese-22" value="n" style="endArrow=none;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;entryX=0.281;entryY=0.003;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;endFill=0;" parent="4rBL8TMRcDE2g0Xyakx7-3" target="UTPdYlRnybRvfPgnSFpF-84" edge="1" source="UTPdYlRnybRvfPgnSFpF-65"> + <mxGeometry x="0.8127" relative="1" as="geometry"> + <mxPoint x="390" y="690" as="sourcePoint" /> + <mxPoint x="470" y="670" as="targetPoint" /> + <Array as="points"> + <mxPoint x="440" y="770" /> + <mxPoint x="441" y="770" /> + </Array> + <mxPoint as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-146" value="1" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="ev62EXm1IyDULqRkRese-22"> + <mxGeometry x="-0.3725" y="1" relative="1" as="geometry"> + <mxPoint x="-1" y="-20" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="4LD2Q_2ablrLRUKtAQnm-1" value="&lt;&lt;enum&gt;&gt;<br><b>Nutriton</b>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#ffe6cc;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=#d79b00;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1"> + <mxGeometry x="740" y="790" width="140" height="202" as="geometry" /> + </mxCell> + <mxCell id="4LD2Q_2ablrLRUKtAQnm-2" value="CALORIES" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="4LD2Q_2ablrLRUKtAQnm-1" vertex="1"> + <mxGeometry y="26" width="140" height="26" as="geometry" /> + </mxCell> + <mxCell id="4LD2Q_2ablrLRUKtAQnm-3" value="CARBS" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="4LD2Q_2ablrLRUKtAQnm-1" vertex="1"> + <mxGeometry y="52" width="140" height="26" as="geometry" /> + </mxCell> + <mxCell id="4LD2Q_2ablrLRUKtAQnm-4" value="FAT" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="4LD2Q_2ablrLRUKtAQnm-1" vertex="1"> + <mxGeometry y="78" width="140" height="32" as="geometry" /> + </mxCell> + <mxCell id="4LD2Q_2ablrLRUKtAQnm-5" value="PROTEINS" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="4LD2Q_2ablrLRUKtAQnm-1" vertex="1"> + <mxGeometry y="110" width="140" height="32" as="geometry" /> + </mxCell> + <mxCell id="4LD2Q_2ablrLRUKtAQnm-6" value="FIBERS" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacingLeft=4;" parent="4LD2Q_2ablrLRUKtAQnm-1" vertex="1"> + <mxGeometry y="142" width="140" height="30" as="geometry" /> + </mxCell> + <mxCell id="4LD2Q_2ablrLRUKtAQnm-7" value="SALT" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;spacingLeft=4;" parent="4LD2Q_2ablrLRUKtAQnm-1" vertex="1"> + <mxGeometry y="172" width="140" height="30" as="geometry" /> + </mxCell> + <mxCell id="4LD2Q_2ablrLRUKtAQnm-12" value="NutritionTable" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1"> + <mxGeometry x="720" y="390" width="260" height="250" as="geometry" /> + </mxCell> + <mxCell id="4LD2Q_2ablrLRUKtAQnm-13" value="<div>- table : Map&lt;Nutrition, BigDecimal&gt;</div><div><br></div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="4LD2Q_2ablrLRUKtAQnm-12" vertex="1"> + <mxGeometry y="26" width="260" height="24" as="geometry" /> + </mxCell> + <mxCell id="4LD2Q_2ablrLRUKtAQnm-14" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="4LD2Q_2ablrLRUKtAQnm-12" vertex="1"> + <mxGeometry y="50" width="260" height="8" as="geometry" /> + </mxCell> + <mxCell id="4LD2Q_2ablrLRUKtAQnm-15" value="<div>+ NutritionTable(double caloriesDouble, dounle carbsDouble, double fatsDouble, double proteinDouble, double fibersDouble, double saltDouble)</div><div>+ NutritionTable(List&lt;BigDecimal&gt; nutrition)</div><div>- NutritionTable()</div><div>+ empty()<br></div><div>+ getTable() : Map&lt;Nutrition, BigDecimal&gt;</div><div>+ get() : NutritionTable</div><div>+ @Override eqials(Object o) : boolean<br></div><div>+ @Override toString() : String</div><div>+ @Override hashCode() : int<br></div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="4LD2Q_2ablrLRUKtAQnm-12" vertex="1"> + <mxGeometry y="58" width="260" height="192" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-65" value="CategoryManager" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="4rBL8TMRcDE2g0Xyakx7-3"> + <mxGeometry x="320" y="200" width="240" height="430" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-66" value="<div>- log : Logger</div><div>- allCategories : Map&lt;Integer, Category&gt; <br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-65"> + <mxGeometry y="26" width="240" height="44" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-67" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-65"> + <mxGeometry y="70" width="240" height="8" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-68" value="<div>+ CategoryManager()</div><div>+ CategoryManager(List&lt;Category&gt; categories)</div><div>+ addCategory(String name, int colourCode)</div><div>+ addCategory(Category c)</div><div>+ deleteCategory(String name)</div><div>+ getAllCategories() : List&lt;Category&gt;</div><div>+ clearCategories()</div><div>- getCategoryByName(String name) : Optional&lt;Category&gt;<br></div><div><div>- getCategoryByName(String colourCode) : Optional&lt;Category&gt;</div><div>+ get(Integer key)) : Optional&lt;Category&gt;</div><div>+ getCategoryFromKeys(List&lt;Integer&gt; keys) List&lt;Category&gt;</div><div>+ numberToColorCodeString(int colourCode) : String</div><div><br></div><div>+ @Override equals(Object o) : boolean<br></div></div><div>+ @Depricate CategoryManager(Map&lt;Integer, Category&gt; categories)<br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-65"> + <mxGeometry y="78" width="240" height="352" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-70" value="Ingredient" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="4rBL8TMRcDE2g0Xyakx7-3"> + <mxGeometry x="40" y="654.96" width="220" height="290" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-71" value="<div>- code : String</div><div>- unit : Measurement</div><div>- name : String</div><div>- nutritionTable : NutritionTable</div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-70"> + <mxGeometry y="26" width="220" height="74" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-72" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-70"> + <mxGeometry y="100" width="220" height="8" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-73" value="<div>+ Ingredient(Measurement unit, String name, NutritionTable nutritionTable)</div><div>- calculateUniqueCode() : String<br></div><div>+ @Override getName() : String</div><div>+ @Override getNutritionTable() : NutritionTable</div><div>+ @Override getMeasurement() : Measurement</div><div>+ @Override getUniqueCode() : String</div><div>+ @Override equals(Object o) : boolean</div><div>+ @Override toString() : String<br></div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-70"> + <mxGeometry y="108" width="220" height="182" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-80" value="NutritionCalculator" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="4rBL8TMRcDE2g0Xyakx7-3"> + <mxGeometry x="840" y="230" width="310" height="140" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-81" value="<div>- log : Logger<br></div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-80"> + <mxGeometry y="26" width="310" height="34" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-82" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-80"> + <mxGeometry y="60" width="310" height="10" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-83" value="<div>+ calculateNautritionTable(Map&lt;TecipeComponent, Integer&gt; ingredients) : NutritionTable</div><div>+ calculateNutritionTable(MealPlan mealplan) : NutritionTable</div><div><br></div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-80"> + <mxGeometry y="70" width="310" height="70" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-84" value="Recipe" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="4rBL8TMRcDE2g0Xyakx7-3"> + <mxGeometry x="340" y="770" width="360" height="750" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-85" value="<div>- code : String</div><div>- name : String</div><div>- ingredients : Map&lt;String, Integer&gt;</div><div>- desctription : String</div><div>- preparation : List&lt;String&gt;</div><div>- categories : List&lt;Integer&gt;</div><div>- preparationTimeMins : int</div><div>- nutritionTable : NutritionTable</div><div>- creationTime : LocalDateTime</div><div>- filepathForImage : URL<br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-84"> + <mxGeometry y="26" width="360" height="150" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-86" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-84"> + <mxGeometry y="176" width="360" height="8" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-87" value="<div>+ Recipe( String name, Map&lt;RecipeComponent, Integer&gt; ingredients, String desctription, List&lt;String&gt; preparation, List&lt;Category&gt; categories, Integer preparationTimeMins)</div><div>+ Recipe( String name, Map&lt;RecipeComponent, Integer&gt; ingredients, String desctription, List&lt;String&gt; preparation, <br>List&lt;Category&gt; categories, Integer preparationTimeMins, NutritionTable nutritiontable)</div><div>+ Recipe( String name, Map&lt;String, Integer&gt; ingredients, <br>String desctription, List&lt;String&gt; preparation, <br>List&lt;Integer&gt; categories, Integer preparationTimeMins, NutritionTable nutritionTable, LocalDateTime creationTime, String code)</div><div>+ setName(String name) <br></div><div>+ getName() : String</div><div>+ getDescription() : String</div><div>+ setDescription(String description)</div><div>+ getPreparation()</div><div>+ setPreparartion(List&lt;String&gt; preparation)</div><div>+ setCategories(List&lt;Integer&gt; categories)</div><div>+ addCategorie(Category category)</div><div>+ setPerparationTimeMins(Integer preparationsTimeMins)</div><div>+ getCreationTime() : LocalDateTime</div><div>+ setNutritionTable(NutritionTable nutritiontable)</div><div>+ getNutritionTable()</div><div>+ getMeasurement() : Measurement</div><div>+ setIngredientFromRecipeComponents(Map&lt;RecipeComponent, Integer&gt; ingredients)</div><div>+ setIngredientsFromKeys(Map&lt;String, Integer&gt; ingredients)</div><div>- setCategoriesFromObjects(List&lt;Categories&gt; categories)</div><div>- recipeObjectMapToKeyMap(Map&lt;RecipeComponent, Integer&gt; map) : Map&lt;String, Integer&gt; <br></div><div>+ setImage(URL path) <br></div><div>- calculateUniqueCode() : String<br></div><div><br></div><div>+ @Override getMeasurement()</div><div>+ @Override equals(Object o) : boolean</div><div>+ @Override toString() : String</div><div>+ @Override getUniqueCode() : String<br></div><div><br></div><div><br></div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-84"> + <mxGeometry y="184" width="360" height="566" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-76" value="IngredientManager" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="4rBL8TMRcDE2g0Xyakx7-3"> + <mxGeometry x="880" y="1050" width="250" height="320" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-77" value="<div>- log : Logger<br></div><div>- map&lt;String, Ingredients&gt; : allIngredients</div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-76"> + <mxGeometry y="26" width="250" height="44" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-78" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-76"> + <mxGeometry y="70" width="250" height="8" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-79" value="<div>+ IngredientManager()</div><div>+IngredientManager(List&lt;Ingredient&gt; ingredients)</div><div>+ IngredientManager(Map&lt;String, Ingredient&gt; ingredients)</div><div>+ adIngredient(Ingredient in)</div><div>+ addIngredient(Measurement unit, String name, NutritionTable nutritionTable)</div><div>+ clearIngredients()</div><div>+ getIngredient(String code) : Optional&lt;Ingredient&gt;</div><div>+ getIngredient() : Map&lt;String, Ingredient&gt;</div><div>+ getIngredientFromKeys( Map&lt;String, Ingredient&gt; m) : Map&lt;Ingredient, Integer&gt; <br></div><div>- getIngredientByName(String name) : Optional&lt;Ingredient&gt;<br></div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-76"> + <mxGeometry y="78" width="250" height="242" as="geometry" /> + </mxCell> + <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-4" value="&lt;&lt;enum&gt;&gt;<br><b>Measurement</b>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#ffe6cc;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=#d79b00;" parent="4rBL8TMRcDE2g0Xyakx7-3" vertex="1"> + <mxGeometry x="30" y="1060" width="140" height="142" as="geometry" /> + </mxCell> + <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-5" value="PIECE" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="WwHfsR9ecwNkWHZ6sJ4B-4" vertex="1"> + <mxGeometry y="26" width="140" height="26" as="geometry" /> + </mxCell> + <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-6" value="GRAM" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="WwHfsR9ecwNkWHZ6sJ4B-4" vertex="1"> + <mxGeometry y="52" width="140" height="26" as="geometry" /> + </mxCell> + <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-7" value="MILLILITER" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="WwHfsR9ecwNkWHZ6sJ4B-4" vertex="1"> + <mxGeometry y="78" width="140" height="32" as="geometry" /> + </mxCell> + <mxCell id="WwHfsR9ecwNkWHZ6sJ4B-9" value="PINCH" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="WwHfsR9ecwNkWHZ6sJ4B-4" vertex="1"> + <mxGeometry y="110" width="140" height="32" as="geometry" /> + </mxCell> + <mxCell id="XnVSaR7xRqF0c78tSIC_-1" value="package : shoppingList" style="swimlane;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1"> + <mxGeometry x="1280" y="-590" width="300" height="390" as="geometry" /> + </mxCell> + <mxCell id="XnVSaR7xRqF0c78tSIC_-2" value="ShoppingList" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="XnVSaR7xRqF0c78tSIC_-1" vertex="1"> + <mxGeometry x="30" y="40" width="240" height="330" as="geometry" /> + </mxCell> + <mxCell id="XnVSaR7xRqF0c78tSIC_-3" value="<div>- log : Logger</div><div>- recipeManager : RecipeManager</div><div>- list : Map&lt;String, Boolean&gt;</div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="XnVSaR7xRqF0c78tSIC_-2" vertex="1"> + <mxGeometry y="26" width="240" height="64" as="geometry" /> + </mxCell> + <mxCell id="XnVSaR7xRqF0c78tSIC_-4" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="XnVSaR7xRqF0c78tSIC_-2" vertex="1"> + <mxGeometry y="90" width="240" height="8" as="geometry" /> + </mxCell> + <mxCell id="XnVSaR7xRqF0c78tSIC_-5" value="<div>+ AhoppingList(RecipeManager recipeManager)</div><div>+ShoppingList(Map&lt;String, Boolean&gt; shoppingListMap, RecipeManager recipeManager)</div><div>+ clear()</div><div>+ addToShoppingList(Ingredient ingredient)</div><div>+addToShoppingList(String key)<br></div><div>+ addAllToShoppingList(Recipe recipe)</div><div>+ flipStatus(Ingredient in)</div><div>+ flipStatus(String key)</div><div>+ removeAllBought()</div><div>+getList() : Map&lt;String, boolean&gt;</div><div><br></div><div>+ @Override equals(Object o) : boolean<br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="XnVSaR7xRqF0c78tSIC_-2" vertex="1"> + <mxGeometry y="98" width="240" height="232" as="geometry" /> + </mxCell> + <mxCell id="xz0VCGe2YetrdaeYra_O-1" value="package : mealPlan" style="swimlane;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="1250" y="414" width="400" height="426" as="geometry" /> + </mxCell> + <mxCell id="xz0VCGe2YetrdaeYra_O-2" value="MealPlan" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="xz0VCGe2YetrdaeYra_O-1" vertex="1"> + <mxGeometry x="20" y="39" width="360" height="330" as="geometry" /> + </mxCell> + <mxCell id="xz0VCGe2YetrdaeYra_O-3" value="<div>- plan : Map &lt;LocateDate, String &gt;<br></div><div><div>- RecipeManager : recipemanager</div><div>- log : Logger</div></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="xz0VCGe2YetrdaeYra_O-2" vertex="1"> + <mxGeometry y="26" width="360" height="64" as="geometry" /> + </mxCell> + <mxCell id="xz0VCGe2YetrdaeYra_O-4" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="xz0VCGe2YetrdaeYra_O-2" vertex="1"> + <mxGeometry y="90" width="360" height="8" as="geometry" /> + </mxCell> + <mxCell id="xz0VCGe2YetrdaeYra_O-5" value="<div>+ MealPlan(Map&lt;LoalDate, String&gt; plan, RecipeManager recipeManager) <br></div><div>+ MealPlan(RecipeManager recipeManager) <br></div><div>+ addRecipeToMealPlan(Recipe recipe, LocalDate date) <br></div><div>+ addRecipeToMealPlan()Recipe recipe, LocalDate date)<br></div><div>+ clear(LocateDate date) <br></div><div>+ clear()</div><div>+ getRecipeCodeForDay(LocalDate date) : optional&lt;String&gt;<br></div><div>+ getAllRecipiesFromPlan() : Map&gt;LocalDate, String&gt;</div><div>+ getAllRecipiesFromPlan() :Map&gt;LocalDate, String&gt;</div><div>+ removePastRecipies()</div><div>+ getNutritionTable(LocalDate date) : NutritionTable<br></div><div>- isDateValid(LocalDate date) : boolean</div><div><br></div><div>+ @Override equals(Object o) : boolean <br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="xz0VCGe2YetrdaeYra_O-2" vertex="1"> + <mxGeometry y="98" width="360" height="232" as="geometry" /> + </mxCell> + <mxCell id="lNXn1_JIS0mlgrxrveIr-5" value="Singleton : App" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1"> + <mxGeometry x="1232" y="50" width="420" height="294" as="geometry" /> + </mxCell> + <mxCell id="ev62EXm1IyDULqRkRese-39" value="" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;entryX=0.249;entryY=1.012;entryDx=0;entryDy=0;entryPerimeter=0;" parent="lNXn1_JIS0mlgrxrveIr-5" target="XnVSaR7xRqF0c78tSIC_-5" edge="1"> + <mxGeometry x="-1" y="3" relative="1" as="geometry"> + <mxPoint x="98" as="sourcePoint" /> + <mxPoint x="144.72000000000025" y="-458.41200000000015" as="targetPoint" /> + <Array as="points"> + <mxPoint x="98" y="-63" /> + <mxPoint x="138" y="-63" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="lNXn1_JIS0mlgrxrveIr-6" value="- recipeManager : RecipeManager" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="lNXn1_JIS0mlgrxrveIr-5" vertex="1"> + <mxGeometry y="26" width="420" height="26" as="geometry" /> + </mxCell> + <mxCell id="lNXn1_JIS0mlgrxrveIr-10" value="- shoppingList : ShoppingList<br>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="lNXn1_JIS0mlgrxrveIr-5" vertex="1"> + <mxGeometry y="52" width="420" height="26" as="geometry" /> + </mxCell> + <mxCell id="lNXn1_JIS0mlgrxrveIr-11" value="- mealPlan : MealPlan" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="lNXn1_JIS0mlgrxrveIr-5" vertex="1"> + <mxGeometry y="78" width="420" height="26" as="geometry" /> + </mxCell> + <mxCell id="h23uL9lWt6JHxaophjVK-1" value="- search : RecipeSearch" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="lNXn1_JIS0mlgrxrveIr-5" vertex="1"> + <mxGeometry y="104" width="420" height="26" as="geometry" /> + </mxCell> + <mxCell id="h23uL9lWt6JHxaophjVK-3" value="- lastSearchResults : List&lt;Recipe&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="lNXn1_JIS0mlgrxrveIr-5" vertex="1"> + <mxGeometry y="130" width="420" height="26" as="geometry" /> + </mxCell> + <mxCell id="BmttCFs_K1xAuYzUHSLz-15" value="- fileManager : FileManager" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="lNXn1_JIS0mlgrxrveIr-5" vertex="1"> + <mxGeometry y="156" width="420" height="26" as="geometry" /> + </mxCell> + <mxCell id="lNXn1_JIS0mlgrxrveIr-7" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="lNXn1_JIS0mlgrxrveIr-5" vertex="1"> + <mxGeometry y="182" width="420" height="8" as="geometry" /> + </mxCell> + <mxCell id="lNXn1_JIS0mlgrxrveIr-8" value="+ start() : void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="lNXn1_JIS0mlgrxrveIr-5" vertex="1"> + <mxGeometry y="190" width="420" height="26" as="geometry" /> + </mxCell> + <mxCell id="h23uL9lWt6JHxaophjVK-2" value="+ search(lastSearchResults, String query) : ArrayList&lt;Recipe&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="lNXn1_JIS0mlgrxrveIr-5" vertex="1"> + <mxGeometry y="216" width="420" height="26" as="geometry" /> + </mxCell> + <mxCell id="h23uL9lWt6JHxaophjVK-4" value="+ search(lastSearchResults, Category category) : ArrayList&lt;Recipe&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="lNXn1_JIS0mlgrxrveIr-5" vertex="1"> + <mxGeometry y="242" width="420" height="26" as="geometry" /> + </mxCell> + <mxCell id="BmttCFs_K1xAuYzUHSLz-9" value="+ save(this) : void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="lNXn1_JIS0mlgrxrveIr-5" vertex="1"> + <mxGeometry y="268" width="420" height="26" as="geometry" /> + </mxCell> + <mxCell id="ev62EXm1IyDULqRkRese-32" value="" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;entryX=1;entryY=0.11;entryDx=0;entryDy=0;entryPerimeter=0;exitX=-0.004;exitY=0.051;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="h23uL9lWt6JHxaophjVK-1" target="1PDsnecl4zy3zphxMVey-1" edge="1"> + <mxGeometry x="-1" y="3" relative="1" as="geometry"> + <mxPoint x="1210" y="160" as="sourcePoint" /> + <mxPoint x="1360" y="140" as="targetPoint" /> + <Array as="points"> + <mxPoint x="1190" y="155" /> + <mxPoint x="1190" y="100" /> + <mxPoint x="1160" y="100" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="ev62EXm1IyDULqRkRese-37" value="" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.305;exitY=0.969;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="BmttCFs_K1xAuYzUHSLz-9" target="xz0VCGe2YetrdaeYra_O-2" edge="1"> + <mxGeometry x="-1" y="3" relative="1" as="geometry"> + <mxPoint x="1310" y="370" as="sourcePoint" /> + <mxPoint x="1470" y="370" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="ev62EXm1IyDULqRkRese-43" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="BmttCFs_K1xAuYzUHSLz-15" edge="1"> + <mxGeometry x="-1" y="3" relative="1" as="geometry"> + <mxPoint x="1690" y="220" as="sourcePoint" /> + <mxPoint x="1920" y="200" as="targetPoint" /> + <Array as="points"> + <mxPoint x="1920" y="219" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="ev62EXm1IyDULqRkRese-44" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="ev62EXm1IyDULqRkRese-43" vertex="1" connectable="0"> + <mxGeometry x="0.7682" y="-1" relative="1" as="geometry"> + <mxPoint y="-10" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-3" value="Package Components " style="swimlane;whiteSpace=wrap;html=1;align=center;verticalAlign=middle;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1"> + <mxGeometry x="-760" y="-660" width="620" height="470" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-22" value="Componetens for JavaFX files to use " style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-3"> + <mxGeometry x="40" y="30" width="160" height="30" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-27" value="CetgoryCheckBox" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-3"> + <mxGeometry x="50" y="75" width="160" height="140" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-28" value="<div>- category : Category<br></div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-27"> + <mxGeometry y="26" width="160" height="34" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-29" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-27"> + <mxGeometry y="60" width="160" height="8" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-30" value="<div>+ CategoryCheckBox : Category category</div><div>+ getAssociatedCategory() : category<br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-27"> + <mxGeometry y="68" width="160" height="72" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-36" value="CategoryPreviewLabel" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-3"> + <mxGeometry x="240" y="75" width="160" height="140" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-37" value="- category : Category" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-36"> + <mxGeometry y="26" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-38" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-36"> + <mxGeometry y="52" width="160" height="8" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-39" value="<div>+ CategoryLabel : Category category</div><div>+ getAssociatedCategory() : category<br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-36"> + <mxGeometry y="60" width="160" height="80" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-40" value="Classname" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-3"> + <mxGeometry x="440" y="70" width="160" height="190" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-41" value="<div>- amount : int</div><div>- component : RecipeComponbent<br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-40"> + <mxGeometry y="26" width="160" height="54" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-42" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-40"> + <mxGeometry y="80" width="160" height="8" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-43" value="<div>+ IngredientLabel : int amount, RecipeComponent component</div><div>getAmount() : amount <br></div><div>getComponent() : component<br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-40"> + <mxGeometry y="88" width="160" height="102" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-48" value="RecipeVBox" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-3"> + <mxGeometry x="240" y="290" width="160" height="150" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-49" value="- recipe : Recipe" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-48"> + <mxGeometry y="26" width="160" height="26" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-50" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-48"> + <mxGeometry y="52" width="160" height="8" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-51" value="<div>+ RecipeVBox : Recipe recipe, CategoryManager categorymanager</div><div>+ getAssociatedRecipe() : recipe<br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-48"> + <mxGeometry y="60" width="160" height="90" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-52" value="Classname" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-3"> + <mxGeometry x="30" y="260" width="200" height="190" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-53" value="<div>- component : RecipeComponent</div><div>- amountTextField : TextField<br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-52"> + <mxGeometry y="26" width="200" height="54" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-54" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-52"> + <mxGeometry y="80" width="200" height="8" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-55" value="<div>+ IngredientSearchResultLabel : RecipeComponent component</div><div>+ validateAmountInput : boolean</div><div>+ getAmount() : amount<br></div><div>+ getComponent() : amountTextField<br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-52"> + <mxGeometry y="88" width="200" height="102" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-44" value="IngredientSearchResultLabel" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-3"> + <mxGeometry x="420" y="290" width="180" height="120" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-45" value="- base_Style : String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-44"> + <mxGeometry y="26" width="180" height="34" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-46" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-44"> + <mxGeometry y="60" width="180" height="8" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-47" value="+ IngredientSearchResultLabel : RecipeComponent component" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-44"> + <mxGeometry y="68" width="180" height="52" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-57" value="Exceptions" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="-760" y="-130" width="200" height="200" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-58" value="Controller" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="-530" y="-130" width="200" height="200" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-59" value="File System" style="swimlane;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1"> + <mxGeometry x="1770" y="-290" width="420" height="770" as="geometry" /> + </mxCell> + <mxCell id="BmttCFs_K1xAuYzUHSLz-11" value="FileManager" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="UTPdYlRnybRvfPgnSFpF-59" vertex="1"> + <mxGeometry x="20" y="50" width="360" height="430" as="geometry" /> + </mxCell> + <mxCell id="BmttCFs_K1xAuYzUHSLz-12" value="<div>- PATH_TO_DEFAULT_INGREDIENTS : String</div><div>- PATH_TO_USER_DATA : String</div><div>- log : Logger<br></div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="BmttCFs_K1xAuYzUHSLz-11" vertex="1"> + <mxGeometry y="26" width="360" height="54" as="geometry" /> + </mxCell> + <mxCell id="BmttCFs_K1xAuYzUHSLz-13" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="BmttCFs_K1xAuYzUHSLz-11" vertex="1"> + <mxGeometry y="80" width="360" height="8" as="geometry" /> + </mxCell> + <mxCell id="BmttCFs_K1xAuYzUHSLz-14" value="<div>+ serializedToFile(TastyPages app)</div><div>+ deserializedFromFilesystem() : TastyPages</div><div>- deserializedIngredientsManager(String path) : IngredientManager</div><div>- serializedIngredientManager(IngredientManager ingredientManager, Path path) <br></div><div>- deserializedRecipeManager(Path path) : RecipeManager</div><div>- serializedTecipeManager(RecipeManager recipemanager, Path path) <br></div><div>- deserializedCategoryManager(String json) : CategoryManager</div><div>- serializedcategoryManager(CategoryManager categoryManager, Path path)</div><div>- deserializedMealPlan(String json, RecipeManager recipeManager) : MealPlan</div><div>- serializedMealPlan(Mealplan mealplan, Path path)</div><div>- deserializedShoppingList(String json, RecipeManager recipeManager) : ShoppingList<br></div><div>- serializedShoppingList(ShoppingList shoppingList, RecipeManager recipeManager, Path path)</div><div>- recipeToJSON(Recipe recipe) : String</div><div>- ingredientToCSV(Ingredient ingredient) : String</div><div>- JSONtoRecipe(String json) : Recipe</div><div>+ getAbsolutePathFromResourceFolder(String p) : String</div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="BmttCFs_K1xAuYzUHSLz-11" vertex="1"> + <mxGeometry y="88" width="360" height="342" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-60" value="helpers" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="-530" y="130" width="200" height="200" as="geometry" /> + </mxCell> + <mxCell id="1PDsnecl4zy3zphxMVey-1" value="RecipeSearch" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1"> + <mxGeometry x="730" y="-310" width="300" height="250" as="geometry" /> + </mxCell> + <mxCell id="ev62EXm1IyDULqRkRese-26" value="<div>- log : Logger<br></div><div>- recipeManager : RecipeManager</div><div>- ingredientManager : IngredientManager</div><div><br></div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="1PDsnecl4zy3zphxMVey-1" vertex="1"> + <mxGeometry y="26" width="300" height="54" as="geometry" /> + </mxCell> + <mxCell id="ev62EXm1IyDULqRkRese-27" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="1PDsnecl4zy3zphxMVey-1" vertex="1"> + <mxGeometry y="80" width="300" height="8" as="geometry" /> + </mxCell> + <mxCell id="ev62EXm1IyDULqRkRese-28" value="<div>+ RecipeSearch(RecipeManager recipemanager, IngredientManager ingredientManager)</div><div>+ searchByQuery(List&lt;Recipe&gt; recipeToSearch, String query) : List&lt;Recipe&gt;<br></div><div>+ searchByCategory(List&lt;Recipe&gt; recipeToSearch, List&lt;Category&gt; categoryToSearch) : List&lt;Recipe&gt;<br></div><div>+ searchTroughNames(String query) : List&lt;RecipeComponent&gt;</div><div>- containsAnyToken(String input, RecipeComponent component) : boolean<br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="1PDsnecl4zy3zphxMVey-1" vertex="1"> + <mxGeometry y="88" width="300" height="162" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-95" value="CSVParser" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="1790" y="244" width="380" height="220" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-96" value="- log : Logger" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-95"> + <mxGeometry y="26" width="380" height="34" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-97" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-95"> + <mxGeometry y="60" width="380" height="10" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-98" value="<div>+ getIngredientFromCSV(String filepath, char split, String ... extract) : List&lt;Ingredient&gt;</div><div>- getIngredientFromLine(String line, char split, int[] idx) : Ingredient</div><div>- getColumnIndexes(String header, char splitChar, String ... extract) : int[]</div><div>- firstOccurenceOf(T[] arr, T element) : &lt;T&gt;</div><div>- parseNumberFromString(String candidate) : double</div><div>- getMeasurementFromString(String candidate) : String</div><div>- splitLine(String line, char splitChar) : List&lt;String&gt;</div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-95"> + <mxGeometry y="70" width="380" height="150" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-100" value="TypeAdapters" style="swimlane;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1"> + <mxGeometry x="-1169" y="170" width="570" height="710" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-101" value="CategoryManagerTypeAdapter" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-100"> + <mxGeometry x="25" y="50" width="250" height="110" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-103" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-101"> + <mxGeometry y="30" width="250" height="8" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-104" value="<div>+ @Override write(JsonWriter writer, CetegoryManager categoryManger)</div><div>+ @Override read(JsonReader reader) : CategoryManager<br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-101"> + <mxGeometry y="38" width="250" height="72" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-105" value="CategoryTypeAdapter" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-100"> + <mxGeometry x="25" y="178.96" width="245" height="150" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-106" value="- log : Logger" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-105"> + <mxGeometry y="26" width="245" height="34" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-107" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-105"> + <mxGeometry y="60" width="245" height="8" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-108" value="<div>+ @Override write(JsonWriter jsonWriter, Category category)</div><div>+ @Override read(JsonReadter jsonReader) : Category</div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-105"> + <mxGeometry y="68" width="245" height="82" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-109" value="extends TypeAdapter&lt;CategoryManager&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-100"> + <mxGeometry x="230" y="50" width="255" height="30" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-110" value="extends TypeAdapter&lt;Category&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-100"> + <mxGeometry x="230" y="178.96000000000004" width="190" height="30" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-111" value="MealPlanTypeAdapter" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-100"> + <mxGeometry x="25" y="360" width="245" height="160" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-112" value="- recipeManager RecipeManager" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-111"> + <mxGeometry y="26" width="245" height="24" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-113" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-111"> + <mxGeometry y="50" width="245" height="8" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-114" value="<div>+ MealPlanTypeAdapter(RecipeManager recipeManager)</div><div>+ @Override Write(JsonWriter writer, MealPlan mealPlan)</div><div>+ @Override read(JsonReader reader)</div><div>: MealPlan<br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-111"> + <mxGeometry y="58" width="245" height="102" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-115" value="NutritionTableTypeAdapter" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-100"> + <mxGeometry x="310" y="360" width="240" height="140" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-116" value="- log : Logger" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-115"> + <mxGeometry y="26" width="240" height="34" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-117" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-115"> + <mxGeometry y="60" width="240" height="8" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-118" value="<div>+ @Override write(JsonWriter jsonWriter, NutritionTable nutrotionTable)</div><div>+ @Override read(JsonReader jsonReader) : NutritionTable<br> </div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-115"> + <mxGeometry y="68" width="240" height="72" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-119" value="Classname" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-100"> + <mxGeometry x="305" y="208.95999999999998" width="245" height="130" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-120" value="- log : Logger" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-119"> + <mxGeometry y="26" width="245" height="34" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-121" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-119"> + <mxGeometry y="60" width="245" height="8" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-122" value="<div>+ @Override write(JsonWriter writer, Recipe recipe)</div><div>+ @Override read(JsonReader reader)<br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-119"> + <mxGeometry y="68" width="245" height="62" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-123" value="ShoppingListTypeAdapter" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-100"> + <mxGeometry x="25" y="530" width="252.5" height="160" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-124" value="- recipeManager : RecipeManager" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-123"> + <mxGeometry y="26" width="252.5" height="26" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-125" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-123"> + <mxGeometry y="52" width="252.5" height="8" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-126" value="<div>+ ShoppingListTypeAdapter(RecipeManager recipeManager)</div><div>+ @Override write(JsonWriter writer, ShoppingList shoppingList)</div><div>+ @Override read(JsonReader reader) : ShoppingList<br></div><div><br></div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-123"> + <mxGeometry y="60" width="252.5" height="100" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-128" value="Conf" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1"> + <mxGeometry x="170" y="-720" width="370" height="120" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-129" value="<div>- BUNDLE_NAME : String</div><div>- RESOURCE_BUNDLE : String<br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-128"> + <mxGeometry y="26" width="370" height="44" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-130" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-128"> + <mxGeometry y="70" width="370" height="8" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-131" value="<div>- Conf()</div><div>+ get(String key) : String</div><div><br></div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-128"> + <mxGeometry y="78" width="370" height="42" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-132" value="GUIDriver" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1"> + <mxGeometry x="170" y="-570" width="370" height="220" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-133" value="<div>- log : Logger</div><div>- STARTUP_VIEW : View</div><div>- PATH_TO_ICON : String<br></div><div>- stage : Stage</div><div>- model : TastyPages<br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-132"> + <mxGeometry y="26" width="370" height="84" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-134" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-132"> + <mxGeometry y="110" width="370" height="8" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-135" value="<div>+ main(String[] args)</div><div>+ getModel() : TastyPages</div><div>+ getApplicationSatge() : Stage</div><div>+ getStartUpView() : View<br></div><div><br></div><div>+ @Override start(Stage stage)</div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-132"> + <mxGeometry y="118" width="370" height="102" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-136" value="TastyPages" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1"> + <mxGeometry x="580" y="-690" width="320" height="310" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-137" value="<div>- recipeManager : RecipeManager</div><div>- ingredientManager : IngredientManager <br></div><div>- shoppingList : ShoppingList</div><div>- categoryManager : CategoryManager</div><div>- mealPlan : MealPlan</div><div>- log : Logger</div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-136"> + <mxGeometry y="26" width="320" height="94" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-138" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-136"> + <mxGeometry y="120" width="320" height="8" as="geometry" /> + </mxCell> + <mxCell id="UTPdYlRnybRvfPgnSFpF-139" value="<div>+ TastyPages(RecipeManager recipeManager, IngredientManager ingredientManager, CategoryManager categoryManager, MealPlan mealPla, ShoppingList shoppingList)</div><div>+ TastyPages(IngredientManager ingredientManager)</div><div>+ TastyPages()</div><div>+ getRecipeManager() : RecipeManager</div><div>+ getIngredientManager() : IngredientManager</div><div>+ getShoppingList() : ShoppingList</div><div>+ getCategoryManager() : CategoryManager</div><div>+ getMealPlan() : MealPlan</div><div>+ createRecipe()</div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="UTPdYlRnybRvfPgnSFpF-136"> + <mxGeometry y="128" width="320" height="182" as="geometry" /> + </mxCell> + <mxCell id="4db8lyx7makHAff3xmPV-1" value="Category" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1"> + <mxGeometry x="470" y="-240" width="245" height="230" as="geometry" /> + </mxCell> + <mxCell id="4db8lyx7makHAff3xmPV-2" value="<div>- code : Integer</div><div>- name : String</div><div>- colourCode : String <br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="4db8lyx7makHAff3xmPV-1" vertex="1"> + <mxGeometry y="26" width="245" height="54" as="geometry" /> + </mxCell> + <mxCell id="4db8lyx7makHAff3xmPV-3" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="4db8lyx7makHAff3xmPV-1" vertex="1"> + <mxGeometry y="80" width="245" height="8" as="geometry" /> + </mxCell> + <mxCell id="4db8lyx7makHAff3xmPV-4" value="<div>+ Category(String name, int colourName)</div><div>+ Category(String name, String colourName, int code)</div><div>+ getColourCode() : String</div><div>+ getName() : String&nbsp;</div><div>+ getCode() : String<br></div><div><br></div><div>+ @Override equals(Object o) : boolean</div><div>+ @Override toString() : String<br></div><div><br></div><div><br></div>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="4db8lyx7makHAff3xmPV-1" vertex="1"> + <mxGeometry y="88" width="245" height="142" as="geometry" /> + </mxCell> + </root> + </mxGraphModel> + </diagram> +</mxfile> diff --git a/src/main/java/mi/hdm/GuiController.java b/src/main/java/mi/hdm/GUIDriver.java similarity index 92% rename from src/main/java/mi/hdm/GuiController.java rename to src/main/java/mi/hdm/GUIDriver.java index 7ede93bfa7440c351f785e27913e51663fe85336..d0c2d1c131d1a9fa9d97fdae9cf5930d1bb454aa 100644 --- a/src/main/java/mi/hdm/GuiController.java +++ b/src/main/java/mi/hdm/GUIDriver.java @@ -12,8 +12,8 @@ import org.apache.logging.log4j.Logger; import java.io.InputStream; -public class GuiController extends Application { - private final static Logger log = LogManager.getLogger(GuiController.class); +public class GUIDriver extends Application { + private final static Logger log = LogManager.getLogger(GUIDriver.class); private final static View STARTUP_VIEW = View.MAIN; private final static String PATH_TO_ICON = "/images/Tasty_Pages_Icon.png"; @@ -40,7 +40,7 @@ public class GuiController extends Application { @Override public void start(Stage stage) throws Exception { - GuiController.stage = stage; + GUIDriver.stage = stage; Parent parent = STARTUP_VIEW.getScene(); final Scene scene = new Scene(parent, 1400, 800);