# HG changeset patch
# User gernotbelger
# Date 1530269177 -7200
# Node ID f6b7837b89aab0c5bf95306f1616eb177ce750e5
# Parent ed4b1438966731b712a6b1ffd1d543678b89d112# Parent f692f5a0536ae214875efc046363d1821948fd5f
Zusammenführen
diff -r ed4b14389667 -r f6b7837b89aa artifacts/doc/conf/artifacts/uinfo.xml
--- a/artifacts/doc/conf/artifacts/uinfo.xml Thu Jun 28 19:13:14 2018 +0200
+++ b/artifacts/doc/conf/artifacts/uinfo.xml Fri Jun 29 12:46:17 2018 +0200
@@ -222,10 +222,21 @@
+
+
+
+
+
+
+
+
+
+
+
diff -r ed4b14389667 -r f6b7837b89aa artifacts/doc/conf/generators/generators.xml
--- a/artifacts/doc/conf/generators/generators.xml Thu Jun 28 19:13:14 2018 +0200
+++ b/artifacts/doc/conf/generators/generators.xml Fri Jun 29 12:46:17 2018 +0200
@@ -3,76 +3,80 @@
&longitudinal-diagrams;
&discharge-diagrams;
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
+ -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r ed4b14389667 -r f6b7837b89aa artifacts/doc/conf/jasper/templates/sinfo.collision.detail.jrxml
--- a/artifacts/doc/conf/jasper/templates/sinfo.collision.detail.jrxml Thu Jun 28 19:13:14 2018 +0200
+++ b/artifacts/doc/conf/jasper/templates/sinfo.collision.detail.jrxml Fri Jun 29 12:46:17 2018 +0200
@@ -1,6 +1,6 @@
-
+
@@ -99,15 +99,7 @@
-
-
-
-
-
-
-
-
-
+
diff -r ed4b14389667 -r f6b7837b89aa artifacts/doc/conf/jasper/templates/uinfo.inundationduration.jrxml
--- a/artifacts/doc/conf/jasper/templates/uinfo.inundationduration.jrxml Thu Jun 28 19:13:14 2018 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,201 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- [cm]"]]>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff -r ed4b14389667 -r f6b7837b89aa artifacts/src/main/java/org/dive4elements/river/artifacts/model/FacetTypes.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/FacetTypes.java Thu Jun 28 19:13:14 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/FacetTypes.java Fri Jun 29 12:46:17 2018 +0200
@@ -11,143 +11,92 @@
/** 'Types' of facets. */
public interface FacetTypes {
- /** Static helper class to determine if a Facet name is of a generalized
- * 'type'. */
+ /**
+ * Static helper class to determine if a Facet name is of a generalized
+ * 'type'.
+ */
public static class IS {
- public static boolean WQ_KM(String type) {
- return type.equals(DISCHARGE_LONGITUDINAL_W)
- || type.equals(LONGITUDINAL_W);
- }
- public static boolean W_KM(String type) {
- return type.equals(STATIC_WKMS)
- || type.equals(HEIGHTMARKS_POINTS)
- || WQ_KM(type);
- }
- public static boolean AREA(String type) {
- return type.equals(AREA)
- || type.equals(CROSS_SECTION_AREA)
- || type.equals(LONGITUDINAL_SECTION_AREA);
+ public static boolean WQ_KM(final String type) {
+ return type.equals(DISCHARGE_LONGITUDINAL_W) || type.equals(LONGITUDINAL_W);
}
- public static boolean W(String type) {
- return type.equals(LONGITUDINAL_W)
- || type.equals(DISCHARGE_LONGITUDINAL_W)
- || type.equals(DURATION_W)
- || type.equals(STATIC_WKMS)
- || type.equals(STATIC_WQKMS_W);
+
+ public static boolean W_KM(final String type) {
+ return type.equals(STATIC_WKMS) || type.equals(HEIGHTMARKS_POINTS) || WQ_KM(type);
}
- public static boolean Q(String type) {
- return type.equals(LONGITUDINAL_Q)
- || type.equals(DISCHARGE_LONGITUDINAL_Q)
- || type.equals(DURATION_Q)
- || type.equals(STATIC_WQKMS_Q);
+
+ public static boolean AREA(final String type) {
+ return type.equals(AREA) || type.equals(CROSS_SECTION_AREA) || type.equals(LONGITUDINAL_SECTION_AREA);
}
- public static boolean V(String type) {
- return type.equals(FLOW_VELOCITY_MAINCHANNEL)
- || type.equals(FLOW_VELOCITY_TOTALCHANNEL);
+
+ public static boolean W(final String type) {
+ return type.equals(LONGITUDINAL_W) || type.equals(DISCHARGE_LONGITUDINAL_W) || type.equals(DURATION_W) || type.equals(STATIC_WKMS)
+ || type.equals(STATIC_WQKMS_W);
}
- public static boolean T(String type) {
+
+ public static boolean Q(final String type) {
+ return type.equals(LONGITUDINAL_Q) || type.equals(DISCHARGE_LONGITUDINAL_Q) || type.equals(DURATION_Q) || type.equals(STATIC_WQKMS_Q);
+ }
+
+ public static boolean V(final String type) {
+ return type.equals(FLOW_VELOCITY_MAINCHANNEL) || type.equals(FLOW_VELOCITY_TOTALCHANNEL);
+ }
+
+ public static boolean T(final String type) {
return type.equals(FLOW_VELOCITY_TAU);
}
- public static boolean H(String type) {
+
+ public static boolean H(final String type) {
return type.equals(MIDDLE_BED_HEIGHT_SINGLE);
}
- public static boolean MANUALPOINTS(String type) {
+
+ public static boolean MANUALPOINTS(final String type) {
return type.endsWith("manualpoints");
}
- public static boolean MANUALLINE(String type) {
+
+ public static boolean MANUALLINE(final String type) {
return type.endsWith("manualline");
}
- public static boolean FILTERED(String type) {
+
+ public static boolean FILTERED(final String type) {
return type.endsWith("filtered");
}
- public static boolean SQ_CURVE(String type) {
- if (type.equals(SQ_A_CURVE)
- || type.equals(SQ_B_CURVE)
- || type.equals(SQ_C_CURVE)
- || type.equals(SQ_D_CURVE)
- || type.equals(SQ_E_CURVE)
- || type.equals(SQ_F_CURVE)
- || type.equals(SQ_G_CURVE)
- || type.equals(SQ_A_OUTLIER_CURVE)
- || type.equals(SQ_B_OUTLIER_CURVE)
- || type.equals(SQ_C_OUTLIER_CURVE)
- || type.equals(SQ_D_OUTLIER_CURVE)
- || type.equals(SQ_E_OUTLIER_CURVE)
- || type.equals(SQ_F_OUTLIER_CURVE)
- || type.equals(SQ_G_OUTLIER_CURVE)
- || type.equals(SQ_A_CURVE_OV)
- || type.equals(SQ_B_CURVE_OV)
- || type.equals(SQ_C_CURVE_OV)
- || type.equals(SQ_D_CURVE_OV)
- || type.equals(SQ_E_CURVE_OV)
- || type.equals(SQ_F_CURVE_OV)
- || type.equals(SQ_G_CURVE_OV)
- || type.equals(SQ_A_OUTLIER_CURVE_OV)
- || type.equals(SQ_B_OUTLIER_CURVE_OV)
- || type.equals(SQ_C_OUTLIER_CURVE_OV)
- || type.equals(SQ_D_OUTLIER_CURVE_OV)
- || type.equals(SQ_E_OUTLIER_CURVE_OV)
- || type.equals(SQ_F_OUTLIER_CURVE_OV)
- || type.equals(SQ_G_OUTLIER_CURVE_OV)
- )
- {
+
+ public static boolean SQ_CURVE(final String type) {
+ if (type.equals(SQ_A_CURVE) || type.equals(SQ_B_CURVE) || type.equals(SQ_C_CURVE) || type.equals(SQ_D_CURVE) || type.equals(SQ_E_CURVE)
+ || type.equals(SQ_F_CURVE) || type.equals(SQ_G_CURVE) || type.equals(SQ_A_OUTLIER_CURVE) || type.equals(SQ_B_OUTLIER_CURVE)
+ || type.equals(SQ_C_OUTLIER_CURVE) || type.equals(SQ_D_OUTLIER_CURVE) || type.equals(SQ_E_OUTLIER_CURVE) || type.equals(SQ_F_OUTLIER_CURVE)
+ || type.equals(SQ_G_OUTLIER_CURVE) || type.equals(SQ_A_CURVE_OV) || type.equals(SQ_B_CURVE_OV) || type.equals(SQ_C_CURVE_OV)
+ || type.equals(SQ_D_CURVE_OV) || type.equals(SQ_E_CURVE_OV) || type.equals(SQ_F_CURVE_OV) || type.equals(SQ_G_CURVE_OV)
+ || type.equals(SQ_A_OUTLIER_CURVE_OV) || type.equals(SQ_B_OUTLIER_CURVE_OV) || type.equals(SQ_C_OUTLIER_CURVE_OV)
+ || type.equals(SQ_D_OUTLIER_CURVE_OV) || type.equals(SQ_E_OUTLIER_CURVE_OV) || type.equals(SQ_F_OUTLIER_CURVE_OV)
+ || type.equals(SQ_G_OUTLIER_CURVE_OV)) {
return true;
}
return false;
}
- public static boolean SQ_MEASUREMENT(String type) {
- if (type.equals(SQ_A_MEASUREMENT)
- || type.equals(SQ_B_MEASUREMENT)
- || type.equals(SQ_C_MEASUREMENT)
- || type.equals(SQ_D_MEASUREMENT)
- || type.equals(SQ_E_MEASUREMENT)
- || type.equals(SQ_F_MEASUREMENT)
- || type.equals(SQ_G_MEASUREMENT)
- || type.equals(SQ_A_OUTLIER_MEASUREMENT)
- || type.equals(SQ_B_OUTLIER_MEASUREMENT)
- || type.equals(SQ_C_OUTLIER_MEASUREMENT)
- || type.equals(SQ_D_OUTLIER_MEASUREMENT)
- || type.equals(SQ_E_OUTLIER_MEASUREMENT)
- || type.equals(SQ_F_OUTLIER_MEASUREMENT)
- || type.equals(SQ_G_OUTLIER_MEASUREMENT)
- || type.equals(SQ_A_MEASUREMENT_OV)
- || type.equals(SQ_B_MEASUREMENT_OV)
- || type.equals(SQ_C_MEASUREMENT_OV)
- || type.equals(SQ_D_MEASUREMENT_OV)
- || type.equals(SQ_E_MEASUREMENT_OV)
- || type.equals(SQ_F_MEASUREMENT_OV)
- || type.equals(SQ_G_MEASUREMENT_OV)
- || type.equals(SQ_A_OUTLIER_MEASUREMENT_OV)
- || type.equals(SQ_B_OUTLIER_MEASUREMENT_OV)
- || type.equals(SQ_C_OUTLIER_MEASUREMENT_OV)
- || type.equals(SQ_D_OUTLIER_MEASUREMENT_OV)
- || type.equals(SQ_E_OUTLIER_MEASUREMENT_OV)
- || type.equals(SQ_F_OUTLIER_MEASUREMENT_OV)
- || type.equals(SQ_G_OUTLIER_MEASUREMENT_OV)
- )
- {
+
+ public static boolean SQ_MEASUREMENT(final String type) {
+ if (type.equals(SQ_A_MEASUREMENT) || type.equals(SQ_B_MEASUREMENT) || type.equals(SQ_C_MEASUREMENT) || type.equals(SQ_D_MEASUREMENT)
+ || type.equals(SQ_E_MEASUREMENT) || type.equals(SQ_F_MEASUREMENT) || type.equals(SQ_G_MEASUREMENT) || type.equals(SQ_A_OUTLIER_MEASUREMENT)
+ || type.equals(SQ_B_OUTLIER_MEASUREMENT) || type.equals(SQ_C_OUTLIER_MEASUREMENT) || type.equals(SQ_D_OUTLIER_MEASUREMENT)
+ || type.equals(SQ_E_OUTLIER_MEASUREMENT) || type.equals(SQ_F_OUTLIER_MEASUREMENT) || type.equals(SQ_G_OUTLIER_MEASUREMENT)
+ || type.equals(SQ_A_MEASUREMENT_OV) || type.equals(SQ_B_MEASUREMENT_OV) || type.equals(SQ_C_MEASUREMENT_OV)
+ || type.equals(SQ_D_MEASUREMENT_OV) || type.equals(SQ_E_MEASUREMENT_OV) || type.equals(SQ_F_MEASUREMENT_OV)
+ || type.equals(SQ_G_MEASUREMENT_OV) || type.equals(SQ_A_OUTLIER_MEASUREMENT_OV) || type.equals(SQ_B_OUTLIER_MEASUREMENT_OV)
+ || type.equals(SQ_C_OUTLIER_MEASUREMENT_OV) || type.equals(SQ_D_OUTLIER_MEASUREMENT_OV) || type.equals(SQ_E_OUTLIER_MEASUREMENT_OV)
+ || type.equals(SQ_F_OUTLIER_MEASUREMENT_OV) || type.equals(SQ_G_OUTLIER_MEASUREMENT_OV)) {
return true;
}
return false;
}
- public static boolean SQ_OUTLIER(String type) {
- if (type.equals(SQ_A_OUTLIER)
- || type.equals(SQ_B_OUTLIER)
- || type.equals(SQ_C_OUTLIER)
- || type.equals(SQ_D_OUTLIER)
- || type.equals(SQ_E_OUTLIER)
- || type.equals(SQ_F_OUTLIER)
- || type.equals(SQ_G_OUTLIER)
- || type.equals(SQ_A_OUTLIER_OV)
- || type.equals(SQ_B_OUTLIER_OV)
- || type.equals(SQ_C_OUTLIER_OV)
- || type.equals(SQ_D_OUTLIER_OV)
- || type.equals(SQ_E_OUTLIER_OV)
- || type.equals(SQ_F_OUTLIER_OV)
- || type.equals(SQ_G_OUTLIER_OV))
- {
+
+ public static boolean SQ_OUTLIER(final String type) {
+ if (type.equals(SQ_A_OUTLIER) || type.equals(SQ_B_OUTLIER) || type.equals(SQ_C_OUTLIER) || type.equals(SQ_D_OUTLIER) || type.equals(SQ_E_OUTLIER)
+ || type.equals(SQ_F_OUTLIER) || type.equals(SQ_G_OUTLIER) || type.equals(SQ_A_OUTLIER_OV) || type.equals(SQ_B_OUTLIER_OV)
+ || type.equals(SQ_C_OUTLIER_OV) || type.equals(SQ_D_OUTLIER_OV) || type.equals(SQ_E_OUTLIER_OV) || type.equals(SQ_F_OUTLIER_OV)
+ || type.equals(SQ_G_OUTLIER_OV)) {
return true;
}
@@ -155,51 +104,26 @@
}
}
- /** Available diagram/chart-types. This enum is evaluated at certain
+ /**
+ * Available diagram/chart-types. This enum is evaluated at certain
* places to iterate over chart-types to e.g. dynamically generate
- * Facet-names (ManualPoints for example). */
+ * Facet-names (ManualPoints for example).
+ */
public enum ChartType {
- FD("fix_derivate_curve"),
- LS("longitudinal_section"),
- CS("cross_section"),
- DLS("discharge_longitudinal_section"),
- CDC("computed_discharge_curve"),
- DUC("duration_curve"),
- DIC("discharge_curve"),
- RC("reference_curve"),
- RCN("reference_curve_normalized"),
- WD("wdifferences"),
- BHDY("bedheight_difference_height_year"),
- BDY("bed_difference_year"),
- FWQC("fix_wq_curve"),
- FDWC("fix_deltawt_curve"),
- FLSC("fix_longitudinal_section_curve"),
- FDC("fix_derivate_curve"),
- EWQ("extreme_wq_curve"),
- BHM("bedheight_middle"),
- BLS("bed_longitudinal_section"),
- SLS("sedimentload_ls"),
- FV("flow_velocity"),
- SQA("sq_relation_a"),
- SQB("sq_relation_b"),
- W_D("w_differences"),
- SQC("sq_relation_c"),
- SQD("sq_relation_d"),
- SQE("sq_relation_e"),
- SQF("sq_relation_f"),
- HD("historical_discharge"),
- HDWQ("historical_discharge_wq"),
- SFD("sinfo_flow_depth"),
- SFDMM("sinfo_flow_depth_minmax"),
- SFDD("sinfo_flow_depth_development"),
- SFDDPY("sinfo_flow_depth_development_peryear"),
- SC("sinfo_collision"),
- SFDUR("sinfo_flood_duration"),
- STKH("sinfo_tkk");
+ FD("fix_derivate_curve"), LS("longitudinal_section"), CS("cross_section"), DLS("discharge_longitudinal_section"), CDC("computed_discharge_curve"), DUC(
+ "duration_curve"), DIC("discharge_curve"), RC("reference_curve"), RCN("reference_curve_normalized"), WD("wdifferences"), BHDY(
+ "bedheight_difference_height_year"), BDY("bed_difference_year"), FWQC("fix_wq_curve"), FDWC("fix_deltawt_curve"), FLSC(
+ "fix_longitudinal_section_curve"), FDC("fix_derivate_curve"), EWQ("extreme_wq_curve"), BHM("bedheight_middle"), BLS(
+ "bed_longitudinal_section"), SLS("sedimentload_ls"), FV(
+ "flow_velocity"), SQA("sq_relation_a"), SQB("sq_relation_b"), W_D("w_differences"), SQC("sq_relation_c"), SQD(
+ "sq_relation_d"), SQE("sq_relation_e"), SQF("sq_relation_f"), HD("historical_discharge"), HDWQ(
+ "historical_discharge_wq"), SFD("sinfo_flow_depth"), SFDMM("sinfo_flow_depth_minmax"), SFDD(
+ "sinfo_flow_depth_development"), SFDDPY("sinfo_flow_depth_development_peryear"), SC(
+ "sinfo_collision"), SFDUR("sinfo_flood_duration"), STKH("sinfo_tkk");
- private String chartTypeString;
+ private final String chartTypeString;
- ChartType(String description) {
+ ChartType(final String description) {
this.chartTypeString = description;
}
@@ -209,44 +133,43 @@
}
}
- String AREA = "area";
- String CROSS_SECTION_AREA = "cross_section.area";
- String LONGITUDINAL_SECTION_AREA = "longitudinal_section.area";
+ String AREA = "area";
+ String CROSS_SECTION_AREA = "cross_section.area";
+ String LONGITUDINAL_SECTION_AREA = "longitudinal_section.area";
- String FLOODMAP_WSPLGEN = "floodmap.wsplgen";
- String FLOODMAP_BARRIERS = "floodmap.barriers";
- String FLOODMAP_USERSHAPE = "floodmap.usershape";
- String FLOODMAP_RIVERAXIS = "floodmap.riveraxis";
+ String FLOODMAP_WSPLGEN = "floodmap.wsplgen";
+ String FLOODMAP_BARRIERS = "floodmap.barriers";
+ String FLOODMAP_USERSHAPE = "floodmap.usershape";
+ String FLOODMAP_RIVERAXIS = "floodmap.riveraxis";
@Deprecated
- String FLOODMAP_WMSBACKGROUND = "floodmap.wmsbackground";
- String FLOODMAP_KMS = "floodmap.kms";
- String FLOODMAP_QPS = "floodmap.qps";
- String FLOODMAP_HWS_LINES = "floodmap.hws_lines";
- String FLOODMAP_HWS_POINTS = "floodmap.hws_points";
- String FLOODMAP_HYDR_BOUNDARY = "floodmap.hydr_boundaries";
+ String FLOODMAP_WMSBACKGROUND = "floodmap.wmsbackground";
+ String FLOODMAP_KMS = "floodmap.kms";
+ String FLOODMAP_QPS = "floodmap.qps";
+ String FLOODMAP_HWS_LINES = "floodmap.hws_lines";
+ String FLOODMAP_HWS_POINTS = "floodmap.hws_points";
+ String FLOODMAP_HYDR_BOUNDARY = "floodmap.hydr_boundaries";
String FLOODMAP_HYDR_BOUNDARY_POLY = "floodmap.hydr_boundaries_poly";
- String FLOODMAP_CATCHMENT = "floodmap.catchment";
- String FLOODMAP_FLOODPLAIN = "floodmap.floodplain";
- String FLOODMAP_LINES = "floodmap.lines";
- String FLOODMAP_BUILDINGS = "floodmap.buildings";
- String FLOODMAP_FIXPOINTS = "floodmap.fixpoints";
- String FLOODMAP_FLOODMARKS = "floodmap.floodmarks";
- String FLOODMAP_FLOODMAPS = "floodmap.floodmaps";
- String FLOODMAP_GAUGE_LOCATION = "floodmap.gauge_location";
- String FLOODMAP_EXTERNAL_WMS = "floodmap.externalwms";
- String FLOODMAP_JETTIES = "floodmap.jetties";
+ String FLOODMAP_CATCHMENT = "floodmap.catchment";
+ String FLOODMAP_FLOODPLAIN = "floodmap.floodplain";
+ String FLOODMAP_LINES = "floodmap.lines";
+ String FLOODMAP_BUILDINGS = "floodmap.buildings";
+ String FLOODMAP_FIXPOINTS = "floodmap.fixpoints";
+ String FLOODMAP_FLOODMARKS = "floodmap.floodmarks";
+ String FLOODMAP_FLOODMAPS = "floodmap.floodmaps";
+ String FLOODMAP_GAUGE_LOCATION = "floodmap.gauge_location";
+ String FLOODMAP_EXTERNAL_WMS = "floodmap.externalwms";
+ String FLOODMAP_EXTERNAL_WMS_INUNDATIONDUR = "floodmap.externalwms_";
+ String FLOODMAP_JETTIES = "floodmap.jetties";
String DISCHARGE_LONGITUDINAL_W = "discharge_longitudinal_section.w";
String DISCHARGE_LONGITUDINAL_Q = "discharge_longitudinal_section.q";
- String DISCHARGE_LONGITUDINAL_Q_INFOLD =
- "discharge_longitudinal_section.q.infolding";
- String DISCHARGE_LONGITUDINAL_Q_INFOLD_CUT =
- "discharge_longitudinal_section.q.cutting";
+ String DISCHARGE_LONGITUDINAL_Q_INFOLD = "discharge_longitudinal_section.q.infolding";
+ String DISCHARGE_LONGITUDINAL_Q_INFOLD_CUT = "discharge_longitudinal_section.q.cutting";
String DISCHARGE_LONGITUDINAL_C = "discharge_longitudinal_section.c";
String LONGITUDINAL_W = "longitudinal_section.w";
String LONGITUDINAL_Q = "longitudinal_section.q";
- String LONGITUDINAL_ANNOTATION = "longitudinal_section.annotations";
+ String LONGITUDINAL_ANNOTATION = "longitudinal_section.annotations";
String LONGITUDINAL_MANUALPOINTS = "longitudinal_section.manualpoints";
String W_DIFFERENCES = "w_differences";
@@ -272,17 +195,17 @@
String MANUALPOINTS = "manualpoints";
String MANUALLINE = "manualline";
- String QSECTOR = "qsectors";
+ String QSECTOR = "qsectors";
- String STATIC_DELTA_W = "other.delta_w";
- String STATIC_DELTA_W_CMA= "other.delta_w_cma";
- String STATIC_WQ = "other.wq";
+ String STATIC_DELTA_W = "other.delta_w";
+ String STATIC_DELTA_W_CMA = "other.delta_w_cma";
+ String STATIC_WQ = "other.wq";
String STATIC_WQ_ANNOTATIONS = "other.wq.annotations";
- String STATIC_WKMS = "other.wkms";
+ String STATIC_WKMS = "other.wkms";
String STATIC_WKMS_MARKS = "other.wkms.marks";
- String STATIC_WQKMS = "other.wqkms";
- String STATIC_WQKMS_W = "other.wqkms.w";
- String STATIC_WQKMS_Q = "other.wqkms.q";
+ String STATIC_WQKMS = "other.wqkms";
+ String STATIC_WQKMS_W = "other.wqkms.w";
+ String STATIC_WQKMS_Q = "other.wqkms.q";
String STATIC_WKMS_INTERPOL = "other.wkms.interpol";
String STATIC_W_INTERPOL = "other.w.interpol";
@@ -290,74 +213,57 @@
String CSV = "csv";
String WST = "wst";
- String AT = "at";
+ String AT = "at";
String PDF = "pdf";
String REPORT = "report";
- String HISTORICAL_DISCHARGE_Q = "historical_discharge.historicalq";
- String HISTORICAL_DISCHARGE_Q_DIFF =
- "historical_discharge.historicalq.diff";
- String HISTORICAL_DISCHARGE_W = "historical_discharge.historicalw";
- String HISTORICAL_DISCHARGE_W_DIFF =
- "historical_discharge.historicalw.diff";
- String HISTORICAL_DISCHARGE_WQ_Q = "historical_discharge.wq.q";
- String HISTORICAL_DISCHARGE_WQ_W = "historical_discharge.wq.w";
+ String HISTORICAL_DISCHARGE_Q = "historical_discharge.historicalq";
+ String HISTORICAL_DISCHARGE_Q_DIFF = "historical_discharge.historicalq.diff";
+ String HISTORICAL_DISCHARGE_W = "historical_discharge.historicalw";
+ String HISTORICAL_DISCHARGE_W_DIFF = "historical_discharge.historicalw.diff";
+ String HISTORICAL_DISCHARGE_WQ_Q = "historical_discharge.wq.q";
+ String HISTORICAL_DISCHARGE_WQ_W = "historical_discharge.wq.w";
- String REFERENCE_CURVE = "reference_curve";
+ String REFERENCE_CURVE = "reference_curve";
String REFERENCE_CURVE_NORMALIZED = "reference_curve_normalized";
- String FLOW_VELOCITY_MAINCHANNEL = "flow_velocity.mainchannel";
- String FLOW_VELOCITY_TOTALCHANNEL = "flow_velocity.totalchannel";
+ String FLOW_VELOCITY_MAINCHANNEL = "flow_velocity.mainchannel";
+ String FLOW_VELOCITY_TOTALCHANNEL = "flow_velocity.totalchannel";
/** Also called SHEAR_STRESS. */
- String FLOW_VELOCITY_TAU = "flow_velocity.tau";
- String FLOW_VELOCITY_MAINCHANNEL_FILTERED =
- "flow_velocity.mainchannel.filtered";
- String FLOW_VELOCITY_TOTALCHANNEL_FILTERED =
- "flow_velocity.totalchannel.filtered";
- String FLOW_VELOCITY_TAU_FILTERED = "flow_velocity.tau.filtered";
- String FLOW_VELOCITY_ANNOTATION = "flow_velocity.annotation";
- String FLOW_VELOCITY_MEASUREMENT = "flow_velocity.measurement";
- String FLOW_VELOCITY_DISCHARGE = "flow_velocity.discharge";
- String FLOW_VELOCITY_WATERLEVEL = "flow_velocity.waterlevel";
+ String FLOW_VELOCITY_TAU = "flow_velocity.tau";
+ String FLOW_VELOCITY_MAINCHANNEL_FILTERED = "flow_velocity.mainchannel.filtered";
+ String FLOW_VELOCITY_TOTALCHANNEL_FILTERED = "flow_velocity.totalchannel.filtered";
+ String FLOW_VELOCITY_TAU_FILTERED = "flow_velocity.tau.filtered";
+ String FLOW_VELOCITY_ANNOTATION = "flow_velocity.annotation";
+ String FLOW_VELOCITY_MEASUREMENT = "flow_velocity.measurement";
+ String FLOW_VELOCITY_DISCHARGE = "flow_velocity.discharge";
+ String FLOW_VELOCITY_WATERLEVEL = "flow_velocity.waterlevel";
- String MIDDLE_BED_HEIGHT_SINGLE = "bedheight_middle.single";
+ String MIDDLE_BED_HEIGHT_SINGLE = "bedheight_middle.single";
String MIDDLE_BED_HEIGHT_ANNOTATION = "bedheight_middle.annotation";
String BED_QUALITY_DATA_FACET = "bed_longitudinal_section";
- String BED_QUALITY_POROSITY_TOPLAYER =
- BED_QUALITY_DATA_FACET + ".porosity.toplayer";
- String BED_QUALITY_POROSITY_SUBLAYER =
- BED_QUALITY_DATA_FACET + ".porosity.sublayer";
- String BED_QUALITY_BED_DIAMETER_TOPLAYER =
- BED_QUALITY_DATA_FACET + ".diameter.toplayer";
- String BED_QUALITY_BED_DIAMETER_SUBLAYER =
- BED_QUALITY_DATA_FACET + ".diameter.sublayer";
- String BED_QUALITY_SEDIMENT_DENSITY_TOPLAYER =
- BED_QUALITY_DATA_FACET + ".density.toplayer";
- String BED_QUALITY_SEDIMENT_DENSITY_SUBLAYER =
- BED_QUALITY_DATA_FACET + ".density.sublayer";
- String BED_QUALITY_BEDLOAD_DIAMETER =
- BED_QUALITY_DATA_FACET + ".diameter.bedload";
- String BED_DIAMETER_DATA_TOP =
- BED_QUALITY_DATA_FACET + ".diameter.toplayer.data";
- String BED_DIAMETER_DATA_SUB =
- BED_QUALITY_DATA_FACET + ".diameter.sublayer.data";
- String BEDLOAD_DIAMETER_DATA =
- BED_QUALITY_DATA_FACET + ".diameter.bedload.data";
+ String BED_QUALITY_POROSITY_TOPLAYER = BED_QUALITY_DATA_FACET + ".porosity.toplayer";
+ String BED_QUALITY_POROSITY_SUBLAYER = BED_QUALITY_DATA_FACET + ".porosity.sublayer";
+ String BED_QUALITY_BED_DIAMETER_TOPLAYER = BED_QUALITY_DATA_FACET + ".diameter.toplayer";
+ String BED_QUALITY_BED_DIAMETER_SUBLAYER = BED_QUALITY_DATA_FACET + ".diameter.sublayer";
+ String BED_QUALITY_SEDIMENT_DENSITY_TOPLAYER = BED_QUALITY_DATA_FACET + ".density.toplayer";
+ String BED_QUALITY_SEDIMENT_DENSITY_SUBLAYER = BED_QUALITY_DATA_FACET + ".density.sublayer";
+ String BED_QUALITY_BEDLOAD_DIAMETER = BED_QUALITY_DATA_FACET + ".diameter.bedload";
+ String BED_DIAMETER_DATA_TOP = BED_QUALITY_DATA_FACET + ".diameter.toplayer.data";
+ String BED_DIAMETER_DATA_SUB = BED_QUALITY_DATA_FACET + ".diameter.sublayer.data";
+ String BEDLOAD_DIAMETER_DATA = BED_QUALITY_DATA_FACET + ".diameter.bedload.data";
String POROSITY = "porosity";
String BED_DIFFERENCE_YEAR = "bedheight_difference.year";
String BED_DIFFERENCE_YEAR_FILTERED = "bedheight_difference.year.filtered";
String BED_DIFFERENCE_HEIGHT_YEAR = "bedheight_difference.height_year";
- String BED_DIFFERENCE_HEIGHT_YEAR_FILTERED =
- "bedheight_difference.height_year.filtered";
+ String BED_DIFFERENCE_HEIGHT_YEAR_FILTERED = "bedheight_difference.height_year.filtered";
String BED_DIFFERENCE_YEAR_HEIGHT1 = "bedheight_difference.year.height1";
String BED_DIFFERENCE_YEAR_HEIGHT2 = "bedheight_difference.year.height2";
- String BED_DIFFERENCE_YEAR_HEIGHT1_FILTERED =
- "bedheight_difference.year.height1.filtered";
- String BED_DIFFERENCE_YEAR_HEIGHT2_FILTERED =
- "bedheight_difference.year.height2.filtered";
+ String BED_DIFFERENCE_YEAR_HEIGHT1_FILTERED = "bedheight_difference.year.height1.filtered";
+ String BED_DIFFERENCE_YEAR_HEIGHT2_FILTERED = "bedheight_difference.year.height2.filtered";
String MORPHOLOGIC_WIDTH = "morph-width";
@@ -365,88 +271,87 @@
String SQ_OVERVIEW = "sq_overview";
- String SQ_A_CURVE = "sq_a_curve";
+ String SQ_A_CURVE = "sq_a_curve";
String SQ_A_MEASUREMENT = "sq_a_measurement";
- String SQ_A_OUTLIER = "sq_a_outlier";
+ String SQ_A_OUTLIER = "sq_a_outlier";
String SQ_A_OUTLIER_CURVE = "sq_a_outlier_curve";
String SQ_A_OUTLIER_MEASUREMENT = "sq_a_outlier_measurement";
- String SQ_B_CURVE = "sq_b_curve";
+ String SQ_B_CURVE = "sq_b_curve";
String SQ_B_MEASUREMENT = "sq_b_measurement";
- String SQ_B_OUTLIER = "sq_b_outlier";
- String SQ_B_OUTLIER_CURVE = "sq_b_outlier_curve";
- String SQ_B_OUTLIER_MEASUREMENT = "sq_b_outlier_measurement";
+ String SQ_B_OUTLIER = "sq_b_outlier";
+ String SQ_B_OUTLIER_CURVE = "sq_b_outlier_curve";
+ String SQ_B_OUTLIER_MEASUREMENT = "sq_b_outlier_measurement";
- String SQ_C_CURVE = "sq_c_curve";
+ String SQ_C_CURVE = "sq_c_curve";
String SQ_C_MEASUREMENT = "sq_c_measurement";
- String SQ_C_OUTLIER = "sq_c_outlier";
+ String SQ_C_OUTLIER = "sq_c_outlier";
String SQ_C_OUTLIER_CURVE = "sq_c_outlier_curve";
String SQ_C_OUTLIER_MEASUREMENT = "sq_c_outlier_measurement";
- String SQ_D_CURVE = "sq_d_curve";
+ String SQ_D_CURVE = "sq_d_curve";
String SQ_D_MEASUREMENT = "sq_d_measurement";
- String SQ_D_OUTLIER = "sq_d_outlier";
+ String SQ_D_OUTLIER = "sq_d_outlier";
String SQ_D_OUTLIER_CURVE = "sq_d_outlier_curve";
String SQ_D_OUTLIER_MEASUREMENT = "sq_d_outlier_measurement";
- String SQ_E_CURVE = "sq_e_curve";
+ String SQ_E_CURVE = "sq_e_curve";
String SQ_E_MEASUREMENT = "sq_e_measurement";
- String SQ_E_OUTLIER = "sq_e_outlier";
+ String SQ_E_OUTLIER = "sq_e_outlier";
String SQ_E_OUTLIER_CURVE = "sq_e_outlier_curve";
String SQ_E_OUTLIER_MEASUREMENT = "sq_e_outlier_curve_measurement";
- String SQ_F_CURVE = "sq_f_curve";
+ String SQ_F_CURVE = "sq_f_curve";
String SQ_F_MEASUREMENT = "sq_f_measurement";
- String SQ_F_OUTLIER = "sq_f_outlier";
+ String SQ_F_OUTLIER = "sq_f_outlier";
String SQ_F_OUTLIER_CURVE = "sq_f_outlier_curve";
String SQ_F_OUTLIER_MEASUREMENT = "sq_f_outlier_measurement";
- String SQ_G_CURVE = "sq_g_curve";
+ String SQ_G_CURVE = "sq_g_curve";
String SQ_G_MEASUREMENT = "sq_g_measurement";
- String SQ_G_OUTLIER = "sq_g_outlier";
+ String SQ_G_OUTLIER = "sq_g_outlier";
String SQ_G_OUTLIER_CURVE = "sq_g_outlier_curve";
String SQ_G_OUTLIER_MEASUREMENT = "sq_g_outlier_measurement";
- String SQ_A_CURVE_OV = "sq_a_curve_overview";
+ String SQ_A_CURVE_OV = "sq_a_curve_overview";
String SQ_A_MEASUREMENT_OV = "sq_a_measurement_overview";
- String SQ_A_OUTLIER_OV = "sq_a_outlier_overview";
+ String SQ_A_OUTLIER_OV = "sq_a_outlier_overview";
String SQ_A_OUTLIER_CURVE_OV = "sq_a_outlier_curve_overview";
String SQ_A_OUTLIER_MEASUREMENT_OV = "sq_a_outlier_measurement_overview";
- String SQ_B_CURVE_OV = "sq_b_curve_overview";
+ String SQ_B_CURVE_OV = "sq_b_curve_overview";
String SQ_B_MEASUREMENT_OV = "sq_b_measurement_overview";
- String SQ_B_OUTLIER_OV = "sq_b_outlier_overview";
- String SQ_B_OUTLIER_CURVE_OV = "sq_b_outlier_curve_overview";
- String SQ_B_OUTLIER_MEASUREMENT_OV = "sq_b_outlier_measurement_overview";
+ String SQ_B_OUTLIER_OV = "sq_b_outlier_overview";
+ String SQ_B_OUTLIER_CURVE_OV = "sq_b_outlier_curve_overview";
+ String SQ_B_OUTLIER_MEASUREMENT_OV = "sq_b_outlier_measurement_overview";
- String SQ_C_CURVE_OV = "sq_c_curve_overview";
+ String SQ_C_CURVE_OV = "sq_c_curve_overview";
String SQ_C_MEASUREMENT_OV = "sq_c_measurement_overview";
- String SQ_C_OUTLIER_OV = "sq_c_outlier_overview";
+ String SQ_C_OUTLIER_OV = "sq_c_outlier_overview";
String SQ_C_OUTLIER_CURVE_OV = "sq_c_outlier_curve_overview";
String SQ_C_OUTLIER_MEASUREMENT_OV = "sq_c_outlier_measurement_overview";
- String SQ_D_CURVE_OV = "sq_d_curve_overview";
+ String SQ_D_CURVE_OV = "sq_d_curve_overview";
String SQ_D_MEASUREMENT_OV = "sq_d_measurement_overview";
- String SQ_D_OUTLIER_OV = "sq_d_outlier_overview";
+ String SQ_D_OUTLIER_OV = "sq_d_outlier_overview";
String SQ_D_OUTLIER_CURVE_OV = "sq_d_outlier_curve_overview";
String SQ_D_OUTLIER_MEASUREMENT_OV = "sq_d_outlier_measurement_overview";
- String SQ_E_CURVE_OV = "sq_e_curve_overview";
+ String SQ_E_CURVE_OV = "sq_e_curve_overview";
String SQ_E_MEASUREMENT_OV = "sq_e_measurement_overview";
- String SQ_E_OUTLIER_OV = "sq_e_outlier_overview";
+ String SQ_E_OUTLIER_OV = "sq_e_outlier_overview";
String SQ_E_OUTLIER_CURVE_OV = "sq_e_outlier_curve_overview";
- String SQ_E_OUTLIER_MEASUREMENT_OV =
- "sq_e_outlier_curve_measurement_overview";
+ String SQ_E_OUTLIER_MEASUREMENT_OV = "sq_e_outlier_curve_measurement_overview";
- String SQ_F_CURVE_OV = "sq_f_curve_overview";
+ String SQ_F_CURVE_OV = "sq_f_curve_overview";
String SQ_F_MEASUREMENT_OV = "sq_f_measurement_overview";
- String SQ_F_OUTLIER_OV = "sq_f_outlier_overview";
+ String SQ_F_OUTLIER_OV = "sq_f_outlier_overview";
String SQ_F_OUTLIER_CURVE_OV = "sq_f_outlier_curve_overview";
String SQ_F_OUTLIER_MEASUREMENT_OV = "sq_f_outlier_measurement_overview";
- String SQ_G_CURVE_OV = "sq_g_curve_overview";
+ String SQ_G_CURVE_OV = "sq_g_curve_overview";
String SQ_G_MEASUREMENT_OV = "sq_g_measurement_overview";
- String SQ_G_OUTLIER_OV = "sq_g_outlier_overview";
+ String SQ_G_OUTLIER_OV = "sq_g_outlier_overview";
String SQ_G_OUTLIER_CURVE_OV = "sq_g_outlier_curve_overview";
String SQ_G_OUTLIER_MEASUREMENT_OV = "sq_g_outlier_measurement_overview";
@@ -486,9 +391,9 @@
String STATIC_BEDHEIGHT = "static_bedheight";
- String BEDHEIGHT = "bedheight";
+ String BEDHEIGHT = "bedheight";
String BEDHEIGHT_SOUNDING_WIDTH = "bedheight_sounding_width";
- String BEDHEIGHT_WIDTH = "bedheight_width";
+ String BEDHEIGHT_WIDTH = "bedheight_width";
String EXTREME_WQ_CURVE = "extreme_wq_curve";
diff -r ed4b14389667 -r f6b7837b89aa artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/CalculationSelectSinfo.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/CalculationSelectSinfo.java Thu Jun 28 19:13:14 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/CalculationSelectSinfo.java Fri Jun 29 12:46:17 2018 +0200
@@ -11,14 +11,18 @@
import java.util.ArrayList;
import java.util.Collection;
+import java.util.List;
import org.apache.log4j.Logger;
import org.dive4elements.artifacts.Artifact;
import org.dive4elements.artifacts.CallContext;
import org.dive4elements.artifacts.CallMeta;
import org.dive4elements.artifacts.common.utils.XMLUtils;
+import org.dive4elements.river.artifacts.model.CollisionHibernateFactory;
import org.dive4elements.river.artifacts.resources.Resources;
+import org.dive4elements.river.artifacts.sinfo.collision.CollisionAccess;
import org.dive4elements.river.artifacts.states.DefaultState;
+import org.dive4elements.river.model.sinfo.Collision;
import org.w3c.dom.Element;
/**
@@ -55,7 +59,19 @@
final SINFOArtifact sinfo = (SINFOArtifact) artifact;
/* throws an exception if calculation mode is invalid */
- sinfo.getCalculationMode();
+ final String calcmode = sinfo.getCalculationMode().toString(); // "toString()" is important
+ if (calcmode.equals("sinfo_calc_collision")) {
+
+ final CollisionAccess access = new CollisionAccess((SINFOArtifact) artifact);
+
+ final List list = CollisionHibernateFactory.getCollisionsByRiver(access.getRiver());
+
+ if (list.size() == 0) {
+ throw new IllegalArgumentException("error_no_data_for_river");
+ }
+ }
+
return true;
}
+
}
\ No newline at end of file
diff -r ed4b14389667 -r f6b7837b89aa artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/CalculationSelectUinfo.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/CalculationSelectUinfo.java Thu Jun 28 19:13:14 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/CalculationSelectUinfo.java Fri Jun 29 12:46:17 2018 +0200
@@ -61,7 +61,7 @@
final String river = uinfo.getRiver();
if (!UedauernPropertiesHelper.fileExistsForRiver(river)) {
- throw new IllegalArgumentException("error_river_inundationdur_file_not_found");
+ throw new IllegalArgumentException("error_no_data_for_river");
}
}
diff -r ed4b14389667 -r f6b7837b89aa artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationAccess.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationAccess.java Thu Jun 28 19:13:14 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationAccess.java Fri Jun 29 12:46:17 2018 +0200
@@ -51,13 +51,6 @@
assert (calculationMode == UinfoCalcMode.uinfo_inundation_duration);
}
- public Double getSedimentHeight() {
- if (super.getBoolean("use_scenario")) {
- return super.getDouble("sedimentheight"); // TODO: INPUT Valdiation (nicht hier, sondern im Panel. Erinnerung)
- }
- return null;
- }
-
public Integer getYear() {
final int[] years = this.helper.getYears("state.uinfo.year", "singleyear");
if (years != null) {
@@ -78,7 +71,7 @@
}
public String getWMSScenarioUrl() {
- if (super.getBoolean("use_scenario")) {
+ if (getIsUseScenario()) {
final UedauernPropertiesHelper helper = UedauernPropertiesHelper.getInstance(getRiverName());
if (this.getYear() != null) {
return helper.getScenarioUrlFromYear(this.getYear(), this.getDwspl());
@@ -89,8 +82,8 @@
return "";
}
- private Integer getDwspl() {
- if (super.getBoolean("use_scenario")) {
+ public Integer getDwspl() {
+ if (getIsUseScenario()) {
return super.getInteger("sedimentheight");
}
return null;
@@ -101,4 +94,15 @@
return super.getString("vegzones");
}
+ public boolean getIsUseScenario() {
+ return super.getBoolean("use_scenario");
+ }
+
+ public Integer[] mittelStartEndYears() {
+ if (getIsUseScenario()) {
+ final UedauernPropertiesHelper helper = UedauernPropertiesHelper.getInstance(getRiverName());
+ return helper.getMittelStartEnd();
+ }
+ return null;
+ }
}
\ No newline at end of file
diff -r ed4b14389667 -r f6b7837b89aa artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculation.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculation.java Thu Jun 28 19:13:14 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculation.java Fri Jun 29 12:46:17 2018 +0200
@@ -9,19 +9,14 @@
*/
package org.dive4elements.river.artifacts.uinfo.inundationduration;
-import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
import org.apache.commons.lang.math.DoubleRange;
import org.dive4elements.artifacts.CallContext;
import org.dive4elements.river.artifacts.access.RiverAccess;
-import org.dive4elements.river.artifacts.common.GeneralResultType;
-import org.dive4elements.river.artifacts.common.ResultRow;
import org.dive4elements.river.artifacts.model.Calculation;
import org.dive4elements.river.artifacts.model.CalculationResult;
import org.dive4elements.river.artifacts.resources.Resources;
-import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType;
import org.dive4elements.river.artifacts.sinfo.util.CalculationUtils;
import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
import org.dive4elements.river.artifacts.uinfo.UINFOArtifact;
@@ -53,35 +48,34 @@
final RiverInfo riverInfo = new RiverInfo(river);
final DoubleRange calcRange = indurax.getRange();
final String url = indurax.getWMSUrl();
- final Integer year = indurax.getYear(); // null bei year -> Integer.. evtl ungünstig.. evtl. anders lösen
- final DoubleRange range = indurax.getRange();
- final Double sedimentHeight = indurax.getSedimentHeight();
+ final Integer year = indurax.getYear(); // null bei year -> Integer
final String zonesRaw = indurax.getVegZones();
final List zones = VegetationZone.parse(zonesRaw);
-
- final InundationDurationCalculationResults results = new InundationDurationCalculationResults(calcModeLabel, user, riverInfo, calcRange);
-
- final Collection rows = new ArrayList<>();
-
- final ResultRow row1 = ResultRow.create(). //
- putValue(GeneralResultType.station, 88). //
- putValue(SInfoResultType.discharge, 100). //
- putValue(SInfoResultType.waterlevel, 2). //
- putValue(SInfoResultType.gaugeLabel, "Torgau");
+ final String scenarioUrl = indurax.getWMSScenarioUrl();
+ final String scenarioStr = String.valueOf(indurax.getDwspl());
- rows.add(row1);
-
- final ResultRow row2 = ResultRow.create(). //
- putValue(SInfoResultType.discharge, 200). //
- putValue(SInfoResultType.waterlevel, 3). //
- putValue(SInfoResultType.gaugeLabel, "Zollenspieker");
+ // TODO: add vegetationzone-values as parameter to url and use this url as veg'zone'url
- rows.add(row2);
+ final boolean isUseScenario = indurax.getIsUseScenario();
+ final Integer[] mittelStartEndYears = indurax.mittelStartEndYears();
+ final InundationDurationCalculationResult result = new InundationDurationCalculationResult();
- final InundationDurationCalculationResult result = new InundationDurationCalculationResult("Ergebnis 1", null, rows);
+ final String rangeDuration = year != null ? String.valueOf(year)
+ : new StringBuilder().append(String.valueOf(mittelStartEndYears[0])).append("-").append(mittelStartEndYears[1]).toString();
- results.addResult(result, problems);
+ result.addLayer(Resources.getMsg(this.context.getMeta(), "uinfo.export.url.inundationduration.inundationduration", new Object[] { rangeDuration }), url,
+ true);
+ // TODO: add vegetationzone-values as parameter to url and use this url as veg'zone'url
+ result.addLayer(Resources.getMsg(this.context.getMeta(), "uinfo.export.url.inundationduration.vegetation", new Object[] { rangeDuration }), url, false);
+ if (isUseScenario) {
+ result.addLayer(
+ Resources.getMsg(this.context.getMeta(), "uinfo.export.url.inundationduration.scenario", new Object[] { rangeDuration, scenarioStr }),
+ scenarioUrl, true);
+ // TODO: add vegetationzone-values as parameter to url and use this url as veg'zone'url
+ result.addLayer(Resources.getMsg(this.context.getMeta(), "uinfo.export.url.inundationduration.vegetation_scenario",
+ new Object[] { rangeDuration, scenarioStr }), scenarioUrl, false);
+ }
- return new CalculationResult(results, problems);
+ return new CalculationResult(result, problems);
}
}
\ No newline at end of file
diff -r ed4b14389667 -r f6b7837b89aa artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculationResult.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculationResult.java Thu Jun 28 19:13:14 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculationResult.java Fri Jun 29 12:46:17 2018 +0200
@@ -9,95 +9,48 @@
*/
package org.dive4elements.river.artifacts.uinfo.inundationduration;
+import java.io.Serializable;
import java.util.ArrayList;
-import java.util.Collection;
-
-import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult;
-import org.dive4elements.river.artifacts.common.ExportContextCSV;
-import org.dive4elements.river.artifacts.common.GeneralResultType;
-import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource;
-import org.dive4elements.river.artifacts.common.ResultRow;
-import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType;
-import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
-import org.dive4elements.river.artifacts.sinfo.util.WstInfo;
+import java.util.List;
/**
* @author Domenico Nardi Tironi
*/
-final class InundationDurationCalculationResult extends AbstractCalculationExportableResult {
+final class InundationDurationCalculationResult implements Serializable {
private static final long serialVersionUID = 1L;
- private static final String JASPER_FILE = "/jasper/templates/uinfo.inundationduration.jrxml";
-
- public InundationDurationCalculationResult(final String label, final WstInfo wst, final Collection rows) {
- super(label, rows);
- }
-
- @Override
- public void writeCSVHeader(final ExportContextCSV exportContextCSV, final InundationDurationCalculationResults results, final RiverInfo river) {
-
- final Collection header = new ArrayList<>(11);
-
- header.add(exportContextCSV.formatCsvHeader(GeneralResultType.station));
- header.add(exportContextCSV.msgUnitCSV(SInfoResultType.flowdepth));
- header.add(exportContextCSV.msgUnitCSV(SInfoResultType.waterlevel, river.getWstUnit()));
- header.add(exportContextCSV.msgUnitCSV(SInfoResultType.discharge));
- header.add(exportContextCSV.formatCsvHeader(SInfoResultType.waterlevelLabel));
- header.add(exportContextCSV.formatCsvHeader(SInfoResultType.gaugeLabel));
- header.add(exportContextCSV.msgUnitCSV(SInfoResultType.meanBedHeight, river.getWstUnit()));
- header.add(exportContextCSV.formatCsvHeader(SInfoResultType.soundingLabel));
- header.add(exportContextCSV.formatCsvHeader(SInfoResultType.location));
+ private final List layers = new ArrayList<>();
- exportContextCSV.writeCSVLine(header.toArray(new String[header.size()]));
+ public final static class WmsLayer {
+ private final String label;
+ private final String url;
+ private final boolean showLayerLink;
- }
+ public WmsLayer(final String label, final String url, final boolean showLayerLink) {
+ this.label = label;
+ this.url = url;
+ this.showLayerLink = showLayerLink;
+ }
- @Override
- protected void writeCSVResultMetadata(final ExportContextCSV exportContextCSV, final InundationDurationCalculationResults results) {
- // no Result metadata so far
+ public String getLabel() {
+ return this.label;
+ }
+
+ public String getUrl() {
+ return this.url;
+ }
+
+ public boolean isShowLayerLink() {
+ return this.showLayerLink;
+ }
}
- @Override
- protected String[] formatCSVRow(final ExportContextCSV exportContextCSV, final InundationDurationCalculationResults results, final ResultRow row) {
- return formatRow(exportContextCSV, results, row);
- }
-
- @Override
- protected String[] formatPDFRow(final ExportContextCSV exportContextPDF, final InundationDurationCalculationResults results, final ResultRow row) {
-
- return formatRow(exportContextPDF, results, row);
- }
-
- @Override
- protected String getJasperFile() {
-
- return JASPER_FILE;
+ public void addLayer(final String label, final String url, final boolean showLayerLink) {
+ this.layers.add(new WmsLayer(label, url, showLayerLink));
}
- @Override
- protected void addJRTableHeader(final ExportContextCSV exportContextPDF, final MetaAndTableJRDataSource source,
- final InundationDurationCalculationResults results) {
-
- exportContextPDF.addJRMetadata(source, "station_header", GeneralResultType.station);
+ public List getLayers() {
+ return this.layers;
}
-
- protected String[] formatRow(final ExportContextCSV context, final InundationDurationCalculationResults results, final ResultRow row) {
-
- final Collection lines = new ArrayList<>(11);
-
- lines.add(context.formatRowValue(row, GeneralResultType.station));
- lines.add(context.formatRowValue(row, SInfoResultType.flowdepth));
-
- lines.add(context.formatRowValue(row, SInfoResultType.waterlevel));
- lines.add(context.formatRowValue(row, SInfoResultType.discharge));
- lines.add(context.formatRowValue(row, SInfoResultType.waterlevelLabel));
- lines.add(context.formatRowValue(row, SInfoResultType.gaugeLabel));
- lines.add(context.formatRowValue(row, SInfoResultType.meanBedHeight));
- lines.add(context.formatRowValue(row, SInfoResultType.soundingLabel));
- lines.add(context.formatRowValue(row, SInfoResultType.location));
-
- return lines.toArray(new String[lines.size()]);
- }
-
}
\ No newline at end of file
diff -r ed4b14389667 -r f6b7837b89aa artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculationResults.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculationResults.java Thu Jun 28 19:13:14 2018 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
- * Software engineering by
- * Björnsen Beratende Ingenieure GmbH
- * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
- *
- * This file is Free Software under the GNU AGPL (>=v3)
- * and comes with ABSOLUTELY NO WARRANTY! Check out the
- * documentation coming with Dive4Elements River for details.
- */
-package org.dive4elements.river.artifacts.uinfo.inundationduration;
-
-import org.apache.commons.lang.math.DoubleRange;
-import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult;
-import org.dive4elements.river.artifacts.common.AbstractCalculationResults;
-import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
-
-/**
- * @author Domenico Nardi Tironi
- *
- */
-final class InundationDurationCalculationResults extends AbstractCalculationResults> {
-
- private static final long serialVersionUID = 1L;
-
- public InundationDurationCalculationResults(final String calcModeLabel, final String user, final RiverInfo river, final DoubleRange calcRange) {
- super(calcModeLabel, user, river, calcRange);
- }
-}
\ No newline at end of file
diff -r ed4b14389667 -r f6b7837b89aa artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationExporter.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationExporter.java Thu Jun 28 19:13:14 2018 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
-* Software engineering by
-* Björnsen Beratende Ingenieure GmbH
-* Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
-*
-* This file is Free Software under the GNU AGPL (>=v3)
-* and comes with ABSOLUTELY NO WARRANTY! Check out the
-* documentation coming with Dive4Elements River for details.
-*/
-package org.dive4elements.river.artifacts.uinfo.inundationduration;
-
-import java.io.OutputStream;
-
-import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult;
-import org.dive4elements.river.artifacts.common.AbstractCommonExporter;
-import org.dive4elements.river.artifacts.common.ExportContextCSV;
-import org.dive4elements.river.artifacts.common.I18NStrings;
-import org.dive4elements.river.artifacts.common.JasperReporter;
-import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource;
-import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
-
-import au.com.bytecode.opencsv.CSVWriter;
-import net.sf.jasperreports.engine.JRException;
-
-/**
- * @author Domenico Nardi Tironi
- *
- */
-public class InundationDurationExporter extends AbstractCommonExporter {
-
- @Override
- protected void doWritePdf(final OutputStream out, final InundationDurationCalculationResults results) {
- // TODO: Move to super
- try {
- final ExportContextCSV exportContextCSV = new ExportContextCSV(this.context, null);
-
- final JasperReporter reporter = new JasperReporter();
-
- for (final AbstractCalculationExportableResult result : results.getResults()) {
- final MetaAndTableJRDataSource source = new MetaAndTableJRDataSource();
- getHelper().addJRMetaDataUSINFO(source, results);
-
- result.addReport(exportContextCSV, results, reporter, source);
- }
-
- reporter.exportPDF(out);
- }
- catch (final JRException je) {
- getLog().warn("Error generating PDF Report!", je);
- }
- }
-
- @Override
- protected void doWriteCSVData(final CSVWriter writer, final InundationDurationCalculationResults results) {
- // TODO: Diesen Ablauf in super? -> leichte abweichung
-
- // TODO: move results into context?
- final ExportContextCSV exportContextCSV = new ExportContextCSV(this.context, writer);
-
- getLog().info("writeCSVData");
-
- final RiverInfo river = results.getRiver();
-
- /* write as csv */
- exportContextCSV.writeCSVGlobalMetadataDefaults(results); // ggf auslagern innerhalb dieser Klasse
- exportContextCSV.writeCSVMetaEntry(I18NStrings.CSV_META_HEIGHT_UNIT_RIVER, river.getWstUnit());
- // writer.writeNext(new String[] { "" }); // break line HERE to avoid redundance
-
- final Class> lastResultType = null;
-
- for (final AbstractCalculationExportableResult result : results.getResults()) {
-
- final Class> resultType = result.getClass();
- if (lastResultType == null || lastResultType != resultType) {
- exportContextCSV.writeBlankLine();
- result.writeCSVHeader(exportContextCSV, results, river);
- exportContextCSV.writeBlankLine();
- } else
- exportContextCSV.writeCSVLine(new String[] { "#" });
-
- result.writeCsv(exportContextCSV, results);
- }
-
- }
-}
\ No newline at end of file
diff -r ed4b14389667 -r f6b7837b89aa artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationState.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationState.java Thu Jun 28 19:13:14 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationState.java Fri Jun 29 12:46:17 2018 +0200
@@ -16,14 +16,14 @@
import org.dive4elements.river.artifacts.ChartArtifact;
import org.dive4elements.river.artifacts.D4EArtifact;
import org.dive4elements.river.artifacts.MapArtifact.MapState;
-import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult;
import org.dive4elements.river.artifacts.model.Calculation;
import org.dive4elements.river.artifacts.model.CalculationResult;
import org.dive4elements.river.artifacts.model.DataFacet;
import org.dive4elements.river.artifacts.model.EmptyFacet;
-import org.dive4elements.river.artifacts.model.FacetTypes;
import org.dive4elements.river.artifacts.model.ReportFacet;
+import org.dive4elements.river.artifacts.model.map.WMSLayerFacet;
import org.dive4elements.river.artifacts.uinfo.UINFOArtifact;
+import org.dive4elements.river.artifacts.uinfo.inundationduration.InundationDurationCalculationResult.WmsLayer;
/**
* @author Domenico Nardi Tironi
@@ -35,6 +35,8 @@
private static final long serialVersionUID = 1L;
+ private static final String LABEL_URL_SEPARATOR = ";";// always sync with client (ExportPanel)
+
/**
* From this state can only be continued trivially.
*/
@@ -51,7 +53,7 @@
return null;
}
- return compute((UINFOArtifact) artifact, context, hash, facets, old);
+ return compute((UINFOArtifact) artifact, context, ComputeType.FEED, hash, facets, old);
}
@Override
@@ -64,7 +66,8 @@
if (facets != null)
super.computeAdvance(artifact, hash, context, facets, old);
- return compute((UINFOArtifact) artifact, context, hash, facets, old);
+ return compute((UINFOArtifact) artifact, context, ComputeType.ADVANCE, hash, facets, old);
+
}
/**
@@ -73,27 +76,43 @@
* @param old
* Object that was cached.
*/
- private Object compute(final UINFOArtifact sinfo, final CallContext context, final String hash, final List facets, final Object old) {
+ private Object compute(final UINFOArtifact sinfo, final CallContext context, final ComputeType type, final String hash, final List facets,
+ final Object old) {
final CalculationResult res = doCompute(sinfo, context, old);
if (facets == null)
return res;
- final InundationDurationCalculationResults results = (InundationDurationCalculationResults) res.getData();
-
- final List> resultList = results.getResults();
+ final InundationDurationCalculationResult result = (InundationDurationCalculationResult) res.getData();
+ final List layers = result.getLayers();
- if (!resultList.isEmpty()) {
- final Facet csv = new DataFacet(FacetTypes.CSV, "CSV data", ComputeType.ADVANCE, hash, this.id);
- final Facet pdf = new DataFacet(FacetTypes.PDF, "PDF data", ComputeType.ADVANCE, hash, this.id);
+ int index = 1; // 1 because super.computeAdvance adds the river theme with index 0
+ for (final WmsLayer layer : layers) {
- facets.add(csv);
- facets.add(pdf);
+ final String label = layer.getLabel();
+ final String url = layer.getUrl();
+
+ final WMSLayerFacet wmsFacet = new WMSLayerFacet(index, FLOODMAP_EXTERNAL_WMS_INUNDATIONDUR + index, label, type, getID(), hash, url);
+ facets.add(wmsFacet);
+
+ wmsFacet.addLayer("OSM-WMS-Dienst");
+
+ // wmsFacet.setExtent(getExtent(false));
+ // wmsFacet.setOriginalExtent(getExtent(true));
+ wmsFacet.setSrid(getSrid());
+
+ if (layer.isShowLayerLink())
+ facets.add(new DataFacet("wms_url", label + LABEL_URL_SEPARATOR + url, ComputeType.ADVANCE, hash, this.id));
+
+ index++; // because super.computeAdvance adds the river theme with index 0
}
+ // tODO: create layer links: filter by "showLayerLink"
+
+ // tODO: create layer links: filter by "showLayerLink"
+
final Calculation report = res.getReport();
-
if (report.hasProblems())
facets.add(new ReportFacet(ComputeType.ADVANCE, hash, this.id));
diff -r ed4b14389667 -r f6b7837b89aa artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/UedauernPropertiesHelper.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/UedauernPropertiesHelper.java Thu Jun 28 19:13:14 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/UedauernPropertiesHelper.java Fri Jun 29 12:46:17 2018 +0200
@@ -74,7 +74,7 @@
return this.properties;
}
- private final Integer[] getMittelStartEnd() {
+ final Integer[] getMittelStartEnd() {
if (this.mittelStartEnde == null) {
final Integer mittel_start = Integer.valueOf(getProperties().get("mittel_start").toString());
final Integer mittel_ende = Integer.valueOf(getProperties().get("mittel_ende").toString());
diff -r ed4b14389667 -r f6b7837b89aa artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/YearChoice.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/YearChoice.java Thu Jun 28 19:13:14 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/YearChoice.java Fri Jun 29 12:46:17 2018 +0200
@@ -25,14 +25,14 @@
protected LinkedHashMap makeEntries(final CallMeta meta, final Artifact artifact) {
// in helper-klasse; dann hier label lazy loaden
final LinkedHashMap entries = new LinkedHashMap<>();
-
- final InundationDurationAccess access = new InundationDurationAccess((UINFOArtifact) artifact);
+ if (artifact != null) {// necessary; otherwise crashes randomly when reloading old calculations
+ final InundationDurationAccess access = new InundationDurationAccess((UINFOArtifact) artifact);
- final UedauernPropertiesHelper helper = UedauernPropertiesHelper.getInstance(access.getRiverName());
- final LinkedHashMap extras = helper.getExtraLayers(meta);
- entries.put("state.uinfo.year", null);
- entries.putAll(extras);
-
+ final UedauernPropertiesHelper helper = UedauernPropertiesHelper.getInstance(access.getRiverName());
+ final LinkedHashMap extras = helper.getExtraLayers(meta);
+ entries.put("state.uinfo.year", null);
+ entries.putAll(extras);
+ }
return entries;
}
diff -r ed4b14389667 -r f6b7837b89aa artifacts/src/main/java/org/dive4elements/river/exports/AbstractExporter.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/AbstractExporter.java Thu Jun 28 19:13:14 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/AbstractExporter.java Fri Jun 29 12:46:17 2018 +0200
@@ -305,6 +305,10 @@
final char quote = '"';
final char escape = '\\';
+ // Write BOM so excel is happy
+ final byte[] BOM = new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF };
+ this.out.write(BOM);
+
final CSVWriter writer = new CSVWriter(new OutputStreamWriter(this.out, DEFAULT_CSV_CHARSET), DEFAULT_CSV_SEPARATOR, quote, escape, "\r\n");
writeCSVData(writer);
diff -r ed4b14389667 -r f6b7837b89aa artifacts/src/main/java/org/dive4elements/river/exports/ChartExportHelper.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/ChartExportHelper.java Thu Jun 28 19:13:14 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/ChartExportHelper.java Fri Jun 29 12:46:17 2018 +0200
@@ -316,9 +316,10 @@
log.debug("export chart as CSV");
try {
-// FIXME: decide: to BOM or not to BOM
-// final byte[] BOM = new byte[] {(byte)0xEF, (byte)0xBB, (byte)0xBF};
-// out.write(BOM);
+
+ // Write BOM so excel is happy
+ final byte[] BOM = new byte[] {(byte)0xEF, (byte)0xBB, (byte)0xBF};
+ out.write(BOM);
final CSVWriter writer = new CSVWriter(
new OutputStreamWriter(
diff -r ed4b14389667 -r f6b7837b89aa artifacts/src/main/resources/messages.properties
--- a/artifacts/src/main/resources/messages.properties Thu Jun 28 19:13:14 2018 +0200
+++ b/artifacts/src/main/resources/messages.properties Fri Jun 29 12:46:17 2018 +0200
@@ -1036,8 +1036,8 @@
sinfo.export.csv.header.flowdepth.development = Flie\u00dftiefenentwicklung
sinfo.export.pdf.header.flowdepth.development = Flie\u00dftiefen-entwicklung
sinfo.export.csv.header.flowdepth.development.per.year = Flie\u00dftiefenent-wicklung pro Jahr
-sinfo.export.csv.header.waterlevel.difference = \u0394WSPL
-sinfo.export.csv.header.mean_bed_height.difference = \u0394MSH
+sinfo.export.csv.header.waterlevel.difference = \u0394WSPL
+sinfo.export.csv.header.mean_bed_height.difference = \u0394MSH
sinfo.export.csv.header.flowdepth.current = Flie\u00dftiefe h-aktuell
sinfo.export.csv.header.flowdepth.historical = Flie\u00dftiefe h-historisch
@@ -1095,6 +1095,10 @@
uinfo.export.csv.meta.header.veg.name = Vegetationszonen
uinfo.export.csv.meta.header.veg.dauervon = \u00dcberflutungsdauer von [d/a]
uinfo.export.csv.meta.header.veg.dauerbis = \u00dcberflutungsdauer bis [d/a]
+uinfo.export.url.inundationduration.inundationduration = \u00dcberflutungsdauer ({0})
+uinfo.export.url.inundationduration.vegetation = Vegetationszonen ({0})
+uinfo.export.url.inundationduration.vegetation_scenario= Vegetationszonen Szenario (Zeitraum: {0}, Szenario: {1})
+uinfo.export.url.inundationduration.scenario = \u00dcberflutungsdauer Szenario (Zeitraum: {0}, Szenario: {1})
predefineddepthevol.total.title = Gesamt: {0}
predefineddepthevol.peryear.title = J\u00e4hrlich: {0}
@@ -1108,8 +1112,8 @@
sinfo.export.csv.header.infrastructure.height = Infrastrukturh\u00f6he
infrastructure.height.title = Geod. H\u00f6he
-sinfo.export.csv.title.collision.detail = Detail View
-sinfo.export.csv.title.collison.overview = Overview
+sinfo.export.csv.title.collision.detail = Abfluss/Abflusszustand
+sinfo.export.csv.title.collison.overview = H\u00e4ufigkeiten
sinfo.export.csv.header.collision.count = Anzahl der Grundber\u00fchrungen
collision.count.title = Grundber\u00fchrungen {0}
chart.collision_count.section.yaxis.label = H\u00e4ufigkeit
diff -r ed4b14389667 -r f6b7837b89aa artifacts/src/main/resources/messages_de.properties
--- a/artifacts/src/main/resources/messages_de.properties Thu Jun 28 19:13:14 2018 +0200
+++ b/artifacts/src/main/resources/messages_de.properties Fri Jun 29 12:46:17 2018 +0200
@@ -1034,10 +1034,10 @@
sinfo.export.csv.header.channel.width = Sollbreite Fahrrinne
sinfo.export.csv.header.channel.depth = Solltiefe Fahrrinne
sinfo.export.pdf.header.flowdepth.development = Flie\u00dftiefen-entwicklung
-sinfo.export.csv.header.flowdepth.development = Flie\u00dftiefenentwicklung
+sinfo.export.csv.header.flowdepth.development = Flie\u00dftiefenentwicklung
sinfo.export.csv.header.flowdepth.development.per.year = Flie\u00dftiefenent-wicklung pro Jahr
-sinfo.export.csv.header.waterlevel.difference = \u0394WSPL
-sinfo.export.csv.header.mean_bed_height.difference = \u0394MSH
+sinfo.export.csv.header.waterlevel.difference = \u0394WSPL
+sinfo.export.csv.header.mean_bed_height.difference = \u0394MSH
sinfo.export.csv.header.flowdepth.current = Flie\u00dftiefe h-aktuell
sinfo.export.csv.header.flowdepth.historical = Flie\u00dftiefe h-historisch
@@ -1095,6 +1095,10 @@
uinfo.export.csv.meta.header.veg.name = Vegetationszonen
uinfo.export.csv.meta.header.veg.dauervon = \u00dcberflutungsdauer von [d/a]
uinfo.export.csv.meta.header.veg.dauerbis = \u00dcberflutungsdauer bis [d/a]
+uinfo.export.url.inundationduration.inundationduration = \u00dcberflutungsdauer ({0})
+uinfo.export.url.inundationduration.vegetation = Vegetationszonen ({0})
+uinfo.export.url.inundationduration.vegetation_scenario= Vegetationszonen Szenario (Zeitraum: {0}, Szenario: {1})
+uinfo.export.url.inundationduration.scenario = \u00dcberflutungsdauer Szenario (Zeitraum: {0}, Szenario: {1})
predefineddepthevol.total.title = Gesamt: {0}
predefineddepthevol.peryear.title = J\u00e4hrlich: {0}
@@ -1108,8 +1112,8 @@
sinfo.export.csv.header.infrastructure.height = Infrastrukturh\u00f6he
infrastructure.height.title = Geod. H\u00f6he
-sinfo.export.csv.title.collision.detail = Detailansicht
-sinfo.export.csv.title.collison.overview = \u00dcbersicht
+sinfo.export.csv.title.collision.detail = Abfluss/Abflusszustand
+sinfo.export.csv.title.collison.overview = H\u00e4ufigkeiten
sinfo.export.csv.header.collision.count = Anzahl der Grundber\u00fchrungen
collision.count.title = Grundber\u00fchrungen {0}
chart.collision_count.section.yaxis.label = H\u00e4ufigkeit
diff -r ed4b14389667 -r f6b7837b89aa gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.java Thu Jun 28 19:13:14 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.java Fri Jun 29 12:46:17 2018 +0200
@@ -1537,7 +1537,9 @@
String waterlevel_ground_state();
- String error_river_inundationdur_file_not_found();
+ String error_no_data_for_river();
String sinfo_flood_duration();
+
+ String sinfo_collision_export();
}
\ No newline at end of file
diff -r ed4b14389667 -r f6b7837b89aa gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.properties
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.properties Thu Jun 28 19:13:14 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants.properties Fri Jun 29 12:46:17 2018 +0200
@@ -324,7 +324,7 @@
ele_window_save_error = Error while saving elevations.
ele_window_geometry_error = The geometry is not supported:
-error_river_inundationdur_file_not_found = F\u00fcr das gew\u00e4hlte Gew\u00e4sser liegen keine Daten vor.
+error_no_data_for_river = F\u00fcr das gew\u00e4hlte Gew\u00e4sser liegen keine Daten vor.
unexpected_exception = There occured an unexpected exception
error_years_wrong = The second year needs to be bigger than the first year.
error_read_minmax_values = Error while reading min/max values for the location input.
@@ -760,6 +760,7 @@
no_data_sediment_difference = Invalid value: $1
sinfo = S-INFO
+sinfo_collision_export = Grundber\u00fchrungen Export
sinfo_flowdepth_export = Flie\u00dftiefen Export
sinfo_flowdepth_report = Flie\u00dftiefen Bericht
sinfo_flow_depth = Flie\u00dftiefen
diff -r ed4b14389667 -r f6b7837b89aa gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants_de.properties
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants_de.properties Thu Jun 28 19:13:14 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/FLYSConstants_de.properties Fri Jun 29 12:46:17 2018 +0200
@@ -324,7 +324,7 @@
ele_window_save_error = Fehler beim Speichern der H\u00f6hen.
ele_window_geometry_error = Die Geometrie wird nicht unterst\u00fctzt:
-error_river_inundationdur_file_not_found = F\u00fcr das gew\u00e4hlte Gew\u00e4sser liegen keine Daten vor.
+error_no_data_for_river = F\u00fcr das gew\u00e4hlte Gew\u00e4sser liegen keine Daten vor.
unexpected_exception = Ein unerwarteter Fehler ist aufgetreten
error_years_wrong = Das zweite Jahr muss gr\u00f6\u00dfer als das erste sein.
error_read_minmax_values = Fehler beim Lesen der min/max Werte. Es kann keine Validierung der eingegebenen Strecke durchgef\u00fchrt werden.
@@ -760,6 +760,7 @@
no_data_sediment_difference = Der Wert $1 ist ung\u00fcltig.
sinfo = S-INFO
+sinfo_collision_export = Grundber\u00fchrungen Export
sinfo_flowdepth_export = Flie\u00dftiefen Export
sinfo_flowdepth_report = Flie\u00dftiefen Bericht
sinfo_flow_depth = Flie\u00dftiefen
diff -r ed4b14389667 -r f6b7837b89aa gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ExportPanel.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ExportPanel.java Thu Jun 28 19:13:14 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/ExportPanel.java Fri Jun 29 12:46:17 2018 +0200
@@ -8,22 +8,25 @@
package org.dive4elements.river.client.client.ui;
+import java.util.ArrayList;
import java.util.List;
import java.util.MissingResourceException;
-import com.google.gwt.core.client.GWT;
-
-import com.smartgwt.client.widgets.Canvas;
-import com.smartgwt.client.widgets.Label;
-import com.smartgwt.client.widgets.layout.HLayout;
-import com.smartgwt.client.widgets.layout.VLayout;
-
+import org.dive4elements.river.client.client.Config;
+import org.dive4elements.river.client.client.FLYSConstants;
import org.dive4elements.river.client.shared.model.Collection;
import org.dive4elements.river.client.shared.model.ExportMode;
import org.dive4elements.river.client.shared.model.Facet;
-import org.dive4elements.river.client.client.Config;
-import org.dive4elements.river.client.client.FLYSConstants;
+import com.google.gwt.core.client.GWT;
+import com.smartgwt.client.types.Alignment;
+import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.Label;
+import com.smartgwt.client.widgets.form.DynamicForm;
+import com.smartgwt.client.widgets.form.fields.FormItem;
+import com.smartgwt.client.widgets.form.fields.TextAreaItem;
+import com.smartgwt.client.widgets.layout.HLayout;
+import com.smartgwt.client.widgets.layout.VLayout;
/**
* A panel that displays an download icon for all available export modes of a
@@ -33,34 +36,82 @@
*/
public class ExportPanel extends VLayout {
- /** The message class that provides i18n strings.*/
+ private static final String LABEL_URL_SEPARATOR = ";";// always sync with server (InundationDurationState)
+ /** The message class that provides i18n strings. */
protected FLYSConstants MSG = GWT.create(FLYSConstants.class);
- protected Collection c;
+ protected Collection c;
protected List exports;
- /** This layout will store a list of available export types.*/
+ /** This layout will store a list of available export types. */
protected HLayout container;
-
- public ExportPanel(Collection c, List exports) {
+ public ExportPanel(final Collection c, final List exports) {
super();
- this.c = c;
- this.exports = exports;
+ this.c = c;
+ this.exports = exports;
this.container = new HLayout();
- Label title = new Label(MSG.dataexport());
+ final Label title = new Label(this.MSG.dataexport());
title.setHeight(15);
title.setStyleName("fontNormalSmallUnderlined");
addMember(title);
addMember(createExportItems());
-
+ addMember(createVlayoutExportItems());
setHeight(45);
setMembersMargin(5);
}
+ private VLayout createVlayoutExportItems() {
+ final VLayout layout = new VLayout();
+ final DynamicForm form1 = new DynamicForm();
+ form1.setColWidths("10%");
+ form1.setWidth(400);
+ form1.setAlign(Alignment.LEFT);
+ final List items = new ArrayList();
+ for (final ExportMode mode : this.exports) {
+ final String name = mode.getName();
+ final List facets = mode.getFacets();
+
+ for (int i = 0; i < facets.size(); i++) {
+ final Facet facet = facets.get(i);
+ final String facetName = facet.getName();
+
+ if (!facetName.equals("wms_url"))
+ continue;
+ if ("wms_url".equals(facetName))
+ items.add(createUrlLine(facet.getDescription(), i));
+ }
+ }
+ form1.setFields(items.toArray(new FormItem[items.size()]));
+ layout.addMember(form1);
+ return layout;
+ }
+
+ private FormItem createUrlLine(final String labelAndUrl, final int count) {
+
+ final String[] labelAndurlSplit = labelAndUrl.split(LABEL_URL_SEPARATOR);
+ if (labelAndurlSplit.length == 2) {
+
+ final TextAreaItem label = new TextAreaItem();
+ label.setTitle(labelAndurlSplit[0]);
+
+ label.setWrapTitle(true);
+ label.setTitleColSpan(3);
+ label.setColSpan(7);
+ label.setWidth(250);
+
+ label.setTitleAlign(Alignment.LEFT);
+
+ label.setValue(labelAndurlSplit[1]);
+ label.setCanEdit(false);
+
+ return label;
+ }
+ return null;
+ }
/**
* This method is used to create an item (created by createExportButton) for
@@ -69,84 +120,80 @@
* @return a horizontal list of buttons.
*/
protected HLayout createExportItems() {
- HLayout layout = new HLayout();
+ final HLayout layout = new HLayout();
- for (ExportMode mode: exports) {
- String name = mode.getName();
- List facets = mode.getFacets();
+ for (final ExportMode mode : this.exports) {
+ final String name = mode.getName();
+ final List facets = mode.getFacets();
- for (Facet facet: facets) {
- if (name.equals("fix_wq_curve_at_export")) {
+ for (final Facet facet : facets) {
+ final String facetName = facet.getName();
+
+ if (name.equals("fix_wq_curve_at_export"))
continue;
- }
+
String filename = name;
- if (name.equals("computed_dischargecurve_at_export")) {
+ if (name.equals("computed_dischargecurve_at_export"))
filename = "dischargecurve";
- }
- layout.addMember(createExportButton(
- name,
- facet.getName(),
- filename));
+
+ if ("wms_url".equals(facetName))
+ continue;
+
+ layout.addMember(createExportButton(name, facetName, filename));
}
}
return layout;
}
-
/**
* This method is used to create a button (with click handler) for a
* concrete export mode / type.
*
- * @param name The name of the export.
- * @param facet The name of the export type (e.g. CSV, WST).
+ * @param name
+ * The name of the export.
+ * @param facet
+ * The name of the export type (e.g. CSV, WST).
*
* @return an image with click handler.
*/
- protected Canvas createExportButton(
- String name,
- String facet,
- String filename
- ) {
- String url = getExportUrl(name, facet, filename);
+ protected Canvas createExportButton(final String name, final String facet, final String filename) {
+ String url = getExportUrl(name, facet, filename);
String imgUrl = GWT.getHostPageBaseURL();
if (facet.equals("pdf")) {
- imgUrl += MSG.downloadPDF();
- }
- else if (facet.equals("at")) {
- imgUrl += MSG.downloadAT();
- }
- else if (facet.equals("wst")) {
- imgUrl += MSG.downloadWST();
+ imgUrl += this.MSG.downloadPDF();
+ } else if (facet.equals("at")) {
+ imgUrl += this.MSG.downloadAT();
+ } else if (facet.equals("wst")) {
+ imgUrl += this.MSG.downloadWST();
+ } else if (facet.equals("csv")) {
+ url += "&encoding=UTF-8";
+ imgUrl += this.MSG.downloadCSV();
+ } else {
+ imgUrl += this.MSG.imageSave();
}
- else if (facet.equals("csv")) {
- url += "&encoding=windows-1252";
- imgUrl += MSG.downloadCSV();
- }
- else {
- imgUrl += MSG.imageSave();
- }
- ImgLink link = new ImgLink(imgUrl, url, 30, 30);
+ final ImgLink link = new ImgLink(imgUrl, url, 30, 30);
link.setTooltip(getTooltipText(name, facet));
return link;
}
-
/**
* Creates the URL used to trigger an export.
*
- * @param name The name of the export.
- * @param facet The name of the export type (e.g. CSV, WST).
+ * @param name
+ * The name of the export.
+ * @param facet
+ * The name of the export type (e.g. CSV, WST).
*
* @return the export URL.
*/
- protected String getExportUrl(String name, String facet, String filename) {
- Config config = Config.getInstance();
+ protected String getExportUrl(final String name, final String facet, final String filename) {
+ final Config config = Config.getInstance();
String url = GWT.getModuleBaseURL();
url += "export";
- url += "?uuid=" + c.identifier();
+ url += "?uuid=" + this.c.identifier();
url += "&name=" + filename;
url += "&mode=" + name;
url += "&type=" + facet;
@@ -156,20 +203,21 @@
return url;
}
-
/**
* Creates a text used as tooltip for a specific export and type.
*
- * @param name The name of the export.
- * @param facet The name of the export type (e.g. CSV, WST).
+ * @param name
+ * The name of the export.
+ * @param facet
+ * The name of the export type (e.g. CSV, WST).
*
* @return a tooltip text.
*/
- protected String getTooltipText(String name, String facet) {
+ protected String getTooltipText(final String name, final String facet) {
try {
- return MSG.getString(name) + " | " + MSG.getString(facet);
+ return this.MSG.getString(name) + " | " + this.MSG.getString(facet);
}
- catch (MissingResourceException mre) {
+ catch (final MissingResourceException mre) {
return name + " | " + facet;
}
}
diff -r ed4b14389667 -r f6b7837b89aa gwt-client/src/main/java/org/dive4elements/river/client/server/CSVExportServiceImpl.java
--- a/gwt-client/src/main/java/org/dive4elements/river/client/server/CSVExportServiceImpl.java Thu Jun 28 19:13:14 2018 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/server/CSVExportServiceImpl.java Fri Jun 29 12:46:17 2018 +0200
@@ -8,83 +8,68 @@
package org.dive4elements.river.client.server;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
import java.util.ArrayList;
import java.util.List;
-import java.io.Reader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.IOException;
-
+import org.apache.log4j.Logger;
+import org.dive4elements.artifacts.common.ArtifactNamespaceContext;
+import org.dive4elements.artifacts.common.utils.XMLUtils;
+import org.dive4elements.artifacts.httpclient.http.HttpClient;
+import org.dive4elements.artifacts.httpclient.http.HttpClientImpl;
+import org.dive4elements.river.client.client.services.CSVExportService;
+import org.dive4elements.river.client.shared.exceptions.ServerException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
-import org.apache.log4j.Logger;
-
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import au.com.bytecode.opencsv.CSVReader;
-import org.dive4elements.artifacts.common.ArtifactNamespaceContext;
-import org.dive4elements.artifacts.common.utils.XMLUtils;
-
-import org.dive4elements.artifacts.httpclient.http.HttpClient;
-import org.dive4elements.artifacts.httpclient.http.HttpClientImpl;
-
-import org.dive4elements.river.client.shared.exceptions.ServerException;
-import org.dive4elements.river.client.client.services.CSVExportService;
-
-
/**
* @author Raimund Renkert
*/
-public class CSVExportServiceImpl
-extends RemoteServiceServlet
-implements CSVExportService
-{
- private static final Logger log =
- Logger.getLogger(CSVExportServiceImpl.class);
-
+public class CSVExportServiceImpl extends RemoteServiceServlet implements CSVExportService {
+ private static final Logger log = Logger.getLogger(CSVExportServiceImpl.class);
- public static final String ERROR_NO_EXPORT_FOUND =
- "error_no_export_found";
+ public static final String ERROR_NO_EXPORT_FOUND = "error_no_export_found";
- public List getCSV(
- String locale,
- String uuid,
- String name)
- throws ServerException
- {
+ @Override
+ public List getCSV(final String locale, final String uuid, final String name) throws ServerException {
log.info("CSVExportServiceImpl.getCSV");
- String url = getServletContext().getInitParameter("server-url");
-
- Document requestDoc = XMLUtils.newDocument();
+ final String url = getServletContext().getInitParameter("server-url");
- XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator(
- requestDoc,
- ArtifactNamespaceContext.NAMESPACE_URI,
- ArtifactNamespaceContext.NAMESPACE_PREFIX);
+ final Document requestDoc = XMLUtils.newDocument();
- Element action = ec.create("action");
+ final XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator(requestDoc, ArtifactNamespaceContext.NAMESPACE_URI,
+ ArtifactNamespaceContext.NAMESPACE_PREFIX);
+
+ final Element action = ec.create("action");
ec.addAttr(action, "type", "csv", true);
ec.addAttr(action, "name", name, true);
requestDoc.appendChild(action);
- HttpClient client = new HttpClientImpl(url, locale);
+ final HttpClient client = new HttpClientImpl(url, locale);
try {
- InputStream in = client.collectionOut(requestDoc, uuid, "export");
- Reader reader = new InputStreamReader (in, "UTF-8");
- CSVReader csvReader = new CSVReader (reader, ';');
+ final InputStream in = client.collectionOut(requestDoc, uuid, "export");
+ final Reader reader = new InputStreamReader(in, "UTF-8");
+ final CSVReader csvReader = new CSVReader(reader, ';');
- List lines = new ArrayList();
- String[] line = null;
+ final byte[] BOM = new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF };
+ final char bomChar = new String(BOM, "UTF-8").charAt(0);
+ final StringBuilder bomCharCheckBuilder = new StringBuilder().append(bomChar).append("#");
+ final List lines = new ArrayList();
+ String[] line = null;
while ((line = csvReader.readNext()) != null) {
if (line != null) {
- if (!line[0].startsWith("#") && line.length > 0) {
+ if (line.length > 0 && !line[0].startsWith("#") && !line[0].startsWith(bomCharCheckBuilder.toString())) {
if (line[0].replace("'", "").length() > 0) {
lines.add(line);
}
@@ -94,7 +79,7 @@
return lines;
}
- catch (IOException ce) {
+ catch (final IOException ce) {
log.error(ce.getLocalizedMessage());
}