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

http://dive4elements.wald.intevation.org