Mercurial > dive4elements > river
diff flys-client/src/main/java/de/intevation/flys/client/server/ArtifactDescriptionFactory.java @ 22:a85bac235069
Implemented code to parse the UIProvider that should be used for a current state.
flys-client/trunk@1336 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Tue, 22 Feb 2011 17:29:51 +0000 |
parents | f8a5f2c5e2b7 |
children | 88c530c25968 |
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/server/ArtifactDescriptionFactory.java Tue Feb 22 17:23:47 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/server/ArtifactDescriptionFactory.java Tue Feb 22 17:29:51 2011 +0000 @@ -33,6 +33,8 @@ public static final String XPATH_STATE_NAME = "@art:name"; + public static final String XPATH_UIPROVIDER = "@art:uiprovider"; + /** * This method creates the {@link ArtifactDescription} of the DESCRIBE * document <i>doc</i>. @@ -80,8 +82,9 @@ String label = ClientProtocolUtils.getLabel(data); DataItem[] dataItems = extractCurrentDataItems(choices); + String uiProvider = extractUIProvider(data); - return new DefaultData(label, null, null, dataItems); + return new DefaultData(label, null, null, dataItems, uiProvider); } @@ -115,5 +118,21 @@ return (DataItem[]) dataItems.toArray(new DataItem[count]); } + + + /** + * This method extracts the UIProvider specified by the data node. + * + * @param data The data node. + * + * @return the UIProvider that is specified in the data node. + */ + protected static String extractUIProvider(Node data) { + return (String) XMLUtils.xpath( + data, + XPATH_UIPROVIDER, + XPathConstants.STRING, + ArtifactNamespaceContext.INSTANCE); + } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :