raimund@2541: package de.intevation.flys.client.shared.model;
raimund@2541:
raimund@2541: import java.util.List;
raimund@2541:
raimund@2906: import com.google.gwt.core.client.GWT;
raimund@2906:
raimund@2541:
raimund@2541: /**
felix@4309: * The Fixanalysis implementation of an Artifact (client side).
raimund@2541: *
raimund@2541: * @author Raimund Renkert
raimund@2541: */
raimund@2541: public class FixAnalysisArtifact extends DefaultArtifact {
raimund@2541:
felix@3381: /** The name of this artifact: 'fixanalysis'.*/
raimund@2541: public static final String NAME = "fixanalysis";
raimund@2541:
ingo@2962: protected FixFilter filter;
raimund@2541:
felix@4309:
raimund@2541: public FixAnalysisArtifact() {
raimund@2884: this.filter = null;
raimund@2541: }
raimund@2541:
raimund@2541:
raimund@2541: public FixAnalysisArtifact(String uuid, String hash) {
raimund@2541: super(uuid, hash);
raimund@2884: this.filter = null;
raimund@2541: }
raimund@2541:
raimund@2541:
raimund@2541: public FixAnalysisArtifact(
raimund@2541: String uuid,
raimund@2541: String hash,
raimund@2541: boolean inBackground,
raimund@2541: List messages
raimund@2541: ) {
raimund@2541: super(uuid, hash, inBackground, messages);
raimund@2541: }
raimund@2541:
raimund@2541:
raimund@2541: public String getName() {
raimund@2541: return NAME;
raimund@2541: }
raimund@2884:
raimund@2884:
ingo@2962: public FixFilter getFilter () {
raimund@2884: return createFilter();
raimund@2884: }
raimund@2884:
raimund@2884:
raimund@2884: protected FixFilter createFilter() {
raimund@2884: if (this.filter == null) {
raimund@2884: this.filter = new FixFilter();
raimund@2884: }
raimund@2884: DataList[] old = artifactDescription.getOldData();
raimund@2906:
raimund@2906: String river = artifactDescription.getDataValueAsString("river");
raimund@2906: if (river != null) {
raimund@2906: this.filter.setRiver(river);
raimund@2906: }
raimund@2906:
raimund@2906: String from = artifactDescription.getDataValueAsString("from");
raimund@2906: if (from != null) {
raimund@2906: try {
sascha@3368: double fkm = Double.parseDouble(from);
raimund@2906: this.filter.setFromKm(fkm);
raimund@2884: }
raimund@2906: catch(NumberFormatException nfe) {
raimund@2906: GWT.log("Could not parse from km.");
raimund@2884: }
raimund@2906: }
raimund@2906:
raimund@2906: String to = artifactDescription.getDataValueAsString("to");
raimund@2906: if (to != null) {
raimund@2906: try {
sascha@3368: double tkm = Double.parseDouble(to);
raimund@2906: this.filter.setToKm(tkm);
raimund@2884: }
raimund@2906: catch(NumberFormatException nfe) {
raimund@2906: GWT.log("Could not parse to km");
raimund@2906: }
raimund@2906: }
raimund@2906:
raimund@2906: String start = artifactDescription.getDataValueAsString("start");
raimund@2906: if (start != null) {
raimund@2906: try {
raimund@2906: long s = Long.parseLong(start);
raimund@2906: this.filter.setFromDate(s);
raimund@2906: }
raimund@2906: catch(NumberFormatException nfe) {
raimund@2906: GWT.log("Could not parse start date");
raimund@2906: }
raimund@2906: }
raimund@2906:
raimund@2906: String end = artifactDescription.getDataValueAsString("end");
raimund@2906: if (end != null) {
raimund@2906: try {
raimund@2906: long e = Long.parseLong(end);
raimund@2906: this.filter.setToDate(e);
raimund@2906: }
raimund@2906: catch(NumberFormatException nfe) {
raimund@2906: GWT.log("Could not parse end date");
raimund@2906: }
raimund@2906: }
raimund@2906:
raimund@2906: String q1 = artifactDescription.getDataValueAsString("q1");
raimund@2906: if (q1 != null) {
raimund@2906: try {
sascha@3368: int q1i = Integer.parseInt(q1);
raimund@2906: this.filter.setFromClass(q1i);
raimund@2906: }
raimund@2906: catch(NumberFormatException nfe) {
raimund@2906: GWT.log("Could not parse start class");
raimund@2906: }
raimund@2906: }
raimund@2906:
raimund@2906: String q2 = artifactDescription.getDataValueAsString("q2");
raimund@2906: if (q2 != null) {
raimund@2906: try {
sascha@3368: int q2i = Integer.parseInt(q2);
raimund@2906: this.filter.setToClass(q2i);
raimund@2906: }
raimund@2906: catch(NumberFormatException nfe) {
raimund@2906: GWT.log("could not parse end class");
raimund@2906: }
raimund@2906: }
raimund@2906:
raimund@2906: for (DataList list: old) {
raimund@2906: List items = list.getAll();
raimund@2906: String state = list.getState();
raimund@2884: if(state.equals("state.fix.eventselect")) {
raimund@2884: Data de = getData(items, "events");
raimund@2884: IntegerArrayData iad = (IntegerArrayData) de;
raimund@2884: this.filter.setEvents(iad.getValues());
raimund@2884: }
raimund@2884: }
raimund@2906:
raimund@2884: return this.filter;
raimund@2884: }
raimund@2884:
raimund@2884: protected Data getData(List data, String name) {
raimund@2884: for (Data d: data) {
raimund@2884: if (name.equals(d.getLabel())) {
raimund@2884: return d;
raimund@2884: }
raimund@2884: }
raimund@2884: return null;
raimund@2884: }
raimund@2541: }
raimund@2541: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :