Mercurial > dive4elements > river
comparison 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 |
comparison
equal
deleted
inserted
replaced
1521:f22713b5d29d | 1522:df9baca681a0 |
---|---|
21 import de.intevation.flys.client.shared.model.DataList; | 21 import de.intevation.flys.client.shared.model.DataList; |
22 import de.intevation.flys.client.shared.model.DefaultArtifactDescription; | 22 import de.intevation.flys.client.shared.model.DefaultArtifactDescription; |
23 import de.intevation.flys.client.shared.model.DefaultData; | 23 import de.intevation.flys.client.shared.model.DefaultData; |
24 import de.intevation.flys.client.shared.model.DefaultDataItem; | 24 import de.intevation.flys.client.shared.model.DefaultDataItem; |
25 import de.intevation.flys.client.shared.model.DefaultOutputMode; | 25 import de.intevation.flys.client.shared.model.DefaultOutputMode; |
26 import de.intevation.flys.client.shared.model.IntegerRangeData; | |
26 import de.intevation.flys.client.shared.model.OutputMode; | 27 import de.intevation.flys.client.shared.model.OutputMode; |
27 import de.intevation.flys.client.shared.model.Recommendation; | 28 import de.intevation.flys.client.shared.model.Recommendation; |
28 import de.intevation.flys.client.shared.model.WQDataItem; | 29 import de.intevation.flys.client.shared.model.WQDataItem; |
29 | 30 |
30 | 31 |
117 | 118 |
118 if (data == null || data.getLength() == 0) { | 119 if (data == null || data.getLength() == 0) { |
119 return null; | 120 return null; |
120 } | 121 } |
121 | 122 |
122 int dataNum = data.getLength(); | 123 int dataNum = data.getLength(); |
123 DataList list = new DataList(state, dataNum, uiProvider); | 124 DataList list = new DataList(state, dataNum, uiProvider); |
124 | 125 |
125 for (int i = 0; i < dataNum; i++) { | 126 for (int i = 0; i < dataNum; i++) { |
126 Node d = data.item(i); | 127 Element d = (Element) data.item(i); |
127 | 128 String label = ClientProtocolUtils.getLabel(d); |
128 NodeList choices = ClientProtocolUtils.getItemNodes(d); | 129 String name = XMLUtils.xpathString( |
129 String label = ClientProtocolUtils.getLabel(d); | |
130 String name = XMLUtils.xpathString( | |
131 d, "@art:name", ArtifactNamespaceContext.INSTANCE); | 130 d, "@art:name", ArtifactNamespaceContext.INSTANCE); |
132 | 131 String type = XMLUtils.xpathString( |
133 DataItem[] dataItems = extractCurrentDataItems(choices); | 132 d, "@art:type", ArtifactNamespaceContext.INSTANCE); |
134 DataItem def = extractDefaultDataItem(d); | 133 |
135 | 134 logger.debug("Create new IntegerRangeData object for: " + name); |
136 list.add(new DefaultData(name, label, null, dataItems, def)); | 135 logger.debug("New Data is from type: " + type); |
136 | |
137 if (type == null || type.length() == 0) { | |
138 NodeList choices = ClientProtocolUtils.getItemNodes(d); | |
139 DataItem[] dataItems = extractCurrentDataItems(choices); | |
140 DataItem def = extractDefaultDataItem(d); | |
141 | |
142 list.add(new DefaultData(name, label, null, dataItems, def)); | |
143 } | |
144 else if (type.equals("intrange")) { | |
145 String min = ClientProtocolUtils.getMinNode(d); | |
146 String max = ClientProtocolUtils.getMaxNode(d); | |
147 | |
148 try { | |
149 int lower = Integer.parseInt(min); | |
150 int upper = Integer.parseInt(max); | |
151 list.add(new IntegerRangeData(name, label, lower, upper)); | |
152 } | |
153 catch (NumberFormatException nfe) { | |
154 logger.warn("NumberFormatException: ", nfe); | |
155 } | |
156 } | |
137 } | 157 } |
138 | 158 |
139 return list; | 159 return list; |
140 } | 160 } |
141 | 161 |