view flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/MeasurementStationInfoService.java @ 4641:f3325079dacc

Improve the up and down arrows in the theme navigation panel Don't stretch the arrow icons and fit to their actual size. Also put the up buttons on the left and the down buttons on the right.
author Björn Ricks <bjoern.ricks@intevation.de>
date Tue, 04 Dec 2012 16:16:43 +0100
parents 3937c6a85db4
children 5d99cd6e146a
line wrap: on
line source
package de.intevation.flys.artifacts.services;

import java.math.BigDecimal;
import java.text.DateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;

import org.apache.log4j.Logger;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

import de.intevation.artifacts.CallMeta;
import de.intevation.artifacts.GlobalContext;

import de.intevation.flys.model.MeasurementStation;
import de.intevation.flys.model.Gauge;
import de.intevation.flys.model.Range;
import de.intevation.flys.model.TimeInterval;

/**
 * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a>
 */
public class MeasurementStationInfoService extends RiverInfoService {

    private static final Logger logger = Logger.getLogger(
            MeasurementStationInfoService.class);

    public static final DateFormat DATE_FORMAT = DateFormat.getDateInstance(
        DateFormat.SHORT, Locale.GERMANY);

    @Override
    public Document doProcess(
        Document      data,
        GlobalContext globalContext,
        CallMeta      callMeta
    ) {
        Document result = super.doProcess(data, globalContext, callMeta);

        Element egs = ec.create("measurement-stations");

        List<MeasurementStation> mstations = river.getMeasurementStations();

        if (logger.isDebugEnabled()) {
            logger.debug("Loaded stations: " + mstations);
        }

        for (MeasurementStation mstation: mstations) {
            Element eg = ec.create("measurement-station");

            String name = mstation.getName();
            if (name != null) {
                ec.addAttr(eg, "name", name, true);
            }

            Integer id = mstation.getId();
            if (id != null) {
                ec.addAttr(eg, "id", Integer.toString(id), true);
            }

            String type = mstation.getMeasurementType();
            if (type != null) {
                ec.addAttr(eg, "type", type, true);
            }

            String riverside = mstation.getRiverside();
            if (riverside != null) {
                ec.addAttr(eg, "riverside", riverside, true);
            }

            Double station = mstation.getStation();
            if (station != null) {
                ec.addAttr(eg, "station", Double.toString(station), true);
            }

            Range range = mstation.getRange();
            if (range != null) {
                BigDecimal a = range.getA();
                if (a != null) {
                    ec.addAttr(eg, "start", getStringValue(a), true);
                }

                BigDecimal b = range.getB();
                if (b != null) {
                    ec.addAttr(eg, "end", getStringValue(b), true);
                }
            }

            String moperator = mstation.getOperator();
            if (moperator != null) {
                ec.addAttr(eg, "operator", moperator, true);
            }

            TimeInterval tinterval = mstation.getObservationTimerange();
            if (tinterval != null) {
                Date tstart = tinterval.getStartTime();
                if (tstart != null) {
                    ec.addAttr(eg, "starttime", DATE_FORMAT.format(tstart),
                            true);
                }
                Date tstop = tinterval.getStopTime();
                if (tstop != null) {
                    ec.addAttr(eg, "stoptime", DATE_FORMAT.format(tstop),
                            true);
                }
            }

            Gauge gauge = mstation.getGauge();
            String gaugename = gauge.getName();

            if (gaugename != null) {
                Element egauge = ec.create("gauge");
                ec.addAttr(egauge, "name", gaugename, true);
                eg.appendChild(egauge);
            }

            egs.appendChild(eg);
        }

        this.riverele.appendChild(egs);

        return result;
    }

}

http://dive4elements.wald.intevation.org