Mercurial > dive4elements > river
diff flys-client/src/main/java/de/intevation/flys/client/client/ui/LoadingPanel.java @ 865:43f520f923a8
Remove the loading panel when its Artifact's background process is finished.
flys-client/trunk@2672 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 08 Sep 2011 07:44:05 +0000 |
parents | c9549074ecd1 |
children | d5fb88ba99d2 |
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/LoadingPanel.java Thu Sep 08 06:56:17 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/LoadingPanel.java Thu Sep 08 07:44:05 2011 +0000 @@ -2,21 +2,27 @@ import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.Timer; +import com.google.gwt.user.client.rpc.AsyncCallback; import com.smartgwt.client.types.Alignment; import com.smartgwt.client.types.Positioning; -import com.smartgwt.client.types.VerticalAlignment; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.Label; import com.smartgwt.client.widgets.layout.HLayout; -import com.smartgwt.client.widgets.layout.VLayout; +import de.intevation.flys.client.client.Config; +import de.intevation.flys.client.client.services.DescribeArtifactService; +import de.intevation.flys.client.client.services.DescribeArtifactServiceAsync; import de.intevation.flys.client.shared.model.Artifact; public class LoadingPanel extends Canvas { - public static final int UPDATE_INTERVAL = 1000 * 5; + public static final int UPDATE_INTERVAL = 1000 * 10; + + public static final DescribeArtifactServiceAsync describe = + GWT.create(DescribeArtifactService.class); + protected CollectionView parent; protected Artifact artifact; @@ -56,6 +62,11 @@ } + public void setArtifact(Artifact artifact) { + this.artifact = artifact; + } + + protected HLayout createDialog() { msg.setStyleName("loading-message"); msg.setWidth(200); @@ -85,17 +96,33 @@ } - private void update() { + protected void update() { msg.setContents("This is update -> " + String.valueOf(i++)); - // TODO FETCH ARTIFACT's DESCRIBE DOCUMENT AND REMOVE THIS LOADING PANEL - // IF IT IS NO LONGER IN BACKGROUND MODE! + final Config config = Config.getInstance(); + final String url = config.getServerUrl(); + final String locale = config.getLocale(); - if (i == 5) { - finish(); - } + describe.describe(url, locale, artifact, new AsyncCallback<Artifact>() { + public void onFailure(Throwable t) { + GWT.log("Error while DESCRIBE artifact: " + t.getMessage()); + // SC.warn()... + startTimer(); + } - startTimer(); + public void onSuccess(Artifact artifact) { + GWT.log("Successfully DESCRIBE artifact."); + + setArtifact(artifact); + + if (artifact.isInBackground()) { + startTimer(); + } + else { + finish(); + } + } + }); }