some fix
[gargantext.git] / src / Gargantext / Viz / Phylo / View / Export.hs
index 5d6e8d0e903a6a3d45c15ceff895f25680118e58..99549fcf620b50b1512cac1d82bd431c67c465ed 100644 (file)
@@ -26,18 +26,34 @@ import Data.GraphViz.Types.Monadic
 import Data.List        ((++),unwords,concat,sortOn,nub)
 import Data.Map         (Map,toList)
 import Data.Maybe       (isNothing,fromJust)
-import Data.Text.Lazy   (fromStrict, pack)
+import Data.Text.Lazy   (fromStrict, pack, unpack)
 
 import qualified Data.Text as T
 import qualified Data.Text.Lazy as T'
 import qualified Data.GraphViz.Attributes.HTML as H
 
 import Gargantext.Prelude
-import Gargantext.Viz.Phylo
+import Gargantext.Viz.Phylo hiding (Dot)
 import Gargantext.Viz.Phylo.Tools
 
+
+import Prelude (writeFile)
+import System.FilePath
+
 type DotId = T'.Text
 
+
+---------------------
+-- | Dot to File | --
+---------------------
+
+dotToFile :: FilePath -> DotGraph DotId -> IO ()
+dotToFile filePath dotG = writeFile filePath $ dotToString dotG
+
+dotToString :: DotGraph DotId  -> [Char]
+dotToString dotG = unpack (printDotGraph dotG)
+
+
 --------------------------
 -- | PhyloView to DOT | --
 --------------------------
@@ -105,7 +121,7 @@ toDotLabel lbl = StrLabel $ fromStrict lbl
 -- | To set a Peak Node
 setPeakDotNode :: PhyloBranch -> Dot DotId
 setPeakDotNode pb = node (toBranchDotId $ pb ^. pb_id) 
-                      ([FillColor [toWColor CornSilk], FontName "Arial", FontSize 40, Shape Egg, Style [SItem Bold []], Label (toDotLabel $ pb ^. pb_label)]
+                      ([FillColor [toWColor CornSilk], FontName "Arial", FontSize 40, Shape Egg, Style [SItem Bold []], Label (toDotLabel $ pb ^. pb_peak)]
                        <> (setAttrFromMetrics $ pb ^. pb_metrics))
 
 
@@ -187,7 +203,7 @@ viewToDot pv = digraph ((Str . fromStrict) $ pv ^. pv_title)
 
                             mapM setDotNode $ filterNodesByPeriod prd $ filterNodesByLevel (pv ^. pv_level) (pv ^.pv_nodes)
                           
-                     ) $ getViewPeriods pv
+                     ) $ (pv ^. pv_periods)
 
                 -- set the edges : from peaks to nodes, from nodes to nodes, from periods to periods 
 
@@ -195,7 +211,7 @@ viewToDot pv = digraph ((Str . fromStrict) $ pv ^. pv_title)
 
                 _ <- mapM setDotEdge $ filterEdgesByLevel (pv ^. pv_level) $ filterEdgesByType PeriodEdge (pv ^. pv_edges)
 
-                mapM setDotPeriodEdge $ listToSequentialCombi $ getViewPeriods pv
+                mapM setDotPeriodEdge $ listToSequentialCombi $ (pv ^. pv_periods)