+++ /dev/null
-module BinSearchTreeImage\r
-\r
-/* Instructions:\r
-\r
-(1) copy BinTree.(i/d)cl and BinSearchTree.(i/d)cl from Practicum to\r
- {iTasks-SDK}\Experiments\SVG_tests\\r
- \r
-(2) in these modules change the type\r
-\r
- :: Tree a = Node a (Tree a) (Tree a) | Leaf\r
- \r
- to\r
- \r
- :: BTree a = BLeaf | BNode a (BTree a) (BTree a) // ORDER OF DATACONSTRUCTORS IS ESSENTIAL!!\r
- \r
- and adapt the corresponding function definitions.\r
- \r
-(3) this main file (BinSearchTreeImage.icl) must be in the same folder:\r
- {iTasks-SDK}\Experiments\SVG_tests\\r
- \r
-(4) create a new project and set de environment to 'iTasks'\r
-\r
-(5) Bring-Up-To-Date and start generated application\r
-\r
-(6) Open a browser and navigate to localhost.\r
- The application creates two tasks:\r
- (a) The task on the left allows you to enter subsequent elements that are inserted in the tree, one after another.\r
- (b) The task on the right must be finished by you by writing the function treeImage. This function must render the tree structure in such a way\r
- that Nodes of the same depth have the same y-coordinate, and the root having the smallest y-coordinate.\r
-*/\r
-\r
-import iTasks // de algemene iTask API\r
-import iTasks.API.Extensions.SVG.SVGlet // specialiseer task editors\r
-from StdFunc import flip\r
-\r
-import BinSearchTree // type definition of Tree and sample trees z0 .. z8\r
-derive class iTask BTree\r
-\r
-Start :: *World -> *World\r
-Start world = startEngine [publish "/" (WebApp []) (\_ -> task)] world\r
-\r
-task :: Task [Int]\r
-task = withShared [] (\sharedList ->\r
- ( (updateSharedInformation (Title "Edit list") [] sharedList <<@ ArrangeHorizontal)\r
- -||-\r
- (viewSharedInformation (Title "Tree view") [imageView treeImage` (\_ _ -> Nothing)] sharedList <<@ ArrangeHorizontal)\r
- ) <<@ ArrangeHorizontal\r
- ) <<@ FullScreen\r
-\r
-font = normalFontDef "Courier New" fonthoogte\r
-fonthoogte = 14.0\r
-\r
-treeImage` :: [Int] *TagSource -> Image m\r
-treeImage` nrs tags = treeImage (foldl (flip insertTree) BLeaf nrs) tags\r
-\r
-treeImage :: (BTree Int) *TagSource -> Image m\r
-treeImage tree ts = text (normalFontDef "Courier New" 12.0) "I need to draw a tree!"\r