lhae-0.0.2: src/Controller/Menu/File/Export/Diagram/BoxPlotParameters.hs
module Controller.Menu.File.Export.Diagram.BoxPlotParameters
(Parameters(..),defaultParams)
where
import Util.Sexp (Sexp(..))
import Util.Sexpable (Sexpable(..),PSE,unexpected,recordToSexp
,recordFromSexp)
data Parameters = Parameters { columns :: [Int]
, boxWidth :: Double
, gaps :: Int
}
defaultParams :: Parameters
defaultParams = Parameters [] 0.5 1
instance Sexpable Parameters where
toSexp = recordToSexp
[ ("boxWidth", toSexp . boxWidth)
, ("gaps", toSexp . gaps)
]
fromSexp = recordFromSexp setParam defaultParams
setParam :: Parameters -> Sexp -> PSE Parameters
setParam p sexp =
case sexp of
List [Atom "boxWidth",w] -> do
parameter <- fromSexp w
return $ p {boxWidth = parameter}
List [Atom "gaps",g] -> do
parameter <- fromSexp g
return $ p {gaps = parameter}
_ -> unexpected sexp