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 in from 0 to 100% opacity over the given time * period. */ public class FadeInAnimator extends AbstractAnimator<JWindow> { public FadeInAnimator(final JWindow window, int totalTime) { super(window, totalTime); addListener(new EventListener<AnimatorEvent<JWindow>>() { @Override public void handleEvent(AnimatorEvent event) { if (event.getType() == AnimatorEvent.Type.STARTED) { WindowTransparencyUtils.setAlpha(window, 0); window.setVisible(true); } else if (event.getType() == AnimatorEvent.Type.STEP) { int currentStep = event.getAnimator().getCurrentStepNumber(); float alpha = (float) currentStep / getTotalNumberOfSteps(); WindowTransparencyUtils.setAlpha(window, alpha); } else if (event.getType() == AnimatorEvent.Type.STOPPED) { WindowTransparencyUtils.setAlpha(window, 1); } } }); } }