-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathToggleTaskTimer.groovy
50 lines (41 loc) · 1.1 KB
/
ToggleTaskTimer.groovy
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
import org.freeplane.plugin.script.proxy.Proxy.Node
import groovy.swing.SwingBuilder
import pm.*
swing = new SwingBuilder()
def Node selectedNode = node
def task = new Task(selectedNode)
def iter = selectedNode.children.iterator()
def Node cn = null
while(iter.hasNext()) {
def n = iter.next()
if (n.text == "timetable") {
cn = n
break
}
}
if (!cn) {
cn = selectedNode.createChild()
cn.text = "timetable"
}
if (!cn.children) {
def entry = cn.createChild()
entry.text = "1"
def start = entry.createChild()
start.text = new Date().toString()
selectedNode.icons.add("25%")
} else {
def last = cn.children.last()
if (last.children.size() > 1) {
def lastIndex = last.text.toInteger()
def entry = last.parent.createChild()
entry.text = lastIndex + 1
def start = entry.createChild()
start.text = new Date().toString()
selectedNode.icons.add("25%")
} else {
def stop = last.createChild()
stop.text = new Date().toString()
selectedNode.icons.remove("25%")
}
}
cn.setFolded(true)