Mercurial > dive4elements > gnv-client
comparison gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/fis/FISArtifact.java @ 117:ef157bd2fa92
LanguageSupport integrated
gnv-artifacts/trunk@178 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Fri, 02 Oct 2009 14:24:47 +0000 |
parents | 158e89c2263b |
children | 5ebc059064a6 |
comparison
equal
deleted
inserted
replaced
116:820238357bab | 117:ef157bd2fa92 |
---|---|
7 import java.io.OutputStream; | 7 import java.io.OutputStream; |
8 import java.util.ArrayList; | 8 import java.util.ArrayList; |
9 import java.util.Collection; | 9 import java.util.Collection; |
10 import java.util.HashMap; | 10 import java.util.HashMap; |
11 import java.util.Iterator; | 11 import java.util.Iterator; |
12 import java.util.Locale; | |
12 import java.util.Map; | 13 import java.util.Map; |
13 | 14 |
14 import org.apache.log4j.Logger; | 15 import org.apache.log4j.Logger; |
15 import org.w3c.dom.Document; | 16 import org.w3c.dom.Document; |
16 import org.w3c.dom.Element; | 17 import org.w3c.dom.Element; |
21 import de.intevation.artifactdatabase.DefaultArtifact; | 22 import de.intevation.artifactdatabase.DefaultArtifact; |
22 import de.intevation.artifactdatabase.XMLUtils; | 23 import de.intevation.artifactdatabase.XMLUtils; |
23 import de.intevation.artifacts.Artifact; | 24 import de.intevation.artifacts.Artifact; |
24 import de.intevation.artifacts.ArtifactFactory; | 25 import de.intevation.artifacts.ArtifactFactory; |
25 import de.intevation.artifacts.CallContext; | 26 import de.intevation.artifacts.CallContext; |
27 import de.intevation.artifacts.CallMeta; | |
26 import de.intevation.gnv.artifacts.GNVArtifactBase; | 28 import de.intevation.gnv.artifacts.GNVArtifactBase; |
27 import de.intevation.gnv.artifacts.context.GNVArtifactContext; | 29 import de.intevation.gnv.artifacts.context.GNVArtifactContext; |
28 import de.intevation.gnv.artifacts.fis.product.DefaultProduct; | 30 import de.intevation.gnv.artifacts.fis.product.DefaultProduct; |
29 import de.intevation.gnv.artifacts.fis.product.Product; | 31 import de.intevation.gnv.artifacts.fis.product.Product; |
32 import de.intevation.gnv.artifacts.ressource.RessourceFactory; | |
30 import de.intevation.gnv.transition.DefaultInputData; | 33 import de.intevation.gnv.transition.DefaultInputData; |
31 import de.intevation.gnv.transition.InputData; | 34 import de.intevation.gnv.transition.InputData; |
32 import de.intevation.gnv.utils.ArtifactFactoryUtilities; | 35 import de.intevation.gnv.utils.ArtifactFactoryUtilities; |
33 import de.intevation.gnv.utils.ArtifactXMLUtilities; | 36 import de.intevation.gnv.utils.ArtifactXMLUtilities; |
34 | 37 |
166 * @see de.intevation.artifactdatabase.DefaultArtifact#describe(java.lang.Object) | 169 * @see de.intevation.artifactdatabase.DefaultArtifact#describe(java.lang.Object) |
167 */ | 170 */ |
168 @Override | 171 @Override |
169 public Document describe(CallContext context) { | 172 public Document describe(CallContext context) { |
170 if (this.productArtifact == null){ | 173 if (this.productArtifact == null){ |
171 return this.createDescibeOutput(); | 174 return this.createDescibeOutput(context.getMeta()); |
172 }else{ | 175 }else{ |
173 Document document = this.productArtifact.describe(context); | 176 Document document = this.productArtifact.describe(context); |
174 document = new ArtifactXMLUtilities().reInitDocument(document); | 177 document = new ArtifactXMLUtilities().reInitDocument(document); |
175 Node staticNode = Config.getNodeXPath(document, "/result/ui/static"); | 178 Node staticNode = Config.getNodeXPath(document, "/result/ui/static"); |
176 if (staticNode != null){ | 179 if (staticNode != null){ |
177 Node staticUI = this.createSelectBox(document); | 180 Node staticUI = this.createSelectBox(document, context.getMeta()); |
178 staticNode.insertBefore(staticUI, staticNode.getFirstChild()); | 181 staticNode.insertBefore(staticUI, staticNode.getFirstChild()); |
179 } | 182 } |
180 return document; | 183 return document; |
181 } | 184 } |
182 } | 185 } |
266 String xpathQuery = XPATH_ARTIFACT_CONFIGURATION.replaceAll(XPATH_IDENTIFIER_REPLACE, this.name); | 269 String xpathQuery = XPATH_ARTIFACT_CONFIGURATION.replaceAll(XPATH_IDENTIFIER_REPLACE, this.name); |
267 log.debug(xpathQuery); | 270 log.debug(xpathQuery); |
268 return Config.getNodeXPath(document,xpathQuery); | 271 return Config.getNodeXPath(document,xpathQuery); |
269 } | 272 } |
270 | 273 |
271 protected Document createDescibeOutput(){ | 274 protected Document createDescibeOutput(CallMeta callMeta){ |
272 log.debug("GNVArtifactBase.createDescibeOutput"); | 275 log.debug("GNVArtifactBase.createDescibeOutput"); |
273 Document document = XMLUtils.newDocument(); | 276 Document document = XMLUtils.newDocument(); |
274 Element rootNode = this.createRootNode(document); | 277 Element rootNode = this.createRootNode(document); |
275 this.createHeader(rootNode, document, "describe"); | 278 this.createHeader(rootNode, document, "describe"); |
276 this.createOutputs(rootNode, document); | 279 this.createOutputs(rootNode, document); |
277 this.createCurrentState(rootNode, document); | 280 this.createCurrentState(rootNode, document); |
278 this.createReachableStates(rootNode, document); | 281 this.createReachableStates(rootNode, document); |
279 this.createModel(rootNode, document); | 282 this.createModel(rootNode, document); |
280 this.createUserInterface(rootNode, document); | 283 this.createUserInterface(rootNode, document, callMeta); |
281 | 284 |
282 return document; | 285 return document; |
283 } | 286 } |
284 | 287 |
285 protected Element createRootNode(Document document){ | 288 protected Element createRootNode(Document document){ |
335 modelNode.appendChild(inputNode); | 338 modelNode.appendChild(inputNode); |
336 | 339 |
337 parent.appendChild(modelNode); | 340 parent.appendChild(modelNode); |
338 } | 341 } |
339 | 342 |
340 protected void createUserInterface(Element parent, Document document){ | 343 protected void createUserInterface(Element parent, Document document, CallMeta callMeta){ |
341 Element uiNode = xmlUtilities.createArtifactElement(document,"ui"); | 344 Element uiNode = xmlUtilities.createArtifactElement(document,"ui"); |
342 ArtifactXMLUtilities xmlUtilities = new ArtifactXMLUtilities(); | 345 ArtifactXMLUtilities xmlUtilities = new ArtifactXMLUtilities(); |
343 Node dynamic = xmlUtilities.createArtifactElement(document, "dynamic"); | 346 Node dynamic = xmlUtilities.createArtifactElement(document, "dynamic"); |
344 uiNode.appendChild(dynamic); | 347 uiNode.appendChild(dynamic); |
345 if (this.products != null && !this.products.isEmpty()){ | 348 if (this.products != null && !this.products.isEmpty()){ |
346 Element selectNode = createSelectBox(document); | 349 Element selectNode = createSelectBox(document,callMeta); |
347 | 350 |
348 dynamic.appendChild(selectNode); | 351 dynamic.appendChild(selectNode); |
349 } | 352 } |
350 | 353 |
351 parent.appendChild(uiNode); | 354 parent.appendChild(uiNode); |
353 /** | 356 /** |
354 * @param document | 357 * @param document |
355 * @param xmlUtilities | 358 * @param xmlUtilities |
356 * @return | 359 * @return |
357 */ | 360 */ |
358 private Element createSelectBox(Document document) { | 361 private Element createSelectBox(Document document, CallMeta callMeta) { |
362 Locale locale = callMeta.getPreferredLocale(RessourceFactory.getInstance().getSupportedLocales()); | |
359 ArtifactXMLUtilities xmlUtilities = new ArtifactXMLUtilities(); | 363 ArtifactXMLUtilities xmlUtilities = new ArtifactXMLUtilities(); |
360 String selectboxName = "product"; | 364 String selectboxName = "product"; |
361 Iterator<Product> it = this.products.values().iterator(); | 365 Iterator<Product> it = this.products.values().iterator(); |
362 Element selectNode = xmlUtilities.createXFormElement(document,"select1"); | 366 Element selectNode = xmlUtilities.createXFormElement(document,"select1"); |
363 selectNode.setAttribute("ref", selectboxName); | 367 selectNode.setAttribute("ref", selectboxName); |
364 | 368 |
365 | 369 |
366 Element lableNode = xmlUtilities.createXFormElement(document, "label"); | 370 Element lableNode = xmlUtilities.createXFormElement(document, "label"); |
367 lableNode.setTextContent(selectboxName); | 371 lableNode.setTextContent(RessourceFactory.getInstance().getRessource(locale, selectboxName, selectboxName)); |
368 selectNode.appendChild(lableNode); | 372 selectNode.appendChild(lableNode); |
369 Element choiceNode = xmlUtilities.createXFormElement(document, "choices"); | 373 Element choiceNode = xmlUtilities.createXFormElement(document, "choices"); |
370 selectNode.appendChild(choiceNode); | 374 selectNode.appendChild(choiceNode); |
371 while (it.hasNext()){ | 375 while (it.hasNext()){ |
372 Product p = it.next(); | 376 Product p = it.next(); |
375 if (this.current != null && this.current.getName().equals(p.getName())){ | 379 if (this.current != null && this.current.getName().equals(p.getName())){ |
376 itemNode.setAttribute("selected", "true"); | 380 itemNode.setAttribute("selected", "true"); |
377 } | 381 } |
378 | 382 |
379 Element choiceLableNode = xmlUtilities.createXFormElement(document, "label"); | 383 Element choiceLableNode = xmlUtilities.createXFormElement(document, "label"); |
380 choiceLableNode.setTextContent(p.getName()); | 384 choiceLableNode.setTextContent(RessourceFactory.getInstance().getRessource(locale, p.getName(), p.getName())); |
381 itemNode.appendChild(choiceLableNode); | 385 itemNode.appendChild(choiceLableNode); |
382 | 386 |
383 Element choicValueNode = xmlUtilities.createXFormElement(document, "value"); | 387 Element choicValueNode = xmlUtilities.createXFormElement(document, "value"); |
384 choicValueNode.setTextContent(p.getName()); | 388 choicValueNode.setTextContent(p.getName()); |
385 itemNode.appendChild(choicValueNode); | 389 itemNode.appendChild(choicValueNode); |