Play's web page has changed. Doesn't work with new page.
CLASSES: -------------------------- Communication between Widget and ItemManager with Signals * Widget - User Interface * BrowserWidget - Internet browser * ItemManager * Categories - Contains list of urls * HtmlWorker - Gets html page * ItemWorker - Process page to items * CollectionWorker - Check that new item is valid - Add items to collection (check duplicates) * ItemCollection - Collection on all items, new items (stack) etc. * Item - Item data (name, url, prices) * Money - Helper class for currency WORKFLOW: ------------------------ All workers are Threads. 1) ItemManager generates urls for selected Category 2) User Defines Category and max price from Widget 3) User presses start 4) ItemManager passes url to HtmlWorker and starts it 4.1) HtmlWorker gets HtmlData from selected url 4.2) If HtmlData is empty and no more urls to process set HtmlWorker to finished 4.2) Else ItemManager places HtmlData to WorkQueue for ItemWorker 4.2.1) If ItemWorker not running start it 4.2.2) Go to 4 5) ItemWorker processes HtmlData from WorkQueue to Item objects 5.1) Items are placed to WorkQueue for CollectionWorker 5.2) If CollectionWorker is not running start it 5.3) If WorkQueue is empty and HtmlWorker is finished set ItemWorker to finished 5.3) If HtmlData in WorkQueue 5.3.1) Go to 5 5.3) If WorkQueue is empty do nothing (wait that is started in 4.2.1) 6) CollectionWorker gets items from WorkQueue and cheks valid items 6.1) Checks that items are valid and places those to ItemCollection 6.2) ItemManager send new items to Widget 6.3) If more items in WorkQueue 6.3.1) Go to 6 6.3) If ItemWorker is finished set CollectionWorker to finished 6.3) If WorkQueue is empty do nothing (wait that is started in 5.2)