lhae-0.0.2: src/Controller/Cell.hs
module Controller.Cell (getInput,updateInView
,showContent,showSelectedContent)
where
import Control.Applicative ((<$>))
import Control.Monad (forM_)
import Controller (Controller,onGridModel,onGridView,onView)
import View.Component.Grid (setValue,getCursorPos)
import View.FormulaInput (logString)
import Model.Grid (getCell)
import Model.Cell (showValue,input,value)
import Model.CellContent (CellValue(Error))
import CellCoordinate (CellCoord)
getInput :: CellCoord -> Controller String
getInput coord = input <$> (onGridModel $ getCell coord)
updateInView :: [CellCoord] -> Controller ()
updateInView coords =
forM_ coords $ \c -> do cell <- onGridModel $ getCell c
onGridView $ setValue c $ showValue cell
showContent :: CellCoord -> Controller ()
showContent coords = do
cell <- onGridModel $ getCell coords
let info = case value cell of
Error e -> show e
_ -> input cell
onView $ logString info
showSelectedContent :: Controller ()
showSelectedContent = onGridView getCursorPos >>= showContent