Mercurial > dive4elements > river
diff flys-client/src/main/java/de/intevation/flys/client/server/ArtifactDescriptionFactory.java @ 1522:df9baca681a0
Added a new Data type IntegerRangeData that stores min and max integer values.
flys-client/trunk@3699 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 18 Jan 2012 09:14:17 +0000 |
parents | ab8eb2f544f2 |
children | 252c22237fe7 |
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/server/ArtifactDescriptionFactory.java Mon Jan 16 08:34:37 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/server/ArtifactDescriptionFactory.java Wed Jan 18 09:14:17 2012 +0000 @@ -23,6 +23,7 @@ import de.intevation.flys.client.shared.model.DefaultData; import de.intevation.flys.client.shared.model.DefaultDataItem; import de.intevation.flys.client.shared.model.DefaultOutputMode; +import de.intevation.flys.client.shared.model.IntegerRangeData; import de.intevation.flys.client.shared.model.OutputMode; import de.intevation.flys.client.shared.model.Recommendation; import de.intevation.flys.client.shared.model.WQDataItem; @@ -119,21 +120,40 @@ return null; } - int dataNum = data.getLength(); - DataList list = new DataList(state, dataNum, uiProvider); + int dataNum = data.getLength(); + DataList list = new DataList(state, dataNum, uiProvider); for (int i = 0; i < dataNum; i++) { - Node d = data.item(i); + Element d = (Element) data.item(i); + String label = ClientProtocolUtils.getLabel(d); + String name = XMLUtils.xpathString( + d, "@art:name", ArtifactNamespaceContext.INSTANCE); + String type = XMLUtils.xpathString( + d, "@art:type", ArtifactNamespaceContext.INSTANCE); - NodeList choices = ClientProtocolUtils.getItemNodes(d); - String label = ClientProtocolUtils.getLabel(d); - String name = XMLUtils.xpathString( - d, "@art:name", ArtifactNamespaceContext.INSTANCE); + logger.debug("Create new IntegerRangeData object for: " + name); + logger.debug("New Data is from type: " + type); - DataItem[] dataItems = extractCurrentDataItems(choices); - DataItem def = extractDefaultDataItem(d); + if (type == null || type.length() == 0) { + NodeList choices = ClientProtocolUtils.getItemNodes(d); + DataItem[] dataItems = extractCurrentDataItems(choices); + DataItem def = extractDefaultDataItem(d); - list.add(new DefaultData(name, label, null, dataItems, def)); + list.add(new DefaultData(name, label, null, dataItems, def)); + } + else if (type.equals("intrange")) { + String min = ClientProtocolUtils.getMinNode(d); + String max = ClientProtocolUtils.getMaxNode(d); + + try { + int lower = Integer.parseInt(min); + int upper = Integer.parseInt(max); + list.add(new IntegerRangeData(name, label, lower, upper)); + } + catch (NumberFormatException nfe) { + logger.warn("NumberFormatException: ", nfe); + } + } } return list;