-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUIHelper.elm
63 lines (53 loc) · 2.04 KB
/
UIHelper.elm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
module UIHelper exposing (..)
import MapNode exposing (..)
import MapModel exposing (..)
import MapMsg exposing (..)
import MapSvg exposing (..)
import ConnectorUI exposing (..)
import Html exposing (..)
import Html.Attributes exposing (..)
import Html.Events exposing (..)
getPropertyPanel : Model -> Html Msg
getPropertyPanel model =
case model.actionState of
InspectingNode x -> propertyPanelSelectedNode x
CreatingNode -> propertyPanelCreate model.nodeData.node
ConnectingNodes x -> getNodeConnectionPanel model
_ -> propertyPanelNormal
getSidePanelNodeAttributes : Model -> MapNode -> List (Attribute Msg)
getSidePanelNodeAttributes model node =
[ onClick (InspectNode node)
, class (case model.actionState of
InspectingNode x ->
case x.id == node.id of
True -> "selectedNodeListDiv"
False -> "nodeListDiv"
_ -> "nodeListDiv") ]
createButton : Html Msg
createButton = button [ onClick (CreateNode FinishNode)] [ text "Create Node" ]
propertyPanelNormal : Html Msg
propertyPanelNormal =
div [ class "divPropertyPanel" ] [ text "Property Panel" ]
propertyPanelSelectedNode : MapNode -> Html Msg
propertyPanelSelectedNode node =
div [ class "divPropertyPanel" ] [
div [] [
span [ class "propName" ] [ text "Id: "]
,span [ class "propValue" ] [ text (toString node.id) ] ]
,div [] [
span [ class "propName" ] [ text "DisplayText: "]
,span [ class "propValue" ] [ text node.displayText ] ]
,div [] [
span [ class "propName" ] [ text "Connectors : "]
,span [ class "propValue" ] [ ul [] (ConnectorUI.nodeConnectorList node) ] ]
]
propertyPanelCreate : MapNode -> Html Msg
propertyPanelCreate node = div [ class "divPropertyPanel" ] [
div [] [ text "Id: ", text (toString node.id) ]
,div [ onInput (\x -> CreateNode (DisplayTxt x)) ] [ text "Display Text: ", input [ placeholder "Display Txt" ] [] ]
,createButton
]
getSvgPanel : Model -> Html Msg
getSvgPanel model = div [ class "divSvgPanel" ] [
genSvg model.nodes model
]