diff gnv/src/main/java/de/intevation/gnv/action/WMSAction.java @ 680:ba3370dbc8c5

Parse time to live of a wms-layer from meta document and show it in html gui (issue197). gnv/trunk@830 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 26 Mar 2010 09:22:32 +0000
parents 8315b0a40329
children 15ac78a91d1b
line wrap: on
line diff
--- a/gnv/src/main/java/de/intevation/gnv/action/WMSAction.java	Mon Mar 22 11:42:15 2010 +0000
+++ b/gnv/src/main/java/de/intevation/gnv/action/WMSAction.java	Fri Mar 26 09:22:32 2010 +0000
@@ -1,7 +1,9 @@
 package de.intevation.gnv.action;
 
+import java.text.DateFormat;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Date;
 import java.util.Iterator;
 
 import javax.servlet.http.HttpServletRequest;
@@ -39,6 +41,9 @@
     public static final String XPATH_LAYER_TITLE =
         "/art:meta/art:layer/art:title/text()";
 
+    public static final String XPATH_LAYER_TTL =
+        "/art:meta/art:layer/art:ttl/text()";
+
     /**
      * the logger, used to log exceptions and additonaly information
      */
@@ -108,18 +113,41 @@
                 meta, XPATH_MAPSERVER_MAPFILE);
             String layer         = XMLUtils.getStringXPath(
                 meta, XPATH_LAYER_TITLE);
+            String tmpTTL        = XMLUtils.getStringXPath(
+                meta, XPATH_LAYER_TTL);
             layer                = layer != null ? layer : artifact.getId();
 
+            String ttl = null;
+            if (tmpTTL != null) {
+                DateFormat df = DateFormat.getDateTimeInstance(
+                    DateFormat.LONG,
+                    DateFormat.LONG,
+                    request.getLocale());
+                
+                try {
+                    long tmp = Long.parseLong(tmpTTL);
+                    ttl      = df.format(new Date(tmp));
+                }
+                catch (NumberFormatException nfe) {
+                    logger.error("Error while parsing time to live.");
+                    logger.error(nfe,nfe);
+
+                    ttl = "";
+                }
+            }
+
             if (logger.isDebugEnabled()) {
                 logger.debug("Mapserver path: " + mapserverPath);
                 logger.debug("Mapfile path: " + mapfilePath);
                 logger.debug("Layer title: " + layer);
+                logger.debug("Layer ttl: " + ttl);
             }
 
             request.setAttribute("wms", true);
             request.setAttribute("mapserver", mapserverPath);
             request.setAttribute("mapfile", mapfilePath);
             request.setAttribute("layer", layer);
+            request.setAttribute("ttl", ttl);
             if (mapserverPath != null && 
                 mapfilePath != null   &&
                 layer != null){

http://dive4elements.wald.intevation.org