package org.limewire.ui.swing.animate; import javax.swing.JWindow; import org.limewire.listener.EventListener; import org.limewire.ui.swing.util.WindowTransparencyUtils; /** * Fades the given component out from 100 to 0% opacity over the given time * period. */ public class FadeOutAnimator extends AbstractAnimator<JWindow> { public FadeOutAnimator(final JWindow window, int totalTime) { super(window, totalTime); addListener(new EventListener<AnimatorEvent<JWindow>>() { @Override public void handleEvent(AnimatorEvent event) { if (event.getType() == AnimatorEvent.Type.STEP) { int currentStep = event.getAnimator().getCurrentStepNumber(); float alpha = (float) (getTotalNumberOfSteps() - currentStep) / getTotalNumberOfSteps(); WindowTransparencyUtils.setAlpha(window, alpha); } else if (event.getType() == AnimatorEvent.Type.STOPPED) { window.setVisible(false); } } }); } }