package org.ovirt.engine.ui.webadmin.widget.footer;
import com.google.gwt.animation.client.Animation;
import com.google.gwt.user.client.ui.Label;
abstract class StatusLabel extends Label {
private static final int DURATION = 200;
private String pendingText = ""; //$NON-NLS-1$
private final Animation fadeInAnimation = new Animation() {
@Override
protected void onUpdate(double progress) {
getElement().getStyle().setOpacity(progress);
}
@Override
protected void onComplete() {
super.onComplete();
onFadeInComplete();
}
};
private final Animation fadeOutAnimation = new Animation() {
@Override
protected void onComplete() {
super.onComplete();
setText(pendingText);
pendingText = ""; //$NON-NLS-1$
fadeInAnimation.run(DURATION);
}
@Override
protected void onCancel() {
// Override default implementation since it calls onComplete()
};
@Override
protected void onUpdate(double progress) {
getElement().getStyle().setOpacity(1 - progress);
}
};
public void setFadeText(String text) {
pendingText = text;
fadeInAnimation.cancel();
fadeOutAnimation.run(DURATION);
}
protected void onFadeInComplete() {
}
}