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

http://dive4elements.wald.intevation.org