view flys-client/src/main/java/de/intevation/flys/client/shared/model/FixAnalysisArtifact.java @ 3497:88feb3347aa5

Implement a ProxyServlet Implement a ProxyServlet to be able to restrict the access to the mapserver too. All queries to the provided map services should go throught this new ProxyServlet. Currently the ProxyServlet can only handle HTTP GET requests. flys-client/trunk@5221 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Bjoern Ricks <bjoern.ricks@intevation.de>
date Thu, 16 Aug 2012 14:42:36 +0000
parents 6b5920c7ea6e
children 7d796197e20a
line wrap: on
line source
package de.intevation.flys.client.shared.model;

import java.util.List;

import com.google.gwt.core.client.GWT;


/**
 * The Fixanalysis implementation of an Artifact.
 *
 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
 */
public class FixAnalysisArtifact extends DefaultArtifact {

    /** The name of this artifact: 'fixanalysis'.*/
    public static final String NAME = "fixanalysis";

    protected FixFilter filter;

    public FixAnalysisArtifact() {
        this.filter = null;
    }


    public  FixAnalysisArtifact(String uuid, String hash) {
        super(uuid, hash);
        this.filter = null;
    }


    public FixAnalysisArtifact(
        String                   uuid,
        String                   hash,
        boolean                  inBackground,
        List<CalculationMessage> messages
    ) {
        super(uuid, hash, inBackground, messages);
    }


    public String getName() {
        return NAME;
    }


    public FixFilter getFilter () {
        return createFilter();
    }


    protected FixFilter createFilter() {
        if (this.filter == null) {
            this.filter = new FixFilter();
        }
        DataList[] old = artifactDescription.getOldData();

        String river = artifactDescription.getDataValueAsString("river");
        if (river != null) {
            this.filter.setRiver(river);
        }

        String from = artifactDescription.getDataValueAsString("from");
        if (from != null) {
            try {
                double fkm = Double.parseDouble(from);
                this.filter.setFromKm(fkm);
            }
            catch(NumberFormatException nfe) {
                GWT.log("Could not parse from km.");
            }
        }

        String to = artifactDescription.getDataValueAsString("to");
        if (to != null) {
            try {
                double tkm = Double.parseDouble(to);
                this.filter.setToKm(tkm);
            }
            catch(NumberFormatException nfe) {
                GWT.log("Could not parse to km");
            }
        }

        String start = artifactDescription.getDataValueAsString("start");
        if (start != null) {
            try {
                long s = Long.parseLong(start);
                this.filter.setFromDate(s);
            }
            catch(NumberFormatException nfe) {
                GWT.log("Could not parse start date");
            }
        }

        String end = artifactDescription.getDataValueAsString("end");
        if (end != null) {
            try {
                long e = Long.parseLong(end);
                this.filter.setToDate(e);
            }
            catch(NumberFormatException nfe) {
                GWT.log("Could not parse end date");
            }
        }

        String q1 = artifactDescription.getDataValueAsString("q1");
        if (q1 != null) {
            try {
                int q1i = Integer.parseInt(q1);
                this.filter.setFromClass(q1i);
            }
            catch(NumberFormatException nfe) {
                GWT.log("Could not parse start class");
            }
        }

        String q2 = artifactDescription.getDataValueAsString("q2");
        if (q2 != null) {
            try {
                int q2i = Integer.parseInt(q2);
                this.filter.setToClass(q2i);
            }
            catch(NumberFormatException nfe) {
                GWT.log("could not parse end class");
            }
        }

        for (DataList list: old) {
            List<Data> items = list.getAll();
            String state = list.getState();
            if(state.equals("state.fix.eventselect")) {
                Data de = getData(items, "events");
                IntegerArrayData iad = (IntegerArrayData) de;
                this.filter.setEvents(iad.getValues());
            }
        }

        return this.filter;
    }

    protected Data getData(List<Data> data, String name) {
        for (Data d: data) {
            if (name.equals(d.getLabel())) {
                return d;
            }
        }
        return null;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org