#BlueJ class context comment0.target=ShopperGUI comment0.text=\r\n\ A\ JavaFX\ GUI\ that\ simulates\ a\ small\ shop.\ \r\n\ Items\ are\ loaded\ from\ a\ CSV\ file,\ and\ the\ user\ can\ "buy"\ items\ using\ \r\n\ \r\n\ @author\ Henry\ Curtis\r\n\ @version\ 08/10/2025\r\n comment1.params=stage comment1.target=void\ start(javafx.stage.Stage) comment1.text=\r\n\ Initializes\ the\ JavaFX\ stage\ and\ layout,\ then\ populates\ it\ with\ shop\ info.\r\n comment10.params=text comment10.target=void\ printText(java.lang.String) comment10.text=\r\n\ Appends\ text\ to\ the\ text\ area.\r\n comment11.params= comment11.target=void\ scrollToBottom() comment11.text=\r\n\ Auto-scrolls\ the\ text\ area\ to\ the\ bottom\r\n comment2.params= comment2.target=java.util.Map\ loadConfig() comment2.text=\r\n\ Reads\ configuration\ values\ from\ "Config.txt"\ into\ a\ HashMap.\r\n\ If\ useConfig\=false,\ the\ file\ is\ missing,\ or\ *any*\ invalid/missing\ entry\ is\ found,\r\n\ all\ values\ are\ discarded\ and\ default\ layout\ values\ are\ used.\r\n comment3.params= comment3.target=void\ loadMenuItems() comment3.text=\r\n\ Reads\ "Menu_Items.txt"\ and\ stores\ each\ row\ as\ [ID,\ category,\ name,\ price].\r\n comment4.params= comment4.target=void\ buildGUI() comment4.text=\r\n\ Builds\ the\ GUI\:\r\n\ -\ Loads\ menu\ items\ from\ CSV\ (using\ loadMenuItems\ function)\r\n\ -\ Creates\ buttons\ for\ each\ category\ and\ item\r\n\ -\ Adds\ totalCost\ display,\ text\ area,\ and\ control\ buttons\ (Undo,\ Clear,\ Finish).\r\n comment5.params=item comment5.target=void\ handlePurchase(Item) comment5.text=\r\n\ Attempts\ to\ purchase\ an\ item\:\r\n\ Deducts\ totalCost,\ adds\ item\ to\ basket,\ and\ updates\ display.\r\n comment6.params= comment6.target=void\ defaultTextOutput() comment6.text=\r\n\ Resets\ the\ text\ area\ to\ default\ instructions\ and\ prints\ menu\ items.\r\n comment7.params= comment7.target=void\ handleUndo() comment7.text=\r\n\ Removes\ the\ most\ recent\ item\ from\ basket\ and\ refunds\ its\ price.\r\n comment8.params= comment8.target=void\ handleClear() comment8.text=\r\n\ Clears\ all\ items\ from\ basket,\ refunds\ totalCost,\ and\ resets\ text\ area.\r\n comment9.params= comment9.target=void\ handleFinish() comment9.text=\r\n\ Prints\ a\ condensed\ order\ summary\ of\ all\ items\ in\ the\ basket,\r\n\ grouping\ identical\ items\ together\ and\ showing\ their\ total\ cost.\r\n numComments=12