module FPPrac.Trees.RoseTree
        ( RoseTree(..)
        , showTree
        , showTreeList
        , exampleTree
        ) where

import EventLoop.Output.Single (outSingle)
import EventLoop.Output
import EventLoop.CommonTypes
import FPPrac.Trees.GeneralTree

data RoseTree = RoseNode String [RoseTree]
                deriving (Show, Eq)

                
                
                
------------------------
instance GeneralizeTree RoseTree where
    generalizeTree (RoseNode str children) = GeneralTreeBox content children'WithLines
                                            where
                                                content = [GeneralNode (0,0,0) 10, GeneralNodeText (0,0,0) str]
                                                children'WithLines = zip (repeat line) (map generalizeTree children)
                                                line = GeneralLine (0,0,0)
 
exampleTree = RoseNode "z"
                        [ RoseNode "aaa"
                                    [ RoseNode "bbb"
                                                [ RoseNode "ccc" [],
                                                  RoseNode "ddd" []
                                                ],
                                      RoseNode ""
                                                [RoseNode "fff" [],
                                                 RoseNode "ggg" [],
                                                 RoseNode "hhh" []
                                                ],
                                      RoseNode "iii"
                                                [RoseNode "" []
                                                ]
                                    ],
                          RoseNode "kkk"
                                    [RoseNode "lll" [],
                                     RoseNode "mmm"
                                               [RoseNode "nnn"
                                                          [RoseNode "q" [],
                                                           RoseNode "r" []
                                                          ],
                                                RoseNode "ooo" [],
                                                RoseNode "ppp" []
                                               ]
                                    ]
                        ]