# HG changeset patch # User Ingo Weinzierl # Date 1298395791 0 # Node ID a85bac23506913cf422e385bd00ab0bbaef7ca07 # Parent e98a25b5c95a877883ce3e2ec4992a1dd3b937b6 Implemented code to parse the UIProvider that should be used for a current state. flys-client/trunk@1336 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r e98a25b5c95a -r a85bac235069 flys-client/ChangeLog --- a/flys-client/ChangeLog Tue Feb 22 17:23:47 2011 +0000 +++ b/flys-client/ChangeLog Tue Feb 22 17:29:51 2011 +0000 @@ -1,3 +1,13 @@ +2011-02-22 Ingo Weinzierl + + * src/main/java/de/intevation/flys/client/server/ArtifactDescriptionFactory.java: + The 'uiprovider' attribute is parsed from DESCRIBE document and stored at + the Data object. + + * src/main/java/de/intevation/flys/client/shared/model/Data.java, + src/main/java/de/intevation/flys/client/shared/model/DefaultData.java: + Implemented code to store the UIProvider (as string!) for the Data object. + 2011-02-22 Ingo Weinzierl * src/main/java/de/intevation/flys/client/client/event/StepForwardEvent.java: diff -r e98a25b5c95a -r a85bac235069 flys-client/src/main/java/de/intevation/flys/client/server/ArtifactDescriptionFactory.java --- 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 doc. @@ -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 : diff -r e98a25b5c95a -r a85bac235069 flys-client/src/main/java/de/intevation/flys/client/shared/model/Data.java --- a/flys-client/src/main/java/de/intevation/flys/client/shared/model/Data.java Tue Feb 22 17:23:47 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/shared/model/Data.java Tue Feb 22 17:29:51 2011 +0000 @@ -1,6 +1,7 @@ package de.intevation.flys.client.shared.model; import java.io.Serializable; +import de.intevation.flys.client.client.ui.UIProvider; /** @@ -42,5 +43,13 @@ * @return the DataItems. */ public DataItem[] getItems(); + + + /** + * Returns the UIProvider that should be used to create UIs. + * + * @return the UIProvider. + */ + public String getUIProvider(); } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r e98a25b5c95a -r a85bac235069 flys-client/src/main/java/de/intevation/flys/client/shared/model/DefaultData.java --- a/flys-client/src/main/java/de/intevation/flys/client/shared/model/DefaultData.java Tue Feb 22 17:23:47 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/shared/model/DefaultData.java Tue Feb 22 17:29:51 2011 +0000 @@ -1,5 +1,7 @@ package de.intevation.flys.client.shared.model; +import de.intevation.flys.client.client.ui.UIProvider; + /** * The default implementation of a {@link Data} item. This class just implements @@ -21,6 +23,9 @@ /** The DataItems.*/ protected DataItem[] items; + /** The UIProvider that should be used to create UIs. */ + protected String uiProvider; + public DefaultData() { } @@ -35,12 +40,17 @@ * @param items The DataItems. */ public DefaultData( - String label, String description, String type, DataItem[] items) + String label, + String description, + String type, + DataItem[] items, + String uiProvider) { this.label = label; this.description = description; this.type = type; this.items = items; + this.uiProvider = uiProvider; } @@ -62,5 +72,10 @@ public DataItem[] getItems() { return items; } + + + public String getUIProvider() { + return uiProvider; + } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :