public void flash(
     List<? extends EObject> semanticElements, HighlightingParameters parameters, int flashTime) {
   synchronized (semanticElements) {
     for (EObject semanticElement : semanticElements) {
       IGraphicalEditPart editPartForSemanticElement =
           getEditPartForSemanticElement(semanticElement);
       if (editPartForSemanticElement != null) {
         IFigure figure = getTargetFigure(editPartForSemanticElement);
         Fader fader =
             new Fader(
                 figure,
                 figure.getForegroundColor(),
                 parameters.foregroundFadingColor,
                 figure.getBackgroundColor(),
                 parameters.backgroundFadingColor,
                 (int) flashTime,
                 true);
         Display.getCurrent().asyncExec(fader);
       }
     }
   }
 }
 protected ColorMemento(IFigure figure) {
   this.figure = figure;
   this.foregroundColor = figure.getForegroundColor();
   this.backgroundColor = figure.getBackgroundColor();
 }