@@ -12,6 +12,7 @@ type MindMap struct {
12
12
13
13
func New (source * xmlfile.Node , filename string ) * MindMap {
14
14
root := newXMLNode (source , nil )
15
+ root .Value .End ()
15
16
return & MindMap {
16
17
Root : root ,
17
18
Selected : root ,
@@ -24,6 +25,7 @@ func (m *MindMap) Export() *xmlfile.Node {
24
25
}
25
26
26
27
func (m * MindMap ) Select (node * Node ) {
28
+ m .Selected .Value .Home ()
27
29
m .Selected = node
28
30
m .Selected .Value .End ()
29
31
}
@@ -34,39 +36,45 @@ func (m *MindMap) Every(fn func(node *Node)) {
34
36
35
37
func (m * MindMap ) Down () {
36
38
if node := m .Selected .down (); node != nil {
39
+ m .Selected .Value .Home ()
37
40
m .Selected = node
38
41
m .Selected .Value .End ()
39
42
}
40
43
}
41
44
42
45
func (m * MindMap ) Up () {
43
46
if node := m .Selected .up (); node != nil {
47
+ m .Selected .Value .Home ()
44
48
m .Selected = node
45
49
m .Selected .Value .End ()
46
50
}
47
51
}
48
52
49
53
func (m * MindMap ) NewChildNode () {
54
+ m .Selected .Value .Home ()
50
55
m .Selected = m .Selected .newChild ()
51
56
}
52
57
53
58
func (m * MindMap ) NewNextNode () {
54
59
if m .Selected == m .Root {
55
60
return
56
61
}
62
+ m .Selected .Value .Home ()
57
63
m .Selected = m .Selected .newNext ()
58
64
}
59
65
60
66
func (m * MindMap ) DeleteNode () {
61
67
if m .Selected == m .Root {
62
68
return
63
69
}
70
+ m .Selected .Value .Home ()
64
71
m .Selected = m .Selected .remove ()
65
72
m .Selected .Value .End ()
66
73
}
67
74
68
75
func (m * MindMap ) Adopt (node * Node , newParent * Node , beforeNode * Node ) {
69
76
newParent .insertBefore (node , beforeNode )
77
+ m .Selected .Value .Home ()
70
78
m .Selected = node
71
79
m .Selected .Value .End ()
72
80
}
@@ -83,6 +91,10 @@ func (m *MindMap) Insert(alpha rune) {
83
91
m .Selected .Value .Insert (alpha )
84
92
}
85
93
94
+ func (m * MindMap ) InsertNL () {
95
+ m .Selected .Value .InsertNL ()
96
+ }
97
+
86
98
func (m * MindMap ) Backspace () {
87
99
m .Selected .Value .Backspace ()
88
100
}
0 commit comments