Mercurial > dive4elements > river
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();