@@ -35,6 +35,7 @@ class ToM{
3535 select : ' ToM_select' ,
3636 openMap : ' ToM_openMap' ,
3737 openTutMap : ' ToM_openTutMap' ,
38+ showNode : ' ToM_showNode' ,
3839 ]
3940
4041 static final exeHowIcons = [' emoji-1F507' , ' emoji-2328' , ' emoji-1F5B1' ]
@@ -117,6 +118,9 @@ class ToM{
117118 case styles. openTutMap:
118119 addInspectPane(myPanel, tutNode)
119120 break
121+ case styles. showNode:
122+ addShowNodePane(myPanel, tutNode)
123+ break
120124 default :
121125 ui. informationMessage(' node style not defined' )
122126 break
@@ -214,12 +218,12 @@ class ToM{
214218 }
215219 }
216220
217- def static gotoAction (myP ,targetNode , backNode ){
218- myP. removeAll()
219- addReturnPane(myP, backNode)
220- fillPage(myP, targetNode, true , false )
221- addReturnPane(myP, backNode)
222- }
221+ def static gotoAction (myP ,targetNode , backNode ){
222+ myP. removeAll()
223+ addReturnPane(myP, backNode)
224+ fillPage(myP, targetNode, true , false )
225+ addReturnPane(myP, backNode)
226+ }
223227
224228 def static addReturnPane (myP , backNode ){
225229 def msgHtml = " Return to '${ backNode.text} ' page"
@@ -423,6 +427,39 @@ class ToM{
423427 myP. add(buttonPanel, tomui. GBC )
424428 }
425429
430+ def static addShowNodePane (myP , nodo ){
431+ def nodos = nodo. children. findAll{ n -> n. link && (n. link. node || (! n. link. node && ! n. link. file && n. link. uri. scheme == ' file' ))}
432+ nodos. each{ n ->
433+ def msgHtml = " Click to show ${ n.text} "
434+ def bttnText = " goto Node"
435+ def bttnToolTip = " Click to show ${ n.text} "
436+ def bttnAction
437+ if (n. link. node){
438+ bttnAction = { e ->
439+ def tNode = n. link. node
440+ def m = c. mapLoader(tNode. map. file). withView()// .selectNodeById(pageNodeId)
441+ m. load()
442+ tNode. pathToRoot* . folded = false
443+ c. select(tNode)
444+ c. centerOnNode(tNode)
445+ }
446+ } else {
447+ bttnAction = { e ->
448+ def path = n. link. uri. path. drop(1 )
449+ def id = n. link. uri. fragment
450+ def m = c. mapLoader(path). withView()// .selectNodeById(pageNodeId)
451+ m. load()
452+ def tNode = m. mindMap. node(id)
453+ tNode. pathToRoot* . folded = false
454+ c. select(tNode)
455+ c. centerOnNode(tNode)
456+ }
457+ }
458+ def buttonPanel = tomui. createButtonPanel(msgHtml,bttnText,bttnToolTip, bttnAction, false )
459+ myP. add(buttonPanel, tomui. GBC )
460+ }
461+ }
462+
426463 def static addTOCPane (myP ,nodo ){
427464 def titleNodes = getNewPageNodes(getTutorialNode(nodo))
428465 def pane = tomui. createEmptyGridBagPanel()
0 commit comments