felix@1070: 2011-08-24 Felix Wolfsteller felix@1070: felix@1070: Smaller cosmetics. felix@1070: felix@1070: * src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java, felix@1070: src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: felix@1070: Cosmetics in comments. felix@1070: felix@1070: * src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java: felix@1070: Added @Override annotations. felix@1070: felix@1070: * src/main/java/de/intevation/flys/artifacts/model/DataFacet.java: felix@1070: Use brackets to improve readability of ternary operator. felix@1070: felix@1071: 2011-08-24 Sascha L. Teichmann sascha@1069: sascha@1069: * doc/conf/meta-data.xml: Use "ids" in user specific part, too. sascha@1069: felix@1071: 2011-08-24 Sascha L. Teichmann sascha@1068: sascha@1068: * doc/conf/meta-data.xml: s/db-ids/ids/g to unify system and user specific sascha@1068: loading. sascha@1068: felix@1067: 2011-08-24 Felix Wolfsteller felix@1067: felix@1067: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: felix@1067: Extracted access to state and states in order to have fewer places to felix@1067: modify when going for single/trivial state- artifacts. felix@1067: ingo@1066: 2011-08-24 Ingo Weinzierl ingo@1066: ingo@1066: * src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java: ingo@1066: Append the river's srid to the WMSLayerFacet. ingo@1066: felix@1065: 2011-08-24 Felix Wolfsteller felix@1065: felix@1065: * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: felix@1065: Minor fixes, ressurect Facet implementation as inner class. felix@1065: ingo@1064: 2011-08-24 Ingo Weinzierl ingo@1064: ingo@1064: * doc/conf/artifacts/winfo.xml: Moved the input of barriers one state ingo@1064: earlier where the scenario is selected as well. ingo@1064: ingo@1064: * src/main/java/de/intevation/flys/artifacts/states/ScenarioSelect.java: ingo@1064: This state now desires the "map_digitize" UI provider and returns both ingo@1064: items "scenario" and "uesk.barriers" in the dynamic describe part. ingo@1064: ingo@1064: * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: ingo@1064: Removed the UI provider and the computeFeed() which is no longer needed, ingo@1064: because there is no more user input in this state. ingo@1064: ingo@1063: 2011-08-24 Ingo Weinzierl ingo@1063: ingo@1063: * src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java, ingo@1063: src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java: ingo@1063: Repaired broken xpath expressions (the config changed in one of the last ingo@1063: commits) and make use of the variable support in xpath expressions to ingo@1063: replace the rivername. ingo@1063: ingo@1063: * src/main/java/de/intevation/flys/artifacts/WMSBackgroundArtifact.java: ingo@1063: Save the rivername while initializing this artifact. This is now ingo@1063: necessary, because each river can have its own background wms ingo@1063: configured. ingo@1063: ingo@1062: 2011-08-23 Ingo Weinzierl ingo@1062: ingo@1062: * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: ingo@1062: Repaired broken river-wms initialization. ingo@1062: sascha@1061: 2011-08-23 Sascha L. Teichmann sascha@1061: sascha@1061: * src/main/java/de/intevation/flys/artifacts/model/WMSLayerFacet.java, sascha@1061: src/main/java/de/intevation/flys/artifacts/model/DataFacet.java, sascha@1061: src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java, sascha@1061: src/main/java/de/intevation/flys/artifacts/model/ReportFacet.java, sascha@1061: src/main/java/de/intevation/flys/artifacts/model/DurationCurveFacet.java, sascha@1061: src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java, sascha@1061: src/main/java/de/intevation/flys/artifacts/model/ManagedFacetAdapter.java, sascha@1061: src/main/java/de/intevation/flys/artifacts/model/AnnotationFacet.java, sascha@1061: src/main/java/de/intevation/flys/artifacts/model/WSPLGENFacet.java: sascha@1061: Made facets cloneable with the right type. sascha@1061: sascha@1061: * src/main/java/de/intevation/flys/artifacts/services/MapInfoService.java, sascha@1061: src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: sascha@1061: Removed superfluous imports. sascha@1061: ingo@1060: 2011-08-23 Ingo Weinzierl ingo@1060: ingo@1060: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@1060: Declare the first artifact of an output as master artifact (artifacts ingo@1060: are ordered by their creation time). ingo@1060: sascha@1059: 2011-08-23 Sascha L. Teichmann sascha@1059: sascha@1059: * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: sascha@1059: Removed facet interface. sascha@1059: sascha@1059: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: sascha@1059: Make artifacts cloneable. TODO: Override deepCopy() in subclassed sascha@1059: states and facets. sascha@1059: ingo@1058: 2011-08-23 Ingo Weinzierl ingo@1058: ingo@1058: * doc/conf/conf.xml: Added the MapInfoService and adapted the floodmap ingo@1058: configuration. Now, each river can have its own background wms layer ingo@1058: defined. ingo@1058: ingo@1058: * src/main/java/de/intevation/flys/artifacts/services/MapInfoService.java: ingo@1058: New. This service returns some basic information used to create maps for ingo@1058: a specific river. The name of the desired river needs to be defined at ingo@1058: "/mapinfo/river/text()". ingo@1058: ingo@1058: * src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java: ingo@1058: Adapted an xpath expression that points to the srid of a river in the ingo@1058: floodmap configuration (which changed). ingo@1058: sascha@1057: 2011-08-22 Sascha L. Teichmann sascha@1057: sascha@1057: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: sascha@1057: Build out/facet filter from XML document passed at creation time. sascha@1057: sascha@1056: 2011-08-22 Sascha L. Teichmann sascha@1056: sascha@1056: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: sascha@1056: Added some code to filter outs/facets by an optional positive list. sascha@1056: This is needed to only expose parts of the facets. This sascha@1056: is needed for artifacts which are loaded into a collection. sascha@1056: TODO: create the filter from the XML document passed at creation sascha@1056: time. sascha@1056: sascha@1055: 2011-08-22 Sascha L. Teichmann sascha@1055: sascha@1055: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Moved all sascha@1055: WINFO specific code to WINFOArtifact. FLYSArtifact is now only revolving sascha@1055: about state affairs. sascha@1055: sascha@1055: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Re-inserted sascha@1055: the specific stuff here. sascha@1055: sascha@1055: * src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java, sascha@1055: src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, sascha@1055: src/main/java/de/intevation/flys/artifacts/states/WQSelect.java, sascha@1055: src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java, sascha@1055: src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, sascha@1055: src/main/java/de/intevation/flys/exports/ChartGenerator.java: sascha@1055: Adjusted the casts. sascha@1055: sascha@1054: 2011-08-22 Sascha L. Teichmann sascha@1054: sascha@1054: * doc/conf/meta-data.xml: Filter by outs in user template part. sascha@1054: ingo@1053: 2011-08-22 Ingo Weinzierl ingo@1053: ingo@1053: * doc/conf/artifacts/winfo.xml: Defined an input value for the GeoJSON ingo@1053: string to save user defined barriers in the map. ingo@1053: ingo@1053: * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: ingo@1053: Added a computeFeed() method. In addition, this state now prefers the ingo@1053: "noinput" UI provider. ingo@1053: ingo@1052: 2011-08-19 Ingo Weinzierl ingo@1052: ingo@1052: * doc/conf/conf.xml: Each river requires a SRID definition. This ingo@1052: definition is used to transform the river's geometries into the desired ingo@1052: projection. ingo@1052: ingo@1052: * src/main/java/de/intevation/flys/artifacts/model/WMSLayerFacet.java: ingo@1052: This facets are able to save a SRID. ingo@1052: ingo@1052: * src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java: ingo@1052: The extent that is written into the WMSLayerFacet is determined by the ingo@1052: boundary of the geometry. ingo@1052: ingo@1052: * src/main/java/de/intevation/flys/utils/GeometryUtils.java: New. A ingo@1052: utility class that provides helper functions for geometries. Currently, ingo@1052: one function is defined, that creates a boundary string for OpenLayers. ingo@1052: sascha@1051: 2011-08-19 Sascha L. Teichmann sascha@1051: sascha@1051: * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java, sascha@1051: src/main/java/de/intevation/flys/artifacts/states/DGMSelect.java, sascha@1051: src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java, sascha@1051: src/main/java/de/intevation/flys/artifacts/states/ProfileDistanceSelect.java, sascha@1051: src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, sascha@1051: src/main/java/de/intevation/flys/artifacts/states/RangeState.java: sascha@1051: Removed superfluous imports. sascha@1051: sascha@1050: 2011-08-19 Sascha L. Teichmann sascha@1050: sascha@1050: * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: sascha@1050: Removed CallContext from state validation. It is not needed and hindered sascha@1050: the extraction of all out of an artifact if you don't have a sascha@1050: call context (like initial scan of datacage database). sascha@1050: sascha@1050: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: sascha@1050: Extract all outs now. sascha@1050: sascha@1050: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, sascha@1050: src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java, sascha@1050: src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java, sascha@1050: src/main/java/de/intevation/flys/artifacts/states/FloodplainChoice.java, sascha@1050: src/main/java/de/intevation/flys/artifacts/states/ScenarioSelect.java, sascha@1050: src/main/java/de/intevation/flys/artifacts/states/DGMSelect.java, sascha@1050: src/main/java/de/intevation/flys/artifacts/states/LocationSelect.java, sascha@1050: src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java, sascha@1050: src/main/java/de/intevation/flys/artifacts/states/ProfileDistanceSelect.java, sascha@1050: src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java, sascha@1050: src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, sascha@1050: src/main/java/de/intevation/flys/artifacts/states/DefaultState.java, sascha@1050: src/main/java/de/intevation/flys/artifacts/states/WQSelect.java, sascha@1050: src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java, sascha@1050: src/main/java/de/intevation/flys/artifacts/states/RangeState.java, sascha@1050: src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java, sascha@1050: src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java, sascha@1050: src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: sascha@1050: Adjusted calls. sascha@1050: felix@1049: 2011-08-19 Felix Wolfsteller felix@1049: felix@1049: * src/main/resources/messages.properties, felix@1049: src/main/resources/messages_de_DE.properties, felix@1049: src/main/resources/messages_en.properties, felix@1049: src/main/resources/messages_de.properties: felix@1049: Added lacalization of "Streckenfavoriten". felix@1049: felix@1048: 2011-08-19 Felix Wolfsteller felix@1048: felix@1048: * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: felix@1048: Picky white-space cosmetics. felix@1048: felix@1047: 2011-08-19 Felix Wolfsteller felix@1047: felix@1047: Added stub implementation of new MainValuesArtifact. felix@1047: felix@1047: * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: felix@1047: New. Stub implementation for new MainValuesArtifact. felix@1047: sascha@1046: 2011-08-19 Sascha L. Teichmann sascha@1046: sascha@1046: Fixed flys/issue262 sascha@1046: sascha@1046: * src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java: sascha@1046: Unified user and system tempate. sascha@1046: Looks for "/artifact-database/metadata/template/text()" sascha@1046: in conf.xml. Defaults to "${artifacts.config.dir}/meta-data.xml". If user id is sascha@1046: given its the default connection for contexts. sascha@1046: sascha@1046: * doc/conf/conf.xml: Adjusted sascha@1046: * doc/conf/meta-data-system.xml, doc/conf/meta-data-user.xml: Deleted. sascha@1046: * doc/conf/meta-data.xml: Unified version of user and system template. sascha@1046: sascha@1046: * src/main/java/de/intevation/flys/artifacts/datacage/templating/App.java: sascha@1046: Adjusted the test program. sascha@1046: sascha@1045: 2011-08-18 Sascha L. Teichmann sascha@1045: sascha@1045: Fixed flys/issue260 sascha@1045: sascha@1045: * doc/conf/meta-data-user.xml: Uses master_artifacts view now. sascha@1045: sascha@1044: 2011-08-18 Sascha L. Teichmann sascha@1044: sascha@1044: * doc/conf/datacage.sql: Added view master_artifacts to select sascha@1044: the master artifacts of the collections more easily. sascha@1044: To upgrade existing database: sascha@1044: sascha@1044: CREATE VIEW master_artifacts AS sascha@1044: SELECT a2.id AS id, sascha@1044: a2.gid AS gid, sascha@1044: a2.state AS state, sascha@1044: a2.creation AS creation, sascha@1044: ci2.collection_id AS collection_id sascha@1044: FROM collection_items ci2 sascha@1044: JOIN artifacts a2 sascha@1044: ON ci2.artifact_id = a2.id sascha@1044: JOIN (SELECT ci.collection_id AS c_id, sascha@1044: MIN(a.creation) AS oldest_a sascha@1044: FROM collection_items ci sascha@1044: JOIN artifacts a sascha@1044: ON ci.artifact_id = a.id sascha@1044: GROUP BY ci.collection_id) o sascha@1044: ON o.c_id = ci2.collection_id sascha@1044: WHERE a2.creation = o.oldest_a; sascha@1044: sascha@1044: TODO: Use the view in the templates. sascha@1044: sascha@1043: 2011-08-18 Sascha L. Teichmann sascha@1043: sascha@1043: * doc/conf/meta-data-user.xml: Removed state filter because it was broken. sascha@1043: Simplified by joining two contexts. sascha@1043: felix@1042: 2011-08-18 Felix Wolfsteller felix@1042: felix@1042: * src/main/java/de/intevation/flys/jfree/StickyAxisAnnotation.java: felix@1042: Fix issues with lines of annotation when zoomed (wrong scale used). felix@1042: felix@1042: 2011-08-18 Felix Wolfsteller felix@1042: felix@1042: Added legend for annotations to LongitudinalSectionDiagram. felix@1042: felix@1042: * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: felix@1042: Added a pseudo-dataseries/collection to employ existing infrastructure for felix@1042: displaying localized label for Annotations (yet unthemed). felix@1042: felix@1042: * src/main/resources/messages.properties, felix@1042: src/main/resources/messages_de_DE.properties, felix@1042: src/main/resources/messages_en.properties, felix@1042: src/main/resources/messages_de.properties: felix@1042: Made label-string available for localization. felix@1042: felix@1040: 2011-08-17 Felix Wolfsteller felix@1040: felix@1040: Moved StickyAxisAnnotation into new package de.intevation.flys.jfree . felix@1040: felix@1040: * src/main/java/de/intevation/flys/exports/StickyAxisAnnotation.java: felix@1040: Deleted/moved to src/main/java/de/intevation/flys/jfree/ . felix@1040: felix@1040: * src/main/java/de/intevation/flys/jfree/StickyAxisAnnotation.java: felix@1040: New/moved from src/main/java/de/intevation/flys/export/ , adjusted felix@1040: package statement, made class public. felix@1040: felix@1040: * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: felix@1040: Added import statement for de.intevation.flys.jfree.StickyAxisAnnotation . felix@1040: felix@1038: 2011-08-17 Felix Wolfsteller felix@1038: felix@1038: Extracted and renamed CustomAnnotation to StickyAxisAnnotation. Also removed felix@1038: needless imports. felix@1038: felix@1038: * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, felix@1038: src/main/java/de/intevation/flys/exports/StickyAxisAnnotation.java: felix@1038: Extracted class implementation CustomAnnotation and renamed to felix@1038: StickyAxisAnnotation. felix@1038: felix@1037: 2011-08-17 Felix Wolfsteller felix@1037: felix@1037: Improved CustomAnnotations and rendering thereof, now including an felix@1037: "axis mark" (little line at axis), also prepared possibility to put felix@1037: annotations on Y-axis. felix@1037: felix@1037: * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: felix@1037: Improved CustomAnnotation to include marks on the axis and better spacing felix@1037: from it. felix@1037: felix@1037: 2011-08-17 Felix Wolfsteller felix@1036: felix@1036: Implemented proof-of-concept collision-detection when drawing felix@1036: CustomAnnotations (text only). felix@1036: felix@1036: * src/main/java/de/intevation/flys/exports/ChartExportHelper.java: felix@1036: Pass a fresh ChartRenderingInfo-Object to createBufferedImage, such that felix@1036: information can be collected while rendering. felix@1036: felix@1036: * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: felix@1036: Exploit the fact that XYTextAnnotation already registers drawn shape in the felix@1036: ChartRenderingInfo if it exists and either an URL or tooltip is set. felix@1036: Before drawing, calculate own shape and compare against already registered felix@1036: shapes. felix@1036: felix@1035: 2011-08-16 Felix Wolfsteller felix@1035: felix@1035: Implemented (yet dummy) custom Annotation class. felix@1035: felix@1035: * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: felix@1035: Added implementation of yet dummy CustomAnnotation class. felix@1035: felix@1034: 2011-08-16 Felix Wolfsteller felix@1034: felix@1034: Slightly improved rendering of annotations. felix@1034: felix@1034: * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: felix@1034: Slightly improved rendering of annotations. Still no valid collision felix@1034: detection. Annotations are drawn every 2 km; first come first serve. felix@1034: sascha@1033: 2011-08-15 Sascha L. Teichmann sascha@1033: sascha@1033: Fix for flys/issue191 sascha@1033: sascha@1033: * src/main/java/de/intevation/flys/artifacts/model/WQ.java(longestIncreasingWRangeIndices): sascha@1033: Added a method to find the longest index range with increasing w values. sascha@1033: sascha@1033: * src/main/java/de/intevation/flys/exports/ATWriter.java: Export the longest sascha@1033: range of monotone increasing w values instead of the first one. sascha@1033: TODO: The first line of the export is still broken. sascha@1033: sascha@1033: * src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java: sascha@1033: Removed superfluous import. sascha@1033: felix@1032: 2011-08-12 Felix Wolfsteller felix@1032: felix@1032: * src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java: felix@1032: Resolved two TODOs: get Annotations of selected River, get "point" felix@1032: Annotations only. felix@1032: felix@1031: 2011-08-12 Felix Wolfsteller felix@1031: felix@1031: Added functionality to query range and point-annotations only to felix@1031: AnnotationFactory. felix@1031: felix@1031: * src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java felix@1031: (getPointAnnotations, getAnnotationsBreadth): felix@1031: New functions to query breadth and point-only annotations. felix@1031: sascha@1030: 2011-08-11 Sascha L. Teichmann sascha@1030: sascha@1030: * src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java: sascha@1030: Added a development mode for recommendations. Enabled with sascha@1030: stetting system property 'flys.datacage.recommendations.development' to true. sascha@1030: When set the XML template are re-read if the timestamps of the sascha@1030: files have changed so you do not have to restart the server again and again. sascha@1030: sascha@1030: * doc/conf/meta-data-user.xml: Sort collections by creation time in descending order. sascha@1030: felix@1029: 2011-08-11 Felix Wolfsteller felix@1029: felix@1029: Rather picky cosmetics only. felix@1029: felix@1029: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, felix@1029: src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java, felix@1029: src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java, felix@1029: src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java, felix@1029: src/main/java/de/intevation/flys/artifacts/model/WQKms.java, felix@1029: src/main/java/de/intevation/flys/artifacts/states/DefaultState.java, felix@1029: src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java, felix@1029: src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: felix@1029: End comments on a full stop, separate from closing '*/' by whitespace, felix@1029: adjusted javadoc comments. felix@1029: felix@1028: 2011-08-11 Felix Wolfsteller felix@1028: felix@1028: Made Annotations visible in LongitudinalSection diagrams. felix@1028: felix@1028: * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java, felix@1028: src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: felix@1028: Register new Facet Type, let LongitudinalSectionGenerator include felix@1028: Annotations in diagram (yet unfiltered and independent of river). felix@1028: felix@1027: 2011-08-11 Felix Wolfsteller felix@1027: felix@1027: * doc/conf/conf.xml, felix@1027: doc/conf/artifacts/annotation.xml, felix@1027: doc/conf/meta-data-system.xml: felix@1027: Added configuration for AnnotationArtifacts. felix@1027: felix@1026: 2011-08-11 Felix Wolfsteller felix@1026: felix@1026: Added demo- implementation of a AnnotationArtifact and its Facet. felix@1026: felix@1026: * src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java, felix@1026: src/main/java/de/intevation/flys/artifacts/model/AnnotationFacet.java, felix@1026: src/main/java/de/intevation/flys/artifacts/states/AnnotationRiverState.java: felix@1026: New. Initial version of an AnnotationArtifact and its State and Facet. felix@1026: sascha@1025: 2011-08-10 Sascha L. Teichmann sascha@1025: sascha@1025: * doc/conf/datacage.sql: Extended schema for artifacts and collections sascha@1025: to have creation times, too. sascha@1025: sascha@1025: To update existing databases: sascha@1025: sascha@1025: ALTER TABLE artifacts ADD COLUMN creation TIMESTAMP NOT NULL DEFAULT current_timestamp; sascha@1025: ALTER TABLE collections ADD COLUMN creation TIMESTAMP NOT NULL DEFAULT current_timestamp; sascha@1025: sascha@1025: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: sascha@1025: Store creation times for artifacts and collections, too. sascha@1025: sascha@1025: * src/main/resources/datacage-sql/org-h2-driver.properties, sascha@1025: src/main/resources/datacage-sql/org-postgresql-driver.properties: sascha@1025: Adjusted SQL statements. sascha@1025: sascha@1025: 2011-08-10 Sascha L. Teichmann sascha@1025: sascha@1025: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: sascha@1025: Make it compilable again (BackendListener interface changed). sascha@1025: sascha@1023: 2011-08-10 Sascha L. Teichmann sascha@1023: sascha@1023: * doc/conf/meta-data-user.xml: Added grouping element around w/q of each sascha@1023: longitudinal section artifact. sascha@1023: sascha@1023: * src/main/java/de/intevation/flys/artifacts/datacage/templating/CompiledStatement.java, sascha@1023: src/main/java/de/intevation/flys/artifacts/datacage/templating/StackFrames.java: sascha@1023: Added some debugging capabilities. sascha@1023: sascha@1023: * src/main/java/de/intevation/flys/artifacts/datacage/templating/ResultData.java: sascha@1023: Added isEmpty() method. sascha@1023: sascha@1023: * src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java: sascha@1023: Now it is possible to nest into other elements in the sascha@1023: body. This is useful and needed for grouping and repeating results. sascha@1023: sascha@1022: 2011-08-10 Sascha L. Teichmann sascha@1022: sascha@1022: * src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java: sascha@1022: User connection was cached, system was not. Lead to incorrect results. sascha@1022: sascha@1021: 2011-08-09 Sascha L. Teichmann sascha@1021: sascha@1021: * doc/conf/meta-data-user.xml: Added element sascha@1021: around old calculations. sascha@1021: sascha@1020: 2011-08-09 Sascha L. Teichmann sascha@1020: sascha@1020: * src/main/java/de/intevation/flys/artifacts/model/QRangeTree.java: sascha@1020: Cosmetic: Replaced usage of legacy java.util.Stack with java.util.Deque. sascha@1020: sascha@1019: 2011-08-04 Sascha L. Teichmann sascha@1019: sascha@1019: * doc/conf/meta-data-user.xml: Use 'CAST(x AS uuid)' instead of 'x::uuid' sascha@1019: to be more compatible. sascha@1019: sascha@1018: 2011-08-04 Sascha L. Teichmann sascha@1018: sascha@1018: * src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java: sascha@1018: If given an artifact place its identifier into parameters passed to template. sascha@1018: Fixed swapped user/system connections if using the user template. sascha@1018: sascha@1018: * doc/conf/meta-data-user.xml: Recommend w/q facet from old calculations sascha@1018: if an artifact was given that represents a longitudinal section sascha@1018: "Laengsschnitt". sascha@1018: sascha@1018: TODO I: The template uses PostgreSQL specific UUID casts. sascha@1018: TODO II: We need to find a way only to recommend the master artifacts. sascha@1018: sascha@1017: 2011-08-04 Sascha L. Teichmann sascha@1017: sascha@1017: * src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java: sascha@1017: Added a tag to place comments in the meta data templates. sascha@1017: comments are copied through. sascha@1017: sascha@1017: * doc/conf/meta-data-user.xml: Added a simple test. sascha@1017: sascha@1016: 2011-08-04 Sascha L. Teichmann sascha@1016: sascha@1016: * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: sascha@1016: Be a bit more tolerant about empty strings for UUIDs of artifact and user. sascha@1016: sascha@1015: 2011-08-03 Sascha L. Teichmann sascha@1015: sascha@1015: Bring user specific meta data service to life. sascha@1015: sascha@1015: * doc/conf/conf.xml: There are now two templates to configure: sascha@1015: The system template (only the data from the backend) and the sascha@1015: user template (the datcage db and the backend db), sascha@1015: sascha@1015: * doc/conf/meta-data-template.xml: Deleted. sascha@1015: * doc/conf/meta-data-user.xml: New. The user specific template. TODO: Write it! sascha@1015: * doc/conf/meta-data-system.xml: New. The system template. sascha@1015: sascha@1015: * src/main/java/de/intevation/flys/artifacts/datacage/templating/NoneUserSpecific.java: sascha@1015: Deleted. sascha@1015: * src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java: sascha@1015: New. The logic to fill the templates. sascha@1015: sascha@1015: * src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java: sascha@1015: Adjusted to follow the new call signatures. sascha@1015: sascha@1015: * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: sascha@1015: Refactored. Removed the old code and only leave the new service. Following sascha@1015: XPaths are evaluated on the incomming document: sascha@1015: sascha@1015: "/art:meta/art:artifact-id/@value" The UUID of the artifact. Optional. sascha@1015: Used to fill the template enviroment. sascha@1018: "/art:meta/art:user-id/@value" The UUID of the user. Optional. sascha@1015: If given the user specific template is filled. sascha@1015: "/art:meta/art:outs/@value" The list of outs used to recommend for the sascha@1015: various outputs. sascha@1015: "/art:meta/art:parameters/@value" A list of key/value pairs to inject more sascha@1015: filters to the templating. sascha@1015: sascha@1015: * src/main/java/de/intevation/flys/artifacts/datacage/templating/App.java: sascha@1015: Change to follow the new recommendations semantics. sascha@1015: sascha@1015: * src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java: sascha@1015: Added symbolic constants to distinguish "user" and "system" db connections. sascha@1015: felix@1014: 2011-08-03 Felix Wolfsteller felix@1014: felix@1014: * doc/conf/conf.xml: felix@1014: Cosmetics, let comments start with a capital and end on a full stop, felix@1014: removed incorrect comment. felix@1014: felix@1013: 2011-08-03 Felix Wolfsteller felix@1013: felix@1013: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: felix@1013: Cosmetics, let comments start with a capital and end on a full stop. felix@1013: sascha@1012: 2011-08-03 Sascha L. Teichmann sascha@1012: sascha@1012: * src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java(extractOutputNames): sascha@1012: Fixed potential NPE. sascha@1012: sascha@1011: 2011-08-03 Sascha L. Teichmann sascha@1011: sascha@1011: Added support for more than one db connection in datacage templating. sascha@1011: sascha@1011: * src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java: sascha@1011: Now you can pass a list of named db connections to the build process. sascha@1011: The purpose is to mix more then one database (e.g. the backend db and sascha@1011: the user specific one). sascha@1011: sascha@1011: To use this feature you can add an "connection" attribute sascha@1011: to with the name of the connection to use. sascha@1011: If no connection name is given the last used is used again. sascha@1011: Initially the first connection in the given list is used. sascha@1011: If the context is left the connection that was active before sascha@1011: will be active again in a stacking manner. sascha@1011: sascha@1011: When creating NamedConnection objects you can set a boolean flag sascha@1011: if the results coming from the connection should be cached. This sascha@1011: is useful e.g. for the user specific database which runs in-memory sascha@1011: so caching would introduce some superfluous overhead. sascha@1011: sascha@1011: * src/main/java/de/intevation/flys/artifacts/datacage/templating/CompiledStatement.java: sascha@1011: When executing the queries explicitly pass if caching should be used. sascha@1011: sascha@1010: 2011-08-02 Sascha L. Teichmann sascha@1010: sascha@1010: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: sascha@1010: Forgot to fetch dialect dependent SQL statement for deleting sascha@1010: artifacts by uuid. sascha@1010: sascha@1009: 2011-08-02 Sascha L. Teichmann sascha@1009: sascha@1009: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: sascha@1009: Set the name of the collections at initial scan, too. sascha@1009: sascha@1008: 2011-08-02 Sascha L. Teichmann sascha@1008: sascha@1008: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: sascha@1008: Fixed wrong SQL references. sascha@1008: sascha@1007: 2011-08-02 Sascha L. Teichmann sascha@1007: sascha@1007: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: sascha@1007: Fixed two NPEs. sascha@1007: sascha@1006: 2011-08-02 Sascha L. Teichmann sascha@1006: sascha@1006: * src/main/java/de/intevation/flys/artifacts/datacage/DatacageBackendListener.java, sascha@1006: src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: sascha@1006: Forwarded kill collections and artifacts events to datacage. sascha@1006: sascha@1006: * src/main/resources/datacage-sql/org-h2-driver.properties, sascha@1006: src/main/resources/datacage-sql/org-postgresql-driver.properties: sascha@1006: Added statement to delete artifact by uuid. sascha@1006: sascha@1005: 2011-08-02 Sascha L. Teichmann sascha@1005: sascha@1005: * src/main/java/de/intevation/flys/artifacts/datacage/DatacageBackendListener.java: sascha@1005: Made it compilable again. The signature of BackendListener has changed. sascha@1005: sascha@1004: 2011-08-01 Sascha L. Teichmann sascha@1004: sascha@1004: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: sascha@1004: Completed the backend listener stuff. sascha@1004: sascha@1004: TODO I: Added some cleanup for orphaned artifacts. sascha@1004: TODO II: Figure out a way to delete collections/artifacts sascha@1004: which are delete from backend without the sascha@1004: backend API. sascha@1004: sascha@1004: * src/main/resources/datacage-sql/org-h2-driver.properties, sascha@1004: src/main/resources/datacage-sql/org-postgresql-driver.properties: sascha@1004: Added needed statements. sascha@1004: sascha@1003: 2011-08-01 Sascha L. Teichmann sascha@1003: sascha@1003: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: sascha@1003: Update collection names on change. Remove artifacts from collections. sascha@1003: sascha@1003: * src/main/resources/datacage-sql/org-h2-driver.properties, sascha@1003: src/main/resources/datacage-sql/org-postgresql-driver.properties: sascha@1003: Added needed statements. sascha@1003: sascha@1002: 2011-08-01 Sascha L. Teichmann sascha@1002: sascha@1002: * src/main/java/de/intevation/flys/artifacts/datacage/DatacageBackendListener.java: sascha@1002: Call datacage with the global context. This is needed to access the state engine. sascha@1002: sascha@1002: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: Changed sascha@1002: signatures to take the global context, too. Create artifacts via backend listener sascha@1002: interface. sascha@1002: sascha@1001: 2011-08-01 Sascha L. Teichmann sascha@1001: sascha@1001: * src/main/java/de/intevation/flys/artifacts/datacage/DatacageBackendListener.java: sascha@1001: Fixed recursion bug. sascha@1001: sascha@1000: 2011-08-01 Sascha L. Teichmann sascha@1000: sascha@1000: * src/main/java/de/intevation/flys/artifacts/datacage/DatacageBackendListener.java: sascha@1000: Added debug output. sascha@1000: sascha@999: 2011-08-01 Sascha L. Teichmann sascha@999: sascha@999: * doc/conf/conf.xml: Added backend listener for datacage. sascha@999: sascha@999: * src/main/java/de/intevation/flys/artifacts/datacage/DatacageBackendListener.java: sascha@999: New. Proxies backend listener calls to datacage. sascha@999: sascha@999: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: sascha@999: Implements backend listener. TODO: Update the datacage database sascha@999: according the change calls. sascha@999: sascha@998: 2011-08-01 Sascha L. Teichmann sascha@998: sascha@998: * src/main/java/de/intevation/flys/artifacts/services/meta, sascha@998: src/main/java/de/intevation/flys/artifacts/datacage/templating: sascha@998: Moved/renamed package to better fit the common semantics. sascha@998: DataCage.java is now call NoneUserSpecific.java to reflect the sascha@998: fact that it is the template for the user independent db sascha@998: analysis. sascha@998: sascha@998: * src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java, sascha@998: src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: sascha@998: Ajusted imports and calls. sascha@998: sascha@997: 2011-08-01 Sascha L. Teichmann sascha@997: sascha@997: * doc/conf/conf.xml: For documentation purposes added a out-commented sascha@997: section with the default configuration of the datacage. sascha@997: sascha@996: 2011-07-31 Sascha L. Teichmann sascha@996: sascha@996: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: sascha@996: Delete the artifacts at before initial scan, too. They are independent sascha@996: from users. Fixed problem when writing state data content. sascha@996: sascha@996: * src/main/resources/datacage-sql/org-h2-driver.properties: Added sascha@996: statement to delete the artifacts at initial scan, too. sascha@996: sascha@996: * src/main/resources/datacage-sql/org-postgresql-driver.properties: sascha@996: New. PostgreSQL version of the statements. The database scheme sascha@996: is the same as H2. Very useful for debugging. sascha@996: sascha@995: 2011-07-31 Sascha L. Teichmann sascha@995: sascha@995: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: sascha@995: Added kludge for the types of artifact data. They seem to be null sascha@995: in some circumstances. Needs to be debugged! sascha@995: sascha@994: 2011-07-31 Sascha L. Teichmann sascha@994: sascha@994: * src/main/java/de/intevation/flys/artifacts/datacage/DBConfig.java: sascha@994: Fixed default connection URL to use a namend in-mermory database. sascha@994: sascha@994: 2011-07-31 Sascha L. Teichmann sascha@993: sascha@993: * doc/conf/datacage.sql: Fixed constraint. sascha@993: sascha@993: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: sascha@993: Added some debug output. sascha@993: sascha@992: 2011-07-29 Sascha L. Teichmann sascha@992: sascha@992: * doc/conf/datacage.sql: Removed artifact_id from facet because there sascha@992: is a link via out_id -> outs.id: artifact_id -> artifacts to sascha@992: find the corresponding artifact. sascha@992: sascha@992: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java, sascha@992: src/main/resources/datacage-sql/org-h2-driver.properties: Store sascha@992: facets of outs into datacage db at initial scan. sascha@992: sascha@991: 2011-07-29 Sascha L. Teichmann sascha@991: sascha@991: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java, sascha@991: src/main/resources/datacage-sql/org-h2-driver.properties: sascha@991: Store outs of artifacts into datacage db at initial scan. sascha@991: TODO: store facets. sascha@991: sascha@990: 2011-07-29 Sascha L. Teichmann sascha@990: sascha@990: * doc/conf/datacage.sql: Added 'type' column in artifacts data. sascha@990: Maybe useful for filtering. sascha@990: sascha@990: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java, sascha@990: src/main/resources/datacage-sql/org-h2-driver.properties: sascha@990: Store artifact data into db at initial scan. sascha@990: TODO: store outs and facets. sascha@990: sascha@989: 2011-07-29 Sascha L. Teichmann sascha@989: sascha@989: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java, sascha@989: src/main/resources/datacage-sql/org-h2-driver.properties: sascha@989: Add artifacts into datacage db at initial scan. sascha@989: TODO: Store data, outs and facets. sascha@989: sascha@988: 2011-07-28 Sascha L. Teichmann sascha@988: sascha@988: * doc/conf/datacage.sql: Fixed spelling in sequence name. sascha@988: sascha@988: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java, sascha@988: src/main/resources/datacage-sql/org-h2-driver.properties: Simply add sascha@988: collection item at initial scan if artifact was stored before. sascha@988: TODO: Store new artifacts. sascha@988: sascha@987: 2011-07-28 Sascha L. Teichmann sascha@987: sascha@987: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java, sascha@987: src/main/resources/datacage-sql/org-h2-driver.properties: Add sascha@987: collections at initial scan. sascha@987: sascha@986: 2011-07-28 Sascha L. Teichmann sascha@986: sascha@986: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java, sascha@986: src/main/resources/datacage-sql/org-h2-driver.properties: Add users sascha@986: at initial scan. sascha@986: sascha@985: 2011-07-28 Sascha L. Teichmann sascha@985: sascha@985: * doc/conf/datacage.sql: Using sequences for id generation now sascha@985: to make schema more compatible. sascha@985: sascha@985: 2011-07-28 Sascha L. Teichmann sascha@984: sascha@984: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java, sascha@984: src/main/resources/datacage-sql/org-h2-driver.properties: Clear database sascha@984: before initial scan. sascha@984: sascha@985: 2011-07-28 Sascha L. Teichmann sascha@983: sascha@983: * src/main/java/de/intevation/flys/artifacts/datacage/DBConnection.java: sascha@983: Deleted. This stuff comes from the artifact database now. sascha@983: sascha@983: * src/main/java/de/intevation/flys/artifacts/datacage/DBConfig.java: sascha@983: New. The db config of the datacage database. sascha@983: sascha@983: * src/main/resources/datacage-sql/org-h2-driver.properties: New. sascha@983: The SQL statements needed for the datacage. sascha@983: sascha@983: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: sascha@983: Make use of the db config. sascha@983: sascha@982: 2011-07-27 Sascha L. Teichmann sascha@982: sascha@982: * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: sascha@982: New. A artifact database lifetime listener to build the initial sascha@982: index of the artifacts in database. sascha@982: sascha@982: * doc/conf/conf.xml: Added the datacage to the list of lifetime sascha@982: listeners. sascha@982: sascha@981: 2011-07-27 Sascha L. Teichmann sascha@981: sascha@981: * doc/conf/datacage.sql: Added an explicit table for the outs sascha@981: of an artifact. sascha@981: sascha@981: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: sascha@981: Make the current outs of an artifact accessible only with sascha@981: the global context. sascha@981: sascha@980: 2011-07-27 Sascha L. Teichmann sascha@980: sascha@980: * doc/conf/datacage.sql: Added ON DELETE CASCADE constraints. sascha@980: Added state in facet. sascha@980: sascha@979: 2011-07-26 Sascha L. Teichmann sascha@979: sascha@979: * doc/conf/datacage.sql: New. H2 Schema for the datacage database. sascha@979: Uses special features like IDENTITY (autoincrement) typed columns. sascha@979: sascha@979: * src/main/java/de/intevation/flys/artifacts/datacage/DBConnection.java: sascha@979: Pooled connection. sascha@979: sascha@979: * pom.xml: Added dependencies to H2 and Apache DBCP. sascha@979: sascha@978: 2011-07-26 Sascha L. Teichmann sascha@978: sascha@978: * src/test/java/de/intevation/flys/artifacts/AppTest.java, sascha@978: src/main/java/de/intevation/flys/artifacts/App.java: Removed. sascha@978: This the stupid "Hello, World!" app initially created by the sascha@978: maven archetype. It was never used. sascha@978: sascha@977: 2011-07-25 Sascha L. Teichmann sascha@977: sascha@977: * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: sascha@977: Argh! Usage the DOM was not thread safe (discovered with ab). sascha@977: sascha@976: 2011-07-25 Sascha L. Teichmann sascha@976: sascha@976: * doc/conf/meta-data-template.xml: '$recommended' lead to XPath sascha@976: errors. Using "dc:contains($parameters, 'recommended')" helps. sascha@976: sascha@976: * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java, sascha@976: src/main/java/de/intevation/flys/artifacts/services/meta/FunctionResolver.java: sascha@976: Added some debugging. sascha@976: sascha@976: * src/main/java/de/intevation/flys/artifacts/services/meta/DataCage.java: sascha@976: Added parameters as 'parameters' to parameters. Usefull to check sascha@976: for containment of variables. sascha@976: sascha@975: 2011-07-25 Sascha L. Teichmann sascha@975: sascha@975: * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: sascha@975: Added 'if log.isDebugEnabled() {}'. sascha@975: sascha@975: 2011-07-25 Sascha L. Teichmann sascha@974: sascha@974: * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: sascha@974: Made Artifact UUID optional and accept extra parameters, too. This enables sascha@974: the service to be used without an arttifact and test all filters. sascha@974: sascha@974: sascha@974: sascha@974: sascha@974: sascha@974: sascha@974: sascha@974: * src/main/java/de/intevation/flys/artifacts/services/meta/FunctionResolver.java: sascha@974: 'contain' accept Maps and collection, too. sascha@974: sascha@974: * src/main/java/de/intevation/flys/artifacts/services/meta/DataCage.java: sascha@974: Made artifact option (= null) in recommendations. sascha@974: sascha@973: 2011-07-21 Sascha L. Teichmann sascha@973: sascha@973: * src/main/java/de/intevation/flys/artifacts/services/meta/CompiledStatement.java: sascha@973: Moved connection specific into inner class. The enables the reuse of the sascha@973: compiled statement. sascha@973: sascha@973: * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: The sascha@973: SQL statements are now only compiled once at creation time of the builder. sascha@973: Each connection now reuses them. sascha@973: sascha@972: 2011-07-21 Sascha L. Teichmann sascha@972: sascha@972: * doc/conf/cache.xml: Added configuration for static datacage db access. sascha@972: sascha@972: * src/main/java/de/intevation/flys/artifacts/services/meta/App.java: Using sascha@972: caches seems to need an explicit System.exit(). sascha@972: sascha@972: * src/main/java/de/intevation/flys/artifacts/services/meta/CompiledStatement.java: sascha@972: Added support for caching the SQL statements and there results. sascha@972: sascha@972: * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: Some sascha@972: clean up. Reordered code for performance. Strip SQL statements more sascha@972: aggressively. sascha@972: sascha@972: * src/main/java/de/intevation/flys/artifacts/services/meta/ResultData.java: sascha@972: Made it Serializable. sascha@972: sascha@972: * src/main/java/de/intevation/flys/artifacts/cache/CacheFactory.java: sascha@972: Introduced system property 'flys.artifacts.cache.config.file' to make sascha@972: the caching configurable without pulling up the whole stack. sascha@972: ingo@971: 2011-07-22 Ingo Weinzierl ingo@971: ingo@971: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@971: Prepared the FLYSArtifactCollection to support the storage of already ingo@971: loaded recommendations in its attribute document. ingo@971: sascha@970: 2011-07-21 Sascha L. Teichmann sascha@970: sascha@970: * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: sascha@970: Adjusted to use the DataCage recommendations. The incomming document sascha@970: can pass the artifacts UUID by '/art:outs/@value' the outs as a sascha@970: comma separated list in '/art:outs/@value' and optional a set of sascha@970: filters comma separated in '/art:filters/@value'. sascha@970: sascha@970: If UUID and OUTS are not given the old service is used. This sascha@970: should be removed as soon as the client uses the new service. sascha@970: sascha@969: 2011-07-21 Sascha L. Teichmann sascha@969: sascha@969: * src/main/java/de/intevation/flys/artifacts/services/meta/CompiledStatement.java: sascha@969: Allow '-' in variable names. sascha@969: ingo@968: 2011-07-21 Ingo Weinzierl ingo@968: ingo@968: * doc/conf/meta-data-template.xml: Now, the river-id is really added to ingo@968: the factory node of the wmsbackground layer. ingo@968: ingo@967: 2011-07-21 Ingo Weinzierl ingo@967: ingo@967: * doc/conf/meta-data-template.xml: Added the river-id to the factory node ingo@967: of the riveraxis and wmsbackground layer. ingo@967: sascha@966: 2011-07-21 Sascha L. Teichmann sascha@966: sascha@966: * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java, sascha@966: src/main/java/de/intevation/flys/artifacts/services/MainValuesService.java, sascha@966: src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java, sascha@966: src/main/java/de/intevation/flys/artifacts/services/RiverService.java: sascha@966: Adjusted to implement changed Service interface. sascha@966: ingo@965: 2011-07-21 Ingo Weinzierl ingo@965: ingo@965: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Refactored ingo@965: the method that retrieves the Outputs for the Artifact. Now, we are able ingo@965: to query the Outputs for the current state, and all outputs separately. ingo@965: ingo@965: * src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java: The ingo@965: recommendations provided by this monitor will take the Outputs of the ingo@965: current state only into account. ingo@965: ingo@964: 2011-07-21 Ingo Weinzierl ingo@964: ingo@964: * doc/conf/meta-data-template.xml: Added conditions for each output type. ingo@964: Splitted the "floodmap" output into two parts: a recommended one and a ingo@964: complete one. The recommended part will only build the document tree for ingo@964: the recommended artifacts; the complete part will build the whole document ingo@964: tree that is available for a floodmap. ingo@964: ingo@964: * src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java: ingo@964: This Hook now uses the DataCage to generate the recommended artifacts. ingo@964: The output-defaults configurtion is needless now. ingo@964: ingo@964: * doc/conf/output-defaults.xml: Removed. The configuration of recommended ingo@964: artifacts takes place in meta-data-template.xml. ingo@964: ingo@964: * src/main/java/de/intevation/flys/artifacts/services/meta/DataCage.java: ingo@964: Bugfix: the DataCage didn't start working if its builder was NOT null, ingo@964: but it shouldn't start if the builder IS null. ingo@964: sascha@963: 2011-07-21 Sascha L. Teichmann sascha@963: sascha@963: * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: sascha@963: Now it is possible to directly pass a Node as a root to the builder. sascha@963: The owning document if fetch by Node.getOwnerDocument(). This is sascha@963: useful if you want to generate the recommendation directly into sascha@963: an already existing document under a given node. sascha@963: sascha@963: * src/main/java/de/intevation/flys/artifacts/services/meta/DataCage.java: sascha@963: Changed the signature of recommend() to accept a node where to sascha@963: append the recommendations. sascha@963: sascha@962: 2011-07-20 Sascha L. Teichmann sascha@962: sascha@962: * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: sascha@962: Added a macro mechanism: sascha@962: sascha@962: sascha@962: '5' ist nicht in der Liste der Outs. sascha@962: sascha@962: sascha@962: sascha@962: sascha@962: sascha@962: Macros can be defined everywhere in the template sascha@962: with 'macro'. There bodies can contain all valid elements sascha@962: including other 'macro's and 'call-macro's. They are sascha@962: called with their 'name' with 'call-macro'. The control flow sascha@962: is continued inside the body of the called macro and sascha@962: will continue right after the calling 'call-macro' when sascha@962: the macro body is finished. sascha@962: sascha@961: 2011-07-20 Sascha L. Teichmann sascha@961: sascha@961: * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: sascha@961: Added a new 'if' construct similiar to XSLT: sascha@961: sascha@961: sascha@961: '5' ist nicht in der Liste der Outs. sascha@961: sascha@961: sascha@961: The control flow is continued inside the 'if' if the 'test' attribute sascha@961: as an XPath expression on an empty document evalutes to true. sascha@961: Else the inside is skipped. There is no 'else'. Use 'choose'/'otherwise' sascha@961: if you need this. sascha@961: sascha@960: 2011-07-20 Sascha L. Teichmann sascha@960: sascha@960: * src/main/java/de/intevation/flys/artifacts/services/meta/DataCage.java: sascha@960: Added a recommend() method to generate recommendations for sascha@960: a given artifact, outs and extra parameters. sascha@960: sascha@960: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added sascha@960: method to extract all data at once. sascha@960: sascha@959: 2011-07-20 Sascha L. Teichmann sascha@959: sascha@959: * src/main/java/de/intevation/flys/artifacts/services/meta/FunctionResolver.java: sascha@959: New. Custom XPath function provider. Provides sascha@959: 'dc:contains(Object [] haystack, Object needle)' by now. Should be sascha@959: useful to check containments in 'out' lists later. sascha@959: sascha@959: * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: sascha@959: Register the FunctionResolver to the evaluated XPaths. sascha@959: sascha@959: * src/main/java/de/intevation/flys/artifacts/services/meta/App.java: sascha@959: Added code to parse sascha@959: "param:a,b,c" to "param" -> new String [] { "a", "b", "c" } to sascha@959: help testing the 'dc:contains' XPath function. sascha@959: ingo@958: 2011-07-20 Ingo Weinzierl ingo@958: ingo@958: * doc/conf/conf.xml: Added wms configurations for Saar, Mosel and Elbe. ingo@958: Each river supported by FLYS requires such a WMS configuration. A WMS ingo@958: should contain layers for the river axis, buildings, kilometer labels ingo@958: and maybe a background layer as well. ingo@958: ingo@958: * src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java: ingo@958: Added key that is used to store a map of WMS URLs - for each river a ingo@958: WMS URL. ingo@958: ingo@958: * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: ingo@958: Parse the river WMS from global configuration. ingo@958: ingo@958: * src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java: ingo@958: Create WMSLayerFacets with URLs based on the river and the river wms ingo@958: configuration stored in the FLYSContext. ingo@958: ingo@958: * src/main/java/de/intevation/flys/artifacts/WMSBackgroundArtifact.java, ingo@958: src/main/java/de/intevation/flys/artifacts/RiverAxisArtifact.java: ingo@958: Adapted the initialize() signature and the method call of computeInit() ingo@958: which requires a FLYSContext to retrieve the river WMS configurations. ingo@958: ingo@958: * src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java, ingo@958: src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: ingo@958: Added the context object parameter to the computeInit() method. ingo@958: ingo@958: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Call ingo@958: initialize() with the context object - which is a FLYSContext or a ingo@958: CallContext. ingo@958: sascha@957: 2011-07-20 Sascha L. Teichmann sascha@957: sascha@957: * src/main/java/de/intevation/flys/artifacts/services/meta/App.java: sascha@957: Check if builder was created properly before using it. sascha@957: sascha@957: * src/main/java/de/intevation/flys/artifacts/services/meta/StackFrames.java: sascha@957: Implements now variable provider for XPath expressions. sascha@957: sascha@957: * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: sascha@957: Added new choose/when/otherwise construct similiar to XSLT sascha@957: sascha@957: sascha@957: sascha@957: Es ist die Mosel. sascha@957: sascha@957: sascha@957: Es ist die Saar. sascha@957: sascha@957: sascha@957: Es ist weder Mosel noch Saar. sascha@957: sascha@957: sascha@957: sascha@957: A 'choose' block can contain a list of 'when's and an optional sascha@957: 'otherwise'. For each 'when' the test attribute is evaluated sascha@957: as an XPath expression on an empty document. The result of sascha@957: the evaluation is taken as a boolean value. If its value is sascha@957: true the control flow is continued inside the corresponding sascha@957: 'when' and the other choose elements are not tested. sascha@957: If the value is values the testing continues with the next sascha@957: 'when'. If no 'test' expression is evaluated to true, the sascha@957: control flow continues inside the 'otherwise'. If no 'otherwise' sascha@957: is given nothing happens at all. sascha@957: ingo@956: 2011-07-20 Ingo Weinzierl ingo@956: ingo@956: * doc/conf/conf.xml: Added a config section for floodmaps. Currently, the ingo@956: background layer's url and layername is defined here. ingo@956: ingo@956: * src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java: ingo@956: Read the background layer configuration from conf.xml. Those values are ingo@956: used to create the WMSLayerFacet. ingo@956: ingo@955: 2011-07-20 Ingo Weinzierl ingo@955: ingo@955: * src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java: ingo@955: The background layer facet will no longer have an extent set. ingo@955: ingo@954: 2011-07-20 Ingo Weinzierl ingo@954: ingo@954: * src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java, ingo@954: src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java: ingo@954: Set the extent of the created WMSLayerFacets and i18n its descriptions. ingo@954: ingo@954: * src/main/resources/messages.properties, ingo@954: src/main/resources/messages_de_DE.properties, ingo@954: src/main/resources/messages_en.properties, ingo@954: src/main/resources/messages_de.properties: Added I18N strings for the ingo@954: background an river axis layer. ingo@954: ingo@953: 2011-07-20 Ingo Weinzierl ingo@953: ingo@953: * src/main/java/de/intevation/flys/artifacts/model/WMSLayerFacet.java: ingo@953: This facet type has a method to set the extent of a WMS layer. The ingo@953: extent is written to the facets XML node in toXML() as well. ingo@953: ingo@952: 2011-07-20 Ingo Weinzierl ingo@952: ingo@952: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Adapted ingo@952: the signature of setup() which requires a CallMeta parameter now. ingo@952: ingo@952: * src/main/java/de/intevation/flys/artifacts/WMSBackgroundArtifact.java, ingo@952: src/main/java/de/intevation/flys/artifacts/RiverAxisArtifact.java: Use ingo@952: the CallMeta object retrieved in setup() to call initialize(). It is now ingo@952: able to i18n things. ingo@952: sascha@951: 2011-07-20 Sascha L. Teichmann sascha@951: sascha@951: * src/main/java/de/intevation/flys/artifacts/services/meta/App.java: New. sascha@951: Standalone app to debug the datacage template. To use in a maven environment: sascha@951: sascha@951: -Dmeta.data.template=PATH_TO_META_DATA-TEMPLATE.XML \ sascha@951: -Dmeta.data.parameters=river:Mosel \ sascha@951: -Dmeta.data.output=OUTPUT.XML \ sascha@951: -Dflys.backend.user=DB_USER \ sascha@951: -Dflys.backend.password=DB_PASSWORD \ sascha@951: -Dflys.backend.url=DB_CONNECTION_URL \ sascha@951: -Dexec.mainClass=de.intevation.flys.artifacts.services.meta.App sascha@951: sascha@950: 2011-07-20 Sascha L. Teichmann sascha@950: sascha@950: * src/main/java/de/intevation/flys/artifacts/services/meta/DataCage.java: sascha@950: New. First step to factor out the "Datenkorb" logic into a service independent sascha@950: singleton. sascha@950: sascha@950: * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: sascha@950: Uses the "Datenkorb" singleton now. sascha@950: ingo@949: 2011-07-20 Ingo Weinzierl ingo@949: ingo@949: * src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java: ingo@949: Removed "index" property, because it is already existing in parent ingo@949: class. ingo@949: sascha@948: 2011-07-19 Sascha L. Teichmann sascha@948: sascha@948: * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: sascha@948: Improved error handling. sascha@948: sascha@948: 2011-07-19 Sascha L. Teichmann sascha@947: sascha@947: * src/main/resources/metadata/template.xml: Deleted. sascha@947: sascha@947: * doc/conf/meta-data-template.xml: New. Was template.xml sascha@947: sascha@947: * doc/conf/conf.xml: Made meta data template configurable. sascha@947: sascha@947: * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: sascha@947: Load template from configuration not from resources. sascha@947: sascha@948: 2011-07-19 Sascha L. Teichmann sascha@946: sascha@946: * src/main/resources/metadata/template.xml: s/[a-z]+-id/db-id/ sascha@946: Make database ids identifiable with unique name "db-id". sascha@946: ingo@945: 2011-07-19 Ingo Weinzierl ingo@945: ingo@945: * src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java: ingo@945: Override the toXML() method. Subclasses can now write their own XML ingo@945: representation. ingo@945: ingo@945: * src/main/java/de/intevation/flys/artifacts/model/ManagedDomFacet.java: ingo@945: New. This ManagedFacet uses an Element (DOM) to store the information ingo@945: about a facet. The intent of this facet type is to represent a facet ingo@945: stored in an Collection attribute. Different facets can have different ingo@945: attributes that we need to parse, but the only thing ManagedFacets need ingo@945: to do, is to adjust the attributes "active" and "position". So, those ingo@945: values are set directly on the Element, the other attributes aren't ingo@945: touched. ingo@945: ingo@945: * src/main/java/de/intevation/flys/artifacts/model/ManagedFacetAdapter.java: ingo@945: New. This facet is a wrapper for another facet. This subclass of a ingo@945: ManagedFacet overrides the toXML() method. The XML representation is ingo@945: defined by the inner facet that is stored as member variable. The ingo@945: ManagedFacet specific attributes "artifact", "facet", "pos" and "active" ingo@945: are added manually. ingo@945: ingo@945: * src/main/java/de/intevation/flys/collections/AttributeWriter.java: Uses ingo@945: the toXML() method to write a facet node into the attribute document. ingo@945: ingo@945: * src/main/java/de/intevation/flys/collections/AttributeParser.java: Uses ingo@945: the ManagedDomFacet to save the information of a facet which is ingo@945: contained in the attribute part of a Collection's DESCRIBE document. ingo@945: ingo@945: * src/main/java/de/intevation/flys/collections/OutputParser.java: Uses the ingo@945: ManagedFacetAdapter to save a facet, because we want to keep the ingo@945: specific facet to be able to write its specific XML representation into ingo@945: the Collection's DESCRIBE document. ingo@945: ingo@945: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@945: Adapted the XPath of facets stored in the attribute part of the ingo@945: DESCRIBE. ingo@945: ingo@944: 2011-07-18 Ingo Weinzierl ingo@944: ingo@944: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a ingo@944: method that returns the Outputs for the Artifact. ingo@944: ingo@944: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@944: Adapeted the call of OutputParser. ingo@944: ingo@944: * src/main/java/de/intevation/flys/collections/OutputParser.java: ingo@944: Simplified the code to read the Outputs of Artifacts. This parser will ingo@944: now longer parse the DESCRIBE documents of the Artifacts, but query the ingo@944: Outputs via FLYSArtifact.getOutputs() directly. ingo@944: ingo@943: 2011-07-18 Ingo Weinzierl ingo@943: ingo@943: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, ingo@943: src/main/java/de/intevation/flys/artifacts/StaticFLYSArtifact.java: ingo@943: Adapted the function call of ProtocolUtils.appendOutputModes(). ingo@943: ingo@943: * src/main/java/de/intevation/flys/artifacts/model/WMSLayerFacet.java: ingo@943: Override toXML() to add the URL and layernames to the XML representation ingo@943: of this facet. ingo@943: ingo@942: 2011-07-18 Ingo Weinzierl ingo@942: ingo@942: * doc/conf/artifacts/wmsbackground.xml, ingo@942: doc/conf/artifacts/riveraxis.xml: New configurations for an Artifact ingo@942: that is used as background layer in floodmaps, and an artifact that is ingo@942: used as layer showing the river axis in a floodmap. ingo@942: ingo@942: * doc/conf/output-defaults.xml: New file to configure default artifacts ingo@942: for specific output states. E.g. the floodmap state recommends a ingo@942: background layer and a layer displaying the river axis. In suche case, ingo@942: the floodmap state recommends two artifacts for the two layers. ingo@942: ingo@942: * doc/conf/conf.xml: Added new artifacts/artifact-factories and a Hook to ingo@942: monitor artifacts (-> CollectionMonitor.java). ingo@942: ingo@942: * src/main/java/de/intevation/flys/artifacts/model/WMSLayerFacet.java: ingo@942: New. This facet is used to represent a layer in a map. So, this facet ingo@942: stores information about a WMS URL and the layer names provided by this ingo@942: WMS. ingo@942: ingo@942: * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added ingo@942: facet types for the wmsbackground and riveraxis. ingo@942: ingo@942: * src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java, ingo@942: src/main/java/de/intevation/flys/artifacts/WMSBackgroundArtifact.java: ingo@942: New. An artifact and its default state. The intent of these classes is ingo@942: to generate WMSLayerFacets which represent background layers in maps. ingo@942: ingo@942: * src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java, ingo@942: src/main/java/de/intevation/flys/artifacts/RiverAxisArtifact.java: New. ingo@942: An artifact and its default state. The intent of these classes is to ingo@942: generate WMSLayerFacets which represent layers that display a river ingo@942: axis. ingo@942: ingo@942: * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: ingo@942: Added the INIT ComputeType. ingo@942: ingo@942: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a ingo@942: case for the INIT ComputeType while computing data. ingo@942: ingo@941: 2011-07-18 Ingo Weinzierl ingo@941: ingo@941: * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: ingo@941: Added a method computeInit() which is called to initialize data/facets ingo@941: after an artifact has been created. ingo@941: ingo@941: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Repaired ingo@941: broken XPath. ingo@941: ingo@940: 2011-07-14 Ingo Weinzierl ingo@940: ingo@940: * src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java: ingo@940: Removed the code to generate new artifacts. Instead of creating new ingo@940: artifacts automatically, we decided to suggest creating new artifacts ingo@940: from specific types. Therefore, the DESCRIBE document of the artifacts ingo@940: is extended with a node that contains recommended artifact types. ingo@940: ingo@940: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: ingo@940: FLYSArtifacts might be setup with the identifier of an other ingo@940: FLYSArtifact. Subclasses are able to override a method called ingo@940: initialize(Artifact, GlobalContext). This might be helpful to extract ingo@940: required values or clone artifacts. ingo@940: ingo@939: 2011-07-14 Ingo Weinzierl ingo@939: ingo@939: * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: ingo@939: Adapted the signature of createArtifactContext() - it returns an ingo@939: instance of GlobalContext now. ingo@939: sascha@938: 2011-07-14 Sascha L. Teichmann sascha@938: sascha@938: * src/main/java/de/intevation/flys/artifacts/geom/Lines.java: sascha@938: Debugged the water fill algorithm. Added a lot of logging. sascha@938: sascha@938: * src/main/java/de/intevation/flys/artifacts/charts/CrossSectionApp.java: sascha@938: Added a text field to give a water level to fill in. sascha@938: ingo@937: 2011-07-14 Ingo Weinzierl ingo@937: ingo@937: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, ingo@937: src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Moved code ingo@937: to create the output modes based on the given facets to FLYSArtifact. In ingo@937: addition, FLYSArtifact got a new method that returns a specific input ingo@937: value as string. ingo@937: ingo@937: * src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java: New. ingo@937: This hook monitors the "post-feed" and "post-advance". If the monitored ingo@937: Artifact's state has configured recommended artifacts, this hook will ingo@937: create new Artifacts. ingo@937: ingo@937: TODO: We have to add the UUIDs of the new Artifacts to the DESCRIBE ingo@937: document of the artifact to let the client know, that there are new ingo@937: recommended Artifacts. ingo@937: ingo@937: * src/main/java/de/intevation/flys/artifacts/StaticFLYSArtifact.java: New. ingo@937: This Artifact is the base class for Artifacts, that represent static ingo@937: data. E.g. this could be a decoration theme in a chart or a background ingo@937: layer in the map. ingo@937: ingo@937: * src/main/java/de/intevation/flys/artifacts/states/OutputState.java: New. ingo@937: This state might be used as base class for states, that doesn't require ingo@937: any user input, but only provide static Facets added by a computeFeed() ingo@937: operation. So, subclasses need to implement computeFeed() only. ingo@937: sascha@936: 2011-07-13 Sascha L. Teichmann sascha@936: sascha@936: * src/main/java/de/intevation/flys/artifacts/charts/CrossSectionApp.java: sascha@936: New. Standalone Swing-App to test cross sections from database without the sascha@936: hassles of our complete software stack. Runnable from a maven environment: sascha@936: sascha@936: $ mvn -e \ sascha@936: -Dflys.backend.user=DB_USER \ sascha@936: -Dflys.backend.password=DB_PASSWD \ sascha@936: -Dflys.backend.url=DB_CONNECTION_URL \ sascha@936: -Dexec.mainClass=de.intevation.flys.artifacts.charts.CrossSectionApp \ sascha@936: exec:java sascha@936: sascha@936: You can set the river to be used with the system property 'river'. sascha@936: Defaults to 'Mosel'. sascha@936: sascha@936: * src/main/java/de/intevation/flys/artifacts/model/WSPLGENFacet.java: sascha@936: Removed superfluous imports. sascha@936: ingo@935: 2011-07-13 Ingo Weinzierl ingo@935: ingo@935: * doc/conf/artifacts/winfo.xml: The FloodMapState has a new Outputmode ingo@935: called "floodmap" now. ingo@935: ingo@935: * src/main/java/de/intevation/flys/artifacts/model/WSPLGENFacet.java: New. ingo@935: This facet is used to generate WSPLGEN results. ingo@935: ingo@935: * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added ingo@935: the WSPLGENFacet. ingo@935: ingo@935: * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: ingo@935: This state will now generate WSPLGENFacets. ingo@935: sascha@934: 2011-07-12 Sascha L. Teichmann sascha@934: sascha@934: * src/main/java/de/intevation/flys/artifacts/geom/Lines.java: sascha@934: Fixed corner case. sascha@934: sascha@933: 2011-07-11 Sascha L. Teichmann sascha@933: sascha@933: * src/main/java/de/intevation/flys/artifacts/geom/Lines.java: New. sascha@933: fillWater() generates a list of wet lines for a given profile and a sascha@933: given water level. sascha@934: ingo@932: 2011-07-08 Ingo Weinzierl ingo@932: ingo@932: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The ingo@932: Outputs created while generating the DESCRIBE document will now have the ingo@932: 'type' member set. ingo@932: ingo@932: * src/main/java/de/intevation/flys/collections/OutputParser.java: Read the ingo@932: 'type' member from DESCRIBE document. ingo@932: ingo@931: 2011-07-06 Ingo Weinzierl ingo@931: ingo@931: * doc/conf/artifacts/winfo.xml: Removed a typo. ingo@931: ingo@930: 2011-07-06 Ingo Weinzierl ingo@930: ingo@930: * src/main/java/de/intevation/flys/artifacts/model/DataFacet.java: ingo@930: DataFacet are now able to store the ID of the state which has created ingo@930: this Facet. ingo@930: ingo@930: * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: ingo@930: Initialize DataFacets with the ID of this state. This is necessary to ingo@930: renew the waterlevel data if it is no longer existing in the cache. ingo@930: ingo@929: 2011-07-06 Ingo Weinzierl ingo@929: ingo@929: * src/main/java/de/intevation/flys/artifacts/model/ReportFacet.java: A ingo@929: report facet can now store the state's id and the artifact's hash value ingo@929: when it has been created. ingo@929: ingo@929: * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: ingo@929: Initialize the ReportFacet and WaterlevelFacet with state id and hash ingo@929: information. This has been necessary to retrieve reports and waterlevels ingo@929: in states after this one - in states that we need to enter for floodmap ingo@929: parameterization. ingo@929: ingo@928: 2011-07-05 Ingo Weinzierl ingo@928: ingo@928: * src/main/java/de/intevation/flys/artifacts/states/WaterlevelGroundDifferences.java: ingo@928: Changed the desired UI provider. ingo@928: ingo@927: 2011-07-05 Ingo Weinzierl ingo@927: ingo@927: * doc/conf/artifacts/winfo.xml: Added the option to continue the ingo@927: waterlevel parameterization with the intent to create flood maps. ingo@927: ingo@927: * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: ingo@927: This state is no longer a final state. The user has the option to ingo@927: continue with the parameterization for flood maps based on the current ingo@927: waterlevel. Therefore, this states desires the "continue" UI provider. ingo@927: Clients should recognice this to just step to the next state or display ingo@927: a button that lets the user step to the next state manually. ingo@927: ingo@927: * src/main/java/de/intevation/flys/artifacts/states/FloodplainChoice.java, ingo@927: src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java, ingo@927: src/main/java/de/intevation/flys/artifacts/states/ScenarioSelect.java, ingo@927: src/main/java/de/intevation/flys/artifacts/states/DGMSelect.java, ingo@927: src/main/java/de/intevation/flys/artifacts/states/ProfileDistanceSelect.java, ingo@927: src/main/java/de/intevation/flys/artifacts/states/WaterlevelGroundDifferences.java: ingo@927: New. These states are used to parameterize a further calculation type: ingo@927: flood map. ingo@927: ingo@927: * src/main/resources/messages.properties, ingo@927: src/main/resources/messages_de_DE.properties, ingo@927: src/main/resources/messages_en.properties, ingo@927: src/main/resources/messages_de.properties: Required strings for the ingo@927: flood maps states. ingo@927: sascha@926: 2011-07-04 Sascha L. Teichmann sascha@926: sascha@926: Fix(?) for flys/issue114 sascha@926: sascha@926: * src/main/java/de/intevation/flys/artifacts/model/WQ.java: sascha@926: Make guessing a bit more robust. sascha@926: sascha@925: 2011-07-03 Sascha L. Teichmann sascha@925: sascha@925: Added the math needed to calculate "W-Differenzen" in "Laengsschnitten". sascha@925: Needs testing! sascha@925: sascha@925: * src/main/java/de/intevation/flys/artifacts/model/NamedObject.java: sascha@925: Made it an interface to be usable in more than one inheritance chain. sascha@925: sascha@925: * src/main/java/de/intevation/flys/artifacts/model/NamedObjectImpl.java: sascha@925: Implements the NamedObject interface and is the new base class of sascha@925: WQ and WKmsImpl. sascha@925: sascha@925: * src/main/java/de/intevation/flys/artifacts/model/WKms.java: sascha@925: New. Interface to associate kms with ws. sascha@925: sascha@925: * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: sascha@925: Changed the base class to NamedObjectImpl. Renamed getKms(int) sascha@925: to getKm(int) to make clear it return a single scalar value sascha@925: and fullfil the WKms interface. sascha@925: sascha@925: * src/main/java/de/intevation/flys/artifacts/model/WKmsImpl.java: sascha@925: New. Implements the WKms interface. Intended to be a lightweight sascha@925: datastore for "zusaetzliche Laengsschnitte" and as results sascha@925: of the WKmsOperations. sascha@925: sascha@925: * src/main/java/de/intevation/flys/artifacts/model/WQ.java: sascha@925: Changed base class to NamedObjectImpl. sascha@925: sascha@925: * src/main/java/de/intevation/flys/artifacts/math/WKmsOperation.java: sascha@925: New. Operations on WKms data. sascha@925: Currently only the SUBTRACTION operation is implemented. This sascha@925: one is needed to calculate the "W-Differenzen". The operation sascha@925: is insensitive about the km directions of the datasets. Missing sascha@925: values are interpolated linear. sascha@925: sascha@925: * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, sascha@925: src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: sascha@925: Adjusted to satisfy the signature change of WQKMs. sascha@925: ingo@924: 2011-07-01 Ingo Weinzierl ingo@924: ingo@924: * src/main/java/de/intevation/flys/exports/StyledXYSeries.java: New. This ingo@924: XYSeries stores the style information that should be used to render this ingo@924: series. These information are stored as raw XML documents. A public ingo@924: method can be used to apply those style information to a ingo@924: XYLineAndShapeRenderer. ingo@924: ingo@924: Note: The only two attributes currently supported by StyledXYSeries ingo@924: items are "linesize" and "linecolor". ingo@924: ingo@924: * doc/conf/themes.xml: Added some more basic themes for the four ingo@924: calculation methods. ingo@924: ingo@924: * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: This ingo@924: generator now tries to apply themes for all series contained in the ingo@924: chart. If a series is no instance of StyledXYSeries, the default ingo@924: renderer is used. ingo@924: ingo@924: * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, ingo@924: src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, ingo@924: src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, ingo@924: src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, ingo@924: src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: ingo@924: Removed the code that had been introduced to adapt renderers statically. ingo@924: Now, each of these concrete ChartGenerators instantiates StyledXYSeries ingo@924: items to put the curves into the chart. Those items contain style ingo@924: information now! ingo@924: ingo@923: 2011-07-01 Ingo Weinzierl ingo@923: ingo@923: flys/issue135 (Diagramm: Trotz abgeschalteter Themen bleiben Beschriftungen bestehen) ingo@923: ingo@923: * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: The way ingo@923: to store datasets has changed. Until this revision, the concrete ingo@923: generators managed their own datasets. E.g. the ingo@923: DischargeLongitudinalSectionGenerator had three datasets: w, q and ingo@923: corrected w. Now, there are just two datasets, managed by this base ingo@923: generator - one dataset for the first Y axis and one dataset for the ingo@923: second Y axis. This makes it easier to remove axes, that have no data to ingo@923: be displayed. All concrete chart generators have to add their XYSeries ingo@923: using two methods: addFirstAxisSeries() and addSecondAxisSeries(). ingo@923: ingo@923: * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, ingo@923: src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, ingo@923: src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, ingo@923: src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, ingo@923: src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: ingo@923: Those concrete chart generators no longer manage datasets themself but ingo@923: they use the two methods described above, to plot the data to the first ingo@923: or second Y axis. ingo@923: ingo@922: 2011-07-01 Ingo Weinzierl ingo@922: ingo@922: * src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java: ingo@922: Added the option to use a filter to reduce the number of items returned ingo@922: by this service. ingo@922: ingo@921: 2011-06-30 Ingo Weinzierl ingo@921: ingo@921: flys/issue159 (WINFO: Radiobutton - Ortsauswahl bei "W für ungleichwertigen Abflusslängsschnitt" entfernen) ingo@921: ingo@921: * doc/conf/artifacts/winfo.xml: Changed the kilometer range input for ingo@921: calculation 4. This calculation type requires a kilometer range. So, ingo@921: after choosing the calculation 4, the transition model leads to a state ingo@921: that just allows the input of a kilometer range with no option to ingo@921: enter locations. ingo@921: ingo@921: * src/main/java/de/intevation/flys/artifacts/states/ComputationRangeState.java: ingo@921: New. A base state for the kilometer selection for calculations. The ingo@921: target of this state is to provide facets for the duration curves. ingo@921: ingo@921: * src/main/java/de/intevation/flys/artifacts/states/DistanceSelect.java: ingo@921: New. This state is used to enter a kilometer range. The difference to ingo@921: the LocationDistanceSelect state is, that there is no option to enter ingo@921: locations. ingo@921: ingo@921: * src/main/java/de/intevation/flys/artifacts/states/RangeState.java: ingo@921: Improved this state to be the base state for calculation ranges. ingo@921: ingo@921: * src/main/java/de/intevation/flys/artifacts/states/LocationSelect.java ingo@921: src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java ingo@921: ingo@921: * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: This ingo@921: state no longer inherits from RangeState which now is used as base ingo@921: state for kilometer ranges. ingo@921: ingo@921: * src/main/resources/messages.properties, ingo@921: src/main/resources/messages_de_DE.properties, ingo@921: src/main/resources/messages_en.properties, ingo@921: src/main/resources/messages_de.properties: Added new i18n strings for ingo@921: the DistanceSelect state. ingo@921: sascha@920: 2011-06-28 Sascha L. Teichmann sascha@920: sascha@920: * pom.xml: Downgraded Trove to 1.1-beta-5, because the new sascha@920: later ones are removed from the maven repos. sascha@920: sascha@925: The functionality we need is in 1.1 so this downgrade should sascha@920: cause no problems. sascha@920: sascha@920: Would be nice if we would support the maintainers of trove to sascha@920: bring there new versions back into the main maven repos. sascha@920: ingo@919: 2011-06-28 Ingo Weinzierl ingo@919: ingo@919: * pom.xml: Repaired the JBoss repository which place has changed. ingo@919: ingo@918: 2011-06-28 Ingo Weinzierl ingo@918: ingo@918: Tagged RELEASE 2.4 ingo@918: ingo@749: 2011-06-27 Ingo Weinzierl ingo@749: ingo@749: * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java, ingo@749: src/main/java/de/intevation/flys/exports/WstWriter.java: ingo@749: Append the corrected W column (if existing) to the WST export. ingo@749: sascha@748: 2011-06-27 Sascha L. Teichmann sascha@748: sascha@748: * src/main/java/de/intevation/flys/artifacts/model/WQ.java: sascha@748: Guessing increaing w is not based on direct neighbors any more. sascha@748: The second to be compared with is choosen by random of sascha@748: the values before the first one. This makes the guessing sascha@748: more robust against 'plateaus' of equal w values. sascha@748: sascha@747: 2011-06-27 Sascha L. Teichmann sascha@747: sascha@747: * src/main/java/de/intevation/flys/exports/ATWriter.java: Array sascha@747: for constructing the spline was too large leading to non-increasing sascha@747: values. sascha@747: sascha@745: 2011-06-27 Sascha L. Teichmann sascha@745: sascha@745: Fix for flys/issue150 sascha@745: sascha@745: * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, sascha@745: src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: sascha@745: Invert the x axis if its guessed that water is increasing. sascha@745: sascha@744: 2011-06-27 Sascha L. Teichmann sascha@744: sascha@744: * src/main/java/de/intevation/flys/artifacts/model/WQ.java(guessWaterIncreasing): sascha@744: Added a method to guess based on a given factor of the size (default 0.05) sascha@744: if the water levels are increasing. Needed to determine in which direction sascha@744: the water level curve should be orientated. Based on random to avoid sascha@744: running over large dataset each time a diagram is generated. sascha@744: ingo@743: 2011-06-27 Ingo Weinzierl ingo@743: ingo@743: flys/issue177 (WINFO: Abflusskurven am Pegel verursachen ein Hängen des Servers) ingo@743: ingo@743: * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: ingo@743: Commented out code to generate time ranges for series names. There ingo@743: seems to be a problem while loading the discharge tables of a gauge or ingo@743: while determining the start and/or end time of such discharge tables. ingo@743: sascha@742: 2011-06-26 Sascha L. Teichmann sascha@742: sascha@742: * src/main/java/de/intevation/flys/**/*.java: Removed trailing whitespace. sascha@742: sascha@741: 2011-06-26 Sascha L. Teichmann sascha@741: sascha@741: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: sascha@741: Removed dead code. sascha@741: sascha@739: 2011-06-26 Sascha L. Teichmann sascha@739: sascha@740: Fix for flys/issue173 sascha@740: sascha@739: * src/main/java/de/intevation/flys/artifacts/model/Calculation4.java: sascha@739: Fixed the way the gauge was found for a given interval. sascha@739: The old way does not work because it was just tested if sascha@739: the station point was inside the segments which is not sascha@739: necessarily true. The obvious solution to simply check sascha@739: the overlapping intervals does not work either because sascha@741: the gauge ranges touch each other and so more than sascha@739: one gauge are returned in these cases. The River.maxOverlap() sascha@739: is now used to find the gauge with the max overlapping sascha@739: range. sascha@739: sascha@738: 2011-06-26 Sascha L. Teichmann sascha@738: sascha@738: Fix for flys/issue147 sascha@738: sascha@738: * src/main/java/de/intevation/flys/artifacts/model/Calculation1.java: sascha@738: Removed the 'kmUp' flag. It was an left over from former sascha@738: WSP calculations (w/o ref km) leading to wrong results now. sascha@738: sascha@738: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@738: Don't pass the kmUp flag to the calculation. sascha@738: sascha@738: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: sascha@738: Added debug output to see the value of 'wq_free'. sascha@738: sascha@737: 2011-06-26 Sascha L. Teichmann sascha@737: sascha@737: Fix for flys/issue86 sascha@737: sascha@737: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@737: The reference gauge for calculations "am Pegel" was determined sascha@737: wrong. sascha@737: sascha@735: 2011-06-25 Sascha L. Teichmann sascha@735: sascha@735: * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: sascha@735: Conversion w->q was broken. This should fix a number of issues sascha@735: around "W am Pegel" calculations. sascha@735: sascha@735: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@735: Issue an error report if a w->q conversion fails. sascha@735: sascha@735: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: sascha@735: The gauge to convert w->q with its discharge table was determined wrong. sascha@735: ingo@734: 2011-06-24 Ingo Weinzierl ingo@734: ingo@734: flys/issue174 (Diagramm: Q-Linie wird bei initialem Laden des Diagramms ingo@734: anders dargestellt als bei Ansicht auf gesamten Wertebereich) ingo@734: ingo@734: * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: ingo@734: The chart will now have upper margins again. ingo@734: ingo@733: 2011-06-24 Ingo Weinzierl ingo@733: ingo@733: flys/issue172 (Diagramm: Ursprung der Diagramme bei Dauerzahlen) ingo@733: ingo@733: * src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java: ingo@733: Charts of this type will have the lower X value set to "0". ingo@733: sascha@732: 2011-06-23 Sascha L. Teichmann sascha@732: sascha@732: * src/main/java/de/intevation/flys/exports/ATWriter.java: sascha@732: Results are now in cm. Made it more robust against corner cases. sascha@732: sascha@732: * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: sascha@732: Removed superfluous import. sascha@732: sascha@731: 2011-06-23 Sascha L. Teichmann sascha@731: sascha@731: * doc/conf/artifacts/winfo.xml, doc/conf/conf.xml: sascha@731: Added facet config for AT exports. sascha@731: sascha@731: * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: sascha@731: Added 'at' facet type. sascha@731: sascha@731: * src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java: sascha@731: Generate AT facets. sascha@731: sascha@730: 2011-06-23 Sascha L. Teichmann sascha@730: sascha@730: * src/main/java/de/intevation/flys/exports/ATExporter.java: New. sascha@730: Exporter for AT facets. Needs testing. sascha@730: sascha@729: 2011-06-23 Sascha L. Teichmann sascha@729: sascha@729: * src/main/java/de/intevation/flys/exports/ATWriter.java: New. sascha@729: Writer for AT files. New code because our data model differs sascha@729: from Desktop-FLYS. Needs testing. sascha@729: ingo@728: 2011-06-23 Ingo Weinzierl ingo@728: ingo@728: flys/issue157 (Diagramm: Ursprung berechnete Abflusskurve) ingo@728: ingo@728: * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, ingo@728: src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: ingo@728: Moved the method that adjusts the X-axis to include the "0" value from ingo@728: ComputedDischargeCurveGenerator to DischargeCurveGenerator. Now, both ingo@728: charts will include the "0" on the X-axis. ingo@728: sascha@727: 2011-06-23 Sascha L. Teichmann sascha@727: sascha@727: * src/main/java/de/intevation/flys/artifacts/model/WQDay.java: sascha@727: Based on WQ now to make it exportable as AT. sascha@727: sascha@726: 2011-06-23 Sascha L. Teichmann sascha@726: sascha@726: * src/main/java/de/intevation/flys/artifacts/model/WQ.java: sascha@726: New. Base class for WQKms. sascha@726: sascha@726: TODO 1: make it a base class for WQDay, too, sascha@726: TODO 2: Generate instances of WQ instead of WQKms in "Abflusskurven" sascha@726: calculations. This will save memory. sascha@726: sascha@726: AT exporter will get instances of this class as data model sascha@726: sascha@726: * src/main/java/de/intevation/flys/artifacts/model/NamedObject.java: sascha@726: Add default constructor to ease inheritance. sascha@726: sascha@726: * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: sascha@726: Based on WQ now. Removed code allready defined in base class. sascha@726: sascha@726: 2011-06-23 Sascha L. Teichmann sascha@725: sascha@725: * doc/conf/artifacts/winfo.xml: Add TODOs for error reports sascha@725: of "Abflusskurven am Pegel". Maybe we don't need them? sascha@725: sascha@725: * doc/conf/conf.xml: Configure report for each calculated output type. sascha@725: ingo@724: 2011-06-22 Ingo Weinzierl ingo@724: ingo@724: flys/issue164 (Berechnung 4: Umgekehrtes Berechnungsintervall führt zur) ingo@724: ingo@724: * src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java: ingo@724: Create the items with range information for W and Q which allows the ingo@724: client to validate the user inserted values. ingo@724: sascha@723: 2011-06-21 Sascha L. Teichmann sascha@723: sascha@723: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@723: Arguments in filling datastructure were flip. Now sascha@723: the "Abflusskurve am Pegel" looks correct again. sascha@723: sascha@723: * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: sascha@723: Removed superfluous imports. sascha@723: sascha@722: 2011-06-21 Sascha L. Teichmann sascha@722: sascha@722: Improved situtation on rendering "Abflusskurve am Pegel". Not sascha@722: fully working, yet. sascha@722: sascha@722: * doc/conf/artifacts/winfo.xml: Generate facets for the location path, too. sascha@722: sascha@722: * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Misspelled sascha@722: the facet which prevented the facets from being to the outputs. sascha@722: sascha@722: * src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java: sascha@722: Extended to store the hash and the state id of the producing artifact/state sascha@722: else it results in NPEs because the data is calculated on later (wrong) states. sascha@722: sascha@722: * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java: sascha@722: Store the state id and the hash in the facet, too. sascha@722: sascha@722: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Add two sascha@722: method to do calculations for a state the artifact is currently not in sascha@722: and fetching the current state id. sascha@722: sascha@721: 2011-06-21 Sascha L. Teichmann sascha@721: sascha@721: * doc/conf/artifacts/winfo.xml: Generate facets for "Abflusskurven am Pegel" sascha@721: Not working by now. :-/ sascha@721: sascha@721: * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: New facet type sascha@721: for "Abflusskurven am Pegel" sascha@721: sascha@721: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Do calculation sascha@721: in the artifact not in the output generator. sascha@721: sascha@721: * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java: sascha@721: Generate the new facets. sascha@721: sascha@721: * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: sascha@721: Fetch data from facet. sascha@721: ingo@720: 2011-06-22 Ingo Weinzierl ingo@720: ingo@720: flys/issue161 (Diagramm: Q-Achse in W-Längsschnitten immer bei Q=0) ingo@720: ingo@720: * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: ingo@720: The Q axis (which is the second y axis) initially contains the 0 value. ingo@720: After a zoom action has taken place, this behaviour is no longer ingo@720: supported. ingo@720: sascha@719: 2011-06-21 Sascha L. Teichmann sascha@719: sascha@721: Draw correction curve again. sascha@719: sascha@719: * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java: sascha@719: Use correction curve to map plot to axes. Not doing so prevented sascha@719: the correction curve from being drawn! sascha@719: Smaller code cleanups and simplifications. sascha@719: sascha@719: * src/main/java/de/intevation/flys/artifacts/model/WQKms.java, sascha@719: src/main/java/de/intevation/flys/artifacts/model/WQCKms.java: sascha@719: Added methods to directly access the components w, q and c sascha@719: at a given index. sascha@719: sascha@719: * src/main/java/de/intevation/flys/exports/ChartGenerator.java: sascha@719: Attribute access via DOM instead of XPath. sascha@719: sascha@719: * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: sascha@719: Code simplification. sascha@719: ingo@718: 2011-06-21 Ingo Weinzierl ingo@718: ingo@718: flys/issue157 (Diagramm: Ursprung berechnete Abflusskurve) ingo@718: ingo@718: * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Splitted ingo@718: up zooming for x and y axes to be able to override specific axis ingo@718: zoom behaviour. ingo@718: ingo@718: * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: ingo@718: The lower bound of the x axis (which is the Q axis in such chart) is ingo@718: always 0. ingo@718: ingo@717: 2011-06-21 Ingo Weinzierl ingo@717: ingo@717: flys/issue90 (Diagramm: Trennung derDiagrammfläche und Achsenaufheben) ingo@717: ingo@717: * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: ingo@717: Added a margin between chart data and chart axes. ingo@717: sascha@716: 2011-06-21 Sascha L. Teichmann sascha@716: sascha@716: Fix for flys/issue158 sascha@716: sascha@716: * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java: sascha@716: Checks for right class now. sascha@716: sascha@715: 2011-06-21 Sascha L. Teichmann sascha@715: sascha@715: Fix for flys/issue154 sascha@715: sascha@715: * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java: sascha@715: Checks for right class now. sascha@715: sascha@714: 2011-06-21 Sascha L. Teichmann sascha@714: sascha@714: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@714: Only generate 'outs' if they have facets. sascha@714: sascha@714: * src/main/java/de/intevation/flys/exports/ChartExportHelper.java: sascha@714: 'boolean ? true : false' <=> 'boolean' sascha@714: ingo@713: 2011-06-21 Ingo Weinzierl ingo@713: ingo@713: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@713: Added the time-to-live to the DESCRIBE document. ingo@713: sascha@712: 2011-06-20 Sascha L. Teichmann sascha@712: sascha@712: * doc/conf/artifacts/winfo.xml: Configured states to generate report facets. sascha@712: sascha@711: 2011-06-20 Sascha L. Teichmann sascha@711: sascha@711: * src/main/java/de/intevation/flys/artifacts/model/ReportFacet.java: sascha@711: Return the report. sascha@711: sascha@711: * src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java, sascha@711: src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java, sascha@711: src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java, sascha@711: src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: sascha@711: Generate report facets if there are problems with the calculations. sascha@711: TODO: Adjust winfo.xml to configure the facets. sascha@711: sascha@710: 2011-06-20 Sascha L. Teichmann sascha@710: sascha@710: * src/main/java/de/intevation/flys/exports/ReportGenerator.java: sascha@710: New. Generator for calculation reports. sascha@710: sascha@710: * doc/conf/conf.xml: Added ReportGenerator. sascha@710: sascha@710: * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: sascha@710: Added type 'report'. sascha@710: sascha@710: * src/main/java/de/intevation/flys/artifacts/model/ReportFacet.java: sascha@710: Specialized facet for serving reports. TODO: Added them to the sascha@710: calculation states. sascha@710: sascha@710: * src/main/java/de/intevation/flys/artifacts/model/Calculation.java: sascha@710: Looped through CallMeta for i18n purposes. TODO: do i18n sascha@710: sascha@710: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@710: Removed superfluous import. sascha@710: sascha@710: * src/main/java/de/intevation/flys/exports/AbstractExporter.java: sascha@710: Added some override annotations. sascha@710: sascha@709: 2011-06-20 Sascha L. Teichmann sascha@709: sascha@709: * src/main/java/de/intevation/flys/artifacts/model/CalculationResult.java: sascha@709: New. Used to transport the data and the error report. sascha@709: sascha@709: * src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java, sascha@709: src/main/java/de/intevation/flys/artifacts/model/Calculation1.java, sascha@709: src/main/java/de/intevation/flys/artifacts/model/Calculation2.java, sascha@709: src/main/java/de/intevation/flys/artifacts/model/Calculation3.java, sascha@709: src/main/java/de/intevation/flys/artifacts/model/Calculation4.java, sascha@709: src/main/java/de/intevation/flys/artifacts/model/DurationCurveFacet.java, sascha@709: src/main/java/de/intevation/flys/artifacts/model/Calculation.java, sascha@709: src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, sascha@709: src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java, sascha@709: src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java, sascha@709: src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java, sascha@709: src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java, sascha@709: src/main/java/de/intevation/flys/exports/WaterlevelExporter.java, sascha@709: src/main/java/de/intevation/flys/exports/DurationCurveExporter.java: sascha@709: Use the CalculationResult now. sascha@709: sascha@708: 2011-06-18 Sascha L. Teichmann sascha@708: sascha@708: * src/main/java/de/intevation/flys/artifacts/model/Calculation1.java: sascha@708: Allow an explicit reference km to enable calculation "am Pegel". sascha@708: sascha@708: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@708: If a calculation "am Pegel" is done, take start km of the sascha@708: calculation range and find the gauge in which range it is located. sascha@708: Take the station of the gauge as the reference km. If no gauge sascha@708: is found the calcualtion falls back to calculation "auf freier Strecke". sascha@708: sascha@708: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: sascha@708: Replaced another inefficient attribute extraction via XPath sascha@708: with direct DOM access. sascha@708: sascha@706: 2011-06-18 Sascha L. Teichmann sascha@706: sascha@706: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, sascha@706: src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java, sascha@706: src/main/java/de/intevation/flys/exports/WaterlevelExporter.java, sascha@706: src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: sascha@706: Removed dead code. sascha@706: sascha@705: 2011-06-18 Sascha L. Teichmann sascha@705: sascha@705: * src/main/java/de/intevation/flys/artifacts/model/DataFacet.java sascha@705: src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java, sascha@705: src/main/java/de/intevation/flys/artifacts/model/DurationCurveFacet.java, sascha@705: src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java, sascha@705: src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, sascha@705: src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java, sascha@705: src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java, sascha@705: src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java, sascha@705: src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: sascha@705: Only generate facets when needed. sascha@705: sascha@705: * src/main/java/de/intevation/flys/collections/OutputParser.java: sascha@705: Removed more XPath for simply accessing attributes of an element. sascha@705: sascha@705: * doc/conf/cache.xml: 200 elements in memory for "computed.values" are enough, sascha@705: LRU as eviction strategy is sufficent. sascha@705: sascha@705: * src/main/java/de/intevation/flys/collections/AttributeWriter.java, sascha@705: src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Use sascha@705: more 'standard' Java naming conventions. sascha@705: sascha@704: 2011-06-17 Sascha L. Teichmann sascha@704: sascha@704: Merged in the facet-slt branch to bring in the 'facet' feature. sascha@704: sascha@704: * doc/conf/artifacts/winfo.xml: Fixed some facets. sascha@704: sascha@704: * doc/conf/cache.xml: Added a "computed.values" cache to store the sascha@704: results of the WINFO calculations. sascha@704: sascha@704: * src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java: sascha@704: Add support for index per facet to make them unique and identifiable. sascha@704: sascha@704: * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: sascha@704: New. Inteface to be used to access the facet names of the configuration. sascha@704: sascha@704: * src/main/java/de/intevation/flys/artifacts/model/DataFacet.java: New. sascha@704: A facet to be used to have raw access to the computed data of an artifact. sascha@704: Useful to export things like CSV and WST. sascha@704: sascha@704: * src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java: New. sascha@704: Specialized facet to access the water level data stored in WQKms arrays. sascha@704: sascha@704: * src/main/java/de/intevation/flys/artifacts/model/DurationCurveFacet.java: New. sascha@704: Specialized facet to access the duration data stored in WQDay data structures. sascha@704: sascha@704: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Facets are sascha@704: now generated dynamically from the current available ones stored with sascha@704: the artifact. sascha@704: sascha@704: * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Added sascha@704: methods computeAdvance() and computeFeed() called if artifact is fed or sascha@704: adance. This overwritten in subclasses to do the state depending calculations. sascha@704: sascha@704: * src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java, sascha@704: src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, sascha@704: src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java, sascha@704: src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java, sascha@704: src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: These sascha@704: states overwrites the computeAdvance() and computeFeed() methods to do sascha@704: the corresponding WINFO calculations. sascha@704: sascha@704: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Calls sascha@704: computeAdvance() and computeFeed() if artifact is fed or advanced. Centralized sascha@704: the caching mechanism. sascha@704: sascha@704: * src/main/java/de/intevation/flys/exports/AbstractExporter.java, sascha@704: src/main/java/de/intevation/flys/collections/AttributeParser.java, sascha@704: src/main/java/de/intevation/flys/collections/OutputParser.java, sascha@704: src/main/java/de/intevation/flys/collections/AttributeWriter.java, sascha@704: src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: sascha@704: Adjusted the code to cope with the indices of the facets. Used sascha@704: DOM to access the attributes instead of XPath. Removed smaller bugs sascha@704: concerning position generation. sascha@704: sascha@704: * src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java, sascha@704: src/main/java/de/intevation/flys/exports/ChartGenerator.java, sascha@704: src/main/java/de/intevation/flys/exports/OutGenerator.java: sascha@704: Forwarded facet references. sascha@704: sascha@704: * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java, sascha@704: src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, sascha@704: src/main/java/de/intevation/flys/exports/DurationCurveExporter.java, sascha@704: src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java, sascha@704: src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, sascha@704: src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, sascha@704: src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, sascha@704: src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, sascha@704: src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: sascha@704: Uses facets to fetch data and generate output now. sascha@704: ingo@685: 2011-06-17 Ingo Weinzierl ingo@685: ingo@685: * doc/conf/artifacts/winfo.xml: Added a new parameter "wq_free" that ingo@685: determines the mode of calculation 1. If it is "false" (default), ingo@685: the calculation should be bound to a gauge. ingo@685: ingo@685: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a ingo@685: method to retrieve the information about the "wq_free" parameter. ingo@685: ingo@684: 2011-06-17 Ingo Weinzierl ingo@684: ingo@684: * doc/conf/artifacts/winfo.xml: Added a facet for corrected W in ingo@684: computation 4. ingo@684: ingo@686: 2011-06-14 Sascha L. Teichmann ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java: ingo@686: Got rid of namespace in result document. ingo@686: ingo@686: 2011-06-14 Ingo Weinzierl ingo@686: ingo@686: flys/issue77 (Diagramm: Beschriftung der Kurven bei Dauerlinien) ingo@686: ingo@686: * src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java: ingo@686: Give the curves in the chart names. ingo@686: ingo@686: * src/main/resources/messages.properties, ingo@686: src/main/resources/messages_de_DE.properties, ingo@686: src/main/resources/messages_en.properties, ingo@686: src/main/resources/messages_de.properties: Added titles for duration ingo@686: chart curves. ingo@686: ingo@686: 2011-06-14 Sascha L. Teichmann ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java: ingo@686: Write top 'Oberkante' and bottom 'Unterkante' to out going XML ingo@686: if they exist. ingo@686: ingo@686: 2011-06-14 Ingo Weinzierl ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java: ingo@686: Write the min/max W/Q ranges as art:range elements into the DESCRIBE. ingo@686: ingo@686: 2011-06-14 Ingo Weinzierl ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/states/LocationSelect.java: ingo@686: This state that is used to retrieve locations will now write the ingo@686: kilometer range of the selected river into the DESCRIBE document. ingo@686: ingo@686: 2011-06-10 Sascha L. Teichmann ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/model/Calculation1.java: ingo@686: New. Factored out version of "Wasserspiegellage" calculation. ingo@686: * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: ingo@686: ingo@686: Removed some dead code. ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/model/WQCKms.java: ingo@686: Added Override annotation and used quick access method. ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: ingo@686: Looped through error reporting use by interpolate. ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: ingo@686: Used factored out version of calculation 1. Removed dead code. ingo@686: ingo@686: 2011-06-10 Sascha L. Teichmann ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/model/Calculation2.java: ingo@686: New. Factored out version of "Abflusskurve". ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: ingo@686: Loop errors through w/q at km interpolation. ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: ingo@686: Use factored out version of calculation 2. ingo@686: ingo@686: 2011-06-10 Sascha L. Teichmann ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/model/Calculation3.java: ingo@686: New. Factored out version of "Dauerzahlen". ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: ingo@686: Loop errors through for q->w interpolations. ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/model/WQDay.java: ingo@686: Added constructor to directly create with calculated results. ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/model/Calculation.java: ingo@686: Added method to return the number of problems. ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: ingo@686: Use factored out version of calculation 3. ingo@686: ingo@686: 2011-06-10 Sascha L. Teichmann ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/model/WQKms.java, ingo@686: src/main/java/de/intevation/flys/artifacts/model/WQCKms.java, ingo@686: src/main/java/de/intevation/flys/artifacts/model/WQDay.java: ingo@686: Added methods to remove NaN values. ingo@686: ingo@686: 2011-06-10 Sascha L. Teichmann ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/model/Calculation.java: ingo@686: New. Base class for calculations. Used to collect problems occuring ingo@686: during calculation. ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/model/Calculation4.java: ingo@686: Extends Calculation now. Looped through the problem reports to ingo@686: base class. ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java: ingo@686: Looped through the problem reports. ingo@686: ingo@686: 2011-06-09 Ingo Weinzierl ingo@686: ingo@686: * src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java: ingo@686: Append the min/max range and a transformation matrix for each axis. ingo@686: ingo@686: * src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java: ingo@686: Instantiate the InfoGeneratorHelper with a XYChartGenerator instance. ingo@686: ingo@686: * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: ingo@686: Changed the zoom operation. The zoom values defined in the chart request ingo@686: document are no longer absolute values for a specific axis. Those values ingo@686: represent percental values for the start and end point of x and y axes. ingo@686: E.g. a chart has three axes with the following ranges: ingo@686: - x axis : 0 - 10 ingo@686: - y axis 1: 20 - 40 ingo@686: - y axis 2: 40 - 90 ingo@686: - zoom values for x: 0.1 - 0.9 (10% - 90%) ingo@686: - zoom values for y: 0.2 - 0.8 (20% - 80%) ingo@686: The produced chart will have the following ranges: ingo@686: - x axis : 1 - 9 ingo@686: - y axis 1: 24 - 36 ingo@686: y axis 2: 50 - 80 ingo@686: ingo@686: 2011-06-09 Ingo Weinzierl ingo@686: ingo@686: * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, ingo@686: src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java: ingo@686: Map datasets to axes correctly. ingo@686: ingo@686: 2011-06-08 Sascha L. Teichmann ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/model/Calculation4.java: ingo@686: Determine the gauges by their station positions. This hopfully ingo@686: fixes the problem with wrong assigned gauges and invalid segments. ingo@686: ingo@686: 2011-06-08 Sascha L. Teichmann ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/model/Segment.java, ingo@686: src/main/java/de/intevation/flys/artifacts/model/Calculation4.java: ingo@686: Added more debug output. ingo@686: ingo@686: 2011-06-08 Ingo Weinzierl ingo@686: ingo@686: flys/issue103 PART 1 (WINFO: Wasserspiegellagenberechnung / Layout-Inkonsistenz) ingo@686: ingo@686: * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: ingo@686: Selected values are formatted with the current locale. The static part ingo@686: of the DESCRIBE document will now contain i18n formatted numbers. ingo@686: ingo@686: 2011-06-08 Ingo Weinzierl ingo@686: ingo@686: flys/issue93 (WINFO: Benennung der Berechnungsart korrigieren) ingo@686: ingo@686: * src/main/resources/messages_de_DE.properties, ingo@686: src/main/resources/messages_de.properties: Changed the name of ingo@686: calculation 4. ingo@686: ingo@667: 2011-06-08 Ingo Weinzierl ingo@667: ingo@667: * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: ingo@667: Made the range determination more robust against NaN values. ingo@667: ingo@666: 2011-06-08 Ingo Weinzierl ingo@666: ingo@666: * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: ingo@666: The second y axis is set to position "1". It was set to "2" before, but ingo@666: in that case, there was no position "1". ingo@666: sascha@664: 2011-06-08 Sascha L. Teichmann sascha@664: sascha@664: * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java, sascha@664: src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, sascha@664: src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java, sascha@664: src/main/java/de/intevation/flys/exports/DurationCurveExporter.java, sascha@664: src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, sascha@665: src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java, sascha@665: src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java: sascha@665: s@m³/s@m\\u00b3/s@ sascha@664: sascha@663: 2011-06-08 Sascha L. Teichmann sascha@663: sascha@663: * src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java: sascha@663: Only generate an axis element if a axis really exists. sascha@663: sascha@662: 2011-06-07 Sascha L. Teichmann sascha@662: sascha@662: * src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java: sascha@662: Simpified array swapping. sascha@662: sascha@660: 2011-06-07 Sascha L. Teichmann sascha@660: sascha@661: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, sascha@661: src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: sascha@661: Use java.util.List instead of java.util.Vector sascha@661: sascha@661: * src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java, sascha@661: src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java, sascha@661: src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java, sascha@661: src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: sascha@661: Removed superfluous imports. sascha@661: sascha@661: 2011-06-07 Sascha L. Teichmann sascha@660: sascha@660: * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: sascha@660: createItem() is not abstract any longer to avoid code repetitionin sub classes. sascha@660: sascha@661: * src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java, sascha@661: src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, sascha@661: src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java, sascha@661: src/main/java/de/intevation/flys/artifacts/states/WQSelect.java, sascha@661: src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java, sascha@661: src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java, sascha@661: src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java, sascha@661: src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: sascha@661: Removed duplicated code, inserted default constructors and Override annotations. sascha@660: ingo@659: 2011-06-07 Ingo Weinzierl ingo@659: ingo@659: * src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java: ingo@659: Append axes range information to the info document. ingo@659: sascha@660: 2011-06-07 Sascha L. Teichmann sascha@658: sascha@658: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: sascha@658: If feed() fails do not store invalid values in database. sascha@658: sascha@657: 2011-06-06 Sascha L. Teichmann sascha@657: sascha@657: * src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java: sascha@657: Removed asymmetrical "- 1" from width calculation. sascha@657: sascha@656: 2011-06-05 Sascha L. Teichmann sascha@656: sascha@656: * src/main/java/de/intevation/flys/artifacts/model/Calculation4.java: sascha@656: Fixed problem when more than one value per segment are given. sascha@656: sascha@655: 2011-06-05 Sascha L. Teichmann sascha@655: sascha@655: Refactored version of "Berechnung 4" sascha@655: sascha@655: * src/main/java/de/intevation/flys/artifacts/model/Segment.java: sascha@655: Added instance fields for a reference point (= location of gauge) sascha@655: and backup of values (needed for naming). sascha@655: sascha@655: * src/main/java/de/intevation/flys/artifacts/model/WQCKms.java: sascha@655: Added a constructor to be created from a WQKms. This is helpful sascha@655: if a WQKms is replaced by a back jump correction. sascha@655: sascha@655: * src/main/java/de/intevation/flys/artifacts/model/Calculation4.java: sascha@655: New. Outfactored version of "W bei ungleichmaessigen Abflusslaengsschnitt". sascha@655: Much cleaner now and it should have a better handling of the corner sascha@655: cases. sascha@655: sascha@655: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: sascha@655: Removed the linear interpolation stuff. It is now in Linear. Removed sascha@655: the LinearRemap interpolation method because it is not needed any sascha@655: longer. Added a method to interpolate a given km with a given sascha@655: function. sascha@655: sascha@655: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@655: Removed the old calc 4 and used the new one. sascha@655: sascha@655: * src/main/java/de/intevation/flys/artifacts/math/LinearRemap.java: sascha@655: Deleted. Not needed any longer. sascha@655: sascha@655: * src/main/java/de/intevation/flys/artifacts/math/Function.java: sascha@655: New. Interface for a uni-variate real function. sascha@655: sascha@655: * src/main/java/de/intevation/flys/artifacts/math/Identity.java: sascha@655: New. Implements Function with f(x) = x sascha@655: sascha@655: * src/main/java/de/intevation/flys/artifacts/math/Linear.java: sascha@655: New. Implements Function with f(x) = m*x + b sascha@655: sascha@655: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: sascha@655: Factored some stuff out to DoubleUtil. Removed some dead code. sascha@655: Does some rounding correct. sascha@655: sascha@655: * src/main/java/de/intevation/flys/utils/DoubleUtil.java: New. sascha@655: Centralized utils surrounding common double operations. sascha@655: sascha@655: * src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java: sascha@655: Removed superfluous imports. sascha@655: ingo@654: 2011-06-03 Ingo Weinzierl ingo@654: ingo@654: flys/issue90(Diagramm: Trennung der Diagrammfläche und Achsen aufheben) ingo@654: ingo@654: * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: ingo@654: Determine the ranges of x and y axes. If no zoom ranges are given, we ingo@654: will determine the min and max xy values in the dataset manually, ingo@654: because JFreeCharts adds a margin to the left and right of the data ingo@654: area automatically.. ingo@654: ingo@653: 2011-06-03 Ingo Weinzierl ingo@653: ingo@653: * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Moved ingo@653: the chart creation into an own public method. This lets the ingo@653: ChartInfoGenerator create charts without duplicating code. ingo@653: ingo@653: * src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java: ingo@653: Limited the possible class for generators to XYChartGenerator. This ingo@653: enables the ChartInfoGenerator class to do the whole chart creation ingo@653: stuff itself without outsourcing the code to concrete subclasses. ingo@653: ingo@653: * src/main/java/de/intevation/flys/exports/LongitudinalSectionInfoGenerator.java, ingo@653: src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionInfoGenerator.java, ingo@653: src/main/java/de/intevation/flys/exports/DurationCurveInfoGenerator.java, ingo@653: src/main/java/de/intevation/flys/exports/DischargeCurveInfoGenerator.java, ingo@653: src/main/java/de/intevation/flys/exports/ComputedDischargeCurveInfoGenerator.java: ingo@653: Removed the code to generate charts - this is done in ChartInfoGenerator ingo@653: now. ingo@653: ingo@652: 2011-06-03 Ingo Weinzierl ingo@652: ingo@652: * src/main/java/de/intevation/flys/exports/ChartGenerator.java: Added new ingo@652: methods to extract the x and y ranges from request document. ingo@652: ingo@652: * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Added a ingo@652: method that zooms the chart to the specified x and y ranges. ingo@652: sascha@651: 2011-06-02 Sascha L. Teichmann sascha@651: sascha@651: * doc/conf/conf.xml: Set collection ttl to 6 hours. sascha@651: sascha@650: 2011-06-01 Sascha L. Teichmann sascha@650: sascha@650: * src/main/java/de/intevation/flys/artifacts/model/Segment.java: sascha@650: New. Parse segments only once. sascha@650: sascha@650: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: sascha@650: Expose new parser to artifacts. TODO: Use it. sascha@650: sascha@649: 2011-06-01 Sascha L. Teichmann sascha@649: sascha@649: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: sascha@649: Changed interpolation methods to interpolate to an arbitrary position sascha@649: in a given double result array as a preparation for segment independent sascha@649: calculation. sascha@649: sascha@649: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: sascha@649: Removed superfluous import. sascha@649: sascha@649: * src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java: sascha@649: Fixed cause for crashing: Run back too far in some siutations. sascha@649: sascha@649: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@649: Refactored range code a bit. Needs more work. sascha@649: ingo@648: 2011-06-01 Ingo Weinzierl ingo@648: ingo@648: * src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java: ingo@648: Interchange the lower and upper x value of the chart if the x-axis is ingo@648: inverted before the matrix values are computed. Now, the matrix is able ingo@648: to work with charts that have an inverted x-axis. ingo@648: ingo@647: 2011-06-01 Ingo Weinzierl ingo@647: ingo@647: * src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java: New. A ingo@647: chart info generator generates a document that contains meta information ingo@647: for a specific chart. Concrete instances of this abstract class need to ingo@647: instantiate concrete ChartGenerators and dispatch nearly all methods of ingo@647: an OutGenerator (init(), doOut(), setMaster()) to this instance. The ingo@647: generate() method is implemented in the ChartInfoGenerator itself. It ingo@647: creates a chart with help of the ChartGenerator instance and builds a ingo@647: document that contains meta information of this chart. ingo@647: ingo@647: * src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java: New. ingo@647: This helper is used to create the chart info document. At the moment, ingo@647: the only information that is included in this document is a ingo@647: transformation matrix to transform image coordinates into chart ingo@647: coordinates. ingo@647: ingo@647: NOTE: The transformation matrix creation needs some work to support ingo@647: charts with inverted X axis. ingo@647: ingo@647: * src/main/java/de/intevation/flys/exports/LongitudinalSectionInfoGenerator.java, ingo@647: src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionInfoGenerator.java, ingo@647: src/main/java/de/intevation/flys/exports/DurationCurveInfoGenerator.java, ingo@647: src/main/java/de/intevation/flys/exports/DischargeCurveInfoGenerator.java, ingo@647: src/main/java/de/intevation/flys/exports/ComputedDischargeCurveInfoGenerator.java: ingo@647: Concrete instances of ChartInfoGenerator that create the chart info for ingo@647: the currently supported chart types. ingo@647: ingo@647: * doc/conf/conf.xml: Registered new OutGenerators. ingo@647: ingo@646: 2011-05-31 Ingo Weinzierl ingo@646: ingo@646: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@646: Added support for the 'type' paramter of the collection's out() ingo@646: operation. ingo@646: sascha@645: 2011-05-31 Sascha L. Teichmann sascha@645: sascha@645: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, sascha@645: src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: sascha@645: Use an explicit reference km for interpolation now. sascha@645: sascha@644: 2011-05-30 Sascha L. Teichmann sascha@644: sascha@644: * doc/conf/cache.xml: Introduced cache to store the distance info per river. sascha@644: This boosts performance in following ab setup from 3.61 to 39.91 requests/secs. sascha@644: sascha@644: $ ab -c 20 -n 1000 -p distances.xml http://127.0.0.1:8181/service/distanceinfo sascha@644: sascha@644: $ cat distances.xml sascha@644: sascha@644: Elbe sascha@644: sascha@644: * src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java: Added sascha@644: an iterator result to avoid construction expensive interim lists. sascha@644: sascha@644: * src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java: Use sascha@644: the cache if configured. sascha@644: sascha@643: 2011-05-30 Sascha L. Teichmann sascha@643: sascha@643: flys/issue82 sascha@643: sascha@643: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@643: Only successful interpolations are named. sascha@643: sascha@642: 2011-05-27 Sascha L. Teichmann sascha@642: sascha@642: * src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java: sascha@642: Make it work independent of river flow direction. sascha@642: sascha@642: * src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java: sascha@642: Fixed bug in ordering segments sascha@642: sascha@642: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Re-enabled sascha@642: calculation of the back jump correction. Fixed more flow direction issues. sascha@642: ingo@641: 2011-05-27 Ingo Weinzierl ingo@641: ingo@641: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@641: Removed call of XMLDebug class which is not in the version control. ingo@641: ingo@640: 2011-05-27 Ingo Weinzierl ingo@640: ingo@640: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@640: Moved the code part that skips themes right after the part that sets the ingo@640: master artifact for the OutGenerator. We need this master artifact to ingo@640: display empty charts - master artifact is used to create titles and ingo@640: axes. ingo@640: ingo@639: 2011-05-27 Ingo Weinzierl ingo@639: ingo@639: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@639: Deactivated themes are not put into the chart. ingo@639: ingo@638: 2011-05-27 Ingo Weinzierl ingo@638: ingo@638: * src/main/java/de/intevation/flys/collections/AttributeParser.java: ingo@638: Repaired broken XPath expressions to find the output modes in an ingo@638: attribute document of a collection. ingo@638: ingo@638: * src/main/java/de/intevation/flys/collections/AttributeWriter.java: This ingo@638: writer will now create a document that has a root node art:attribute. ingo@638: Before these changes, the document's root node was art:outputs which is ingo@638: part of the attribute document but not the right root node. ingo@638: ingo@638: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@638: Adapted some XPath expressions and corrected the the process to create ingo@638: attribute documents. ingo@638: sascha@637: 2011-05-26 Sascha L. Teichmann sascha@637: sascha@637: * src/main/java/de/intevation/flys/artifacts/math/LinearRemap.java: sascha@637: Made it work independent of from/to order. sascha@637: sascha@637: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: sascha@637: Added method to extract the ranges correctly from data. sascha@637: sascha@637: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@637: Use the correct ranges. Comment out backjump detection temporarily. sascha@637: sascha@636: 2011-05-26 Sascha L. Teichmann sascha@636: sascha@636: * src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java: sascha@636: Generate fields for w/q input depend on flow direction. sascha@636: sascha@636: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@636: Moved km up question out of loop. sascha@635: 2011-05-26 Sascha L. Teichmann sascha@635: sascha@635: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@635: Take the flow direction into account. sascha@635: sascha@635: * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: sascha@635: Prevent NPE. sascha@635: sascha@635: * src/main/java/de/intevation/flys/artifacts/states/RangeState.java: sascha@635: Allow to be 'from' greater than 'to' in ranges. sascha@635: sascha@635: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Negate sascha@635: step if 'from' is greater than 'to'. sascha@635: sascha@634: 2011-05-26 Sascha L. Teichmann sascha@634: sascha@634: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: sascha@634: Round exploded values to a precision of 1e-6. sascha@634: sascha@633: 2011-05-25 Sascha L. Teichmann sascha@633: sascha@633: Qs are now stored in ranges for each column. sascha@633: sascha@633: * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory2.java: sascha@633: Deleted. sascha@633: sascha@633: * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java: sascha@633: Was WstValueTableFactory2. sascha@633: sascha@633: * src/main/java/de/intevation/flys/artifacts/model/QRangeTree.java: Fixed sascha@633: node linking bug. Removed dead code. sascha@633: sascha@633: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: sascha@633: Q values are now stored in range trees by each column. The qs of the rows sascha@633: are removed and the calculations are adjusted. Removed dead code. sascha@633: sascha@632: 2011-05-24 Sascha L. Teichmann sascha@632: sascha@632: * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java: sascha@632: Moved cache name to WstValueTableCacheKey. Do not cache null references. sascha@632: sascha@632: * src/main/java/de/intevation/flys/artifacts/model/WstValueTableCacheKey.java: sascha@632: Moved cache name into this class. sascha@632: sascha@632: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: sascha@632: Store QRangeTree for each column of value table. TODO: Use them! sascha@632: sascha@632: * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory2.java: sascha@632: Intended as a replacement for WstValueTableFactory, but is work in progress. sascha@632: sascha@632: * src/main/java/de/intevation/flys/artifacts/model/QRangeTree.java: Fixed sascha@632: index errors and added methods to dump as graphviz graph. sascha@632: ingo@631: 2011-05-24 Ingo Weinzierl ingo@631: ingo@631: * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: ingo@631: Improved the validation of WQ values. ingo@631: ingo@631: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Use the ingo@631: correct input data object to determine the selected WQ mode (range or ingo@631: single input). ingo@631: ingo@630: 2011-05-24 Ingo Weinzierl ingo@630: ingo@630: ISSUE-40 (part I/II) ingo@630: ingo@630: * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: ingo@630: Write default values (values already selected by the user before) of the ingo@630: input data items into DESCRIBE. ingo@630: ingo@629: 2011-05-24 Ingo Weinzierl ingo@629: ingo@629: * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java: ingo@629: Removed needless imports. ingo@629: ingo@629: 2011-05-24 Ingo Weinzierl ingo@628: ingo@628: ISSUE-85 (part III/III) ingo@628: ingo@628: * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java: ingo@628: Added a static function that returns the kilometer values (double[]) ingo@628: from locations input (whitespace separated double values). ingo@628: ingo@628: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Adapted ingo@628: the getKms() method. It will now return a computed array of kilometers ingo@628: if we had inserted a range, or it will return the inserted kilometers if ingo@628: we had inserted locations. ingo@628: sascha@626: 2011-05-24 Sascha L. Teichmann sascha@626: sascha@626: * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java: sascha@626: Moved cache key to separate class. sascha@626: sascha@626: * src/main/java/de/intevation/flys/artifacts/model/WstValueTableCacheKey.java: sascha@626: New. The new cache key class. sascha@626: sascha@625: 2011-05-24 Sascha L. Teichmann sascha@625: sascha@625: * src/main/java/de/intevation/flys/artifacts/model/QRangeTree.java: sascha@625: Model to store the q values of a WST column efficiently. First sascha@625: building block not to store the q values directly aside the sascha@625: w values. sascha@625: ingo@629: 2011-05-24 Ingo Weinzierl ingo@624: ingo@627: ISSUE-85 (part I/III) ingo@627: ingo@627: * doc/conf/artifacts/winfo.xml: Added two further field 'ld_mode' and ingo@627: 'ld_locations' to the range/locations state to track the selected mode ingo@627: and locations. ingo@627: ingo@627: * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java: ingo@627: Added methods to validate the user inserted locations. ingo@627: ingo@627: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a ingo@627: method to determine of a range or locations have been inserted. ingo@627: ingo@627: 2011-05-23 Ingo Weinzierl ingo@627: ingo@624: ISSUE-62 (part II/II) ingo@624: ingo@624: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Dump the ingo@624: artifacts state/data in DEBUG mode in describe(). ingo@624: ingo@624: * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, ingo@624: src/main/java/de/intevation/flys/artifacts/states/DefaultState.java, ingo@624: src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java, ingo@624: src/main/java/de/intevation/flys/artifacts/states/WQSelect.java, ingo@624: src/main/java/de/intevation/flys/artifacts/states/LocationSelect.java, ingo@624: src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java, ingo@624: src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: ingo@624: States will no longer store data. The only reason for states storing ingo@624: StateData is to know about the necessary data for this state. If a State ingo@624: needs to access the user input for a specific StateData object, it needs ingo@624: to query the FLYSArtifact which stores the data. ingo@624: ingo@623: 2011-05-23 Ingo Weinzierl ingo@623: ingo@623: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a ingo@623: method to dump the artifacts state(s)/data. ingo@623: sascha@622: 2011-05-23 Sascha L. Teichmann sascha@622: sascha@622: flys/issue84 sascha@622: sascha@622: * src/main/java/de/intevation/flys/artifacts/model/WstFactory.java: sascha@622: Forget to select wst kind. sascha@622: sascha@621: 2011-05-20 Sascha L. Teichmann sascha@621: sascha@621: flys/issue81 sascha@621: sascha@621: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: sascha@621: weights for kms were swapped. sascha@621: ingo@620: 2011-05-20 Ingo Weinzierl ingo@620: ingo@620: Tagged RELEASE 2.3.1 ingo@620: ingo@619: 2011-05-20 Ingo Weinzierl ingo@619: ingo@619: * Changes: Prepared changes for the upcoming release. ingo@619: hans@460: 2011-05-20 Hans Plum hans@460: hans@460: * NEWS: hans@460: Hint to Release 2.3.1. For further information look into module hans@460: flys-client/NEWS hans@460: sascha@459: 2011-05-19 Sascha L. Teichmann sascha@459: sascha@459: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java (getExplodedValues): sascha@459: Increment kms array size by one to take the end of range, too. sascha@459: sascha@458: 2011-05-19 Sascha L. Teichmann sascha@458: sascha@458: * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java: sascha@458: Sort by rows (should not be necessary). sascha@458: sascha@458: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: sascha@458: Use unsharp km lookup (epsilon = 0.0001). This fixes the problem sascha@458: that some kms were not found. sascha@458: ingo@457: 2011-05-19 Ingo Weinzierl ingo@457: ingo@457: flys/issue66 ingo@457: ingo@457: * src/main/resources/messages_en.properties: Fixed broken template. ingo@457: ingo@456: 2011-05-19 Ingo Weinzierl ingo@456: ingo@456: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: ingo@456: Set the name of the computed discharge curve objects. ingo@456: ingo@456: * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: ingo@456: The curves of this chart will now have names that consist of the word ingo@456: 'Discharge Curve', the river name and the kilometer that has been used ingo@456: for the computation. ingo@456: ingo@456: * src/main/resources/messages.properties, ingo@456: src/main/resources/messages_de_DE.properties, ingo@456: src/main/resources/messages_en.properties, ingo@456: src/main/resources/messages_de.properties: Added i18n strings for the ingo@456: computed discharge curves. ingo@456: sascha@455: 2011-05-19 Sascha L. Teichmann sascha@455: sascha@455: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: sascha@455: Added convenience method isQ() to determine if we are sascha@455: doing Q calculations. sascha@455: sascha@455: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@455: Reintroduced titles for the "W for unausgeglichene Abfluesse". sascha@455: ingo@454: 2011-05-19 Ingo Weinzierl ingo@454: ingo@454: * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: ingo@454: The curves will now have names that consist of the gauge name and its ingo@454: valid time range. ingo@454: ingo@454: * src/main/resources/messages.properties, ingo@454: src/main/resources/messages_de_DE.properties, ingo@454: src/main/resources/messages_en.properties, ingo@454: src/main/resources/messages_de.properties: Added i18n strings for the ingo@454: discharge curves. ingo@454: sascha@453: 2011-05-19 Sascha L. Teichmann sascha@453: sascha@453: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@453: Removed dead code. sascha@453: sascha@452: 2011-05-19 Sascha L. Teichmann sascha@452: sascha@452: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@452: Use the correct method to generate kms. sascha@452: sascha@452: * src/main/java/de/intevation/flys/artifacts/math/LinearRemap.java: sascha@452: Added some logging to test the map in debug mode. sascha@452: sascha@451: 2011-05-18 Sascha L. Teichmann sascha@451: sascha@451: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: sascha@451: Made getExplodedValues static. sascha@451: sascha@451: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@451: Use new logic to calculate "W für ungleichwertige Abfluesse". sascha@451: Not working, yet. sascha@451: sascha@451: * ChangeLog: Fixed former entry. sascha@451: ingo@450: 2011-05-18 Ingo Weinzierl ingo@450: ingo@450: * doc/conf/artifacts/winfo.xml: Registered the WST export for discharge ingo@450: longitudinal sections. ingo@450: ingo@450: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Set the ingo@450: names of the discharge longitudinal section computation results. ingo@450: ingo@450: * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java: ingo@450: The W/Q curves in the chart will now have names. ingo@450: ingo@450: * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: ingo@450: The WstWriter is filled with column names in an own method. So, we are ingo@450: able to override this process in subclasses. ingo@450: ingo@450: * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java: ingo@450: Adapted the column names for the WST export. ingo@450: sascha@451: 2011-05-18 Sascha L. Teichmann sascha@451: sascha@451: Work on flys/issue69 sascha@451: sascha@451: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@451: Use new logic to calculate "Wasserstand/Wasserspiegellage". sascha@451: Compared to desktop FLYS are the results are structurally right sascha@451: but a bit off in the positions after the decimal points. sascha@451: Maybe a result of the interpolation? Need to debug this. sascha@449: ingo@448: 2011-05-18 Ingo Weinzierl ingo@448: ingo@448: * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: ingo@448: W and Q curves will now have names based on the defined W or Q values ingo@448: for the waterlevel computation. ingo@448: ingo@447: 2011-05-18 Ingo Weinzierl ingo@447: ingo@447: * src/main/java/de/intevation/flys/artifacts/model/NamedObject.java: ingo@447: New. This object is used to give objects a name. ingo@447: ingo@447: * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Inherit ingo@447: from NamedObject now. Because we need to display names for those objects ingo@447: in different places. ingo@447: ingo@447: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The WQKms ingo@447: objects returned by a waterlevel computation will now have names. ingo@447: ingo@447: * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: ingo@447: Insert the column names for the WSTs into the WstWriter. ingo@447: ingo@447: * src/main/java/de/intevation/flys/exports/WstWriter.java: The column ingo@447: names are written into the head of the WSTs now. ingo@447: ingo@446: 2011-05-17 Ingo Weinzierl ingo@446: ingo@446: * src/main/java/de/intevation/flys/artifacts/model/WstLine.java: New. This ingo@446: class is used to store the W/Q values of a specific kilometer of a WST. ingo@446: ingo@446: * src/main/java/de/intevation/flys/exports/WstWriter.java: New. A writer ingo@446: that creates WSTs. ingo@446: ingo@446: TODO: The header of the WSTs is not finished. The Q descriptions are ingo@446: missing. ingo@446: ingo@446: * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: ingo@446: Enabled WST exports. ingo@446: ingo@446: * doc/conf/artifacts/winfo.xml: Registered the WST export for waterlevels. ingo@446: ingo@445: 2011-05-17 Ingo Weinzierl ingo@445: ingo@445: * src/main/java/de/intevation/flys/utils/Formatter.java: New. This class ingo@445: supports functions to retrieve formatters for specific types of data ingo@445: used in FLYS. ingo@445: ingo@445: * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java, ingo@445: src/main/java/de/intevation/flys/exports/DurationCurveExporter.java, ingo@445: src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java, ingo@445: src/main/java/de/intevation/flys/exports/AbstractExporter.java: ingo@445: Removed the formatter declaration - the whole formatter stuff is done in ingo@445: Formatter now. ingo@445: ingo@444: 2011-05-17 Ingo Weinzierl ingo@444: ingo@444: ISSUE-72 ingo@444: ingo@444: * src/main/java/de/intevation/flys/artifacts/services/MainValuesService.java: ingo@444: Repaired broken XPath expressions to extract start and end kilometer. ingo@444: sascha@443: 2011-05-17 Sascha L. Teichmann sascha@443: sascha@443: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: sascha@443: Removed the Hibernate loading stuff. sascha@443: sascha@443: * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java: sascha@443: New. The Hibernate loading. sascha@443: sascha@443: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@443: Use the WstValueTableFactory for loading now. sascha@443: ingo@442: 2011-05-17 Ingo Weinzierl ingo@442: hans@460: Tagged RELEASE 0.1 aka Version 2.3.0 ingo@442: hans@428: 2011-05-16 Hans Plum hans@428: hans@428: * NEWS: hans@428: New. Giving some user specific perspective to new functionality and hans@428: changes. This file references releases dates only; details can be find hans@428: in the client module at flys-client. hans@428: sascha@427: 2011-05-10 Sascha L. Teichmann sascha@427: sascha@427: First step to calculate "W fuer ungleichwertige Abfluesse" correctly. sascha@427: flys/issue55 sascha@427: sascha@427: * src/main/java/de/intevation/flys/artifacts/math/LinearRemap.java: sascha@427: New. Remaps "gleichwertige" Q values to the corresponding sascha@427: "ungleichwertige" Q values depending on km. sascha@427: sascha@427: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: sascha@427: Remap the Q values "ungleichwertig" depending on the sascha@427: "gleichwertige" ones. sascha@427: sascha@426: 2011-05-10 Sascha L. Teichmann sascha@426: sascha@426: First step to fix flys/issue69 sascha@426: sascha@426: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: sascha@426: New code path to implement the calculation of "Wasserstand/Wasspiegellage" sascha@426: correctly. TODO 1: Use new path in UI. TODO 2: Remove unused old code. sascha@426: ingo@425: 2011-05-13 Ingo Weinzierl ingo@425: ingo@425: * Changes: Prepared Changes for the upcoming release 2.3 - see Changes ingo@425: file to get to know about the changes of the version numbers. ingo@425: ingo@424: 2011-05-13 Ingo Weinzierl ingo@424: ingo@424: ISSUE-37 ingo@424: ingo@424: * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: This ingo@424: state would be happy if there is a UI provider called "river_panel". ingo@424: ingo@423: 2011-05-11 Ingo Weinzierl ingo@423: ingo@423: * src/main/java/de/intevation/flys/exports/ChartGenerator.java: Added new ingo@423: methods that return the requested chart size as integer array [width, ingo@423: height]. The requested size is read from the incomding request document. ingo@423: ingo@423: * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: The size ingo@423: of a chart is no longer static. The requested size is fetched using ingo@423: ChartGenerator.getSize(). ingo@423: ingo@422: 2011-05-11 Ingo Weinzierl ingo@422: ingo@422: ISSUE-52 ingo@422: ingo@422: * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: ingo@422: The X-Axis of such a chart is inverted, if the head of the river is not ingo@422: at kilometer 0. This type of charts always have the head of the river at ingo@422: the left side. ingo@422: sascha@421: 2011-05-10 Sascha L. Teichmann sascha@421: sascha@421: * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: sascha@421: Make incoming XML symmetric to DistanceInfoService. sascha@421: ingo@420: 2011-05-10 Ingo Weinzierl ingo@420: ingo@420: ISSUE-47 ingo@420: ingo@420: * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, ingo@420: src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, ingo@420: src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: ingo@420: Adjusted temporarily the color of the W, Q and corrected W curves to ingo@420: distinguish each other. ingo@420: ingo@419: 2011-05-10 Ingo Weinzierl ingo@419: ingo@419: * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: ingo@419: Adjusted the plot of xy charts - the gridlines are displayed now. ingo@419: ingo@418: 2011-05-10 Ingo Weinzierl ingo@418: ingo@418: ISSUE-53 ingo@418: ingo@418: * src/main/java/de/intevation/flys/artifacts/resources/Resources.java: ingo@418: Added a method that returns the preferred locale based on the available ingo@418: locales of the server and the desired locales of the request (CallMeta). ingo@418: ingo@418: * src/main/java/de/intevation/flys/exports/AbstractExporter.java: Added a ingo@418: method that creates a number formatter with minimum and maximum digits. ingo@418: ingo@418: * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java, ingo@418: src/main/java/de/intevation/flys/exports/WaterlevelExporter.java, ingo@418: src/main/java/de/intevation/flys/exports/DurationCurveExporter.java, ingo@418: src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java: ingo@418: Formatted the number values of the CSV exports. ingo@418: ingo@417: 2011-05-10 Ingo Weinzierl ingo@417: ingo@417: * src/main/java/de/intevation/flys/artifacts/model/RangeWithValues.java: ingo@417: New. A data structure that enables us to save a data triple: a range ingo@417: that consist of lower and upper double value and a set of values that ingo@417: belong to this range. ingo@417: ingo@417: * src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java: ingo@417: Implemented the validation of W/Q values. ingo@417: ingo@416: 2011-05-10 Ingo Weinzierl ingo@416: ingo@416: * src/main/java/de/intevation/flys/exports/AbstractExporter.java: New ingo@416: method to retrieve i18n messages based on keys. ingo@416: ingo@416: * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java, ingo@416: src/main/java/de/intevation/flys/exports/WaterlevelExporter.java, ingo@416: src/main/java/de/intevation/flys/exports/DurationCurveExporter.java, ingo@416: src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java: ingo@416: Added headers for CSV exports. ingo@416: ingo@416: * src/main/resources/messages.properties, ingo@416: src/main/resources/messages_de_DE.properties, ingo@416: src/main/resources/messages_en.properties, ingo@416: src/main/resources/messages_de.properties: Added new i18n strings for ingo@416: CSV headers. ingo@416: sascha@415: 2011-05-10 Sascha L. Teichmann sascha@415: sascha@415: * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: sascha@415: Fetches river name from incoming XML document. If no river is given all sascha@415: infos about all rivers are listed. sascha@415: sascha@415: * src/main/resources/metadata/template.xml: Templates honors the 'river' sascha@415: parameter. sascha@415: sascha@415: * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: sascha@415: Extended to pass parameters to the templating. Added support for sascha@415: type conversion. sascha@415: sascha@415: * src/main/java/de/intevation/flys/artifacts/services/meta/StackFrames.java: sascha@415: Take parameters as an initial stack frame. sascha@415: sascha@415: * src/main/java/de/intevation/flys/artifacts/services/meta/TypeConverter.java: sascha@415: New. Converts types off stacked variables. sascha@415: ingo@414: 2011-05-10 Ingo Weinzierl ingo@414: ingo@414: * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Added a ingo@414: method to add subtitles to charts. The implementation in this class does ingo@414: not add any subtitle. Concrete subclasses may override this method to ingo@414: add some. ingo@414: ingo@414: * src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, ingo@414: src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, ingo@414: src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: ingo@414: Add subtitles to charts. ingo@414: ingo@414: * src/main/resources/messages.properties, ingo@414: src/main/resources/messages_de_DE.properties, ingo@414: src/main/resources/messages_en.properties, ingo@414: src/main/resources/messages_de.properties: Added i18n templates for ingo@414: compound messages (chart subtitles). ingo@414: ingo@413: 2011-05-10 Ingo Weinzierl ingo@413: ingo@413: * src/main/java/de/intevation/flys/artifacts/resources/Resources.java: ingo@413: Added new methods to retrieve translated compound messages. ingo@413: ingo@412: 2011-05-10 Ingo Weinzierl ingo@412: ingo@412: * src/main/java/de/intevation/flys/exports/OutGenerator.java: Added a ingo@412: method to set the master artifact that should be used for some special ingo@412: operations. ingo@412: ingo@412: * src/main/java/de/intevation/flys/exports/ChartGenerator.java, ingo@412: src/main/java/de/intevation/flys/exports/AbstractExporter.java: ingo@412: Implement the setMasterArtifact() method of the interface. ingo@412: ingo@412: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@412: Call OutGenerator.setMasterArtifact(). ingo@412: ingo@412: NOTE: The determination of the master artifact needs to be implemented! ingo@412: ingo@411: 2011-05-10 Ingo Weinzierl ingo@411: ingo@411: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Removed ingo@411: hard coded dev code that defined a WQ mode. ingo@411: sascha@410: 2011-05-09 Sascha L. Teichmann sascha@410: sascha@410: * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: sascha@410: Stripped ugly extra whitespace from output introduced by sascha@410: templating. sascha@410: sascha@409: 2011-05-09 Sascha L. Teichmann sascha@409: sascha@409: * src/main/resources/metadata/template.xml: Added forgotten sascha@409: columns of fixation WSTs. sascha@409: ingo@408: 2011-05-09 Ingo Weinzierl ingo@408: ingo@408: * src/main/java/de/intevation/flys/exports/ChartGenerator.java: Added a ingo@408: method to retrieve i18n strings. ingo@408: ingo@408: * src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, ingo@408: src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, ingo@408: src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, ingo@408: src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: ingo@408: Enabled i18n support for chart title and axes labels. ingo@408: ingo@408: * src/main/resources/messages.properties, ingo@408: src/main/resources/messages_de_DE.properties, ingo@408: src/main/resources/messages_en.properties, ingo@408: src/main/resources/messages_de.properties: Added i18n strings for the ingo@408: chart types above. ingo@408: ingo@407: 2011-05-09 Ingo Weinzierl ingo@407: ingo@407: * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java: ingo@407: New. This OutGenerator exports the data of a discharge longitudinal ingo@407: section computation. ingo@407: ingo@407: * doc/conf/conf.xml: Added the DischargeLongitudinalSectionExporter. ingo@407: ingo@407: * doc/conf/artifacts/winfo.xml: Added the exporter with CSV facet to the ingo@407: discharge_longitudinal_section state. ingo@407: sascha@406: 2011-05-07 Sascha L. Teichmann sascha@406: sascha@406: * src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java: sascha@406: Added code to make back jump correction work with both sascha@406: potential flow directions. sascha@406: sascha@405: 2011-05-06 Sascha L. Teichmann sascha@405: sascha@405: * src/main/resources/metadata/template.xml: sascha@405: Added data cage configuration for 'Längsschnitt'. sascha@405: ingo@402: 2011-05-06 Ingo Weinzierl ingo@402: ingo@402: * doc/conf/artifacts/winfo.xml: Added the missing Q facet for discharge ingo@402: longitudinal sections. ingo@402: ingo@402: * src/main/java/de/intevation/flys/artifacts/model/WQCKms.java: New. A ingo@402: derived dataset to store W/Q values with corrected Ws for a kilometer ingo@402: range. ingo@402: ingo@402: * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Some new ingo@402: methods and a new constructor to initialize this data object with a ingo@402: predefined set of values. ingo@402: ingo@402: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: New ingo@402: methods to retrieve the W/Q values for the 'discharge longitudinal ingo@402: section' computation. ingo@402: ingo@402: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: New ingo@402: methods to retrieve and compute data used for the 'discharge ingo@402: longitudinal section' computation. ingo@402: ingo@401: 2011-05-05 Ingo Weinzierl ingo@401: ingo@401: * src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java: ingo@401: Bugfix: just write the ranges of gauges into the DESCRIBE if the ingo@401: 'wq_values' data item is required. ingo@401: ingo@401: * src/main/resources/messages.properties, ingo@401: src/main/resources/messages_de_DE.properties, ingo@401: src/main/resources/messages_en.properties, ingo@401: src/main/resources/messages_de.properties: Added i18n messages used in ingo@401: the DESCRIBE of the WQAdapted state. ingo@401: ingo@400: 2011-05-05 Ingo Weinzierl ingo@400: ingo@400: * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: ingo@400: Changed the title of the y-axis (now 'W [NN+m]'). ingo@400: ingo@399: 2011-05-05 Ingo Weinzierl ingo@399: ingo@399: * doc/conf/artifacts/winfo.xml: Improved the transition model to reach the ingo@399: output state for creating 'discharge longitudinal section' charts. ingo@399: ingo@399: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a ingo@399: method that returns all gauges of the selected river based on a the ingo@399: given kilometer range. ingo@399: ingo@399: * src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java: New. ingo@399: This state creates a set of elements for the DESCRIBE that consist of a ingo@399: tuple of kilometer values. The number of elements depend on the number ingo@399: of gauges intersected by the given kilometer range. ingo@399: ingo@399: * src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java: ingo@399: New. This state is the output state that is reached after the 'discharge ingo@399: longitudinal section' computation has been chosen. ingo@399: ingo@398: 2011-05-05 Ingo Weinzierl ingo@398: ingo@398: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Default ingo@398: step width between two kilometers added - if no step width is given, ingo@398: this default width is used. ingo@398: ingo@397: 2011-05-05 Ingo Weinzierl ingo@397: ingo@397: * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: ingo@397: Fixed a potential NullPointerException if there is just a single ingo@397: kilometer given to create a longitudinal section. ingo@397: sascha@396: 2011-05-04 Sascha L. Teichmann sascha@396: sascha@396: * pom.xml: Added http://repository.jboss.org/maven2 repo sascha@396: to fix flys/issue30 sascha@396: sascha@396: 2011-05-04 Sascha L. Teichmann sascha@395: sascha@395: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: sascha@395: To make diagram generation possible ws are now generated from qs sascha@395: because they are many ws having different qs. sascha@395: ingo@394: 2011-05-04 Ingo Weinzierl ingo@394: ingo@394: * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java: ingo@394: Fetch the WQ data from WINFO artifact and write those values into the ingo@394: CSV export. ingo@394: ingo@393: 2011-05-04 Ingo Weinzierl ingo@393: ingo@393: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Added ingo@393: methods to compute and retrieve the data for discharge curves (computed). ingo@393: ingo@393: * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: ingo@393: Fetch the computed discharge curve data from WINFOArtifact and add the ingo@393: values into the JFreeChart dataset. ingo@393: ingo@392: 2011-05-04 Ingo Weinzierl ingo@392: ingo@392: * doc/conf/artifacts/winfo.xml: Added new transitions and states to enable ingo@392: the WINFO artifact for computing discharge curves. ingo@392: ingo@392: * doc/conf/conf.xml: Added OutGenerators that generate computed discharge ingo@392: curves and exports for its data. ingo@392: ingo@392: * src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java: ingo@392: New. This state is reached if the user chose the computed discharge ingo@392: curve. ingo@392: ingo@392: * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: ingo@392: New. This is only a stub implementation at the moment. This ingo@392: OutGenerator should create computed discharge curves later. It extends ingo@392: the DischargeCurveGenerator which should do the same stuff for discharge ingo@392: curves for gauges. ingo@392: ingo@392: * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java: ingo@392: New. This is only a stub implementation at the moment. This OutGenerator ingo@392: should create the exports of the discharge curve computation. ingo@392: ingo@391: 2011-05-03 Ingo Weinzierl ingo@391: ingo@391: * doc/conf/artifacts/winfo.xml: Added a new output mode for the duration ingo@391: curve state (CSV export). ingo@391: ingo@391: * doc/conf/conf.xml: Added a new OutGenerator to export duration curve ingo@391: computations. ingo@391: ingo@391: * src/main/java/de/intevation/flys/exports/AbstractExporter.java: New. ingo@391: This abstract OutGenerator represents the base class for exporting ingo@391: computed data. Currently, the CSV export is supported. ingo@391: ingo@391: * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: Moved ingo@391: the most code to export to CSV into the AbstractExporter. ingo@391: ingo@391: * src/main/java/de/intevation/flys/exports/DurationCurveExporter.java: ingo@391: New. This exporter exports the computed data of a duration computation. ingo@391: ingo@390: 2011-05-03 Ingo Weinzierl ingo@390: ingo@390: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@390: Modified a wrong debug statement which would confuse the user. ingo@390: ingo@389: 2011-05-03 Ingo Weinzierl ingo@389: ingo@389: * doc/conf/artifacts/winfo.xml: Added a new output mode for the waterlevel ingo@389: state (CSV export). ingo@389: ingo@389: * doc/conf/conf.xml: Added a new OutGenerator to export waterlevels. ingo@389: ingo@389: * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: New. ingo@389: This OutGenerator exports the data of a waterlevel computation. Note: ingo@389: It is necessary to specify the desired facet (e.g. ingo@389: 'waterlevel_export.csv'). ingo@389: ingo@389: * pom.xml: Added a dependency to OpenCSV. ingo@389: ingo@388: 2011-05-03 Ingo Weinzierl ingo@388: ingo@388: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@388: Introduced an "export" output target. If the target is "export", a ingo@388: facet (read from the incoming xml document) is a necessary parameter ingo@388: that determines which facets are written to the output. ingo@388: ingo@387: 2011-05-03 Ingo Weinzierl ingo@387: ingo@387: * src/main/resources/messages_en.properties: Bugfix: replaced german ingo@387: string (copy & paste mistake). ingo@387: ingo@386: 2011-05-03 Ingo Weinzierl ingo@386: ingo@386: * src/main/resources/messages.properties, ingo@386: src/main/resources/messages_de_DE.properties, ingo@386: src/main/resources/messages_en.properties, ingo@386: src/main/resources/messages_de.properties: Added new i18n strings for ingo@386: for the location selection. ingo@386: ingo@385: 2011-05-03 Ingo Weinzierl ingo@385: ingo@385: * src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java: ingo@385: New. An OutGenerator for creating duration curves. ingo@385: ingo@385: * src/main/java/de/intevation/flys/artifacts/model/WQDay.java: New. A ingo@385: model class to store necessary data for creating W and Q facets of a ingo@385: duration curve. This model stores W, Q and Days. ingo@385: ingo@385: * src/main/java/de/intevation/flys/artifacts/model/MainValuesFactory.java: ingo@385: Added a function to retrieve tuples of (day, q) based on a given gauge - ingo@385: these tuples are necessary for creating duration curves. ingo@385: ingo@385: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Added ingo@385: methods to compute and retrieve the data necessary for creating duration ingo@385: curves. ingo@385: ingo@385: * src/main/java/de/intevation/flys/artifacts/states/LocationSelect.java: ingo@385: Bugfix: improved the access to the location array (avoid ingo@385: NullPointerException). ingo@385: ingo@385: * doc/conf/conf.xml: Registered the new OutGenerator for duration curves. ingo@385: sascha@384: 2011-05-03 Sascha L. Teichmann sascha@384: sascha@384: * contrib/visualize-transitions.xsl: State quoting was done wrong. sascha@384: ingo@383: 2011-05-02 Ingo Weinzierl ingo@383: ingo@383: * doc/conf/artifacts/winfo.xml: Enhanced the transition model to reach the ingo@383: final state for creating duration curves. ingo@383: ingo@383: * src/main/java/de/intevation/flys/artifacts/states/LocationSelect.java: ingo@383: New. This state should be reached to just insert an array of locations. ingo@383: ingo@383: * src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java: ingo@383: New. This state is reached if the duration curve calculation is ingo@383: selected. ingo@383: ingo@383: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Adjusted ingo@383: getDistance() so that it takes care on inserted locations - not just ingo@383: inserted ranges. ingo@383: sascha@382: 2011-05-02 Sascha L. Teichmann sascha@382: sascha@382: * src/main/java/de/intevation/flys/artifacts/cache/CacheFactory.java: sascha@382: Flush/persist caches at program exists. sascha@382: sascha@382: * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: sascha@382: Commented out too eloquent debug output. sascha@382: ingo@381: 2011-05-02 Ingo Weinzierl ingo@381: ingo@381: * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: ingo@381: Uses the methods of FLYSArtifact to retrieve the necessary information ingo@381: rivername and selected distance. ingo@381: sascha@380: 2011-05-02 Sascha L. Teichmann sascha@380: sascha@380: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: sascha@380: Added interpolateW method to take reference to result ws array sascha@380: as an argument to avoid expensive array allocations in km iterating sascha@380: loops. sascha@380: sascha@380: * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: sascha@380: Added a constructor to create backing trove datastructure sascha@380: with the right capacity. sascha@380: sascha@380: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: sascha@380: Move allocation of result ws out of km loop. sascha@380: ingo@379: 2011-05-02 Ingo Weinzierl ingo@379: ingo@379: * doc/conf/artifacts/winfo.xml: Added two further data items in the WQ ingo@379: selection state. Those items are necessary to store the information ingo@379: about the selected mode (range/single selection) and the values of the ingo@379: single selection. ingo@379: ingo@379: * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: If ingo@379: there is no value for a data item, this item is not written into the ingo@379: static DESCRIBE part. ingo@379: ingo@379: * src/main/java/de/intevation/flys/artifacts/states/RangeState.java, ingo@379: src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java: ingo@379: Renamed the method to validate upper and lower values. ingo@379: ingo@379: * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: This ingo@379: state can now handle values inserted in the single selection. Therefore, ingo@379: new validate methods has been added. ingo@379: ingo@379: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: The ingo@379: methods getWs() and getWs() take care on the values inserted in the ingo@379: single insert mode of the client which enables the user to insert single ingo@379: W and Q. ingo@379: sascha@378: 2011-05-02 Sascha L. Teichmann sascha@378: sascha@378: * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: sascha@378: Repaired getQForW() by calculating indices on right dimension. sascha@378: ingo@377: 2011-05-02 Ingo Weinzierl ingo@377: ingo@377: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: New ingo@377: methods for retrieving selected W values (getWs()). ingo@377: ingo@377: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The ingo@377: method for retrieving waterlevel data takes care on selected Ws, now. ingo@377: The selected Ws are transformed using the DischargeTables.getQForW() ingo@377: into Q values. ingo@377: ingo@376: 2011-05-02 Ingo Weinzierl ingo@376: ingo@376: * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: ingo@376: Removed an unused parameter 'result' of getQForW(). ingo@376: ingo@375: 2011-05-02 Ingo Weinzierl ingo@375: ingo@375: * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Removed ingo@375: the getDataset() method and replaced it with a addDataset() method. ingo@375: On this way, concrete subclasses of this OutGenerator can have multiple ingo@375: datasets (e.g. different datasets for W and Q). This abstract method is ingo@375: called after the chart generation is finished. ingo@375: ingo@375: * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, ingo@375: src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: ingo@375: Both classes implement the addDataset() method. The ingo@375: LongitudinalSectionGenerator has already multiple datasets for W and Q. ingo@375: Both are added to the chart - both have an own range axis. ingo@375: sascha@374: 2011-05-01 Sascha L. Teichmann sascha@374: sascha@374: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: sascha@374: Use the cache for the wst value table if configured. sascha@374: sascha@374: * doc/conf/cache.xml: Choose a more precise name for the sascha@374: wst value table cache. sascha@374: sascha@373: 2011-04-29 Sascha L. Teichmann sascha@373: sascha@373: * pom.xml: Added dependency to Ehcache. Apache 2.0 license. sascha@373: sascha@373: * doc/conf/conf.xml: Added configuration of ehcache. sascha@373: sascha@373: * doc/conf/cache.xml: New. Cache configurations. sascha@373: sascha@373: * src/main/java/de/intevation/flys/artifacts/cache/CacheFactory.java: sascha@373: New. Factory to access caches. sascha@373: sascha@372: 2011-04-29 Sascha L. Teichmann sascha@372: sascha@372: * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: sascha@372: Forgot to add. sascha@372: sascha@372: * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: sascha@372: New. Given a database connection and a XML template it generates sascha@372: an output with meta data about the database. sascha@372: sascha@372: * src/main/java/de/intevation/flys/artifacts/services/meta/CompiledStatement.java: sascha@372: New. Holds prepared statements optimized to be run in the stack of sascha@372: contextes. sascha@372: sascha@372: * src/main/java/de/intevation/flys/artifacts/services/meta/StackFrames.java: sascha@372: New. Model to hold a hierarchical scope of variables. sascha@372: sascha@372: * src/main/java/de/intevation/flys/artifacts/services/meta/ResultData.java: sascha@372: New. Stores data set fetched from a sql select to be iterated in sascha@372: a context. sascha@372: sascha@372: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java, sascha@372: src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: sascha@372: Removed superfluous imports. sascha@372: sascha@371: 2011-04-29 Sascha L. Teichmann sascha@371: sascha@371: * doc/conf/conf.xml: Added meta data service. sascha@371: sascha@371: * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: sascha@371: Stub for the meta data service. sascha@371: sascha@371: * src/main/resources/metadata/template.xml: Initial template for sascha@371: the meta data service. sascha@371: ingo@370: 2011-04-29 Ingo Weinzierl ingo@370: ingo@370: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@370: Bugfix: Now, curves for Q values are drawn into a longitudinal section ingo@370: chart as well. Therefore, it was necessary to change the datastructure ingo@370: of the inner class ThemeList that stores all themes included in a chart ingo@370: in an ordered list (stored in a java.util.Vector now). ingo@370: ingo@369: 2011-04-29 Ingo Weinzierl ingo@369: ingo@369: * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: New. An ingo@369: abstract base class for ChartGenerators that create XY charts. ingo@369: ingo@369: * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: ingo@369: Sourced the generate() method out to the XYChartGenerator. ingo@369: ingo@369: * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: ingo@369: Implemented the methods to add W and Q facets to the chart. ingo@369: ingo@368: 2011-04-29 Ingo Weinzierl ingo@368: ingo@368: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Improved ingo@368: the calculation of the step with for ranges. ingo@368: ingo@367: 2011-04-29 Ingo Weinzierl ingo@367: ingo@367: * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Added a ingo@367: method that returns the number of elements stored in the data pool. ingo@367: sascha@366: 2011-04-29 Sascha L. Teichmann sascha@366: sascha@366: * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: sascha@366: Added a get() method which takes destination array as an sascha@366: argument. sascha@366: ingo@365: 2011-04-29 Ingo Weinzierl ingo@365: ingo@365: * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Changed the ingo@365: data structure to store w, q and kms values from List to ingo@365: TDoubleArrayList which stores native double values instead of big ingo@365: Double values. ingo@365: ingo@365: * pom.xml: Added the GNU Trove dependency. ingo@365: ingo@364: 2011-04-29 Ingo Weinzierl ingo@364: ingo@364: * src/main/java/de/intevation/flys/exports/OutGenerator.java: Added the ingo@364: name a the requested facet to doOut(). Concrete generators should just ingo@364: create output for this facet now. ingo@364: ingo@364: * src/main/java/de/intevation/flys/exports/ChartGenerator.java, ingo@364: src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, ingo@364: src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: ingo@364: Adapted the method signature of doOut(). ingo@364: ingo@364: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@364: Adapted the method call of OutGenerator.doOut(). ingo@364: ingo@363: 2011-04-29 Ingo Weinzierl ingo@363: ingo@363: * doc/conf/themes.xml: Added mappings for the facets ingo@363: longitudinal.section.w and longitudinal.section.q. ingo@363: ingo@362: 2011-04-29 Ingo Weinzierl ingo@362: ingo@362: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added some ingo@362: methods to retrieve necessary information for computing the data of a ingo@362: waterlevel. ingo@362: ingo@362: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Added ingo@362: methods to compute and retrieve the data of a waterlevel computation. ingo@362: ingo@361: 2011-04-29 Ingo Weinzierl ingo@361: ingo@361: * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: New. This ingo@361: model class represents a pool of data triples that consist of W, Q and ingo@361: Kms information. This class might be used to compute data for creating ingo@361: longitudinal section curves (which are based on those W, Q and Kms ingo@361: values). ingo@361: ingo@360: 2011-04-29 Ingo Weinzierl ingo@360: ingo@360: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: ingo@360: Bugfix: Removed endless loop and a bug while iterating over Hibernate ingo@360: results. ingo@360: ingo@359: 2011-04-28 Ingo Weinzierl ingo@359: ingo@359: * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: ingo@359: New. An OutGenerator that creates longitudinal section curves. ingo@359: ingo@359: NOTE: This is just the stub - the out creation needs to be implemented! ingo@359: ingo@359: * doc/conf/conf.xml: Added the LongitudinalSectionGenerator. ingo@359: ingo@358: 2011-04-28 Ingo Weinzierl ingo@358: ingo@358: * doc/conf/conf.xml: Bugfix: Added missing section. ingo@358: ingo@357: 2011-04-28 Ingo Weinzierl ingo@357: ingo@357: * src/main/java/de/intevation/flys/artifacts/WaterlevelState.java: New. ingo@357: This state should be reached if the 'calc.surface.curve' calculation ingo@357: method has been chosen. ingo@357: ingo@357: * doc/conf/artifacts/winfo.xml: Modified a transition and added the ingo@357: WaterlevelState. This state is reached if the 'calc.surface.curve' ingo@357: calculation method has been chosen. It currently has 1 output - a ingo@357: longitudinal section that is not implemented yet! ingo@357: ingo@356: 2011-04-28 Ingo Weinzierl ingo@356: ingo@356: * src/main/java/de/intevation/flys/artifacts/transitions/ValueCompareTransition.java: ingo@356: New. This transition is valid if the a data object of the current ingo@356: artifact equals/notequals a configured value in the transition model. ingo@356: ingo@355: 2011-04-28 Ingo Weinzierl ingo@355: ingo@355: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, ingo@355: src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Bugfixes: ingo@355: - Adapted the parameters of the isStateReachable() call - added the ingo@355: artifact and the current state. ingo@355: - Append the outputs of a current state if the state is filled with ingo@355: valid data. ingo@355: ingo@354: 2011-04-28 Ingo Weinzierl ingo@354: ingo@354: * src/main/java/de/intevation/flys/artifacts/transitions/DefaultTransition.java: ingo@354: Added the missing init() method that has been introduced in the ingo@354: interface some commits ealier. ingo@354: ingo@354: * src/main/java/de/intevation/flys/artifacts/transitions/TransitionFactory.java: ingo@354: Call init() after a Transition has been created. ingo@354: ingo@353: 2011-04-28 Ingo Weinzierl ingo@353: ingo@353: * src/main/java/de/intevation/flys/collections/AttributeWriter.java: ingo@353: Bugfix: Introduced a node in the attribute document of a ingo@353: Collection that contains further nodes - instead of having ingo@353: multiple nodes at toplevel of the document. ingo@353: ingo@353: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@353: Adapted the XPath to retrieve the outputs in the attribute document of a ingo@353: Collection. ingo@353: sascha@351: 2011-04-28 Sascha L. Teichmann sascha@351: sascha@351: * contrib/visualize-transitions.xsl: Added to create a sascha@351: Graphviz digraph out of the config.xml. Usage: sascha@351: sascha@351: $ xsltproc --stringparam base-dir ../doc/conf/ \ sascha@351: contrib/visualize-transitions.xsl \ sascha@351: doc/conf/conf.xml > transitions.dot sascha@351: sascha@351: $ dot -Tsvg -o transitions.svg transitions.dot sascha@351: ingo@350: 2011-04-28 Ingo Weinzierl ingo@350: ingo@352: * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, ingo@352: src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: ingo@352: If no data has been inserted so far, an IllegalArgumentException is ingo@352: thrown. ingo@352: ingo@352: 2011-04-28 Ingo Weinzierl ingo@352: ingo@350: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:: ingo@350: A lot of new methods to retrieve the theme of a facet - used while ingo@350: creating the output of a facet/artifact. If a facet has no theme yet, it ingo@350: is initialized. ingo@350: ingo@349: 2011-04-27 Ingo Weinzierl ingo@349: ingo@349: * src/main/java/de/intevation/flys/collections/AttributeParser.java, ingo@349: src/main/java/de/intevation/flys/collections/OutputParser.java: Removed ingo@349: useless imports. ingo@349: ingo@348: 2011-04-27 Ingo Weinzierl ingo@348: ingo@348: * src/main/java/de/intevation/flys/exports/ChartGenerator.java: New. An ingo@348: abstract OutGenerator that might be used to create chart output. Some ingo@348: basic things that are equal in all charts should be done here! ingo@348: ingo@348: * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: ingo@348: This OutGenerator no longer implements the OutGenerator directly, but it ingo@348: extends the ChartGenerator now. ingo@348: ingo@347: 2011-04-27 Ingo Weinzierl ingo@347: ingo@347: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@347: Restructured the out() operation of a collection: Now, we collect a list ingo@347: of artifacts/facets and use this for the OutGenerator. Its doOut() ingo@347: method gets the attribute of an artifact - the position and the active ingo@347: state is managed by the Collection itself. ingo@347: ingo@346: 2011-04-26 Ingo Weinzierl ingo@346: ingo@346: * src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java: New. ingo@346: a specialized facet that stores information about its position and its ingo@346: state (active/inactive) in an output of a collection. ingo@346: ingo@346: * src/main/java/de/intevation/flys/collections/AttributeParser.java: New. ingo@346: This parser takes the attributes (XML) of a collection and extracts the ingo@346: contained outputs with its facets. The result is a Map. ingo@346: ingo@346: * src/main/java/de/intevation/flys/collections/OutputParser.java: New. ingo@346: This parser is used to query the artifact's DESCRIBE and to extract the ingo@346: supported outputs. The result is a Map. ingo@346: ingo@346: * src/main/java/de/intevation/flys/collections/AttributeWriter.java: New. ingo@346: This writer merges the outputs contained in an attribute of a collection ingo@346: with the outputs of a collection's artifacts. ingo@346: ingo@346: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@346: The attributes of a collection are written into its DESCRIBE document ingo@346: now. The OutputParser and AttributeParser are used to read the supported ingo@346: attributes by the collection and its artifacts - the AttributeWriter is ingo@346: used to merge both attributes and create a final attribute document. ingo@346: ingo@345: 2011-04-26 Ingo Weinzierl ingo@345: ingo@345: * src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java, ingo@345: src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: ingo@345: The facet-2-theme mappings are initialized at startup and stored in the ingo@345: FLYSContext. ingo@345: ingo@345: * src/main/java/de/intevation/flys/themes/ThemeFactory.java: Added a ingo@345: function that retrieves a theme from FLYSContext based on its name. ingo@345: sascha@344: 2011-04-22 Sascha L. Teichmann sascha@344: sascha@344: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: sascha@344: Corrected a silly c&p mistake. sascha@344: sascha@343: 2011-04-22 Sascha L. Teichmann sascha@343: sascha@343: * src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java: sascha@343: sascha@343: Implementation of the "Ruecksprungkorrektur" to be done in sascha@343: "W fuer angepassten Abflusslaengschnitt". sascha@343: sascha@343: All tests show the expected results. In some corner cases the sascha@343: algorithm described in the "Anwenderhandbuch" chapter 3.3.4.3 "Korrektur" sascha@343: has some definition shortcomings: sascha@343: sascha@343: a - What should happend when you cannot find point 2 because sascha@343: you cannot step back one quarter from point 3 because there sascha@344: is no data there any more (river too short in this direction)? sascha@344: The implemented algorithm raises point 3' only to an sascha@344: according factor. E.g. If you can step back the whole quarter sascha@344: distance the elevation is the full quarter. If you can sascha@344: step back only the half of the quarter the elevation is sascha@344: only an eighth. sascha@343: sascha@343: b - If the water heights between point 2 and 3 are constant then sascha@343: the algorithm will produce a spline interpolation that sascha@344: lowers those values. Is this intended? sascha@343: sascha@343: For real data the back jumps are expected to be more in the middle sascha@343: of the distance ranges so the corner cases are maybe not so sascha@343: important. sascha@343: sascha@343: * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: sascha@343: Removed superfluous import. sascha@343: ingo@342: 2011-04-21 Ingo Weinzierl ingo@342: ingo@342: * src/main/java/de/intevation/flys/themes/ThemeFactory.java: Removed debug ingo@342: code that has been commited by accident. ingo@342: ingo@341: 2011-04-21 Ingo Weinzierl ingo@341: ingo@341: * doc/conf/themes.xml: New. A first small theme configuration. ingo@341: ingo@341: * doc/conf/conf.xml: Added a link to the theme configuration. ingo@341: ingo@341: * src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java: ingo@341: Defined a key that is used to store a themes map in the FLYSContext. ingo@341: ingo@341: * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: ingo@341: The theme configuration is read at startup and the themes are stores in ingo@341: the FLYSContext. ingo@341: ingo@340: 2011-04-21 Ingo Weinzierl ingo@340: ingo@340: * src/main/java/de/intevation/flys/themes/Theme.java, ingo@340: src/main/java/de/intevation/flys/themes/DefaultTheme.java: ingo@340: New. The interface and its default implementation that represents themes ingo@340: used to style charts and maps. ingo@340: ingo@340: * src/main/java/de/intevation/flys/themes/ThemeField.java, ingo@340: src/main/java/de/intevation/flys/themes/DefaultThemeField.java: ingo@340: New. The interface and its default implementation that represents fields ingo@340: in themes. A theme might be "Lines" and one of its field might be ingo@340: "Color" or "Size". ingo@340: ingo@340: * src/main/java/de/intevation/flys/themes/ThemeFactory.java: A factory ingo@340: that creates new themes based on a theme configuration. ingo@340: sascha@339: 2011-04-20 Sascha L. Teichmann sascha@339: sascha@339: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: sascha@339: Implementation of "Abflusskurve/Abflusstafel" calculation. sascha@339: sascha@339: Added method interpolateWQ() which takes an km and results in a sascha@339: tuple of two double arrays containing the w/q values interpolated sascha@339: between the surrounding w/q values of the table. sascha@339: w values are interpolated linear, q values with a cubic spline. sascha@339: sascha@339: Drawing w over q gives you the discharge table at the given km. sascha@339: sascha@339: !!! This code needs testing !!! sascha@339: sascha@338: 2011-04-20 Sascha L. Teichmann sascha@338: sascha@338: * pom.xml: Added dependency to Apache Commons Math 2.2 (Apache License 2.0) sascha@338: sascha@337: 2011-04-20 Sascha L. Teichmann sascha@337: sascha@337: * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: sascha@337: Fix problem when sorting by q (copied w instead of q). sascha@337: ingo@336: 2011-04-20 Ingo Weinzierl ingo@336: ingo@336: * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: ingo@336: Fixed broken HQL statement. ingo@336: sascha@335: 2011-04-19 Sascha L. Teichmann sascha@335: sascha@335: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: sascha@339: add a method interpolateW() which takes an array of sascha@335: q values and returns an equal sized array of w values. sascha@335: This is essentially the "Wasserstand/Wasserspiegellagen" calculation sascha@335: of desktop FLYS. sascha@335: sascha@335: If you want to do a calculation with given w values you have sascha@335: to convert the w values with DischargeTables.getQForW() first. sascha@335: sascha@335: !!! This code needs heavy testing !!! sascha@335: sascha@334: 2011-04-19 Sascha L. Teichmann sascha@334: sascha@334: * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: sascha@334: We need a getQForW() method and not getWForQ() because when sascha@334: doing a "Wasserstand/Wasserspiegellagen" calculation with given sascha@334: w values these values need to be translated to q values with sascha@334: the master discharge table. sascha@334: sascha@333: 2011-04-19 Sascha L. Teichmann sascha@333: sascha@333: * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: sascha@333: Sorting of q values was done wrong. sascha@333: ingo@332: 2011-04-19 Ingo Weinzierl ingo@332: ingo@332: * src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java: ingo@332: Ordered the list of annotations returned by this factory based on its ingo@332: range. ingo@332: ingo@331: 2011-04-19 Ingo Weinzierl ingo@331: ingo@331: * src/main/java/de/intevation/flys/artifacts/services/MainValuesService.java: ingo@331: New. This service returns an XML document that includes the main values ingo@331: of a gauge based on a river name, a start and an end point. ingo@331: ingo@331: * doc/conf/conf.xml: Registered the MainValuesService. ingo@331: ingo@330: 2011-04-19 Ingo Weinzierl ingo@330: ingo@330: * src/main/java/de/intevation/flys/artifacts/model/MainValuesFactory.java: ingo@330: A factory that provides methods to return MainValues. ingo@330: sascha@329: 2011-04-19 Sascha L. Teichmann sascha@329: sascha@329: * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: sascha@329: Added static method getWForQ() to interpolate a w value for sascha@329: a given q value based on a given discharge table. sascha@329: sascha@328: 2011-04-19 Sascha L. Teichmann sascha@328: sascha@328: * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: sascha@328: Added convenience constructors/methods to ease the access to the master sascha@328: discharge table of a gauge. sascha@328: sascha@327: 2011-04-18 Sascha L. Teichmann sascha@327: sascha@327: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: sascha@327: Moved the query complexity into view 'wst_value_table' and sascha@327: used this instead. sascha@327: sascha@326: 2011-04-18 Sascha L. Teichmann sascha@326: sascha@326: * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: sascha@326: Fetches w/q value tables from the backend. TODO: Move this sascha@326: to the backend and use a view. sascha@326: ingo@325: 2011-04-18 Ingo Weinzierl ingo@325: ingo@325: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Changed ingo@325: the error key that is thrown if no input data was found so that the key ingo@325: is usable for GWT's i18n mechanism. ingo@325: ingo@324: 2011-04-18 Ingo Weinzierl ingo@324: ingo@324: * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: ingo@324: The inserted river is validated now (overrides validate() of ingo@324: DefaultState). ingo@324: ingo@323: 2011-04-18 Ingo Weinzierl ingo@323: ingo@323: * src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: ingo@323: The inserted calculation method is validated now (overrides validate() ingo@323: of DefaultState). ingo@323: ingo@322: 2011-04-18 Ingo Weinzierl ingo@322: ingo@322: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: ingo@322: The input data of feed() are validated using the DefaultStates ingo@322: validate() method. ingo@322: ingo@322: * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: ingo@322: New method validate() that needs to be overidden by concrete subclasses. ingo@322: It should return true, if the data of the State is fine, otherwise it ingo@322: should raise an exception. ingo@322: ingo@322: NOTE: The exceptions are not translated in the server but in the client! ingo@322: ingo@322: * src/main/java/de/intevation/flys/artifacts/states/RangeState.java: New. ingo@322: This abstract class exists to provide some methods for handling ranges. ingo@322: Currently, there is a method that validates a given range based on ingo@322: min/max values. ingo@322: ingo@322: * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, ingo@322: src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: ingo@322: Implemented input data validation for ranges. ingo@322: ingo@322: NOTE: The input validation of concrete values has not been implemented ingo@322: yet! ingo@322: ingo@321: 2011-04-18 Ingo Weinzierl ingo@321: ingo@321: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: ingo@321: Removed debug code that has been commited by accident :-/ ingo@321: ingo@320: 2011-04-18 Ingo Weinzierl ingo@320: ingo@320: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: The ingo@320: getGauge() method returns the first gauge based on the given start and ingo@320: end point of the river. ingo@320: ingo@320: * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: ingo@320: Fixed potential bugs: if no gauge could be determined, the default ingo@320: values for W and Q are the minimum and maximum double values. ingo@320: ingo@319: 2011-04-15 Ingo Weinzierl ingo@319: ingo@319: * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: Fills ingo@319: the DESCRIBE with default values for W and Q. ingo@319: ingo@318: 2011-04-15 Ingo Weinzierl ingo@318: ingo@318: * src/main/java/de/intevation/flys/artifacts/model/WstFactory.java: ingo@318: New. Returns Wst object - based on a river. ingo@318: ingo@317: 2011-04-15 Ingo Weinzierl ingo@317: ingo@317: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Now ingo@317: provides some methods that return some basic objects inserted while ingo@317: parameterization: River, Gauge and so on. ingo@317: ingo@316: 2011-04-15 Ingo Weinzierl ingo@316: ingo@316: * src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java, ingo@316: src/main/java/de/intevation/flys/artifacts/services/RiverService.java: ingo@316: Bugfix: Repaired broken imports of the SessionHolder. ingo@316: ingo@315: 2011-04-15 Ingo Weinzierl ingo@315: ingo@315: * src/main/java/de/intevation/flys/artifacts/model/SessionHolder.java: ingo@315: Moved this class to flys-backend. ingo@315: ingo@315: * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java, ingo@315: src/main/java/de/intevation/flys/artifacts/model/GaugesFactory.java, ingo@315: src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java, ingo@315: src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java, ingo@315: src/main/java/de/intevation/flys/artifacts/context/SessionCallContextListener.java: ingo@315: Adapted imports of the SessionHolder. ingo@315: sascha@314: 2011-04-14 Sascha L. Teichmann sascha@314: sascha@314: * trunk/src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java, sascha@314: trunk/src/main/java/de/intevation/flys/artifacts/services/RiverService.java: sascha@314: Acquire/release sessions in services to avoid db connection leaks. sascha@314: ingo@313: 2011-04-14 Ingo Weinzierl ingo@313: ingo@313: * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: ingo@313: Changed some method signatures - added a reference to the owner ingo@313: Artifact. ingo@313: ingo@313: * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java, ingo@313: src/main/java/de/intevation/flys/artifacts/states/WQSelect.java, ingo@313: src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: ingo@313: Modified method signatures based on the changes in DefaultState. ingo@313: ingo@313: * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java: ingo@313: Added default values to the dynamic part of DESCRIBE. ingo@313: ingo@312: 2011-04-14 Ingo Weinzierl ingo@312: ingo@312: * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java: ingo@312: Added a function that returns a River object based on a given river ingo@312: name. ingo@312: sascha@311: 2011-04-14 Sascha L. Teichmann sascha@311: sascha@311: * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java, sascha@311: src/main/java/de/intevation/flys/artifacts/model/GaugesFactory.java, sascha@311: src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java, sascha@311: src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java: sascha@311: Static methods are using the SessionHolder, too. sascha@311: ingo@310: 2011-04-14 Ingo Weinzierl ingo@310: ingo@310: * src/main/java/de/intevation/flys/artifacts/context/SessionCallContextListener.java: ingo@310: Added the setup() method that has been added to the interface ingo@310: description in the last commits. ingo@310: ingo@310: * doc/conf/conf.xml: Registered the SessionCallContextListener as ingo@310: CallContext.Listener. ingo@310: ingo@309: 2011-04-14 Ingo Weinzierl ingo@309: ingo@309: * src/main/java/de/intevation/flys/artifacts/model/SessionHolder.java: ingo@309: Bugfix: Call correct method to retrieve an instance of ingo@309: SessionFactoryProvider. ingo@309: sascha@308: 2011-04-14 Sascha L. Teichmann sascha@308: sascha@308: * src/main/java/de/intevation/flys/artifacts/model/SessionHolder.java: sascha@308: New. Contains thread local session holder for hibernate sessions. sascha@311: sascha@308: * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java: sascha@308: Uses session from SessionHolder. sascha@308: sascha@308: * src/main/java/de/intevation/flys/artifacts/context/SessionCallContextListener.java: sascha@308: Interacts with SessionHolder now. sascha@308: sascha@308: * src/main/java/de/intevation/flys/exports/ChartExportHelper.java: sascha@308: Removed superfluous import. sascha@308: ingo@307: 2011-04-14 Ingo Weinzierl ingo@307: ingo@307: * src/main/java/de/intevation/flys/artifacts/context/SessionCallContextListener.java: ingo@307: Implementation of a CallContext.Listener to open/close Hibernate ingo@307: Sessions for each request. ingo@307: ingo@306: 2011-04-14 Ingo Weinzierl ingo@306: ingo@306: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, ingo@306: src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: ingo@306: Some modifications related to the last commit - modification of the ingo@306: describe() signature of a State. ingo@306: ingo@305: 2011-04-14 Ingo Weinzierl ingo@305: ingo@305: * src/main/java/de/intevation/flys/artifacts/states/GaugeSelect.java: ingo@305: Removed. We do not need a state to select a gauge - the selection takes ingo@305: place by choosing a start and an end point. ingo@305: ingo@304: 2011-04-13 Ingo Weinzierl ingo@304: ingo@304: * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: ingo@304: Bugfix: added missing label node to root node and a namespace to the ingo@304: data node. ingo@304: ingo@303: 2011-04-12 Ingo Weinzierl ingo@303: ingo@303: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: ingo@303: The name of the artifact 'winfo' is written into the DESCRIBE document ingo@303: now. We need this to have a proper way to distinguish between different ingo@303: artifacts in the UI. ingo@303: ingo@302: 2011-04-12 Ingo Weinzierl ingo@302: ingo@302: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Bugfix: ingo@302: States are filled with data before they describe themself. ingo@302: ingo@301: 2011-04-11 Ingo Weinzierl ingo@301: ingo@301: * src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java: ingo@301: New. A factory that returns the annotations of a specific river. ingo@301: ingo@301: * src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java: ingo@301: New. This service provides a document that contains information about ingo@301: distances of a river. ingo@301: ingo@301: * doc/conf/conf.xml: Registered the DistanceInfoService. ingo@301: ingo@300: 2011-04-06 Ingo Weinzierl ingo@300: ingo@300: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@300: This collection overrides the out() operation now. The incoming request ingo@300: document is read and the related OutGenerator is used to create the ingo@300: output. ingo@300: ingo@300: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Removed ingo@300: the code to create discharge curves. It has moved to the ingo@300: DischargeCurveGenerator which now does this work. ingo@300: ingo@299: 2011-04-06 Ingo Weinzierl ingo@299: ingo@299: * src/main/java/de/intevation/flys/exports/OutGenerator.java: The ingo@299: generate() method throws an IOException now. ingo@299: ingo@299: * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: ingo@299: New. This OutGenerator creates discharge curves. ingo@299: ingo@298: 2011-04-06 Ingo Weinzierl ingo@298: ingo@298: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Changed ingo@298: the visibility of the getData() method. It's now public, because the ingo@298: OutGenerator needs an artifact's data. ingo@298: sascha@297: 2011-04-03 Sascha L. Teichmann sascha@297: sascha@297: * src/**/*.java: Removed trailing whitespace. sascha@297: sascha@296: 2011-04-03 Sascha L. Teichmann sascha@296: sascha@296: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: sascha@296: Make project compilable again by sascha@296: commenting out a not existing XMLDebug reference. sascha@296: ingo@295: 2011-03-31 Ingo Weinzierl ingo@295: ingo@295: * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: ingo@295: Added code to parse the configured OutGenerators and to save them (in a ingo@295: map) in the FLYSContext. ingo@295: ingo@295: * src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java: ingo@295: Added a key that is used to save the OutGenerators Map in the context. ingo@295: ingo@294: 2011-03-31 Ingo Weinzierl ingo@294: ingo@294: * src/main/java/de/intevation/flys/exports/OutGenerator.java: ingo@294: New. This interface is used to generator different types of output. ingo@294: ArtifactCollections will make use of this interface to create a ingo@294: collected output of all its artifacts. ingo@294: ingo@293: 2011-03-30 Ingo Weinzierl ingo@293: ingo@293: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@293: Removed the Backend from FLYSArtifactCollection - used ArtifactDatabase ingo@293: operations instead. ingo@293: ingo@293: * TODO: Removed 'remove Backend reference' TODO. ingo@293: ingo@292: 2011-03-30 Ingo Weinzierl ingo@292: ingo@292: * doc/conf/artifacts/winfo.xml: Enhanced the configuration of the ingo@292: discharge curve output mode. This output now provides three facets - W, ingo@292: Q and the curve itself. ingo@292: ingo@291: 2011-03-30 Ingo Weinzierl ingo@291: ingo@291: Tagged RELEASE 0.1 ingo@291: ingo@159: 2011-03-30 Ingo Weinzierl ingo@159: ingo@159: * doc/conf/artifacts/winfo.xml: Renamed an output mode in the WINFO ingo@159: artifact configuration. ingo@159: ingo@158: 2011-03-29 Ingo Weinzierl ingo@158: ingo@158: * src/main/resources/messages_de_DE.properties, ingo@158: src/main/resources/messages_de.properties: Changed a german string. ingo@158: ingo@157: 2011-03-29 Ingo Weinzierl ingo@157: ingo@157: * src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: ingo@157: Modified the available calculation modes and its order in the DESCRIBE ingo@157: document. ingo@157: ingo@157: * src/main/resources/messages.properties, ingo@157: src/main/resources/messages_de_DE.properties, ingo@157: src/main/resources/messages_en.properties, ingo@157: src/main/resources/messages_de.properties: Adapted the names of ingo@157: calculation modes. ingo@157: ingo@156: 2011-03-28 Ingo Weinzierl ingo@156: ingo@156: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@156: Added the hash code of an artifact to the artifact part of the ingo@156: collection's DESCRIBE document. ingo@156: ingo@155: 2011-03-28 Ingo Weinzierl ingo@155: ingo@155: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Changed ingo@155: the background color of discharge curves to white. ingo@155: sascha@154: 2011-03-28 Sascha L. Teichmann sascha@154: sascha@154: * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: sascha@154: Cache the scale, too. Otherwise two calls to getValues() with sascha@154: different arguments will result in the same output. sascha@154: ingo@153: 2011-03-28 Ingo Weinzierl ingo@153: ingo@153: * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: ingo@153: Introduced a 'scale' parameter in the getValues() method. ingo@153: ingo@153: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Filled ingo@153: the out() operation with code that draws a discharge table of one or ingo@153: more gauges specified by the given range in entered in a previous state. ingo@153: ingo@152: 2011-03-28 Ingo Weinzierl ingo@152: ingo@152: * src/main/java/de/intevation/flys/exports/ChartExportHelper.java: ingo@152: New. A helper class to exports charts. ingo@152: ingo@152: * pom.xml: Added dependencies to iText, Batik and JFreeChart. ingo@152: sascha@151: 2011-03-28 Sascha L. Teichmann sascha@151: sascha@154: * src/main/java/de/intevation/flys/importer/PegelGltParser.java: sascha@154: Fixed swap of operands. sascha@154: sascha@154: 2011-03-28 Sascha L. Teichmann sascha@154: sascha@151: * src/main/java/de/intevation/flys/artifacts/model/GaugesFactory.java: sascha@151: New. Load gauges for a river and filter them for given sascha@151: ranges. sascha@151: sascha@150: 2011-03-25 Sascha L. Teichmann sascha@150: sascha@150: * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: sascha@150: Store data in a double [][] instead of interleaved double [] sascha@150: to be compatible with org.jfree.data.xy.DefaultXYDataset. sascha@150: ingo@149: 2011-03-25 Ingo Weinzierl ingo@149: ingo@149: * TODO: Removed 'i18n' and 'step-back' TODOs and added an issue to remove ingo@149: the Backend reference from FLYSArtifactCollection. ingo@149: ingo@148: 2011-03-25 Ingo Weinzierl ingo@148: ingo@148: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@148: Added missing artifact namespace of an attribute in the DESCRIBE ingo@148: document. ingo@148: ingo@147: 2011-03-24 Ingo Weinzierl ingo@147: ingo@147: * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: ingo@147: New. This ArtifactCollection overrides the DefaultArtifactCollection to ingo@147: implement FLYS specific describe() and out() operations. ingo@147: ingo@147: * doc/conf/conf.xml: Use the FLYSArtifactCollection instead of the ingo@147: DefaultArtifactCollection for this application. ingo@147: sascha@146: 2011-03-24 Sascha L. Teichmann sascha@146: sascha@146: * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: sascha@146: New. Fetches values of discharge tables in form of packed sascha@146: w/q double arrays for given gauges. sascha@146: sascha@146: * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java: sascha@146: Removed needless import. sascha@146: ingo@145: 2011-03-24 Ingo Weinzierl ingo@145: ingo@145: * src/main/resources/messages_de_DE.properties: Added a german resource ingo@145: bundle to avoid exceptions in the flys artifacts. Sometimes, the ingo@145: Resources class is not able to find a 'de_DE' bundle and throws an ingo@145: exception. This is really strange, because it should use the 'de' bundle ingo@145: in that case, but it doesn't. ingo@145: ingo@144: 2011-03-23 Ingo Weinzierl ingo@144: ingo@144: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Added ingo@144: some code to append the output modes of previous states to the DESCRIBE ingo@144: document. ingo@144: ingo@144: TODO: Determine if the current state is already filled with data and ingo@144: append its output modes as well! ingo@144: ingo@143: 2011-03-22 Ingo Weinzierl ingo@143: ingo@143: * doc/conf/artifacts/winfo.xml: Enhanced the location_distance state with ingo@143: an output mode 'discharge_table'. ingo@143: ingo@142: 2011-03-21 Ingo Weinzierl ingo@142: ingo@142: * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: ingo@142: Write human readable strings as label attribute into the DESCRIBE ingo@142: output. Those labels are used to be displayed in the GUI. ingo@142: ingo@141: 2011-03-21 Ingo Weinzierl ingo@141: ingo@141: * src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: ingo@141: Added some further calculation types. ingo@141: ingo@141: * src/main/resources/messages.properties, ingo@141: src/main/resources/messages_en.properties, ingo@141: src/main/resources/messages_de.properties: Added i18n strings for the ingo@141: calculation types ingo@141: ingo@140: 2011-03-21 Ingo Weinzierl ingo@140: ingo@140: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: ingo@140: Implemented the step-back part of the advance() operation. ingo@140: ingo@139: 2011-03-21 Ingo Weinzierl ingo@139: ingo@139: * src/main/resources/messages_de.properties: Fixed a german umlaut. ingo@139: ingo@138: 2011-03-18 Ingo Weinzierl ingo@138: ingo@138: * doc/conf/artifacts/winfo.xml: Added new states for entering a ingo@138: location/distance and w/q. ingo@138: ingo@138: * src/main/resources/messages.properties, ingo@138: src/main/resources/messages_en.properties, ingo@138: src/main/resources/messages_de.properties: New string for the ingo@138: location/distance and w/q input states. ingo@138: ingo@137: 2011-03-18 Ingo Weinzierl ingo@137: ingo@137: * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: ingo@137: New. A state for the W/Q input of the WINFO parameterization. ingo@137: ingo@136: 2011-03-18 Ingo Weinzierl ingo@136: ingo@136: * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: ingo@136: Append an attribute 'uiprovider' to the dynamic UI node. ingo@136: ingo@136: * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java: ingo@136: New. A state for the location/distance selection of the WINFO ingo@136: parameterization. ingo@136: ingo@135: 2011-03-17 Ingo Weinzierl ingo@135: ingo@135: * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: ingo@135: Added a new method getUIProvider() that might be overriden by concreted ingo@135: subclasses that should be rendered with a specific UIProvider. ingo@135: ingo@134: 2011-03-17 Ingo Weinzierl ingo@134: ingo@134: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: ingo@134: The static UI part is created by the previous states now. This makes it ingo@134: possible to group the data objects (which is necessary to group the ingo@134: objects in the ui). ingo@134: ingo@134: * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: ingo@134: Added a describeStatic() method that creates a node that contains the ingo@134: data of that state. ingo@134: ingo@133: 2011-03-17 Ingo Weinzierl ingo@133: ingo@133: * src/main/java/de/intevation/flys/artifacts/services/RiverService.java: ingo@133: Removed TODO: the document contains the rivers provided by the backend ingo@133: now. ingo@133: sascha@132: 2011-03-17 Sascha L. Teichmann sascha@132: sascha@132: * pom.xml: Added dependency to flys backend. sascha@132: sascha@132: * src/main/java/de/intevation/flys/artifacts/model/River.java: sascha@132: Removed. We are using the backend model now. sascha@132: sascha@132: * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java: sascha@132: Fetches the rivers from the backend. sascha@132: sascha@132: * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: sascha@132: Import fixes. sascha@132: sascha@131: 2011-03-15 Sascha L. Teichmann sascha@131: sascha@131: * doc/conf/conf.xml: Added section for database backend configuration. sascha@131: sascha@130: 2011-03-15 Sascha L. Teichmann sascha@130: sascha@130: * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: sascha@130: Fixed build error coming from different import of XMLUtils. sascha@130: ingo@129: 2011-03-14 Ingo Weinzierl ingo@129: ingo@129: * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: ingo@129: Appended the missing label node that contains the human readable name of ingo@129: the data item. ingo@129: ingo@128: 2011-03-14 Ingo Weinzierl ingo@128: ingo@128: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, ingo@128: src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: ingo@128: I18N of strings for the DESCRIBE document. ingo@128: ingo@128: * src/main/resources/messages.properties, ingo@128: src/main/resources/messages_en.properties, ingo@128: src/main/resources/messages_de.properties: I18N strings for the ingo@128: calculcation mode state. ingo@128: ingo@127: 2011-03-14 Ingo Weinzierl ingo@127: ingo@127: * doc/conf/artifacts/winfo.xml: Modified the winfo states. ingo@127: ingo@127: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Adapted ingo@127: the artifact regarding the changes of the last commit. The states ingo@127: describe() method creates the dynamic UI node - the artifact needs to ingo@127: apply this node. ingo@127: ingo@127: * src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: ingo@127: New. The state for choosing the calculation mode. ingo@127: ingo@127: * src/main/resources/messages.properties, ingo@127: src/main/resources/messages_en.properties, ingo@127: src/main/resources/messages_de.properties: Added i18n strings for the ingo@127: calculation mode state. ingo@127: ingo@126: 2011-03-14 Ingo Weinzierl ingo@126: ingo@126: * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: ingo@126: New. This is the base state for the FLYS application. It provides a ingo@126: method that creates the dynamic ui node for the DESCRIBE. ingo@126: ingo@126: * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java, ingo@126: src/main/java/de/intevation/flys/artifacts/states/GaugeSelect.java: Both ingo@126: classes extend the abstract base class DefaultState. ingo@126: ingo@125: 2011-03-14 Ingo Weinzierl ingo@125: ingo@125: * src/main/java/de/intevation/flys/artifacts/resources/Resources.java: ingo@125: New. This class retrieves the i18n strings from a ResourceBundle. ingo@125: ingo@125: * src/main/resources/messages.properties, ingo@125: src/main/resources/messages_en.properties, ingo@125: src/main/resources/messages_de.properties: Resource files for german and ingo@125: english translation. ingo@125: ingo@124: 2011-03-10 Ingo Weinzierl ingo@124: ingo@124: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Appended ingo@124: the data that have been inserted in former states into the static node ingo@124: of the DESCRIBE. ingo@124: ingo@123: 2011-03-10 Ingo Weinzierl ingo@123: ingo@123: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: The ingo@123: operations feed() and advance() return the description of the artifact ingo@123: using the describe() operation. This avoids additional server round trips ingo@123: in the client - the clients gets to know about the new state of the ingo@123: artifact immediately. ingo@123: ingo@122: 2011-03-10 Ingo Weinzierl ingo@122: ingo@122: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: ingo@122: Implemented a part (step forward) of the advance operation. ingo@122: ingo@122: * TODO: Implement Step-Back in advance operation. ingo@122: ingo@121: 2011-03-09 Ingo Weinzierl ingo@121: ingo@121: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: ingo@121: Implemented the abstract method getName(). It returns the constant ingo@121: 'winfo' string. ingo@121: ingo@121: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: ingo@121: Implemented the feed action. The data of an incoming feed() operation is ingo@121: stored in StateData objects that are saved in a map in the artifact. ingo@121: ingo@121: NOTE: There is no input validation and no i18n of error messages (see ingo@121: TODO). ingo@121: ingo@120: 2011-03-09 Ingo Weinzierl ingo@120: ingo@120: * TODO: This file contains some open points that need to be done. ingo@120: ingo@119: 2011-03-09 Ingo Weinzierl ingo@119: ingo@119: * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: New. This ingo@119: artifact serves as the default artifact for the FLYS application. ingo@119: ingo@119: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: This ingo@119: artifact now inherits from FLYSArtifact. Furthermore, there is one big ingo@119: change: we don't store the State objects itself in the artifact, but ingo@119: just the identifier of those. This makes the artifact smaller and more ingo@119: compatible agains previous versions of the software. ingo@119: ingo@118: 2011-03-08 Ingo Weinzierl ingo@118: ingo@118: * src/main/java/de/intevation/flys/artifacts/services/RiverService.java: ingo@118: New. This service will retrieve a list of provided rivers. ingo@118: ingo@118: * doc/conf/conf.xml: Added a configuration for the RiverService. ingo@118: ingo@117: 2011-03-07 Ingo Weinzierl ingo@117: ingo@117: * doc/conf/conf.xml: Added a section user-factory and collection-factory in ingo@117: the factories part of the configuration. ingo@117: ingo@116: 2011-03-01 Ingo Weinzierl ingo@116: ingo@116: * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: ingo@116: Replaced the 'special' attribute from DESCRIBE with a 'uiprovider' ingo@116: attribute. ingo@116: ingo@115: 2011-02-08 Ingo Weinzierl ingo@115: ingo@115: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The ingo@115: RiverSelect state is called to create the UI part of the describe ingo@115: document. ingo@115: ingo@115: * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: ingo@115: Implemented the dynamic UI part of describe(). The static part is not ingo@115: inserted into the describe document at the moment. We need a reference to ingo@115: the previous states for this. ingo@115: ingo@114: 2011-02-08 Ingo Weinzierl ingo@114: ingo@114: * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java, ingo@114: src/main/java/de/intevation/flys/artifacts/model/River.java: New. A model ingo@114: class that represents a river and its factory to create concrete river ingo@114: instances. ingo@114: NOTE: Currently, this is just a mockup. The factory just returns two ingo@114: static rivers "Mosel" and "Saar" without a connection to a backend. ingo@114: ingo@113: 2011-02-07 Ingo Weinzierl ingo@113: ingo@113: * src/main/java/de/intevation/flys/artifacts/states/StateFactory.java: The ingo@113: input data of a state is initialized with empty StateData objects after ingo@113: the State has been created. ingo@113: ingo@113: * doc/conf/artifacts/winfo.xml: Renamed the input data nodes of the states ingo@113: which now fits better to the class name of the implementation. ingo@113: ingo@112: 2011-02-07 Ingo Weinzierl ingo@112: ingo@112: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The ingo@112: describe document returned by this artifact now contains the current state ingo@112: and the reachable states. ingo@112: ingo@111: 2011-02-07 Ingo Weinzierl ingo@111: ingo@111: * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: ingo@111: The transitions are put into the TransitionEngine with the ID of the state ingo@111: - not longer with the artifact name. On this way, we are able to fetch ingo@111: just the transitions for a specific state, instead of all the transitions ingo@111: of an artifact. ingo@111: ingo@110: 2011-02-04 Ingo Weinzierl ingo@110: ingo@110: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Describe() ingo@110: returns the artifact's uuid and hash value. The whole implementation of ingo@110: describe() is still outstanding. ingo@110: ingo@109: 2011-02-04 Ingo Weinzierl ingo@109: ingo@109: * doc/conf/artifacts/winfo.xml: Removed useless config stuff. ingo@109: ingo@109: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Removed ingo@109: useless methods, and improved the init process - the first state is set as ingo@109: the current state for this artifact. ingo@109: ingo@109: * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java, ingo@109: src/main/java/de/intevation/flys/artifacts/states/GaugeSelect.java: New. ingo@109: The states are used in the first two steps of the WINFOArtifact. ingo@109: Currently, they just implement stubs of the necessary methods setup() and ingo@109: describe(). ingo@109: ingo@107: 2011-02-04 Ingo Weinzierl ingo@107: ingo@107: * src/main/java/de/intevation/flys/artifacts/states/State.java, ingo@107: src/main/java/de/intevation/flys/artifacts/transitions/TransitionEngine.java, ingo@107: src/main/java/de/intevation/flys/artifacts/transitions/Transition.java: ingo@107: Removed. These classes are placed in the artifact-database now. ingo@107: ingo@107: * src/main/java/de/intevation/flys/artifacts/transitions/DefaultTransition.java, ingo@107: src/main/java/de/intevation/flys/artifacts/transitions/TransitionFactory.java: ingo@107: Adapted imports of Transition. ingo@107: ingo@107: * src/main/java/de/intevation/flys/artifacts/states/StateFactory.java: New. ingo@107: This factory should be used to create concrete State objects. ingo@107: ingo@107: * src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java: Added ingo@107: a constant key to store the StateEngine in the context. ingo@107: ingo@107: * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: ingo@107: New method that initializes the states at application start. ingo@107: ingo@106: 2011-02-03 Ingo Weinzierl ingo@106: ingo@106: * src/main/java/de/intevation/flys/artifacts/states/State.java: New. The ingo@106: interface description of a state. ingo@106: ingo@106: * src/main/java/de/intevation/flys/artifacts/transitions/Transition.java, ingo@106: src/main/java/de/intevation/flys/artifacts/transitions/DefaultTransition.java: ingo@106: New. The interface description and a default implementation of a ingo@106: transition. ingo@106: ingo@106: * src/main/java/de/intevation/flys/artifacts/transitions/TransitionEngine.java: ingo@106: New. The TransitionEngine stores all transitions for each artifact and ingo@106: should be used to determine, if an artifact can advance from one state to ingo@106: another. ingo@106: ingo@106: * src/main/java/de/intevation/flys/artifacts/transitions/TransitionFactory.java: ingo@106: New. Transitions should be created by using this class. ingo@106: ingo@106: * src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java: New. ingo@106: The Flys context. It currently defines keys to store important components ingo@106: in the context. ingo@106: ingo@106: * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: ingo@106: New. The context factory initializes the basic components of the ingo@106: application. Currently, the TransitionEngine is created and all artifacts ingo@106: with its transitions are read from the global configuration and stored in ingo@106: the FLYSContext. ingo@106: ingo@106: * pom.xml: Added a dependency to the 'artifacts-common' package. ingo@106: ingo@106: * doc/conf/artifacts/winfo.xml: Corrected the classname of the ingo@106: DefaultTransition. ingo@106: ingo@106: * doc/conf/conf.xml: Added FLYSContextFactory as context-factory. ingo@106: ingo@105: 2011-02-02 Ingo Weinzierl ingo@105: ingo@105: * doc/conf/conf.xml: An initial configuration file for the FLYS artifact ingo@105: server. ingo@105: ingo@105: * doc/conf/artifacts/winfo.xml: An initial transition configuration of an ingo@105: WINFO artifact. ingo@105: ingo@105: * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: A stub of ingo@105: an artifact for a WINFO parameterization. ingo@105: ingo@105: * pom.xml: Set the source code version to 1.5. ingo@105: sascha@104: 2011-02-01 Sascha L. Teichmann sascha@104: sascha@104: * src/**, pom.xml: Added initial maven project. sascha@104: * ChangeLog: new.