Hello, I'm trying to use gwt-fx to fade out a panel, update it while
it is invisible, and fade it back in. The best I've been able to get
is to fade it out, update it, and then it never fades in again. When I
try and update it again, it flashes back to completely visible (with
the updated values), and fades back out.
Here is my code, am I doing something wrong, or does this just not
work with GWT FX yet?
package org.taco.carzy.client.view;
import org.adamtacy.client.ui.effects.events.EffectCompletedEvent;
import org.adamtacy.client.ui.effects.events.EffectCompletedHandler;
import org.adamtacy.client.ui.effects.impl.Fade;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.VerticalPanel;
/**
* @author pardsbane
*
*/
public class FadeTestPanel extends VerticalPanel {
Label panel = new Label("no clicks");
int clicks = 0;
public FadeTestPanel() {
getElement().setId("effectPanel");
this.setHeight("100%");
this.setWidth("100%");
panel.getElement().setId("wipe");
panel.addClickHandler(new ClickHandler() {
// @Override
public void onClick(ClickEvent event) {
clicks++;
fadeOutUpdateFadeIn("clicks: " + clicks);
}
});
this.add(panel);
}
private void fadeOutUpdateFadeIn(final String newText) {
final Fade effect = new Fade(panel.getElement());
effect.addEffectCompletedHandler(new EffectCompletedHandler()
{
public void onEffectCompleted(EffectCompletedEvent event)
{
panel.setText(newText);
effect.getHandlers().removeHandler(event.getType(),
this);
effect.play(1, 0);
}
});
effect.play(0, 1);
}
}