Index: library/lib/nxdoc-html.tcl
===================================================================
diff -u -r187fbd20a453ae9d73e9b48f88b8d6a8c79685c2 -r30410351eef652c4e89ab87475b28cead6add6ac
--- library/lib/nxdoc-html.tcl (.../nxdoc-html.tcl) (revision 187fbd20a453ae9d73e9b48f88b8d6a8c79685c2)
+++ library/lib/nxdoc-html.tcl (.../nxdoc-html.tcl) (revision 30410351eef652c4e89ab87475b28cead6add6ac)
@@ -49,6 +49,7 @@
:public method statustoken {} {
set token ""
set obj [:origin]
+ #set obj [current]
set prj [:current_project]
if {[$prj is_validated]} {
if {[$obj eval {info exists :pdata}]} {
@@ -127,6 +128,32 @@
return $ownedParts
}
+
+ :public method navigatable_parts {mergeParts:optional} {
+ #
+ # TODO: Should I wrap up delegating calls to the originator
+ # entity behind a unified interface (a gatekeeper?)
+ #
+ set ownedParts [[:origin] owned_parts \
+ -where "!\${:@stashed}" \
+ -class ::nx::doc::StructuredEntity]
+
+ if {[info exists mergeParts]} {
+ dict for {feature featureInstances} $ownedParts {
+ if {![dict exists $mergeParts $feature]} {
+ dict set mergeParts $feature $featureInstances
+ } else {
+ set prevInst [lindex [dict get $mergeParts $feature] 1]
+ lappend prevInst {*}$featureInstances
+ dict set mergeParts $feature [lsort -unique $prevInst]
+ }
+ }
+ return $mergeParts
+ }
+
+ return $ownedParts
+ }
+
:method listing {{-inline true} script} {
set listing $script