private void addHandler ( final EventTarget target , final Annotation annotation ) throws CoreException { // Build the auto event handler for this annotation final AnnotationEventHandler < Event > aeh = new AnnotationEventHandler <> ( this . callbackObject , annotation ) ; for ( final EnumEventType eet : ( EnumEventType [ ] ) ClassUtility . getAnnotationAttribute ( annotation , "value" ) ) { if ( target instanceof Node ) { ( ( Node ) target ) . addEventHandler ( eet . eventType ( ) , aeh ) ; } else if ( target instanceof MenuItem ) { if ( eet . eventType ( ) == ActionEvent . ACTION ) { ( ( MenuItem ) target ) . addEventHandler ( ActionEvent . ACTION , new AnnotationEventHandler <> ( this . callbackObject , annotation ) ) ; } else { ( ( MenuItem ) target ) . setOnMenuValidation ( aeh ) ; } } else if ( target instanceof Window ) { ( ( Window ) target ) . addEventHandler ( eet . eventType ( ) , aeh ) ; } } }
Add an event handler on the given node according to annotation OnXxxxx .