11module Building exposing (Model , Msg (..) , PersistentModel (..) , editingButtons , init , initPModel , onEnter , onExit , subscriptions , update , updateArrowPos , updateStatePos , view )
22
33import Browser.Events
4- import Debug
54import Dict exposing (Dict )
65import Environment exposing (Environment )
76import GraphicSVG exposing (..)
87import Helpers exposing (..)
98import Json.Decode as D
109import Machine exposing (..)
10+ import Mistakes exposing (..)
1111import Set
1212import SharedModel exposing (SharedModel )
1313import Task
@@ -148,34 +148,6 @@ update env msg ( model, pModel, sModel ) =
148148 isValidTransition =
149149 checkTransitionValid newTrans
150150
151- oldTransitionMistakes =
152- oldMachine. transitionMistakes
153-
154- newTransitionMistakes =
155- if isValidTransition then
156- case oldTransitionMistakes of
157- Just setOfMistakes ->
158- let
159- newSetOfMistakes =
160- Set . remove newTransID setOfMistakes
161- in
162- if Set . isEmpty newSetOfMistakes then
163- Nothing
164-
165- else
166- Just newSetOfMistakes
167-
168- Nothing ->
169- Nothing
170-
171- else
172- case oldTransitionMistakes of
173- Just setOfMistakes ->
174- Just <| Set . insert newTransID setOfMistakes
175-
176- Nothing ->
177- Just <| Set . singleton newTransID
178-
179151 newDelta : Delta
180152 newDelta =
181153 Dict . update st
@@ -209,7 +181,6 @@ update env msg ( model, pModel, sModel ) =
209181 | delta = newDelta
210182 , transitionNames = Dict . insert newTransID newTrans oldMachine. transitionNames
211183 , stateTransitions = Dict . insert ( st, newTransID, s1 ) newTransPos oldMachine. stateTransitions
212- , transitionMistakes = newTransitionMistakes
213184 }
214185 }
215186 )
@@ -489,15 +460,11 @@ update env msg ( model, pModel, sModel ) =
489460 , stateTransitions = newStateTransitions
490461 , stateNames = Dict . remove stId oldMachine. stateNames
491462 , transitionNames = Dict . diff oldMachine. transitionNames removedTransitions
492- , transitionMistakes = newTMistakes
493463 }
494464
495465 newStateTransitions =
496466 Dict . filter ( \ ( _, t, _ ) _ -> not <| Dict . member t removedTransitions) oldMachine. stateTransitions
497467
498- newTMistakes =
499- List . foldr ( \ tId mistakes -> tMistakeRemove ( first tId) mistakes) oldMachine. transitionMistakes removedTransitionsLst
500-
501468 removedTransitionsLst =
502469 List . map ( \ ( _, t, _ ) -> ( t, () )) <| Dict . keys <| Dict . filter ( \ ( s0, _, s1 ) _ -> s0 == stId || s1 == stId) oldMachine. stateTransitions
503470
@@ -516,14 +483,10 @@ update env msg ( model, pModel, sModel ) =
516483 | delta = newDelta
517484 , stateTransitions = newStateTransitions
518485 , transitionNames = Dict . remove tId oldMachine. transitionNames
519- , transitionMistakes = newTMistakes
520486 }
521487
522488 newStateTransitions =
523489 Dict . filter ( \ ( _, tId0, _ ) _ -> tId /= tId0) oldMachine. stateTransitions
524-
525- newTMistakes =
526- tMistakeRemove tId oldMachine. transitionMistakes
527490 in
528491 ( ( { model | machineState = Regular }, pModel, { sModel | machine = newMachine } ) , True , Cmd . none )
529492
@@ -572,20 +535,9 @@ update env msg ( model, pModel, sModel ) =
572535 isValidTransition =
573536 checkTransitionValid newTransitions
574537
575- oldTransitionMistakes =
576- oldMachine. transitionMistakes
577-
578- newTransitionMistakes =
579- if isValidTransition then
580- tMistakeRemove tId oldTransitionMistakes
581-
582- else
583- tMistakeAdd tId oldTransitionMistakes
584-
585538 newMachine =
586539 { oldMachine
587540 | transitionNames = Dict . insert tId newTransitions oldMachine. transitionNames
588- , transitionMistakes = newTransitionMistakes
589541 }
590542 in
591543 ( ( { model | machineState = Regular }, pModel, { sModel | machine = newMachine } ) , True , Cmd . none )
@@ -635,6 +587,9 @@ view env ( model, pModel, sModel ) =
635587
636588 winY =
637589 toFloat <| second env. windowSize
590+
591+ transMistakes =
592+ getTransitionMistakes sModel. machine
638593 in
639594 group
640595 [ rect winX winY
@@ -669,7 +624,7 @@ view env ( model, pModel, sModel ) =
669624
670625 _ ->
671626 group []
672- , GraphicSVG . map MachineMsg <| Machine . view env model. machineState sModel. machine Set . empty
627+ , GraphicSVG . map MachineMsg <| Machine . view env model. machineState sModel. machine Set . empty transMistakes
673628 , editingButtons model |> move ( winX / 2 - 30 , - winY / 2 + 25 )
674629 ]
675630
@@ -766,17 +721,3 @@ snapIcon =
766721 ]
767722 |> move ( 5 , - 10 )
768723 ]
769-
770-
771- checkTransitionValid : Set .Set String -> Bool
772- checkTransitionValid set =
773- case Set . member " \\ epsilon" set of
774- False ->
775- True
776-
777- True ->
778- if Set . size set == 1 then
779- True
780-
781- else
782- False
0 commit comments