@@ -121,9 +121,13 @@ export default class EventDrops extends Morph {
121121 //Register to overview selection changes
122122 jQuery ( this . aeOverview ) . on ( "changed.jstree" , ( e , data ) => {
123123 this . eventsChanged ( ) ;
124- }
124+ } ) ;
125+ this . ready = false ;
126+ jQuery ( this . aeOverview ) . one ( "ready.jstree" , ( e , data ) => {
127+ this . ready = true ;
128+ } ) ;
125129 //Register to grouping change
126- ) ; this . groupByLine . addEventListener ( 'change' , ( ) => {
130+ this . groupByLine . addEventListener ( 'change' , ( ) => {
127131 if ( this . groupByLine . checked ) {
128132 this . groupingFunction = this . locationGrouping ( ) ;
129133 } else {
@@ -259,12 +263,12 @@ export default class EventDrops extends Morph {
259263 return { ae, events : ae . meta ( ) . get ( 'events' ) . filter ( event => event . type === "changed value" ) . filter ( this . filterFunction ) } ;
260264 } ) ;
261265 this . valuesOverTime . innerHTML = "" ;
262-
263- for ( const { ae, events} of aeWithRelevantEvents ) {
264- if ( events . length === 0 ) continue ;
265- let row = < tr > < th > { ae . meta ( ) . get ( 'id' ) } </ th > </ tr >
266+
267+ for ( const { ae, events } of aeWithRelevantEvents ) {
268+ if ( events . length === 0 ) continue ;
269+ let row = < tr > < th > { ae . meta ( ) . get ( 'id' ) } </ th > </ tr > ;
266270 row . append ( < td > { events [ 0 ] . value . lastValue } </ td > ) ;
267- for ( const event of events ) {
271+ for ( const event of events ) {
268272 row . append ( < td > { event . value . value } </ td > ) ;
269273 }
270274 this . valuesOverTime . append ( row ) ;
@@ -273,7 +277,7 @@ export default class EventDrops extends Morph {
273277
274278 updateOverview ( aexprs ) {
275279 jQuery ( this . aeOverview ) . jstree ( true ) . settings . core . data = this . generateOverviewJSON ( aexprs ) ;
276- jQuery ( this . aeOverview ) . jstree ( true ) . refresh ( ) ;
280+ jQuery ( this . aeOverview ) . jstree ( true ) . refresh ( true ) ;
277281 }
278282
279283 generateOverviewJSON ( aexprs ) {
@@ -330,6 +334,29 @@ export default class EventDrops extends Morph {
330334 this . detached = true ;
331335 }
332336
337+ filterToAEs ( aes ) {
338+ const tree = jQuery ( this . aeOverview ) . jstree ( true ) ;
339+ tree . deselect_all ( ) ;
340+ if ( this . ready ) {
341+ for ( const ae of aes ) {
342+ tree . select_node ( ae . timelineID + 1 ) ;
343+ }
344+ } else {
345+ this . filteredAEs = aes ;
346+ jQuery ( this . aeOverview ) . on ( "refresh.jstree" , ( e , data ) => {
347+ if ( this . filteredAEs ) {
348+ for ( const ae of this . filteredAEs ) {
349+ tree . select_node ( ae . timelineID + 1 ) ;
350+ }
351+ if ( tree . get_node ( [ ...this . filteredAEs ] [ 0 ] ) ) {
352+ this . filteredAEs = [ ] ;
353+ }
354+ }
355+ } ) ;
356+ tree . refresh ( ) ;
357+ }
358+ }
359+
333360 get diagram ( ) {
334361 return this . get ( "#diagram" ) ;
335362 }
0 commit comments