[PATCH 2 of 2] Merged
Wald Commits
scm-commit at wald.intevation.org
Mon Nov 4 11:26:24 CET 2013
# HG changeset patch
# User Sascha L. Teichmann <teichmann at intevation.de>
# Date 1383560762 -3600
# Node ID e4eb85fbcec4fc20d5af584db946ef2dc80654be
# Parent 69138ab4a94200bbc4cae7be650e76d0c3786fcd
# Parent 969afcc1ca26a02dab7f61eba66afbd9b650ae96
Merged
diff -r 69138ab4a942 -r e4eb85fbcec4 artifacts/doc/conf/artifacts/minfo.xml
--- a/artifacts/doc/conf/artifacts/minfo.xml Mon Nov 04 11:24:30 2013 +0100
+++ b/artifacts/doc/conf/artifacts/minfo.xml Mon Nov 04 11:26:02 2013 +0100
@@ -501,16 +501,25 @@
<outputmodes>
<outputmode name="sedimentload_ls" description="output.sedimentload.ls" mime-type="image/png" type="chart">
<facets>
- <facet name="sedimentload.coarse"/>
- <facet name="sedimentload.sand"/>
- <facet name="sedimentload.finemiddle"/>
- <facet name="sedimentload.susp_sand"/>
- <facet name="sedimentload.susp_sand_bed"/>
- <facet name="sedimentload.susp_sediment"/>
- <facet name="sedimentload.total_load"/>
- <facet name="sedimentload.unknown"/>
+ <facet name="sedimentload.ta.coarse"/>
+ <facet name="sedimentload.ta.sand"/>
+ <facet name="sedimentload.ta.finemiddle"/>
+ <facet name="sedimentload.ta.susp_sand"/>
+ <facet name="sedimentload.ta.susp_sand_bed"/>
+ <facet name="sedimentload.ta.susp_sediment"/>
+ <facet name="sedimentload.ta.total_load"/>
+ <facet name="sedimentload.ta.unknown"/>
+ <facet name="sedimentload.ta.total"/>
+ <facet name="sedimentload.m3a.coarse"/>
+ <facet name="sedimentload.m3a.sand"/>
+ <facet name="sedimentload.m3a.finemiddle"/>
+ <facet name="sedimentload.m3a.susp_sand"/>
+ <facet name="sedimentload.m3a.susp_sand_bed"/>
+ <facet name="sedimentload.m3a.susp_sediment"/>
+ <facet name="sedimentload.m3a.total_load"/>
+ <facet name="sedimentload.m3a.unknown"/>
+ <facet name="sedimentload.m3a.total"/>
<facet name="sedimentload_ls.manualpoints"/>
- <facet name="sedimentload.total"/>
<facet name="flow_velocity.totalchannel" description="A facet for total channels"/>
<facet name="flow_velocity.mainchannel" description="A facet for main channels"/>
<facet name="flow_velocity.totalchannel.filtered" description="A facet for total channels"/>
diff -r 69138ab4a942 -r e4eb85fbcec4 artifacts/doc/conf/longitudinal-diagram-defaults.xml
--- a/artifacts/doc/conf/longitudinal-diagram-defaults.xml Mon Nov 04 11:24:30 2013 +0100
+++ b/artifacts/doc/conf/longitudinal-diagram-defaults.xml Mon Nov 04 11:26:02 2013 +0100
@@ -12,7 +12,8 @@
<axis name="Diameter"/>
<axis name="Density"/>
<axis name="Porosity"/>
- <axis name="SedimentLoad"/>
+ <axis name="SedimentLoadM3A"/>
+ <axis name="SedimentLoadTA"/>
<axis name="Velocity"/>
<axis name="Tau"/>
<axis name="Q" include-zero="true"/>
@@ -35,7 +36,8 @@
<processor class="org.dive4elements.river.exports.process.BedQualityDiameterProcessor" axis="Diameter"/>
<processor class="org.dive4elements.river.exports.process.BedQualityPorosityProcessor" axis="Porosity"/>
<processor class="org.dive4elements.river.exports.process.BedQualityDensityProcessor" axis="Density"/>
- <processor class="org.dive4elements.river.exports.process.SedimentLoadProcessor" axis="SedimentLoad"/>
+ <processor class="org.dive4elements.river.exports.process.SedimentLoadTAProcessor" axis="SedimentLoadTA"/>
+ <processor class="org.dive4elements.river.exports.process.SedimentLoadM3AProcessor" axis="SedimentLoadM3A"/>
<processor class="org.dive4elements.river.exports.process.FlowVelocityProcessor" axis="Velocity"/>
<processor class="org.dive4elements.river.exports.process.ShearStressProcessor" axis="Tau"/>
<processor class="org.dive4elements.river.exports.process.SedimentDensityProcessor" axis="Density"/>
diff -r 69138ab4a942 -r e4eb85fbcec4 artifacts/src/main/java/org/dive4elements/river/artifacts/MainValuesArtifact.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/MainValuesArtifact.java Mon Nov 04 11:24:30 2013 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/MainValuesArtifact.java Mon Nov 04 11:26:02 2013 +0100
@@ -184,6 +184,7 @@
}
}
+
/**
* The MainValueArtifact can be set up with a document giving the
* river and gauge. This happens in context of GaugeDischargeArtifact.
@@ -221,7 +222,7 @@
/**
- * Create "the" state.
+ * Create "the" (one possible) state.
*/
protected State spawnState() {
state = new StaticState(STATIC_STATE_NAME);
@@ -377,6 +378,7 @@
* @return list of Q main values.
*/
public List<NamedDouble> getMainValuesQ(double[] kms) {
+ logger.debug("MainValuesArtifact.getMainValuesQ(d)");
List<NamedDouble> filteredList = new ArrayList<NamedDouble>();
boolean atGauge = false;
Gauge gauge = getGauge(kms[0]);
@@ -409,9 +411,11 @@
/**
* Get a list of "Q" main values.
+ * @param atGauge whether is at gauge or needs interpolation.
* @return list of Q main values.
*/
public List<NamedDouble> getMainValuesQ(boolean atGauge) {
+ logger.debug("MainValuesArtifact.getMainValuesQ(b)");
List<NamedDouble> filteredList = new ArrayList<NamedDouble>();
Gauge gauge = getGauge();
WstValueTable interpolator = WstValueTableFactory.getTable(RiverUtils.getRiver(this));
diff -r 69138ab4a942 -r e4eb85fbcec4 artifacts/src/main/java/org/dive4elements/river/artifacts/SedimentYieldArtifact.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/SedimentYieldArtifact.java Mon Nov 04 11:24:30 2013 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/SedimentYieldArtifact.java Mon Nov 04 11:26:02 2013 +0100
@@ -146,9 +146,10 @@
String code = getDatacageIDValue(data);
if (code != null) {
- String fraction = SedimentLoadFactory.getSedimentYieldFractionName(Integer.valueOf(code));
+ int id = Integer.valueOf(code);
+ String fraction = SedimentLoadFactory.getSedimentYieldFractionName(id);
String fractionName = Resources.getMsg(callMeta, fraction, "-");
- Date[] dates = SedimentLoadFactory.getSedimentYieldTimes(Integer.valueOf(code));
+ Date[] dates = SedimentLoadFactory.getSedimentYieldTimes(id);
Calendar date = Calendar.getInstance();
date.setTime(dates[0]);
String name = fractionName + " - " + date.get(Calendar.YEAR);
@@ -157,27 +158,65 @@
name += " - " + date.get(Calendar.YEAR);
}
+ boolean unitIsTA =
+ SedimentLoadFactory.getSedimentYieldUnitName(id).startsWith("t");
+
String facetType = "";
if (fraction.equals("coarse")) {
- facetType = SEDIMENT_LOAD_COARSE;
+ if (unitIsTA) {
+ facetType = SEDIMENT_LOAD_TA_COARSE;
+ }
+ else {
+ facetType = SEDIMENT_LOAD_M3A_COARSE;
+ }
}
else if (fraction.equals("sand")) {
- facetType = SEDIMENT_LOAD_SAND;
+ if (unitIsTA) {
+ facetType = SEDIMENT_LOAD_TA_SAND;
+ }
+ else {
+ facetType = SEDIMENT_LOAD_M3A_SAND;
+ }
}
else if (fraction.equals("fine_middle")) {
- facetType = SEDIMENT_LOAD_FINEMIDDLE;
+ if (unitIsTA) {
+ facetType = SEDIMENT_LOAD_TA_FINEMIDDLE;
+ }
+ else {
+ facetType = SEDIMENT_LOAD_M3A_FINEMIDDLE;
+ }
}
else if (fraction.equals("susp_sand")) {
- facetType = SEDIMENT_LOAD_SUSP_SAND;
+ if (unitIsTA) {
+ facetType = SEDIMENT_LOAD_TA_SUSP_SAND;
+ }
+ else {
+ facetType = SEDIMENT_LOAD_M3A_SAND;
+ }
}
else if (fraction.equals("susp_sand_bed")) {
- facetType = SEDIMENT_LOAD_SUSP_SAND_BED;
+ if (unitIsTA) {
+ facetType = SEDIMENT_LOAD_TA_SUSP_SAND_BED;
+ }
+ else {
+ facetType = SEDIMENT_LOAD_M3A_SUSP_SAND_BED;
+ }
}
else if (fraction.equals("suspended_sediment")) {
- facetType = SEDIMENT_LOAD_SUSP_SEDIMENT;
+ if (unitIsTA) {
+ facetType = SEDIMENT_LOAD_TA_SUSP_SEDIMENT;
+ }
+ else {
+ facetType = SEDIMENT_LOAD_M3A_SUSP_SEDIMENT;
+ }
}
else if (fraction.equals("total")) {
- facetType = SEDIMENT_LOAD_TOTAL_LOAD;
+ if (unitIsTA) {
+ facetType = SEDIMENT_LOAD_TA_TOTAL_LOAD;
+ }
+ else {
+ facetType = SEDIMENT_LOAD_M3A_TOTAL_LOAD;
+ }
}
else {
logger.error("Do not know fraction type " + fraction);
diff -r 69138ab4a942 -r e4eb85fbcec4 artifacts/src/main/java/org/dive4elements/river/artifacts/datacage/templating/FunctionResolver.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/datacage/templating/FunctionResolver.java Mon Nov 04 11:24:30 2013 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/datacage/templating/FunctionResolver.java Mon Nov 04 11:26:02 2013 +0100
@@ -370,7 +370,7 @@
}
/** Implementation for doing a string replace
- * dc:replace
+ * dc:replace .
*/
public Object replace(List args) throws XPathFunctionException {
Object haystack = args.get(0);
diff -r 69138ab4a942 -r e4eb85fbcec4 artifacts/src/main/java/org/dive4elements/river/artifacts/model/FacetTypes.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/FacetTypes.java Mon Nov 04 11:24:30 2013 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/FacetTypes.java Mon Nov 04 11:26:02 2013 +0100
@@ -111,11 +111,47 @@
return false;
}
- public static boolean SEDIMENT_LOAD(String type) {
- return type.startsWith("sedimentload") && !type.contains("unknown");
+ public static boolean SEDIMENT_LOAD_TOTAL_LOAD(String type) {
+ return type.equals(SEDIMENT_LOAD_TA_TOTAL_LOAD) ||
+ type.equals(SEDIMENT_LOAD_M3A_TOTAL_LOAD);
+ }
+ public static boolean SEDIMENT_LOAD_TOTAL(String type) {
+ return type.equals(SEDIMENT_LOAD_TA_TOTAL) ||
+ type.equals(SEDIMENT_LOAD_M3A_TOTAL);
+ }
+ public static boolean SEDIMENT_LOAD_SUSP_SEDIMENT(String type) {
+ return type.equals(SEDIMENT_LOAD_TA_SUSP_SEDIMENT) ||
+ type.equals(SEDIMENT_LOAD_M3A_SUSP_SEDIMENT);
+ }
+ public static boolean SEDIMENT_LOAD_SUSP_SAND_BED(String type) {
+ return type.equals(SEDIMENT_LOAD_TA_SUSP_SAND_BED) ||
+ type.equals(SEDIMENT_LOAD_M3A_SUSP_SAND_BED);
+ }
+ public static boolean SEDIMENT_LOAD_SUSP_SAND(String type) {
+ return type.equals(SEDIMENT_LOAD_TA_SUSP_SAND) ||
+ type.equals(SEDIMENT_LOAD_M3A_SUSP_SAND);
+ }
+ public static boolean SEDIMENT_LOAD_FINEMIDDLE(String type) {
+ return type.equals(SEDIMENT_LOAD_TA_FINEMIDDLE) ||
+ type.equals(SEDIMENT_LOAD_M3A_FINEMIDDLE);
+ }
+ public static boolean SEDIMENT_LOAD_COARSE(String type) {
+ return type.equals(SEDIMENT_LOAD_TA_COARSE) ||
+ type.equals(SEDIMENT_LOAD_M3A_COARSE);
+ }
+ public static boolean SEDIMENT_LOAD_SAND(String type) {
+ return type.equals(SEDIMENT_LOAD_TA_SAND) ||
+ type.equals(SEDIMENT_LOAD_M3A_SAND);
+ }
+ public static boolean SEDIMENT_LOAD_M3A(String type) {
+ return type.startsWith("sedimentload.m3a") && !type.contains("unknown");
+ }
+ public static boolean SEDIMENT_LOAD_TA(String type) {
+ return type.startsWith("sedimentload.ta") && !type.contains("unknown");
}
public static boolean SEDIMENT_LOAD_UNKNOWN(String type) {
- return type.equals("sedimentload.unknown");
+ return type.equals("sedimentload.m3a.unknown") ||
+ type.equals("sedimentload.ta.unknown");
}
public static boolean SEDIMENT_LOAD_NO_FLOAT(String type) {
return type.startsWith("sedimentload") && !type.contains("susp");
@@ -264,7 +300,7 @@
String HISTORICAL_DISCHARGE_MAINVALUES_Q = "historical_discharge.mainvalues.q";
String HISTORICAL_DISCHARGE_MAINVALUES_W = "historical_discharge.mainvalues.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";
@@ -309,19 +345,30 @@
String BED_DIFFERENCE_EPOCH_HEIGHT2 = "bedheight_difference.epoch.height2";
String BED_DIFFERENCE_EPOCH_HEIGHT1_FILTERED = "bedheight_difference.epoch.height1.filtered";
String BED_DIFFERENCE_EPOCH_HEIGHT2_FILTERED = "bedheight_difference.epoch.height2.filtered";
+
String MORPHOLOGIC_WIDTH = "morph-width";
String SEDIMENT_DENSITY = "sediment.density";
- String SEDIMENT_LOAD_COARSE = "sedimentload.coarse";
- String SEDIMENT_LOAD_SAND = "sedimentload.sand";
- String SEDIMENT_LOAD_FINEMIDDLE = "sedimentload.finemiddle";
- String SEDIMENT_LOAD_SUSP_SAND = "sedimentload.susp_sand";
- String SEDIMENT_LOAD_SUSP_SAND_BED = "sedimentload.susp_sand_bed";
- String SEDIMENT_LOAD_SUSP_SEDIMENT = "sedimentload.susp_sediment";
- String SEDIMENT_LOAD_TOTAL = "sedimentload.total";
- String SEDIMENT_LOAD_TOTAL_LOAD = "sedimentload.total_load";
- String SEDIMENT_LOAD_UNKNOWN = "sedimentload.unknown";
+ String SEDIMENT_LOAD_TA_COARSE = "sedimentload.ta.coarse";
+ String SEDIMENT_LOAD_TA_SAND = "sedimentload.ta.sand";
+ String SEDIMENT_LOAD_TA_FINEMIDDLE = "sedimentload.ta.finemiddle";
+ String SEDIMENT_LOAD_TA_SUSP_SAND = "sedimentload.ta.susp_sand";
+ String SEDIMENT_LOAD_TA_SUSP_SAND_BED = "sedimentload.ta.susp_sand_bed";
+ String SEDIMENT_LOAD_TA_SUSP_SEDIMENT = "sedimentload.ta.susp_sediment";
+ String SEDIMENT_LOAD_TA_TOTAL = "sedimentload.ta.total";
+ String SEDIMENT_LOAD_TA_TOTAL_LOAD = "sedimentload.ta.total_load";
+ String SEDIMENT_LOAD_TA_UNKNOWN = "sedimentload.ta.unknown";
+
+ String SEDIMENT_LOAD_M3A_COARSE = "sedimentload.m3a.coarse";
+ String SEDIMENT_LOAD_M3A_SAND = "sedimentload.m3a.sand";
+ String SEDIMENT_LOAD_M3A_FINEMIDDLE = "sedimentload.m3a.finemiddle";
+ String SEDIMENT_LOAD_M3A_SUSP_SAND = "sedimentload.m3a.susp_sand";
+ String SEDIMENT_LOAD_M3A_SUSP_SAND_BED = "sedimentload.m3a.susp_sand_bed";
+ String SEDIMENT_LOAD_M3A_SUSP_SEDIMENT = "sedimentload.m3a.susp_sediment";
+ String SEDIMENT_LOAD_M3A_TOTAL = "sedimentload.m3a.total";
+ String SEDIMENT_LOAD_M3A_TOTAL_LOAD = "sedimentload.m3a.total_load";
+ String SEDIMENT_LOAD_M3A_UNKNOWN = "sedimentload.m3a.unknown";
String SQ_OVERVIEW = "sq_overview";
diff -r 69138ab4a942 -r e4eb85fbcec4 artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadFacet.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadFacet.java Mon Nov 04 11:24:30 2013 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadFacet.java Mon Nov 04 11:26:02 2013 +0100
@@ -101,7 +101,8 @@
// Handle sediment load differently, as it respects already
// the ranges that were added to SedimentLoad/Fraction.
- if (getName().equals(FacetTypes.SEDIMENT_LOAD_TOTAL)) {
+ if (getName().equals(FacetTypes.SEDIMENT_LOAD_TA_TOTAL)
+ ||getName().equals(FacetTypes.SEDIMENT_LOAD_M3A_TOTAL)) {
SedimentLoad load = result.getLoad();
TDoubleArrayList xPos = new TDoubleArrayList();
TDoubleArrayList yPos = new TDoubleArrayList();
@@ -197,24 +198,25 @@
/** Get data according to type of facet. */
private double[][] getLoadData(SedimentLoadResult result) {
- if (getName().equals(FacetTypes.SEDIMENT_LOAD_SAND))
+ String name = getName();
+ if (FacetTypes.IS.SEDIMENT_LOAD_SAND(name))
return result.getSandData();
- else if (getName().equals(FacetTypes.SEDIMENT_LOAD_COARSE))
+ else if (FacetTypes.IS.SEDIMENT_LOAD_COARSE(name))
return result.getCoarseData();
- else if (getName().equals(FacetTypes.SEDIMENT_LOAD_FINEMIDDLE))
+ else if (FacetTypes.IS.SEDIMENT_LOAD_FINEMIDDLE(name))
return result.getFineMiddleData();
- else if (getName().equals(FacetTypes.SEDIMENT_LOAD_SUSP_SAND))
+ else if (FacetTypes.IS.SEDIMENT_LOAD_SUSP_SAND(name))
return result.getSuspSandData();
- else if (getName().equals(FacetTypes.SEDIMENT_LOAD_SUSP_SAND_BED))
+ else if (FacetTypes.IS.SEDIMENT_LOAD_SUSP_SAND_BED(name))
return result.getSuspSandBedData();
- else if (getName().equals(FacetTypes.SEDIMENT_LOAD_SUSP_SEDIMENT))
+ else if (FacetTypes.IS.SEDIMENT_LOAD_SUSP_SEDIMENT(name))
return result.getSuspSedimentData();
- else if (getName().equals(FacetTypes.SEDIMENT_LOAD_TOTAL_LOAD))
+ else if (FacetTypes.IS.SEDIMENT_LOAD_TOTAL_LOAD(name))
return result.getTotalLoadData();
- else if (getName().equals(FacetTypes.SEDIMENT_LOAD_TOTAL))
+ else if (FacetTypes.IS.SEDIMENT_LOAD_TOTAL(name))
return result.getTotalData();
else {
- logger.error("SedimentLoadFacet " + getName() + " cannot determine data type.");
+ logger.error("SedimentLoadFacet " + name + " cannot determine data type.");
return null;
}
}
diff -r 69138ab4a942 -r e4eb85fbcec4 artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadFactory.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadFactory.java Mon Nov 04 11:24:30 2013 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadFactory.java Mon Nov 04 11:26:02 2013 +0100
@@ -71,6 +71,14 @@
" JOIN grain_fraction gf ON gf.id = grain_fraction_id " +
" WHERE sy.id = :id ";
+ /** Query to get unit name of single sediment_yield. */
+ public static final String SQL_SELECT_SINGLE_UNIT_BY_ID =
+ "SELECT DISTINCT " +
+ " u.name AS unit " +
+ " FROM sediment_yield sy " +
+ " JOIN units u ON u.id = unit_id " +
+ " WHERE sy.id = :id ";
+
/** Query to get description of single sediment_yield. */
public static final String SQL_SELECT_SINGLE_BY_ID =
"SELECT DISTINCT " +
@@ -315,6 +323,24 @@
}
/**
+ * Get sediment load unit name.
+ * @param id the sediment yield by id.
+ * @return sediment yields unit name.
+ */
+ public static String getSedimentYieldUnitName(int id) {
+ log.debug("SedimentLoadFactory.getSedimentYieldUnitName");
+
+ Session session = SessionHolder.HOLDER.get();
+ SQLQuery sqlQuery = session.createSQLQuery(SQL_SELECT_SINGLE_UNIT_BY_ID)
+ .addScalar("unit", StandardBasicTypes.STRING);
+ sqlQuery.setDouble("id", id);
+
+ List<Object> results = sqlQuery.list();
+
+ return (String) results.get(0);
+ }
+
+ /**
* Get sediment load fraction name.
* @param id the sediment yield by id.
* @return sediment yields fraction name.
diff -r 69138ab4a942 -r e4eb85fbcec4 artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/SedimentLoadCalculate.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/SedimentLoadCalculate.java Mon Nov 04 11:24:30 2013 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/SedimentLoadCalculate.java Mon Nov 04 11:26:02 2013 +0100
@@ -54,6 +54,8 @@
public static final String I18N_FACET_SEDIMENTLOAD_TOTAL_LOAD = "facet.sedimentload.total_load";
public static final String I18N_FACET_SEDIMENTLOAD_TOTAL = "facet.sedimentload.total";
+ private transient SedimentLoadAccess access;
+
static {
// Active/deactivate facets.
FacetActivity.Registry.getInstance().register(
@@ -66,15 +68,22 @@
String output
) {
String name = facet.getName();
- if (name.equals(SEDIMENT_LOAD_COARSE) ||
- name.equals(SEDIMENT_LOAD_FINEMIDDLE) ||
- name.equals(SEDIMENT_LOAD_SAND) ||
- name.equals(SEDIMENT_LOAD_SUSP_SAND) ||
- name.equals(SEDIMENT_LOAD_SUSP_SEDIMENT) ||
- name.equals(SEDIMENT_LOAD_SUSP_SAND_BED)){
+ if (name.equals(SEDIMENT_LOAD_TA_COARSE) ||
+ name.equals(SEDIMENT_LOAD_TA_FINEMIDDLE) ||
+ name.equals(SEDIMENT_LOAD_TA_SAND) ||
+ name.equals(SEDIMENT_LOAD_TA_SUSP_SAND) ||
+ name.equals(SEDIMENT_LOAD_TA_SUSP_SEDIMENT) ||
+ name.equals(SEDIMENT_LOAD_TA_SUSP_SAND_BED) ||
+ name.equals(SEDIMENT_LOAD_M3A_COARSE) ||
+ name.equals(SEDIMENT_LOAD_M3A_FINEMIDDLE) ||
+ name.equals(SEDIMENT_LOAD_M3A_SAND) ||
+ name.equals(SEDIMENT_LOAD_M3A_SUSP_SAND) ||
+ name.equals(SEDIMENT_LOAD_M3A_SUSP_SEDIMENT) ||
+ name.equals(SEDIMENT_LOAD_M3A_SUSP_SAND_BED)){
return Boolean.FALSE;
}
- else if (name.equals(SEDIMENT_LOAD_UNKNOWN)) {
+ else if (name.equals(SEDIMENT_LOAD_TA_UNKNOWN)
+ || name.equals(SEDIMENT_LOAD_M3A_UNKNOWN)) {
D4EArtifact d4e = (D4EArtifact)artifact;
SedimentLoadUnknownFacet f =
(SedimentLoadUnknownFacet)
@@ -124,7 +133,9 @@
List<Facet> newFacets = new ArrayList<Facet>();
- SedimentLoadAccess access = new SedimentLoadAccess(artifact);
+ if (access == null) {
+ access = new SedimentLoadAccess(artifact);
+ }
CalculationResult res = old instanceof CalculationResult ? (CalculationResult) old
: new SedimentLoadCalculation().calculate(access);
@@ -157,6 +168,8 @@
SedimentLoadFactory.getSedimentLoadUnknown(river,
access.getUnit().replace("_per_","/"), type);
+ boolean isUnitTA = access.getUnit().startsWith("t");
+
if (res.getReport().hasProblems()) {
newFacets.add(new ReportFacet(ComputeType.ADVANCE, hash, id));
}
@@ -164,7 +177,7 @@
for (int i = 0; i < unknown.length; i++) {
newFacets.add(new SedimentLoadUnknownFacet(
i,
- SEDIMENT_LOAD_UNKNOWN,
+ (isUnitTA)? SEDIMENT_LOAD_TA_UNKNOWN:SEDIMENT_LOAD_M3A_UNKNOWN,
unknown[i].getDescription(),
ComputeType.ADVANCE,
getID(),
@@ -184,6 +197,7 @@
logger.debug("SedimentLoadCalculate.generateFacets");
CallMeta meta = context.getMeta();
+ boolean isUnitTA = access.getUnit().startsWith("t");
// newFacets.add(new DataFacet(CSV, "CSV data", ComputeType.ADVANCE, hash, id));
for (int idx = 0; idx < results.length; idx++) {
@@ -191,7 +205,9 @@
if (res.hasCoarseData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_COARSE,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_COARSE
+ :SEDIMENT_LOAD_M3A_COARSE,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_COARSE,
@@ -204,7 +220,9 @@
if (res.hasSandData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_SAND,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_SAND
+ :SEDIMENT_LOAD_M3A_SAND,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_SAND,
@@ -217,7 +235,9 @@
if (res.hasFineMiddleData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_FINEMIDDLE,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_FINEMIDDLE
+ :SEDIMENT_LOAD_M3A_FINEMIDDLE,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_FINE_MIDDLE,
@@ -230,7 +250,9 @@
if (res.hasSuspSandData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_SUSP_SAND,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_SUSP_SAND
+ :SEDIMENT_LOAD_M3A_SUSP_SAND,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_SUSPSAND,
@@ -243,7 +265,9 @@
if (res.hasSuspSandBedData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_SUSP_SAND_BED,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_SUSP_SAND_BED
+ :SEDIMENT_LOAD_M3A_SUSP_SAND_BED,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_SUSPSANDBED,
@@ -256,7 +280,9 @@
if (res.hasSuspSedimentData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_SUSP_SEDIMENT,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_SUSP_SEDIMENT
+ :SEDIMENT_LOAD_M3A_SUSP_SEDIMENT,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_SUSPSEDIMENT,
@@ -270,7 +296,9 @@
if (res.hasTotalData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_TOTAL,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_TOTAL
+ :SEDIMENT_LOAD_M3A_TOTAL,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_TOTAL,
@@ -293,6 +321,7 @@
logger.debug("SedimentLoadCalculate.generateEpochFacets");
CallMeta meta = context.getMeta();
+ boolean isUnitTA = access.getUnit().startsWith("t");
// newFacets.add(new DataFacet(CSV, "CSV data", ComputeType.ADVANCE, hash, id));
for (int idx = 0; idx < results.length; idx++) {
@@ -300,7 +329,9 @@
if (res.hasCoarseData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_COARSE,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_COARSE
+ :SEDIMENT_LOAD_M3A_COARSE,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_COARSE,
@@ -313,7 +344,9 @@
if (res.hasSandData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_SAND,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_SAND
+ :SEDIMENT_LOAD_M3A_SAND,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_SAND,
@@ -326,7 +359,9 @@
if (res.hasFineMiddleData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_FINEMIDDLE,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_FINEMIDDLE
+ :SEDIMENT_LOAD_M3A_FINEMIDDLE,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_FINE_MIDDLE,
@@ -339,7 +374,9 @@
if (res.hasSuspSandData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_SUSP_SAND,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_SUSP_SAND
+ :SEDIMENT_LOAD_M3A_SUSP_SAND,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_SUSPSAND,
@@ -352,7 +389,9 @@
if (res.hasSuspSandBedData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_SUSP_SAND_BED,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_SUSP_SAND_BED
+ :SEDIMENT_LOAD_M3A_SUSP_SAND,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_SUSPSANDBED,
@@ -365,7 +404,9 @@
if (res.hasSuspSedimentData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_SUSP_SEDIMENT,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_SUSP_SEDIMENT
+ :SEDIMENT_LOAD_M3A_SUSP_SEDIMENT,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_SUSPSEDIMENT,
@@ -379,7 +420,9 @@
if (res.hasTotalLoadData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_TOTAL_LOAD,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_TOTAL_LOAD
+ :SEDIMENT_LOAD_M3A_TOTAL_LOAD,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_TOTAL_LOAD,
@@ -392,7 +435,9 @@
if (res.hasTotalData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_TOTAL,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_TOTAL
+ :SEDIMENT_LOAD_M3A_TOTAL,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_TOTAL,
@@ -415,6 +460,7 @@
logger.debug("SedimentLoadCalculate.generateOffEpochFacets");
CallMeta meta = context.getMeta();
+ boolean isUnitTA = access.getUnit().startsWith("t");
// newFacets.add(new DataFacet(CSV, "CSV data", ComputeType.ADVANCE, hash, id));
for (int idx = 0; idx < results.length; idx++) {
@@ -422,7 +468,9 @@
if (res.hasCoarseData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_COARSE,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_COARSE
+ :SEDIMENT_LOAD_M3A_COARSE,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_COARSE,
@@ -435,7 +483,9 @@
if (res.hasSandData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_SAND,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_SAND
+ :SEDIMENT_LOAD_M3A_SAND,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_SAND,
@@ -448,7 +498,9 @@
if (res.hasFineMiddleData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_FINEMIDDLE,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_FINEMIDDLE
+ :SEDIMENT_LOAD_M3A_FINEMIDDLE,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_FINE_MIDDLE,
@@ -461,7 +513,9 @@
if (res.hasSuspSandData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_SUSP_SAND,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_SUSP_SAND
+ :SEDIMENT_LOAD_M3A_SUSP_SAND,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_SUSPSAND,
@@ -474,7 +528,9 @@
if (res.hasSuspSandBedData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_SUSP_SAND_BED,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_SUSP_SAND_BED
+ :SEDIMENT_LOAD_M3A_SUSP_SAND_BED,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_SUSPSANDBED,
@@ -487,7 +543,9 @@
if (res.hasSuspSedimentData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_SUSP_SEDIMENT,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_SUSP_SEDIMENT
+ :SEDIMENT_LOAD_M3A_SUSP_SEDIMENT,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_SUSPSEDIMENT,
@@ -501,7 +559,9 @@
if (res.hasTotalLoadData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_TOTAL_LOAD,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_TOTAL_LOAD
+ :SEDIMENT_LOAD_M3A_TOTAL_LOAD,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_TOTAL_LOAD,
@@ -514,7 +574,9 @@
if (res.hasTotalData()) {
newFacets.add(new SedimentLoadFacet(
idx,
- SEDIMENT_LOAD_TOTAL,
+ (isUnitTA)
+ ?SEDIMENT_LOAD_TA_TOTAL
+ :SEDIMENT_LOAD_M3A_TOTAL,
Resources.getMsg(
meta,
I18N_FACET_SEDIMENTLOAD_TOTAL,
diff -r 69138ab4a942 -r e4eb85fbcec4 artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceExporter.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceExporter.java Mon Nov 04 11:24:30 2013 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedDifferenceExporter.java Mon Nov 04 11:26:02 2013 +0100
@@ -182,6 +182,5 @@
logger.warn("Error generating PDF Report!", je);
}
}
-
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
diff -r 69138ab4a942 -r e4eb85fbcec4 artifacts/src/main/java/org/dive4elements/river/exports/minfo/SedimentLoadLSGenerator.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/minfo/SedimentLoadLSGenerator.java Mon Nov 04 11:24:30 2013 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/minfo/SedimentLoadLSGenerator.java Mon Nov 04 11:26:02 2013 +0100
@@ -53,6 +53,7 @@
idx = c;
}
}
+
/** The logger that is used in this generator. */
private static Logger logger = Logger.getLogger(SedimentLoadLSGenerator.class);
@@ -133,7 +134,7 @@
context.putContextValue("startkm", bounds.getLower());
context.putContextValue("endkm", bounds.getUpper());
}
- if (FacetTypes.IS.SEDIMENT_LOAD(name)) {
+ if (FacetTypes.IS.SEDIMENT_LOAD_TA(name)||FacetTypes.IS.SEDIMENT_LOAD_M3A(name)){
doSedimentLoadOut(
(double[][]) bundle.getData(context),
bundle,
diff -r 69138ab4a942 -r e4eb85fbcec4 artifacts/src/main/java/org/dive4elements/river/exports/process/SedimentLoadM3AProcessor.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/SedimentLoadM3AProcessor.java Mon Nov 04 11:26:02 2013 +0100
@@ -0,0 +1,83 @@
+/* Copyright (C) 2013 by Bundesanstalt für Gewässerkunde
+ * Software engineering by Intevation GmbH
+ *
+ * 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.exports.process;
+
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+import org.jfree.data.xy.XYSeries;
+
+import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
+import org.dive4elements.artifacts.CallContext;
+import org.dive4elements.river.artifacts.model.FacetTypes;
+import org.dive4elements.river.exports.DiagramGenerator;
+import org.dive4elements.river.exports.StyledSeriesBuilder;
+import org.dive4elements.river.jfree.StyledXYSeries;
+import org.dive4elements.river.themes.ThemeDocument;
+
+import org.dive4elements.river.artifacts.model.minfo.SedimentLoad;
+import org.dive4elements.river.artifacts.model.minfo.SedimentLoadFraction;
+
+public class SedimentLoadM3AProcessor extends DefaultProcessor {
+
+ private final static Logger logger =
+ Logger.getLogger(SedimentLoadM3AProcessor.class);
+
+ public static final String I18N_YAXIS_LABEL =
+ "chart.sedimentload.ls.yaxis.label.m3pera";
+ public static final String I18N_YAXIS_LABEL_DEFAULT = "[m\u00b3/a]";
+
+ @Override
+ public void doOut(
+ DiagramGenerator generator,
+ ArtifactAndFacet bundle,
+ ThemeDocument theme,
+ boolean visible) {
+ logger.debug("doOut " + bundle.getFacetName());
+ CallContext context = generator.getCallContext();
+ XYSeries series = new StyledXYSeries(bundle.getFacetDescription(),
+ theme);
+ Object data = bundle.getData(context);
+ String facetName = bundle.getFacetName();
+ double [][] points;
+
+ if (FacetTypes.IS.SEDIMENT_LOAD_M3A(facetName)) {
+ points = (double[][]) data;
+ } else if (FacetTypes.IS.SEDIMENT_LOAD_UNKNOWN(facetName)) {
+ SedimentLoad load = (SedimentLoad) data;
+ Set<Double> kms = load.getKms();
+ points = new double[2][kms.size()];
+ int counter = 0;
+ for (Double km: kms) {
+ SedimentLoadFraction fraction = load.getFraction(km);
+ points[0][counter] = km;
+ points[1][counter] = fraction.getUnknown();
+ counter++;
+ }
+ } else {
+ logger.error("Unknown facet name: " + facetName);
+ return;
+ }
+
+ StyledSeriesBuilder.addPoints(series, points, true);
+
+ generator.addAxisSeries(series, axisName, visible);
+ }
+
+ @Override
+ public boolean canHandle(String facettype) {
+ return FacetTypes.IS.SEDIMENT_LOAD_M3A(facettype) ||
+ FacetTypes.SEDIMENT_LOAD_M3A_UNKNOWN.equals(facettype);
+ }
+
+ @Override
+ public String getAxisLabel(DiagramGenerator generator) {
+ return generator.msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL_DEFAULT);
+ }
+}
diff -r 69138ab4a942 -r e4eb85fbcec4 artifacts/src/main/java/org/dive4elements/river/exports/process/SedimentLoadProcessor.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/SedimentLoadProcessor.java Mon Nov 04 11:24:30 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/* Copyright (C) 2013 by Bundesanstalt für Gewässerkunde
- * Software engineering by Intevation GmbH
- *
- * 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.exports.process;
-
-import java.util.Set;
-
-import org.apache.log4j.Logger;
-import org.jfree.data.xy.XYSeries;
-import org.dive4elements.river.artifacts.D4EArtifact;
-
-import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
-import org.dive4elements.artifacts.CallContext;
-import org.dive4elements.river.artifacts.access.SedimentLoadAccess;
-import org.dive4elements.river.artifacts.model.FacetTypes;
-import org.dive4elements.river.exports.DiagramGenerator;
-import org.dive4elements.river.exports.StyledSeriesBuilder;
-import org.dive4elements.river.jfree.StyledXYSeries;
-import org.dive4elements.river.themes.ThemeDocument;
-
-import org.dive4elements.river.artifacts.model.minfo.SedimentLoad;
-import org.dive4elements.river.artifacts.model.minfo.SedimentLoadFraction;
-
-public class SedimentLoadProcessor extends DefaultProcessor {
-
- private final static Logger logger =
- Logger.getLogger(SedimentLoadProcessor.class);
-
- public static final String I18N_YAXIS_LABEL_1 =
- "chart.sedimentload.ls.yaxis.label.tpera";
- public static final String I18N_YAXIS_LABEL_2 =
- "chart.sedimentload.ls.yaxis.label.m3pera";
- public static final String I18N_YAXIS_LABEL_DEFAULT_1 = "[t/a]";
- public static final String I18N_YAXIS_LABEL_DEFAULT_2 = "[m\u00b3/a]";
-
- @Override
- public void doOut(
- DiagramGenerator generator,
- ArtifactAndFacet bundle,
- ThemeDocument theme,
- boolean visible) {
- logger.debug("doOut " + bundle.getFacetName());
- CallContext context = generator.getCallContext();
- XYSeries series = new StyledXYSeries(bundle.getFacetDescription(),
- theme);
- Object data = bundle.getData(context);
- String facetName = bundle.getFacetName();
- double [][] points;
-
- if (FacetTypes.IS.SEDIMENT_LOAD(facetName)) {
- points = (double[][]) data;
- } else if (FacetTypes.IS.SEDIMENT_LOAD_UNKNOWN(facetName)) {
- SedimentLoad load = (SedimentLoad) data;
- Set<Double> kms = load.getKms();
- points = new double[2][kms.size()];
- int counter = 0;
- for (Double km: kms) {
- SedimentLoadFraction fraction = load.getFraction(km);
- points[0][counter] = km;
- points[1][counter] = fraction.getUnknown();
- counter++;
- }
- } else {
- logger.error("Unknown facet name: " + facetName);
- return;
- }
- StyledSeriesBuilder.addPoints(series, points, true);
-
- generator.addAxisSeries(series, axisName, visible);
- }
-
- @Override
- public boolean canHandle(String facettype) {
- return FacetTypes.IS.SEDIMENT_LOAD(facettype) ||
- FacetTypes.IS.SEDIMENT_LOAD_UNKNOWN(facettype);
- }
-
- @Override
- public String getAxisLabel(DiagramGenerator generator) {
- SedimentLoadAccess slaccess =
- new SedimentLoadAccess((D4EArtifact) generator.getMaster());
- String unit = slaccess.getUnit();
- if (unit != null && unit.equals("m3_per_a")) {
- return generator.msg(I18N_YAXIS_LABEL_2, I18N_YAXIS_LABEL_DEFAULT_2);
- }
- else {
- return generator.msg(I18N_YAXIS_LABEL_1, I18N_YAXIS_LABEL_DEFAULT_1);
- }
- }
-}
diff -r 69138ab4a942 -r e4eb85fbcec4 artifacts/src/main/java/org/dive4elements/river/exports/process/SedimentLoadTAProcessor.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/SedimentLoadTAProcessor.java Mon Nov 04 11:26:02 2013 +0100
@@ -0,0 +1,83 @@
+/* Copyright (C) 2013 by Bundesanstalt für Gewässerkunde
+ * Software engineering by Intevation GmbH
+ *
+ * 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.exports.process;
+
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+import org.jfree.data.xy.XYSeries;
+
+import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
+import org.dive4elements.artifacts.CallContext;
+import org.dive4elements.river.artifacts.model.FacetTypes;
+import org.dive4elements.river.exports.DiagramGenerator;
+import org.dive4elements.river.exports.StyledSeriesBuilder;
+import org.dive4elements.river.jfree.StyledXYSeries;
+import org.dive4elements.river.themes.ThemeDocument;
+
+import org.dive4elements.river.artifacts.model.minfo.SedimentLoad;
+import org.dive4elements.river.artifacts.model.minfo.SedimentLoadFraction;
+
+public class SedimentLoadTAProcessor extends DefaultProcessor {
+
+ private final static Logger logger =
+ Logger.getLogger(SedimentLoadTAProcessor.class);
+
+ public static final String I18N_YAXIS_LABEL =
+ "chart.sedimentload.ls.yaxis.label.tpera";
+ public static final String I18N_YAXIS_LABEL_DEFAULT = "[t/a]";
+
+ @Override
+ public void doOut(
+ DiagramGenerator generator,
+ ArtifactAndFacet bundle,
+ ThemeDocument theme,
+ boolean visible) {
+ logger.debug("doOut " + bundle.getFacetName());
+ CallContext context = generator.getCallContext();
+ XYSeries series = new StyledXYSeries(bundle.getFacetDescription(),
+ theme);
+ Object data = bundle.getData(context);
+ String facetName = bundle.getFacetName();
+ double [][] points;
+
+ if (FacetTypes.IS.SEDIMENT_LOAD_TA(facetName)) {
+ points = (double[][]) data;
+ } else if (FacetTypes.IS.SEDIMENT_LOAD_UNKNOWN(facetName)) {
+ SedimentLoad load = (SedimentLoad) data;
+ Set<Double> kms = load.getKms();
+ points = new double[2][kms.size()];
+ int counter = 0;
+ for (Double km: kms) {
+ SedimentLoadFraction fraction = load.getFraction(km);
+ points[0][counter] = km;
+ points[1][counter] = fraction.getUnknown();
+ counter++;
+ }
+ } else {
+ logger.error("Unknown facet name: " + facetName);
+ return;
+ }
+
+ StyledSeriesBuilder.addPoints(series, points, true);
+
+ generator.addAxisSeries(series, axisName, visible);
+ }
+
+ @Override
+ public boolean canHandle(String facettype) {
+ return FacetTypes.IS.SEDIMENT_LOAD_TA(facettype) ||
+ FacetTypes.SEDIMENT_LOAD_TA_UNKNOWN.equals(facettype);
+ }
+
+ @Override
+ public String getAxisLabel(DiagramGenerator generator) {
+ return generator.msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL_DEFAULT);
+ }
+}
diff -r 69138ab4a942 -r e4eb85fbcec4 artifacts/src/main/java/org/dive4elements/river/exports/process/WOutProcessor.java
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/WOutProcessor.java Mon Nov 04 11:24:30 2013 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/WOutProcessor.java Mon Nov 04 11:26:02 2013 +0100
@@ -116,13 +116,14 @@
boolean visible,
int index)
{
- CallContext context = generator.getCallContext();
- WKms wkms = (WKms) bundle.getData(context);
-
logger.debug("doOut");
+ CallContext context = generator.getCallContext();
+
XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
+ WKms wkms = (WKms) bundle.getData(context);
+
StyledSeriesBuilder.addPoints(series, wkms);
generator.addAxisSeries(series, index, visible);
More information about the Dive4elements-commits
mailing list