@@ -37,6 +37,10 @@ export interface INodeSetStyleOptions {
37
37
isNotifySkipped : boolean ;
38
38
}
39
39
40
+ export interface INodeSetStateOptions {
41
+ isNotifySkipped : boolean ;
42
+ }
43
+
40
44
export enum NodeShapeType {
41
45
CIRCLE = 'circle' ,
42
46
DOT = 'dot' ,
@@ -125,10 +129,10 @@ export interface INode<N extends INodeBase, E extends IEdgeBase> extends ISubjec
125
129
setStyle ( callback : ( node : INode < N , E > ) => INodeStyle , options ?: INodeSetPositionOptions ) : void ;
126
130
patchStyle ( style : INodeStyle , options ?: INodeSetPositionOptions ) : void ;
127
131
patchStyle ( callback : ( node : INode < N , E > ) => INodeStyle , options ?: INodeSetPositionOptions ) : void ;
128
- setState ( state : number ) : void ;
129
- setState ( state : IGraphObjectStateParameters ) : void ;
130
- setState ( callback : ( node : INode < N , E > ) => number ) : void ;
131
- setState ( callback : ( node : INode < N , E > ) => IGraphObjectStateParameters ) : void ;
132
+ setState ( state : number , options ?: INodeSetStateOptions ) : void ;
133
+ setState ( state : IGraphObjectStateParameters , options ?: INodeSetStateOptions ) : void ;
134
+ setState ( callback : ( node : INode < N , E > ) => number , options ?: INodeSetStateOptions ) : void ;
135
+ setState ( callback : ( node : INode < N , E > ) => IGraphObjectStateParameters , options ?: INodeSetStateOptions ) : void ;
132
136
}
133
137
134
138
// TODO: Dirty solution: Find another way to listen for global images, maybe through
@@ -303,9 +307,7 @@ export class Node<N extends INodeBase, E extends IEdgeBase> extends Subject impl
303
307
}
304
308
305
309
clearState ( ) : void {
306
- this . setState ( GraphObjectState . NONE ) ;
307
-
308
- this . notifyListeners ( ) ;
310
+ this . setState ( GraphObjectState . NONE , { isNotifySkipped : true } ) ;
309
311
}
310
312
311
313
getDistanceToBorder ( ) : number {
@@ -513,16 +515,17 @@ export class Node<N extends INodeBase, E extends IEdgeBase> extends Subject impl
513
515
}
514
516
}
515
517
516
- setState ( state : number ) : void ;
517
- setState ( state : IGraphObjectStateParameters ) : void ;
518
- setState ( callback : ( node : INode < N , E > ) => number ) : void ;
519
- setState ( callback : ( node : INode < N , E > ) => IGraphObjectStateParameters ) : void ;
518
+ setState ( state : number , options ?: INodeSetStateOptions ) : void ;
519
+ setState ( state : IGraphObjectStateParameters , options ?: INodeSetStateOptions ) : void ;
520
+ setState ( callback : ( node : INode < N , E > ) => number , options ?: INodeSetStateOptions ) : void ;
521
+ setState ( callback : ( node : INode < N , E > ) => IGraphObjectStateParameters , options ?: INodeSetStateOptions ) : void ;
520
522
setState (
521
523
arg :
522
524
| number
523
525
| IGraphObjectStateParameters
524
526
| ( ( node : INode < N , E > ) => number )
525
527
| ( ( node : INode < N , E > ) => IGraphObjectStateParameters ) ,
528
+ options ?: INodeSetStateOptions ,
526
529
) : void {
527
530
let result : number | IGraphObjectStateParameters ;
528
531
@@ -550,7 +553,9 @@ export class Node<N extends INodeBase, E extends IEdgeBase> extends Subject impl
550
553
}
551
554
}
552
555
553
- this . notifyListeners ( ) ;
556
+ if ( ! options ?. isNotifySkipped ) {
557
+ this . notifyListeners ( ) ;
558
+ }
554
559
}
555
560
556
561
protected _isPointInBoundingBox ( point : IPosition ) : boolean {
0 commit comments