package com.griddynamics.jagger.webclient.client; import com.google.gwt.activity.shared.AbstractActivity; import com.google.gwt.core.client.Scheduler; import com.google.gwt.event.shared.EventBus; import com.google.gwt.uibinder.client.UiFactory; import com.google.gwt.user.client.ui.AcceptsOneWidget; import com.google.gwt.user.client.ui.IsWidget; import com.google.gwt.user.client.ui.PopupPanel; import com.google.gwt.user.client.ui.Widget; import com.griddynamics.jagger.webclient.client.resources.JaggerResources; /** * @author "Artem Kirillov" (akirillov@griddynamics.com) * @since 6/20/12 */ public abstract class DefaultActivity extends AbstractActivity implements IsWidget { private Widget widget; private JaggerResources resources; protected DefaultActivity(JaggerResources resources) { this.resources = resources; } @Override public void start(AcceptsOneWidget panel, EventBus eventBus) { if (widget == null) { widget = initializeWidget(); } panel.setWidget(widget); Scheduler.get().scheduleDeferred( new Scheduler.ScheduledCommand() { @Override public void execute() { // trick under IE6 to force a dom reconstruction PopupPanel pop = new PopupPanel(); pop.show(); pop.hide(); } } ); } @Override public Widget asWidget() { return widget; } @UiFactory public JaggerResources getResources() { return resources; } protected abstract Widget initializeWidget(); }