annotate flys-client/src/main/java/de/intevation/flys/client/server/DataFactory.java @ 5818:a4ff4167be1e

Request feature info on all layers and show it as html if the server does not return valid gml. Non queryable layers produce an error message when the request fails. This is good enough
author Andre Heinecke <aheinecke@intevation.de>
date Wed, 24 Apr 2013 17:33:27 +0200
parents d0a9acddbea2
children
rev   line source
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.client.server;
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 import javax.xml.xpath.XPathConstants;
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5 import org.w3c.dom.Element;
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6 import org.w3c.dom.NodeList;
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8 import org.apache.log4j.Logger;
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10 import de.intevation.artifacts.common.ArtifactNamespaceContext;
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import de.intevation.artifacts.common.utils.XMLUtils;
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import de.intevation.flys.client.shared.model.Data;
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 import de.intevation.flys.client.shared.model.DataItem;
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 import de.intevation.flys.client.shared.model.DefaultData;
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 import de.intevation.flys.client.shared.model.DefaultDataItem;
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
17 import de.intevation.flys.client.shared.model.DoubleArrayData;
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
18 import de.intevation.flys.client.shared.model.IntegerArrayData;
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
19 import de.intevation.flys.client.shared.model.IntegerData;
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
20 import de.intevation.flys.client.shared.model.IntegerOptionsData;
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
21 import de.intevation.flys.client.shared.model.IntegerRangeData;
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
22 import de.intevation.flys.client.shared.model.StringData;
2532
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
23 import de.intevation.flys.client.shared.model.StringOptionsData;
2468
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
24 import de.intevation.flys.client.shared.model.LongRangeData;
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25
2535
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
26 import de.intevation.flys.client.shared.model.IntDataItem;
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28 /**
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 */
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 public class DataFactory {
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 private static final Logger logger = Logger.getLogger(DataFactory.class);
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 public static final String NS_URI = ArtifactNamespaceContext.NAMESPACE_URI;
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 /**
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 * Creates a new Data instance based on the <i>art:type</i> attribute of
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 * <i>element</i>.
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 *
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 * @param element The Data element.
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 *
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 * @return a Data instance.
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 */
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 public static Data createDataFromElement(Element element) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
47 String name = element.getAttributeNS(NS_URI, "name");
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
48 String type = element.getAttributeNS(NS_URI, "type");
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
49 String label = element.getAttributeNS(NS_URI, "label");
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
50
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
51 label = label != null && label.length() > 0 ? label : name;
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
53 try {
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
54 logger.debug("Create Data instance for: " + name + " | " + type);
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
56 if (type == null || type.length() == 0) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
57 return createDefaultData(element, name, label);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
58 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
59
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
60 type = type.toLowerCase();
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
61
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
62 if (type.equals(StringData.TYPE)) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
63 return createStringData(element, name, label);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
64 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
65 else if (type.equals(IntegerData.TYPE)) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
66 return createIntegerData(element, name, label);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
67 }
2532
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
68 else if (type.equals(StringOptionsData.TYPE)) {
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
69 return createStringOptionsData(element, name, label);
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
70 }
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
71 else if (type.equals(IntegerOptionsData.TYPE)) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
72 return createIntegerOptionsData(element, name, label);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
73 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
74 else if (type.equals(IntegerRangeData.TYPE)) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
75 return createIntegerRangeData(element, name, label);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
76 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
77 else if (type.equals(IntegerArrayData.TYPE)) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
78 return createIntegerArrayData(element, name, label);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
79 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
80 else if (type.equals(DoubleArrayData.TYPE)) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
81 return createDoubleArrayData(element, name, label);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
82 }
2468
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
83 else if (type.equals(LongRangeData.TYPE)) {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
84 return createLongRangeData(element, name, label);
2468
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
85 }
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
86 else {
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
87 return createDefaultData(element, name, label);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
88 }
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89 }
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
90 catch (Exception e) {
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
91 logger.error("Error while data creation for: " + name);
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 }
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
93
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
94 return null;
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95 }
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98 /**
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99 * This method creates a new instance of DefaultData which has no real type
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100 * set.
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101 *
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102 * @param ele The Data element.
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 * @param name The name of the Data instance.
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 *
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105 * @return an instance of DefaultData.
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 */
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
107 protected static Data createDefaultData(Element ele, String name, String label) {
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
108 logger.debug("Create new DefaultData");
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
109 return new DefaultData(name, label, "default", extractDataItems(ele));
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110 }
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
112
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
113 /**
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
114 * This method creates a new instance of StringData which has a type
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
115 * "string" set.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
116 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
117 * @param ele The Data element.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
118 * @param name The name of the Data instance.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
119 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
120 * @return an instance of StringData.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
121 */
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
122 protected static Data createStringData(Element ele, String name, String label) {
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
123 return new StringData(name, label, extractDataItems(ele));
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
124 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
125
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
126
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
127 /**
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
128 * This method creates a new instance of DefaultData which has a type
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
129 * "integer" set.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
130 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
131 * @param ele The Data element.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
132 * @param name The name of the Data instance.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
133 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
134 * @return an instance of IntegerData.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
135 */
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
136 protected static Data createIntegerData(Element ele, String name, String label) {
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
137 return new IntegerData(name, label, extractDataItems(ele));
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
138 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
139
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
140
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
141 /**
2532
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
142 * This method creates a new instance of StringOptionsData which has a type
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
143 * "options" set.
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
144 *
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
145 * @param ele The Data element.
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
146 * @param name The name of the Data instance.
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
147 *
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
148 * @return an instance of StringOptionsData.
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
149 */
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
150 protected static Data createStringOptionsData(Element ele, String name, String label) {
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
151 return new StringOptionsData(name, label, extractDataItems(ele));
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
152 }
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
153
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
154
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
155 /**
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
156 * This method creates a new instance of DefaultData which has a type
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
157 * "intoptions" set.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
158 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
159 * @param ele The Data element.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
160 * @param name The name of the Data instance.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
161 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
162 * @return an instance of IntegerOptionsData.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
163 */
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
164 protected static Data createIntegerOptionsData(Element ele, String name, String label) {
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
165 return new IntegerOptionsData(name, label, extractDataItems(ele));
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
166 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
167
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
168
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
169 /**
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
170 * This method creates a new instance of DefaultData which has a type
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
171 * "intrange" set.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
172 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
173 * @param ele The Data element.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
174 * @param name The name of the Data instance.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
175 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
176 * @return an instance of IntegerRangeData.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
177 */
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
178 protected static Data createIntegerRangeData(Element ele, String name, String label) {
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
179 DataItem[] items = extractDataItems(ele);
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
180 String rawValue = items[0].getStringValue();
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
181
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
182 String[] minmax = rawValue.split(";");
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
183
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
184 return new IntegerRangeData(
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
185 name,
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
186 label,
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
187 Integer.valueOf(minmax[0]),
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
188 Integer.valueOf(minmax[1]));
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
189 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
190
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
191
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
192 /**
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
193 * This method creates a new instance of DefaultData which has a type
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
194 * "integerarray" set.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
195 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
196 * @param ele The Data element.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
197 * @param name The name of the Data instance.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
198 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
199 * @return an instance of IntegerArrayData.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
200 */
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
201 protected static Data createIntegerArrayData(Element ele, String name, String label) {
2535
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
202 IntDataItem[] items = extractIntDataItems(ele);
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
203 return new IntegerArrayData(name, label, items);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
204 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
205
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
206
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
207 /**
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
208 * This method creates a new instance of DefaultData which has a type
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
209 * "doublearray" set.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
210 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
211 * @param ele The Data element.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
212 * @param name The name of the Data instance.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
213 *
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
214 * @return an instance of DoubleArrayData.
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
215 */
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
216 protected static Data createDoubleArrayData(Element ele, String name, String label) {
1595
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
217 DataItem[] items = extractDataItems(ele);
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
218 String rawValue = items[0].getStringValue();
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
219
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
220 String[] values = rawValue.split(";");
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
221 double[] doubles = new double[values.length];
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
222
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
223 for (int i = 0; i < values.length; i++) {
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
224 try {
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
225 doubles[i] = Double.valueOf(values[i]);
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
226 }
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
227 catch (NumberFormatException nfe) {
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
228 logger.warn("Error while parsing DoubleArrayData: " + nfe);
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
229 }
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
230 }
e53d773e6992 Display inserted W/Q values in WQSimpleArrayPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1586
diff changeset
231
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
232 return new DoubleArrayData(name, label, doubles);
1575
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
233 }
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
234
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
235
0f2b94408bd1 Added further methods to DataFactory to create concrete Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1571
diff changeset
236 /**
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
237 * This method extracts the art:item elements placed under <i>elements</i>.
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
238 *
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
239 * @param element A data node that contains items.
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
240 *
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
241 * @return a list of DataItems.
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
242 */
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
243 protected static DataItem[] extractDataItems(Element element) {
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
244 NodeList itemList = (NodeList) XMLUtils.xpath(
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
245 element,
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
246 "art:item",
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
247 XPathConstants.NODESET,
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
248 ArtifactNamespaceContext.INSTANCE);
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
249
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
250 if (itemList == null || itemList.getLength() == 0) {
2532
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
251 logger.debug("No data items found.");
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
252 return null;
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
253 }
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
254
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
255 int count = itemList.getLength();
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
256
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
257 DataItem[] items = new DataItem[count];
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
258
2532
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
259 logger.debug("There are " + count + " data items in element.");
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
260
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
261 for (int i = 0; i < count; i++) {
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
262 Element tmp = (Element) itemList.item(i);
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
263
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
264 String value = tmp.getAttributeNS(NS_URI, "value");
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
265 String label = tmp.getAttributeNS(NS_URI, "label");
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
266
2532
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
267 logger.debug("Found data item:");
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
268 logger.debug(" label: " + label);
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
269 logger.debug(" value: " + value);
261347ea60b8 Added new Data type StringOptionsData; allow this Data type for ParameterMatrixPanel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2528
diff changeset
270
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
271 items[i] = new DefaultDataItem(label, label, value);
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
272 }
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
273
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
274 return items;
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
275 }
2468
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
276
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
277
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
278 /**
2535
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
279 * This method extracts the art:item elements placed under <i>elements</i>.
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
280 *
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
281 * @param element A data node that contains items.
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
282 *
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
283 * @return a list of DataItems.
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
284 */
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
285 protected static IntDataItem[] extractIntDataItems(Element element) {
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
286 NodeList itemList = (NodeList) XMLUtils.xpath(
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
287 element,
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
288 "art:item",
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
289 XPathConstants.NODESET,
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
290 ArtifactNamespaceContext.INSTANCE);
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
291
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
292 if (itemList == null || itemList.getLength() == 0) {
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
293 logger.debug("No old data items found.");
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
294 return null;
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
295 }
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
296
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
297 int count = itemList.getLength();
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
298
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
299 IntDataItem[] items = new IntDataItem[count];
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
300
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
301 for (int i = 0; i < count; i++) {
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
302 Element tmp = (Element) itemList.item(i);
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
303
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
304 String value = tmp.getAttributeNS(NS_URI, "value");
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
305 String label = tmp.getAttributeNS(NS_URI, "label");
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
306
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
307 try {
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
308 int data = Integer.parseInt(value);
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
309 items[i] = new IntDataItem(label, label, data);
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
310 }
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
311 catch(NumberFormatException nfe) {
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
312 logger.debug(nfe, nfe);
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
313 }
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
314 }
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
315 return items;
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
316 }
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
317
d0a9acddbea2 Added an int data item used in int array data and added getter that returns
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2532
diff changeset
318 /**
2468
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
319 * This method creates a new instance of LongRangeData which has a type
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
320 * "longrange" set.
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
321 *
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
322 * @param ele The Data element.
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
323 * @param name The name of the Data instance.
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
324 *
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
325 * @return an instance of IntegerRangeData.
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
326 */
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
327 protected static Data createLongRangeData(Element ele, String name, String label) {
2468
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
328 DataItem[] items = extractDataItems(ele);
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
329 String rawValue = items[0].getStringValue();
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
330
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
331 String[] minmax = rawValue.split(";");
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
332
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
333 return new LongRangeData(
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
334 name,
2528
33e2a1e23ae8 Implemented ParameterMatrixPanel.createOld() and added a real 'description' to Data instances in DataFactory.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2468
diff changeset
335 label,
2468
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
336 Long.valueOf(minmax[0]),
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
337 Long.valueOf(minmax[1]));
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
338 }
6a65694bdcc2 Issue 506.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1595
diff changeset
339
1571
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
340 }
1227878665b5 Introduced a DataFactory that should be used to create new Data instances.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
341 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org