comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/DischargeInfoService.java @ 4173:7d4480c0e68e

Allow users to select the current relevant discharge table in historical discharge table calculattion. In addition to this, the discharge tables in the helper panel displayed in the client is ordered in time.
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 18 Oct 2012 12:13:48 +0200
parents 0cc2c3d89a9d
children 810db532803a
comparison
equal deleted inserted replaced
4172:9fd17cb69047 4173:7d4480c0e68e
1 package de.intevation.flys.artifacts.services; 1 package de.intevation.flys.artifacts.services;
2 2
3 import java.util.Collections;
3 import java.util.List; 4 import java.util.List;
4 import java.util.Date; 5 import java.util.Date;
5 import java.util.Calendar; 6 import java.util.Calendar;
6 import java.util.GregorianCalendar; 7 import java.util.GregorianCalendar;
7 8
14 import de.intevation.artifacts.GlobalContext; 15 import de.intevation.artifacts.GlobalContext;
15 16
16 import de.intevation.artifacts.common.ArtifactNamespaceContext; 17 import de.intevation.artifacts.common.ArtifactNamespaceContext;
17 import de.intevation.artifacts.common.utils.XMLUtils; 18 import de.intevation.artifacts.common.utils.XMLUtils;
18 19
20 import de.intevation.flys.artifacts.model.DischargeTables;
19 import de.intevation.flys.model.Gauge; 21 import de.intevation.flys.model.Gauge;
20 import de.intevation.flys.model.DischargeTable; 22 import de.intevation.flys.model.DischargeTable;
21 import de.intevation.flys.model.TimeInterval; 23 import de.intevation.flys.model.TimeInterval;
22 24
23 /** 25 /**
75 77
76 protected Document buildDocument(Gauge gauge) { 78 protected Document buildDocument(Gauge gauge) {
77 Document result = XMLUtils.newDocument(); 79 Document result = XMLUtils.newDocument();
78 80
79 List<DischargeTable> tables =gauge.getDischargeTables(); 81 List<DischargeTable> tables =gauge.getDischargeTables();
82 Collections.sort(tables);
80 83
81 Element all = result.createElement("discharges"); 84 Element all = result.createElement("discharges");
82 for (DischargeTable dt: tables) { 85 for (DischargeTable dt: tables) {
83 if (dt.getKind() == Gauge.MASTER_DISCHARGE_TABLE) {
84 continue;
85 }
86
87 Element discharge = result.createElement("discharge"); 86 Element discharge = result.createElement("discharge");
88 discharge.setAttribute("description", dt.getDescription()); 87 discharge.setAttribute("description", dt.getDescription());
89 88
90 // Get time interval. 89 // Get time interval.
91 TimeInterval ti = dt.getTimeInterval(); 90 TimeInterval ti = dt.getTimeInterval();
100 99
101 if (startTime != null) { 100 if (startTime != null) {
102 discharge.setAttribute("start", String.valueOf(startTime.getTime())); 101 discharge.setAttribute("start", String.valueOf(startTime.getTime()));
103 } 102 }
104 else { 103 else {
105 discharge.setAttribute("start", "-1"); 104 continue;
106 } 105 }
107 106
108 if (stopTime != null) { 107 if (stopTime != null && dt.getKind() != DischargeTables.MASTER) {
109 discharge.setAttribute("end", String.valueOf(stopTime.getTime())); 108 discharge.setAttribute("end", String.valueOf(stopTime.getTime()));
110 } 109 }
110 else if (dt.getKind() == DischargeTables.MASTER) {
111 long now = System.currentTimeMillis();
112 discharge.setAttribute("end", String.valueOf(now));
113 }
111 else { 114 else {
112 discharge.setAttribute("end", "-1"); 115 continue;
113 } 116 }
114 117
115 all.appendChild(discharge); 118 all.appendChild(discharge);
116 } 119 }
117 result.appendChild(all); 120 result.appendChild(all);

http://dive4elements.wald.intevation.org