26 lines
845 B
Elm
26 lines
845 B
Elm
module SeqSim.Update exposing (update)
|
|
import SeqSim.Model exposing (Model, Msg(..))
|
|
|
|
update : Msg -> Model -> (Model, Cmd Msg)
|
|
update msg m =
|
|
case msg of
|
|
AddProgram -> ({ m | programs = m.programs ++ [""] }, Cmd.none)
|
|
ChangeProgram i ns ->
|
|
( { m
|
|
| programs = List.indexedMap (\j n -> if i == j then ns else n) m.programs
|
|
, selected = Nothing
|
|
}
|
|
, Cmd.none
|
|
)
|
|
DeleteProgram i ->
|
|
( { m
|
|
| programs = List.take i m.programs ++ List.drop (i+1) m.programs
|
|
, selected = Nothing
|
|
}
|
|
, Cmd.none
|
|
)
|
|
ChangeVariables s ->
|
|
( { m | variables = s, selected = Nothing }, Cmd.none )
|
|
SelectOutcome i ->
|
|
( { m | selected = Just i }, Cmd.none )
|