diff flys-client/src/main/java/de/intevation/flys/client/client/ui/CollectionView.java @ 807:6f65e70fa11d

Repaired broken recommendation parsing from Artifact's DESCRIBE document (which structure has changed). flys-client/trunk@2391 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 21 Jul 2011 15:23:03 +0000
parents 653ae84533e7
children e9337488bac3
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/CollectionView.java	Wed Jul 20 13:31:20 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/CollectionView.java	Thu Jul 21 15:23:03 2011 +0000
@@ -22,6 +22,7 @@
 import de.intevation.flys.client.shared.model.Collection;
 import de.intevation.flys.client.shared.model.ExportMode;
 import de.intevation.flys.client.shared.model.OutputMode;
+import de.intevation.flys.client.shared.model.Recommendation;
 import de.intevation.flys.client.shared.model.ReportMode;
 import de.intevation.flys.client.shared.model.User;
 
@@ -313,10 +314,10 @@
         Artifact art             = event.getNewValue();
         ArtifactDescription desc = art.getArtifactDescription();
         OutputMode[] outs        = desc.getOutputModes();
-        String[] recommended     = desc.getRecommendedArtifacts();
+        Recommendation[] recom   = desc.getRecommendations();
 
-        if (recommended != null) {
-            loadRecommendedArtifacts(recommended);
+        if (recom != null) {
+            loadRecommendedArtifacts(recom);
         }
 
         setArtifact(art);
@@ -536,17 +537,26 @@
     }
 
 
-    protected void loadRecommendedArtifacts(String[] factories) {
+    protected void loadRecommendedArtifacts(Recommendation[] recommendations) {
         Config config               = Config.getInstance();
         final String url            = config.getServerUrl();
         final String locale         = config.getLocale();
         final Collection collection = getCollection();
         final Artifact master       = getArtifact();
 
-        for (String factory: factories) {
-            GWT.log("Load recommended artifact: " + factory);
+        if (master == null || recommendations == null) {
+            GWT.log("WARNING: Currently no master artifact set or no recom.");
+            return;
+        }
 
-            createArtifactService.create(url, locale, factory, master.getUuid(),
+        for (Recommendation recommendation: recommendations) {
+            final String factory = recommendation.getFactory();
+            final String ids     = recommendation.getIDs();
+
+            GWT.log("Load recommended artifact with factory: " + factory);
+
+            createArtifactService.create(
+                url, locale, factory, master.getUuid(), ids,
                 new AsyncCallback<Artifact>() {
 
                     public void onFailure(Throwable caught) {

http://dive4elements.wald.intevation.org