diff gwt-client/src/main/java/org/dive4elements/river/client/server/MetaDataServiceImpl.java @ 7465:4b29bb2c785f

Datacage: Remove tree branches vom datacage tree on client side which do not contain loadable data.
author Sascha L. Teichmann <teichmann@intevation.de>
date Wed, 30 Oct 2013 11:58:57 +0100
parents ea9eef426962
children 238fc722f87a
line wrap: on
line diff
--- a/gwt-client/src/main/java/org/dive4elements/river/client/server/MetaDataServiceImpl.java	Wed Oct 30 11:57:04 2013 +0100
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/server/MetaDataServiceImpl.java	Wed Oct 30 11:58:57 2013 +0100
@@ -28,6 +28,8 @@
 import org.dive4elements.artifacts.httpclient.http.HttpClient;
 import org.dive4elements.artifacts.httpclient.http.HttpClientImpl;
 
+import org.dive4elements.river.client.shared.model.AttrList;
+import org.dive4elements.river.client.shared.model.DataCageNode;
 import org.dive4elements.river.client.shared.model.DataCageTree;
 
 import org.dive4elements.river.client.server.meta.Converter;
@@ -38,7 +40,7 @@
  */
 public class MetaDataServiceImpl
 extends      RemoteServiceServlet
-implements   MetaDataService
+implements   MetaDataService, DataCageTree.Visitor
 {
     /** Our very own logger. */
     private static final Logger logger =
@@ -48,6 +50,12 @@
         "error_no_meta_data_found";
 
 
+    @Override
+    public boolean accept(DataCageNode node) {
+        AttrList al = node.getAttributes();
+        return al != null && al.hasAttribute("factory");
+    }
+
     /**
      * @param locale needed for i18n.
      * @param artifactId ID of masterartifact (can be null)
@@ -109,7 +117,9 @@
 
         try {
             Converter converter = new Converter();
-            return converter.convert(client.callService(url, "metadata", doc));
+            DataCageTree tree = converter.convert(client.callService(url, "metadata", doc));
+            tree.prune(this);
+            return tree;
         }
         catch (ConnectionException ce) {
             ce.printStackTrace();

http://dive4elements.wald.intevation.org