packages feed

lhae-0.0.2: src/Controller/Menu/File/NewClose.hs

module Controller.Menu.File.NewClose 
    (newEventHandler,closeEventHandler,closeAllEventHandler)
    where

import Control.Monad (forM_,when)
import Controller (Controller,onView,onGridModel)
import qualified Controller.Grid as Grid
import qualified Controller.Menu.File.Save as Save
import qualified Controller.Menu.Table.Add as Add
import Model.Grid (getFilePath)
import View.Dialog.Simple (confirm)
import View (isGridOpen)
import I18n (__)

newEventHandler,closeEventHandler,closeAllEventHandler :: Controller ()
newEventHandler = do
  Grid.new Nothing
  forM_ [1..5] $ \_ -> Add.addRow Nothing
  forM_ [1..5] $ \_ -> Add.addColumn Nothing

closeEventHandler = do
  saveFirst <- 
      do filePath <- onGridModel getFilePath
         case filePath of
           Nothing -> onView $ confirm (__ "Save?") (__ "Save?")
           Just f -> onView $ confirm (__ "Save?") 
                     $ unwords [__ "Save as",f,"?"]
  when saveFirst Save.saveEventHandler
  Grid.deleteCurrent

closeAllEventHandler = do
  closeEventHandler
  stillOpen <- onView isGridOpen
  when stillOpen closeAllEventHandler