@@ -28,11 +28,48 @@ const ExperimentControlPanel = (props) => {
2828 const onNodeSelect = ( nodeId ) => {
2929 console . log ( `Node with id ${ nodeId } clicked` ) ;
3030 } ;
31+ const instancesMap = new Map ( ) ;
3132
3233 const onVisibilityClick = ( event , nodeId ) => {
3334 console . log ( `Visibility of node with id of ${ nodeId } clicked.` ) ;
3435 } ;
3536
37+ const traverseInstances = ( instance ) => {
38+ if ( instance . getPath ( ) . includes ( filter ) ) {
39+ instancesMap . set (
40+ instance . getPath ( ) ,
41+ (
42+ < ControlPanelTreeItem
43+ key = { instance . id }
44+ nodeId = { instance . getPath ( ) }
45+ label = { instance . id }
46+ type = { instance . getType ( ) . getId ( ) }
47+ onNodeSelect = { onNodeSelect }
48+ onVisibilityClick = { onVisibilityClick }
49+ />
50+ ) ,
51+ ) ;
52+ }
53+
54+ if ( instance . getChildren ( ) && instance . getChildren ( ) . length > 0 ) {
55+ const children = instance . getChildren ( ) ;
56+ for ( let i = 0 ; i < children . length ; i += 1 ) {
57+ traverseInstances ( children [ i ] ) ;
58+ }
59+ }
60+ } ;
61+
62+ const getFlatFilteredList = ( instances ) => {
63+ instancesMap . clear ( ) ;
64+ instances . forEach ( ( instance ) => traverseInstances ( instance ) ) ;
65+
66+ const flatList = [ ] ;
67+ instancesMap . forEach ( ( value , key ) => {
68+ flatList . push ( value ) ;
69+ } ) ;
70+ return flatList ;
71+ } ;
72+
3673 const getTreeItemsFromData = ( treeItems ) => treeItems . map ( ( treeItemData ) => {
3774 let children ;
3875 if ( treeItemData . getChildren ( ) && treeItemData . getChildren ( ) . length > 0 ) {
@@ -74,7 +111,10 @@ const ExperimentControlPanel = (props) => {
74111 defaultExpandIcon = { < ChevronRightIcon /> }
75112 >
76113 < TreeItem nodeId = "network" label = "network_netpyne" >
77- { getTreeItemsFromData ( window . Instances . network . getChildren ( ) ) }
114+ { filter === ''
115+ ? getTreeItemsFromData ( window . Instances . network . getChildren ( ) )
116+ : getFlatFilteredList ( window . Instances . network . getChildren ( ) )
117+ }
78118 </ TreeItem >
79119 </ TreeView >
80120 </ Box >
0 commit comments