Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/server/ArtifactDescriptionFactory.java @ 2500:69a498896c9c
Create a link to an online help page and put it in front of the input panels.
flys-client/trunk@4336 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 03 May 2012 06:19:04 +0000 |
parents | e53d773e6992 |
children | fe177e7f61d1 |
comparison
equal
deleted
inserted
replaced
2499:8f36d4b5890c | 2500:69a498896c9c |
---|---|
49 | 49 |
50 public static final String XPATH_STATE_NAME = "@art:name"; | 50 public static final String XPATH_STATE_NAME = "@art:name"; |
51 | 51 |
52 public static final String XPATH_UIPROVIDER = "@art:uiprovider"; | 52 public static final String XPATH_UIPROVIDER = "@art:uiprovider"; |
53 | 53 |
54 public static final String XPATH_HELP_TEXT = "@art:helpText"; | |
55 | |
54 public static final String XPATH_REACHABLE_STATE = "art:state"; | 56 public static final String XPATH_REACHABLE_STATE = "art:state"; |
55 | 57 |
56 public static final String XPATH_STATIC_STATE_NODE = "art:state"; | 58 public static final String XPATH_STATIC_STATE_NODE = "art:state"; |
57 | 59 |
58 public static final String XPATH_STATIC_DATA_NODE = "art:data"; | 60 public static final String XPATH_STATIC_DATA_NODE = "art:data"; |
116 */ | 118 */ |
117 protected static DataList extractCurrentData(Node dynamicNode, String state) { | 119 protected static DataList extractCurrentData(Node dynamicNode, String state) { |
118 logger.debug("ArtifactDescriptionFactory.extractCurrentData"); | 120 logger.debug("ArtifactDescriptionFactory.extractCurrentData"); |
119 | 121 |
120 NodeList data = ClientProtocolUtils.getSelectNode(dynamicNode); | 122 NodeList data = ClientProtocolUtils.getSelectNode(dynamicNode); |
123 String help = extractHelpText(dynamicNode); | |
121 String uiProvider = extractUIProvider(dynamicNode); | 124 String uiProvider = extractUIProvider(dynamicNode); |
122 | 125 |
123 if (data == null || data.getLength() == 0) { | 126 if (data == null || data.getLength() == 0) { |
124 return null; | 127 return null; |
125 } | 128 } |
126 | 129 |
127 int dataNum = data.getLength(); | 130 int dataNum = data.getLength(); |
128 DataList list = new DataList(state, dataNum, uiProvider); | 131 DataList list = new DataList(state, dataNum, uiProvider, null, help); |
129 | 132 |
130 for (int i = 0; i < dataNum; i++) { | 133 for (int i = 0; i < dataNum; i++) { |
131 Element d = (Element) data.item(i); | 134 Element d = (Element) data.item(i); |
132 String label = ClientProtocolUtils.getLabel(d); | 135 String label = ClientProtocolUtils.getLabel(d); |
133 String name = XMLUtils.xpathString( | 136 String name = XMLUtils.xpathString( |
379 tmp, "@art:name", ArtifactNamespaceContext.INSTANCE); | 382 tmp, "@art:name", ArtifactNamespaceContext.INSTANCE); |
380 String uiprovider = XMLUtils.xpathString( | 383 String uiprovider = XMLUtils.xpathString( |
381 tmp, "@art:uiprovider", ArtifactNamespaceContext.INSTANCE); | 384 tmp, "@art:uiprovider", ArtifactNamespaceContext.INSTANCE); |
382 String label = XMLUtils.xpathString( | 385 String label = XMLUtils.xpathString( |
383 tmp, "@art:label", ArtifactNamespaceContext.INSTANCE); | 386 tmp, "@art:label", ArtifactNamespaceContext.INSTANCE); |
387 String help = XMLUtils.xpathString( | |
388 tmp, "@art:helpText", ArtifactNamespaceContext.INSTANCE); | |
384 | 389 |
385 NodeList dataNodes = (NodeList) XMLUtils.xpath( | 390 NodeList dataNodes = (NodeList) XMLUtils.xpath( |
386 tmp, | 391 tmp, |
387 XPATH_STATIC_DATA_NODE, | 392 XPATH_STATIC_DATA_NODE, |
388 XPathConstants.NODESET, | 393 XPathConstants.NODESET, |
391 if (dataNodes == null || dataNodes.getLength() == 0) { | 396 if (dataNodes == null || dataNodes.getLength() == 0) { |
392 continue; | 397 continue; |
393 } | 398 } |
394 | 399 |
395 int size = dataNodes.getLength(); | 400 int size = dataNodes.getLength(); |
396 DataList list = new DataList(name, size, uiprovider, label); | 401 DataList list = new DataList(name, size, uiprovider, label, help); |
397 | 402 |
398 for (int j = 0; j < size; j++) { | 403 for (int j = 0; j < size; j++) { |
399 Node dataNode = dataNodes.item(j); | 404 Node dataNode = dataNodes.item(j); |
400 | 405 |
401 list.add(DataFactory.createDataFromElement((Element) dataNode)); | 406 list.add(DataFactory.createDataFromElement((Element) dataNode)); |
417 */ | 422 */ |
418 protected static String extractUIProvider(Node ui) { | 423 protected static String extractUIProvider(Node ui) { |
419 return (String) XMLUtils.xpath( | 424 return (String) XMLUtils.xpath( |
420 ui, | 425 ui, |
421 XPATH_UIPROVIDER, | 426 XPATH_UIPROVIDER, |
427 XPathConstants.STRING, | |
428 ArtifactNamespaceContext.INSTANCE); | |
429 } | |
430 | |
431 | |
432 /** | |
433 * This method extracts the help text specified by the data node. | |
434 * | |
435 * @param ui The data node. | |
436 * | |
437 * @return the help text. | |
438 */ | |
439 protected static String extractHelpText(Node ui) { | |
440 return (String) XMLUtils.xpath( | |
441 ui, | |
442 XPATH_HELP_TEXT, | |
422 XPathConstants.STRING, | 443 XPathConstants.STRING, |
423 ArtifactNamespaceContext.INSTANCE); | 444 ArtifactNamespaceContext.INSTANCE); |
424 } | 445 } |
425 | 446 |
426 | 447 |