Mercurial > dive4elements > river
view flys-artifacts/ChangeLog @ 2137:04b6b6a4564d
Prepare improved hyk-handling.
flys-artifacts/trunk@3715 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Thu, 19 Jan 2012 10:51:20 +0000 |
parents | 3a5ef4ac8e0f |
children | 59bb5c895be3 |
line wrap: on
line source
2012-01-19 Felix Wolfsteller <felix.wolfsteller@intevation.de> Preparing improved HYK handling. * src/main/java/de/intevation/flys/artifacts/model/HYKFactory.java: (Zone.getTo): New accesor. TODOs and documentation added. 2012-01-18 Raimund Renkert <raimund.renkert@intevation.de> 'New Chart' for w-differences curve. * doc/conf/artifacts/chart.xml: Added empty facet to output mode. * src/main/java/de/intevation/flys/artifacts/states/WDifferencesState.java: Add an empty facet if the artifact is a ChartArtifact. 2012-01-18 Raimund Renkert <raimund.renkert@intevation.de> 'New Chart' for discharge longitudinal section curve. * doc/conf/artifacts/chart.xml: Added transition for location input. * src/main/java/de/intevation/flys/artifacts/StaticWKmsArtifact.java: Changed cast from WINFOArtifact to FLYSArtifact. * src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java: Add an empty facet if the artifact is a ChartArtifact. 2012-01-18 Raimund Renkert <raimund.renkert@intevation.de> 'New Chart' for duration curve. * doc/conf/artifacts/chart.xml: Added state and transition for location input. * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: Changed cast from WINFOArtifact to FLYSArtifact. * src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java: Add an empty facet if the artifact is a ChartArtifact. 2012-01-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added accidentally ommitted HYKFacet, fixing build. * src/main/java/de/intevation/flys/artifacts/model/HYKFacet.java: New, stubby facet for hyk infrastructure. 2012-01-18 Raimund Renkert <raimund.renkert@intevation.de> 'New Chart' for computed discharge curve. * doc/conf/artifacts/chart.xml: Fixed transitions and added state for km input. * src/main/java/de/intevation/flys/artifacts/model/EmptyFacet.java: New. Added an empty facet to avoid deleting an empty output. * src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java, src/main/java/de/intevation/flys/artifacts/states/ComputationRangeState.java, src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java: Changed some return values if the artifact is a ChartArtifact. * src/main/java/de/intevation/flys/exports/ChartGenerator.java, src/main/java/de/intevation/flys/artifacts/WQKmsInterpolArtifact.java: Changed casts from WINFOArtifact to FLYSArtifact. * src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java: Add an empty facet if the artifact is a ChartArtifact. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Set a default axis range if the range is null. 2012-01-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added stub hyk infrastructure. * doc/conf/artifacts/hyk.xml: Added trivial transition configuration for hyk artifacts. * doc/conf/conf.xml: Register HYK artifact and its transition conf. * src/main/java/de/intevation/flys/artifacts/HYKArtifact.java, src/main/java/de/intevation/flys/artifacts/model/HYKFactory.java, src/main/java/de/intevation/flys/artifacts/states/StaticHYKState.java: Added static 'hyk' artifact, facet and state. 2012-01-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Add 'hyk' facet type. 2012-01-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> Add hyk facet to compatibility list of winfo.xml . * doc/conf/artifacts/winfo.xml: Add hyk facets to compatibility list. 2012-01-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a method getDataAsLong that returns a Long representation of a data item or null if no such data item is existing or it cannot be parsed as Long. * src/main/java/de/intevation/flys/utils/FLYSUtils.java: Added a function that returns the selected reference gauge (specified by 'reference_gauge' parameter) of a FLYSArtifact. 2012-01-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/LocationProvider.java: Cache a TreeMap<km, annotation string> of the annotation values of whole rivers. This is _much_ more efficient than firing an HQL/SQL statement for each km and caching these results. 2012-01-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/FastCrossSectionLine.java: Deleted. It is in the backend now. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/artifacts/model/FastCrossSectionChunk.java, src/main/java/de/intevation/flys/artifacts/model/CrossSectionWaterLineFacet.java, src/main/java/de/intevation/flys/artifacts/model/FastCrossSectionLineFactory.java, src/main/java/de/intevation/flys/artifacts/CrossSectionArtifact.java, src/main/java/de/intevation/flys/artifacts/WaterLineArtifact.java, src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java: Adjusted to use the fast cross section line from backend now. * doc/conf/cache.xml: Store cross section lines cache on disk. * src/main/java/de/intevation/flys/artifacts/states/StaticWQKmsState.java, src/main/java/de/intevation/flys/artifacts/model/DataFacet.java, src/main/java/de/intevation/flys/artifacts/StaticWKmsArtifact.java: Removed superfluous imports. 2012-01-17 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix assignment of stateId/hash in WaterlevelFacet. * src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java: More verbose logging, fix hash/stateid assignment. * src/main/java/de/intevation/flys/artifacts/model/BlackboardDataFacet.java: (deepCopy): implemented. 2012-01-17 Felix Wolfsteller <felix.wolfsteller@intevation.de> "Ported" StaticWQKmsArtifact to use compute-type caching mechanism. * doc/conf/artifacts/staticwqkms.xml: Declare trivial info. * doc/conf/conf.xml: Register staticwqkms artifact and factory. * src/main/java/de/intevation/flys/artifacts/model/WQKmsFacet.java: Sublacss DataFacet. * src/main/java/de/intevation/flys/artifacts/states/StaticWQKmsState.java: New. State. * src/main/java/de/intevation/flys/artifacts/StaticWQKmsArtifact.java: Refactored. Most computation and stuff now done in State and Facet. 2012-01-17 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: Minor cosmetics. 2012-01-17 Felix Wolfsteller <felix.wolfsteller@intevation.de> Refactoring. * src/main/java/de/intevation/flys/artifacts/model/BlackboardDataFacet.java: Added new constructor. * src/main/java/de/intevation/flys/artifacts/model/DataFacet.java: Refactored, subclass BlackboardDataFacet. * src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java: Refactored, subclass DataFacet. * src/main/java/de/intevation/flys/artifacts/math/DifferenceCurveFacet.java: Adjusted. 2012-01-17 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DataFacet.java: Cosmetics, added new constructor. 2012-01-16 Sascha L. Teichmann <sascha.teichmann@intevation.de> Use improved caching for cross section data. !!! This commit needs heavy testing !!! * src/main/java/de/intevation/flys/artifacts/services/CrossSectionKMService.java: Refactored to provide the map to determine the nearest cross section line neighbors for a given km to the public. This is a bit hackish because it hhould have its own factory which is then used by this service and other parts of the code. * src/main/java/de/intevation/flys/artifacts/CrossSectionArtifact.java: searchCrossSectionLine() now returns a FastCrossSectionLine. To find this line efficiently it uses the map of the CrossSectionKMService which already provides a nearest neighbor searching mechanism for cross section lines. The FastCrossSectionLine is fetched with the FastCrossSectionLineFactory which uses a cache as described in the previous commit. * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java src/main/java/de/intevation/flys/artifacts/WaterLineArtifact.java, src/main/java/de/intevation/flys/artifacts/model/CrossSectionWaterLineFacet.java, src/main/java/de/intevation/flys/artifacts/StaticWKmsArtifact.java, src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Uses the FastCrossSectionLine instead of CrossSectionLines now. * src/main/java/de/intevation/flys/artifacts/model/FastCrossSectionLine.java: Added method fetchCrossSectionProfile() to access the point data in the profile generating compatible way. * src/main/java/de/intevation/flys/artifacts/ChartArtifact.java: Removed superfluous import. 2012-01-16 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/cache.xml: Added cache for fast section lines chunks. * src/main/java/de/intevation/flys/artifacts/model/FastCrossSectionChunk.java: New. Chunks of FastCrossSectionLines. Stores cross section lines for ranges of one KM. * src/main/java/de/intevation/flys/artifacts/model/FastCrossSectionLineFactory.java: New. Access fast cross section lines. It uses the cache 'fast-cross-section-lines' configured in cache.xml to store chunks of cross section lines. * src/main/java/de/intevation/flys/artifacts/model/FastCrossSectionLine.java: New. Stores the important data (points) of a cross section line. 2012-01-16 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: Added a new calculation option for historical discharge curves. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added translations for historical discharge curves. 2012-01-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/artifacts/winfo.xml: Added certain facets to to compatibility matrices. 2012-01-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/artifacts/annotation.xml: Fixed accidental change. 2012-01-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/artifacts/annotation.xml: Cosmetics. 2012-01-16 Ingo Weinzierl <ingo@intevation.de> * doc/conf/meta-data.xml: Enabled old floodmap calculations for output type 'map'. 2012-01-13 Raimund Renkert <raimund.renkert@intevation.de> Initial implementation for module 'new chart'. * src/main/java/de/intevation/flys/artifacts/ChartArtifact.java: New. Artifact for module 'new chart'. * doc/conf/artifacts/chart.xml: New. Artifact description for the new artifact. * doc/conf/conf.xml: Added new artifact to config. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added i18n strings for 'new chart' chart types. 2011-01-13 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java: Cosmetics. 2011-01-13 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Avoid NPE when copying data from one artifact to another. 2011-01-13 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: (expandRange): Prevent collapse due to negative values. 2012-01-12 Raimund Renkert <raimund.renkert@intevation.de> * doc/conf/artifacts/map.xml, doc/conf/conf.xml, src/main/java/de/intevation/flys/artifacts/MapArtifact.java: Changed the MapArtifact name to 'new_map'. 2011-01-12 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/jfree/StableXYDifferenceRenderer.java: Added code to calculate the area of the generated polygons. TODO: Render the generated area sum to the plot. 2011-01-12 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/jfree/StableXYDifferenceRenderer.java: Replaced System.err.println()s with proper logging. * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java, src/main/java/de/intevation/flys/artifacts/states/WaterlevelInfoState.java, src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Removed superfluous imports. 2011-01-12 Felix Wolfsteller <felix.wolfsteller@intevation.de> flys/issue450 (i18n: Datenkorb: longitudinal-section) * doc/conf/meta-data.xml: Replaced dash by underscore in longitudinal-section. 2011-01-12 Felix Wolfsteller <felix.wolfsteller@intevation.de> Towards areas on other than the first axes. * src/main/java/de/intevation/flys/artifacts/model/BlackboardDataFacet.java: Changed signature on which to provide data via the blackboard. Include facets name to allow unique identification. * src/main/java/de/intevation/flys/artifacts/model/AreaFacet.java: Store name of one of the facets involved in area creation. (AreaFacet.Data): New class to hold result data. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: New methods to find out whether we have a general Q or W type of facet. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: (doArea): Use new Result-Data object instead of Object[], resolve which axis to put area to. (axisIdxForFacet): New. * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java: Subclass LongitudinalSectionGenerator. 2011-01-12 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WaterlevelInfoState.java: Do not intefere with CrossSections. 2011-01-12 Felix Wolfsteller <felix.wolfsteller@intevation.de> Cosmetics, cleanups. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: (getCrossSections, getCrossSectionNames): Removed. 2011-01-11 Felix Wolfsteller <felix.wolfsteller@intevation.de> flys/issue439 (Streckenfavoriten lassen sich nicht über den Datenkorb hinzuladen) * doc/conf/meta-data.xml: Made Annotations available via datacage in longitudinal section, cosmetics. 2012-01-11 Raimund Renkert <raimund.renkert@intevation.de> * doc/conf/conf.xml: Added output generator for output type 'map'. * doc/conf/artifacts/map.xml: Changed output name to 'map'. * doc/conf/meta-data.xml: Added new output type 'map'. 2011-01-11 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix flys/issue446 (Dauerline/Abflusskurve am Pegel: Eigenschaften vom Hauptwertthema nicht aufrufbar) * doc/conf/themes.xml: Add default styles for mainvalues.q/w and other themes. 2012-01-11 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/MapInfoService.java: Removed XPath injection security hole. A serious one because it allowed inspecting the conf.xml file ... with all the db passwords. 2012-01-11 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/MapInfoService.java, src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Removed superfluous imports. 2012-01-11 Ingo Weinzierl <ingo@intevation.de> * doc/conf/meta-data.xml: Added the definition of old calculation results for floodmaps. 2012-01-10 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WMSLayerFacet.java: Added methods getLayers() and removeLayer(). * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a method getFacets() which returns a list of Facets supported by this Artifact. In addition, the FLYSArtifact is now more verbose while filtering Facets for Outputs. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Implemented initialize() which now copies the shapefile directory of the model Artifact and modifies its Facets (adapts the shapepath which is the uuid of the Artifact). 2012-01-10 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/AttributeWriter.java, src/main/java/de/intevation/flys/collections/OutputParser.java: Made them more verbose for better debugging. 2012-01-09 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Initialize() now also calls State.initialize() for each State. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Override initialize() which is defined in AbstractState. NOTE: Currently, this method has no code. 2012-01-07 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/CacheInvalidationService.java: New. The service to invalidate the caches. (Argh! Forgot to 'svn add') 2012-01-06 Ingo Weinzierl <ingo@intevation.de> flys/issue298 (Karte: Automatischer Zoom auf Berechnungsergebnisse) * src/main/java/de/intevation/flys/wsplgen/FacetCreator.java: Added a debug statement that prints out the WSPLGEN extent. * src/main/java/de/intevation/flys/exports/MapGenerator.java: Create new Envelope instances for initial and max extent if they are not existing. Some debug statements have now been removed. 2011-01-06 Felix Wolfsteller <felix.wolfsteller@intevation.de> Add cache for 'static' wqkms (e.g. BaseData) to default cache conf. * doc/conf/cache.xml: Add Cache Config for static wqkms. * src/main/java/de/intevation/flys/artifacts/model/StaticWQKmsCacheKey.java: Adjust typo in cache name, minor cosmetic. 2011-01-06 Raimund Renkert <raimund.renkert@intevation.de> * src/main/java/de/intevation/flys/artifacts/MapArtifact.java: The map artifact has two states now and overrides describe() to generate UI sections in the describe response. The map state overrides computeAdvance() instead of computeFeed(). * src/main/java/de/intevation/flys/artifacts/RiverAxisArtifact.java, src/main/java/de/intevation/flys/artifacts/WMSDBArtifact.java: Changed the WMSDBArtifact in WMSDBState to FLYSArtifact and adjusted constructors in state classes. * doc/conf/artifacts/map.xml: Added initial state and transition. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added i18n strings for new state. 2011-01-06 Felix Wolfsteller <felix.wolfsteller@intevation.de> Partial fix for flys/issue437 (Querprofil: Zugeladene Basisdaten ignorieren W/Q-heit, falsche Namen). * src/main/java/de/intevation/flys/artifacts/StaticWKmsArtifact.java: Set name also for first column (zero based). 2012-01-06 Ingo Weinzierl <ingo@intevation.de> flys/issue196 (i18n/l10n: Zahlenformate einheitlich) * src/main/java/de/intevation/flys/artifacts/model/WQ.java: New method getRawValue() that extracts the raw double value from 'name' parameter. * src/main/java/de/intevation/flys/utils/Formatter.java: New method getRawFormatter() that returns a NumberFormat instance for the current locale. * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: Localized the W/Q labels in CSV exports. 2011-01-06 Felix Wolfsteller <felix.wolfsteller@intevation.de> flys/issue442 (i18n: Datenkorb: flood-protections) * doc/conf/meta-data.xml: Replaced dash in flood-protection by underscore to allow translation. 2011-01-06 Felix Wolfsteller <felix.wolfsteller@intevation.de> flys/issue438 (i18n: Datenkorb: additionals) * doc/conf/meta-data.xml: Fix typo. 2011-01-05 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/CacheInvalidationService.java: New. Uses the CacheFactory to invalidate caches by their names. This can be used by external ETL processes like the AFT/DIPS importer to prevent cache inconsistencies. Input documents look like this: <caches> <cache name="my-cache"/> ... <cache name="your-cache"/> </caches> Output documents look like this: <caches> <cache name="my-cache">All elements removed.</cache> ... <cache name="your-cache">Error: Cache not found.</cache> </caches> * doc/conf/conf.xml: Added the cache invalidation service. * src/main/java/de/intevation/flys/artifacts/services/FLYSService.java: Added Override annotation. 2011-01-05 Felix Wolfsteller <felix.wolfsteller@intevation.de> flys/issue432 (Diagrammeigenschaften/Flächenrenderer: Legenden-schriftgröße für Flächenthemen wird ignoriert) * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Respect legend item size when generating legend items for area dataseries. 2011-12-09 Raimund Renkert <raimund.renkert@intevation.de> Implemented new module "new map". * src/main/java/de/intevation/flys/artifacts/MapArtifact.java: New. Artifact for the new module, extends RiverAxisArtifact and contains the MapState class. * src/main/java/de/intevation/flys/artifacts/RiverAxisArtifact.java, src/main/java/de/intevation/flys/artifacts/WMSDBArtifact.java: Added empty constructor to embedded state classes to allow instantiation of MapState that extends the RiverAxisState. * src/main/java/de/intevation/flys/exports/MapGenerator.java: Do not generate an initialExtent element if the initial extent is empty. * doc/conf/artifacts/map.xml: New. Describes the state for the new module. * doc/conf/conf.xml: Added new config file. 2012-01-05 Ingo Weinzierl <ingo@intevation.de> flys/issue444 (error_no_export_found bei "W bei ungleichwertigem Abfluss") * src/main/java/de/intevation/flys/utils/FLYSUtils.java: If no boolean value "wq_free" exists in getWQMode(), false is the default. 2011-01-05 Felix Wolfsteller <felix.wolfsteller@intevation.de> flys/issue443 (Querprofile: Hibernate LazyInitializationException) * doc/conf/cache.xml: Disable cache for cross-sections. 2012-01-05 Ingo Weinzierl <ingo@intevation.de> flys/issue447 (W-Differenzen: Fehler beim Hinzufügen einer Parameterisierung) * src/main/java/de/intevation/flys/collections/CollectionAttribute.java: Added a new method cleanEmptyOutputs() which removes Outputs that have no Facets set. * src/main/java/de/intevation/flys/collections/AttributeWriter.java: Call CollectionAttribute.cleanEmptyOutputs() at the end of write() to remove empty Outputs that have been added during the merge process. 2012-01-05 Ingo Weinzierl <ingo@intevation.de> flys/issue440 (Karte: WSPLGEN Berechnungen für Mosel schlagen fehl) * src/main/java/de/intevation/flys/utils/GeometryUtils.java: Modified the getRiverBoundary() method because the signature of RiverAxis.getRiverAxis() has changed. This method will now take each geometry into account, that is retrieved by RiverAxis.getRiverBoundary(). * src/main/java/de/intevation/flys/artifacts/services/MapInfoService.java: Use GeometryUtils.getRiverBoundary() to determine the boundary of a river. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Create the riveraxis shapefile with all geometries returned by RiverAxis.getRiverAxis(). 2012-01-05 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Repaired broken items in legend. The new renderer requires the current plot. This is set now. 2012-01-04 Ingo Weinzierl <ingo@intevation.de> * doc/conf/themes.xml: Added a new field 'pointsize' to the virtual theme 'HiddenColorLines'. * src/main/java/de/intevation/flys/utils/ThemeUtil.java: Added methods to parse the new field of 'HiddenColorLines'. * src/main/java/de/intevation/flys/jfree/StyledXYSeries.java: Apply the pointsize defined in themes. 2012-01-04 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/jfree/EnhancedLineAndShapeRenderer.java: Use correct keys for buffering in getMinimum() and getMaximum(). 2012-01-04 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/StyledXYSeries.java, src/main/java/de/intevation/flys/exports/StyledAreaSeriesCollection.java, src/main/java/de/intevation/flys/exports/EnhancedLineAndShapeRenderer.java: Moved to de.intevation.flys.jfree. * src/main/java/de/intevation/flys/jfree/StyledXYSeries.java, src/main/java/de/intevation/flys/jfree/StyledAreaSeriesCollection.java, src/main/java/de/intevation/flys/jfree/EnhancedLineAndShapeRenderer.java: Moved from de.intevation.flys.exports. * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java, src/main/java/de/intevation/flys/exports/XYChartGenerator.java, src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java: Added necessary imports. 2012-01-04 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/EnhancedLineAndShapeRenderer.java: Buffered the computation results of getMinimum() and getMaximum(). 2012-01-04 Ingo Weinzierl <ingo@intevation.de> flys/issue393 (Themenstileditor: Minimum anzeigen / Beschriftung anzeigen) * src/main/java/de/intevation/flys/exports/EnhancedLineAndShapeRenderer.java: New renderer that overrides JFreeChart's XYLineAndShapeRenderer. This renderer brings the option to explicitly display the minimum and/or maximum or a series as shape. Currently, there are no options to adjust the style of those shapes. * doc/conf/themes.xml: Added a new virtual theme 'MinMaxPoints'. All line theme inherit from that theme now. * src/main/java/de/intevation/flys/utils/ThemeUtil.java: Added methods to parse the fields 'showminimum' and 'showmaximum' of 'MinMaxPoints' theme. * src/main/java/de/intevation/flys/exports/StyledXYSeries.java: Added methods to apply the fields of the new Theme 'MinMaxPoints'. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Modified the getRenderer() method which now always returns a new instance of EnhancedLineAndShapeRenderer. 2011-01-02 Felix Wolfsteller <felix.wolfsteller@intevation.de> Allow styling of outline of areas. * src/main/java/de/intevation/flys/jfree/StableXYDifferenceRenderer.java: Allow styling of outline of areas. * src/main/java/de/intevation/flys/exports/StyledAreaSeriesCollection.java: Parse outline style for areas, apply it to renderer. 2012-01-03 Ingo Weinzierl <ingo@intevation.de> flys/issue104 (W-INFO: Wasserspiegellagenberechnung / Strecke) * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: Call the new flys-backend method Wst.determineMinMaxQFree() to determine the min/max Qs at a given kilometer. 2011-01-02 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/themes.xml: Reflect name chnage of longitudinal sections area artifacts and include ColorLine style for area styles. 2012-01-02 Ingo Weinzierl <ingo@intevation.de> flys/issue370 (WINFO: Berechnungsausgabe W/Pegel [cm] fehlt bei Wasserspiegellage und W am Pegel) * src/main/java/de/intevation/flys/utils/FLYSUtils.java: New method that extracts the double value of a WQ object's name. * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: Adapted the header of CSV exports and the content of the "W at gauge" column. * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java: Adapted method signatures that have been changed in WaterlevelExporter. 2012-01-02 Ingo Weinzierl <ingo@intevation.de> * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added strings used in the CSV export. 2012-01-02 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: Check if the location of a CSV row is in range of the reference gauge. Write "outside reference gauge" into CSV in such cases. 2012-01-02 Ingo Weinzierl <ingo@intevation.de> PART II of flys/issue125 (W-INFO: Wasserspiegellagenberechnung / tabellarische Berechnungsausgabe) * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: Add the named main value of a Q and the name of the gauge used for the calculation if the WQ mode is "W at gauge" or "Q at gauge". * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java: Adapted the method signatures that have been modified in WaterlevelExporter. 2012-01-02 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/StyledAreaSeriesCollection.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java, src/main/java/de/intevation/flys/exports/AxisSection.java, src/main/java/de/intevation/flys/exports/ExportSection.java, src/main/java/de/intevation/flys/exports/LegendSection.java, src/main/java/de/intevation/flys/exports/ChartSection.java: Removed unused imports. 2012-01-02 Ingo Weinzierl <ingo@intevation.de> PART I of flys/issue125 (W-INFO: Wasserspiegellagenberechnung / tabellarische Berechnungsausgabe) * doc/conf/cache.xml: Registered a new Cache for the LocationProvider. * src/main/java/de/intevation/flys/artifacts/model/LocationProvider.java: New. This class is able to return the description of a location based on a river and kilometer parameter. The LocationProvider stores single locations into a Cache if one is configured for this class. * src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java: Added a method that returns a single Annotation for a specific kilometer and river. * src/main/java/de/intevation/flys/utils/FLYSUtils.java: Added a method getLocationDescription() that might be used to determine the description of a specified kilometer for a given river. * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: Make use of FLYSUtils.getLocationDescription() to add a new column that contains the location description. 2011-12-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: Write min/max values for free Qs into Artifact's DESCRIBE document. 2011-12-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: Fixed broken order to determine the step width of Qs and Ws. 2011-12-28 Ingo Weinzierl <ingo@intevation.de> flys/issue104 (W-INFO: Wasserspiegellagenberechnung / Strecke) * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: Validate user defined free Q values. 2011-12-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: Compute better step width based on a maximal number of steps = 30. Results with digits are rounded up. E.g.: Q range = 9.6 - 1750 Step width = 58.01 Rounded result = 60 2011-12-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/AxisSection.java, src/main/java/de/intevation/flys/exports/LegendSection.java, src/main/java/de/intevation/flys/exports/ChartSection.java: Subclasses TypeSection to be able to use convinience methods for string, integer, double and boolean values. 2011-12-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/ChartGenerator.java: The getSize() method now returns null if no width and height is specified in the request document or if width/height <= 0. It no longer returns the result of getDefaultSize(). * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Set the size of a chart export to the size specified in the ChartSettings if there are no valid values in the request document. * src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java: Set the chart size to ChartGenerator.getDefaultSize() if no valid values are returned by ChartGenerator.getSize(). This has been done autoamtically before. 2011-12-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/TypeSection.java: New. This Section defines some convinience methods to add/set string, integer, double and boolean values. * src/main/java/de/intevation/flys/exports/ExportSection.java: New. Subclasses TypeSection. The ExportSection currently offers attributes 'width' and 'height'. * src/main/java/de/intevation/flys/exports/ChartSettings.java: Added getter/setter methods to support an ExportSection. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Create an ExportSection while initial ChartSettings creation. 2011-12-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Added and make use of a new method createLegendLabelFont() to create unified Fonts for LegendItems. This method considers the user defined size for LegendItems. 2011-12-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Implemented adjustAxes(). This method now sets the label Font of the X axis. Its size is determined by getXAxisLabelFontSize(). 2011-12-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/AxisSection.java: Added method getFontSize() to retrieve the font size for an axis. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Modified createYAxis(int): call super.createYAxis(int) and adjust necessary settings - no Axis creation takes place here. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Added getXAxisLabelFontSize() and getYAxisLabelFontSize(int) to retrieve the user defined font size for an axis. The getYAxisLabelFontSize() is used in createYAxis(int) to set the font size for axes labels. 2011-12-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java: Override getYAxisWalker(). * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Create new instances of IdentifiableNumberAxis in createYAxis(int) default implementation. 2011-12-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/AxisSection.java: Added getLabel() to retrieve the axis label. * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java, src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java: Override getDefaultXAxisLabel() and getDefaultYAxisLabel() defined in XYChartGenerator. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Implement getXAxisLabel() and getYAxisLabel(int). Both methods search for an axis label defined in the ChartSettings first. If no label is specified or if no ChartSettings is set, getDefaultXAxisLabel() or getDefaultYAxisLabel(int) is called to retrieve the initial/default axis label. 2011-12-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/ChartSettings.java: Modified the signature of addAxisSection(). This method now accepts AxisSections only. In addition, there is a new method getAxisSection(String) that returns an AxisSection specified by its identifier. * src/main/java/de/intevation/flys/exports/AxisSection.java: Added new methods getIdentifier(), isFixed(), getUpperRange() and getLowerRange() to retrieve the attributes supported by this Section. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Make use of axes ranges specified in ChartSettings if an axis is fixed. 2011-12-23 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/IdentifiableNumberAxis.java: New. Subclasses JFreeChart's NumberAxis and offers a getId() method which returns an identifiable key. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Implements a createNumberAxis() method that should be used by all subclasses to create new axes. This method returns an instance of IdentifiableNumberAxis which is required for zooming. * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java: Create new NumberAxis instances by using XYChartGenerator.createNumberAxis(). 2011-12-23 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Implemented the methods getChartTitle() and getChartSubtitle(). Both methods try to get the required information from ChartSettings. If no ChartSettings is set for this OutGenerator, these methods will call getDefaultChartTitle() and getDefaultChartSubtitle(). * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java, src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Renamed getChartTitle() and getChartSubtitle() to getDefaultChartTitle() and getDefaultChartSubtitle(). In addition, the methods addSubtitles() became more robust - these OutGenerators add subtitles only if the subtitle is not empty. 2011-12-23 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/OutGenerator.java: Added a setSettings(Settings) method. * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Call OutGenerator.setSettings() before calling doOut() for each Facet. * src/main/java/de/intevation/flys/exports/ChartGenerator.java: Implemented setSettings() and added convinience methods to access chart specific settings. * src/main/java/de/intevation/flys/exports/MapGenerator.java, src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java, src/main/java/de/intevation/flys/exports/AbstractExporter.java, src/main/java/de/intevation/flys/exports/ATExporter.java, src/main/java/de/intevation/flys/exports/ReportGenerator.java: Implemented setSettings(). * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Make use of the attributes specified in the Settings: the title, subtitle, displayGrid and displayLegend settings are functional now. 2011-12-23 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/ChartSettings.java, src/main/java/de/intevation/flys/exports/LegendSection.java, src/main/java/de/intevation/flys/exports/ChartSection.java: Use more concrete classes than Settings and Section in these classes to avoid a lot of castings. 2011-12-22 Ingo Weinzierl <ingo@intevation.de> flys/issue242 (W-INFO: Fehlende Header in Datenexporten) * src/main/java/de/intevation/flys/utils/FLYSUtils.java: Added functions getQs(), getWs(), getGauge(), getGaugename() and getRivername() that all take a parameter FLYSArtifact. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Moved the implementation of getGauge() to FLYSUtils. The getGauge() in this class just calls and returns FLYSUtils.getGauge(). * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: Write a header into a CSV export containing meta information about this export. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added strings used in the CSV export as header. 2011-12-22 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java: (getKm): Removed, not called anymore. 2011-12-22 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java: Include km of cross-section-master in diagrams subtitle (fetched from 'blackboard'. 2011-12-22 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/utils/FLYSUtils.java: Cosmetics, docs. 2011-12-22 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/CrossSectionArtifact.java (getInitialFacetActivity): Only newest CrossSection is initially active. 2011-12-22 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/CrossSectionFactory.java (isNewest): New, query whether a CrossSection is the newest for its river, doc. 2011-12-21 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a convinience method to retrieve the value of an data object stored at FLYSArtifact as Boolean value. * src/main/java/de/intevation/flys/utils/FLYSUtils.java: Added a method that returns the named value of a given double value. This method returns only the named value, if the WQ mode is "Q at gauge" and if the value fits to a named value. In addition to this method, there is a new method to retrieve the selected WQ mode as 'WQ_MODE' enum. * src/main/java/de/intevation/flys/exports/AbstractExporter.java: Removed prepareData() and its call. The data preparation had a bad side effect: the modifications are "persisted" into cache, which has again bad side effects. * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: Removed prepareData(). The label creation for columns in the WST export will now take place in addWSTColumn(). With help of the master Artifact (I forgot this Artifact in my last commit) we are able to replace Q values with their named main value. 2011-12-21 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/CrossSectionArtifact.java: Cover 'locations' case for initial km of cross section artifacts. 2011-12-21 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/CrossSectionArtifact.java: (initialize): Eat ld_from from master artifact. (setup): Set cross_section.km to either masters km or the lowest defined cross-section line, whatever is bigger. 2011-12-21 Ingo Weinzierl <ingo@intevation.de> flys/issue252 (W-INFO: Wasserspiegellagenberechnung / Mitführung der Jährlichkeiten in der Diagramm-/Ergbnisausgabe) * src/main/java/de/intevation/flys/utils/FLYSUtils.java: Added a function stripNamedMainValue(). The result of this function is a named main value's base name without declaration of a year. * src/main/java/de/intevation/flys/exports/AbstractExporter.java: Added a method pepareData() that is called in doOut() before the data supported by the current Facet is added using addData(). * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: Override the prepareData() method to reset the name of WQKms objects. The Qs in a waterlevel export should be the Q value or the named main value if the value fits to a named main value. 2011-12-20 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Survive cases where the first dataset has an area-renderer assigned. 2011-12-20 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/AreaArtifact.java: Store additional parameter (whether or not to fill everything in between two curves.) * src/main/java/de/intevation/flys/artifacts/model/AreaFacet.java: Deliver additional info from artifact. * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java: Evaluate new parameter. 2011-12-20 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/themes.xml: Add transparency setting to area theme style. * src/main/java/de/intevation/flys/utils/ThemeUtil.java: Helper to access transparency setting in theme. * src/main/java/de/intevation/flys/exports/StyledAreaSeriesCollection.java: Respect transparency setting. 2011-12-20 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WKmsFacet.java: Subclass BlackboardDataFacet to provide data for area calculation. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Cast data to WKms instead of WQKms. 2011-12-20 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: Use a ';' as seperator between Qs and Ws. 2011-12-20 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java (doOut, doArea): Added handling for areafacets. Code yet mostly copied from CrossSectionGenerator. 2011-12-20 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/CrossSectionWaterLineFacet.java: Refactoring, subclass BlackboardDataFacet, remove duplicate code. 2011-12-20 Felix Wolfsteller <felix.wolfsteller@intevation.de> Cosmetics. * doc/conf/artifacts/winfo.xml, src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Renamed facet for consistency reasons. 2011-12-20 Felix Wolfsteller <felix.wolfsteller@intevation.de> Make Waterlevelfacet deliver data via blackbord. * src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java: Subclass BlackboardDataFacet. 2011-12-20 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: Create all formatted string labels for Ws and Qs in this class, because this class is the only instance that knows that there are double values to format. 2011-12-20 Felix Wolfsteller <felix.wolfsteller@intevation.de> Introduced new Facet that will deliver whatever getData returns via blackbord under key which is defined by convention. Attention, the data is not cached if handled this way. * src/main/java/de/intevation/flys/artifacts/model/BlackboardDataFacet.java: New facet, will be useful for easing implementation of facets that can contribute to area-computations. 2011-12-20 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/VisibleAttribute.java: Removed obsolete imports. 2011-12-20 Felix Wolfsteller <felix.wolfsteller@intevation.de> Removed obsolete imports. * src/main/java/de/intevation/flys/artifacts/model/AreaFacet.java, src/main/java/de/intevation/flys/artifacts/AreaArtifact.java, src/main/java/de/intevation/flys/artifacts/states/AreaCreationState.java, src/main/java/de/intevation/flys/exports/StyledAreaSeriesCollection.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Removed obsolete imports. 2011-12-20 Felix Wolfsteller <felix.wolfsteller@intevation.de> With StableXYDifferenceRenderer, create legend items in rectangular form, to discern "line" from "area" in legend. * src/main/java/de/intevation/flys/jfree/StableXYDifferenceRenderer.java (legendLine, legendShape): Renamed. (getLegendItem): Create LegendItem with fill, use PositivePaint for that. 2011-12-20 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added further 'area' infrastructure. * src/main/java/de/intevation/flys/exports/StyledAreaSeriesCollection.java: New, "area dataset". * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java (doOut): Use helper to decide if facet is an 'area' facet. (doArea): Construct StyledAreaSeriesCollection instead of two dataseries. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: (AxisDataset.isArea): Distinguish area datasets with instanceof. (AxisDataset.addArea): New. Replaces addAreaDataset. (addAreaSeries): Simplified with new custom SeriesCollection. (applyTheme): Register and style StableXYDifferenceRenderer for StyledAreaSeriesCollections. Added various TODOs and debug output to stabilize development. 2011-12-20 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/artifacts/winfo.xml: Added facets to compatibility matrices. * doc/conf/themes.xml: Added Area theme defaults. 2011-12-20 Felix Wolfsteller <felix.wolfsteller@intevation.de> Lay ground for having areas in longitudinal section diagrams, too. This is done by different naming of the facets. * src/main/java/de/intevation/flys/artifacts/model/AreaFacet.java: Make the name dynamic. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added further facet types, helper. * src/main/java/de/intevation/flys/artifacts/AreaArtifact.java: Store name for facets in data item, restrict access to some fields. * src/main/java/de/intevation/flys/artifacts/states/AreaCreationState.java: Use AreaArtifacts data item to use name for facets. 2011-12-20 Felix Wolfsteller <felix.wolfsteller@intevation.de> Cosmetics. * src/main/java/de/intevation/flys/artifacts/charts/CrossSectionApp.java, src/main/java/de/intevation/flys/artifacts/model/CrossSectionWaterLineFacet.java, src/main/java/de/intevation/flys/exports/StyledXYSeries.java: Doc. * src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java, src/main/java/de/intevation/flys/artifacts/WaterlevelArtifact.java, src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: Whitespace. * src/main/java/de/intevation/flys/utils/FLYSUtils.java: Doc and whitespace. 2011-12-19 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/utils/ThemeUtil.java (parseBoolean): New, extracted, updated callers. (parseFillColorField, parseShowBorder): New, for area styles. 2011-12-19 Ingo Weinzierl <ingo@intevation.de> flys/issue202 (W-INFo: Wasserspiegellagenberechnung / Vorbelegung Strecke) * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Added a system property which is used to determine, if the DESCRIBE document of an Artifact should include default values (values, that have been inserted by the user some time ago) or not. The default case is, that the DESCRIBE does NOT include default values. To enable default values, set "flys.use.default.values" to "true". 2011-12-19 Ingo Weinzierl <ingo@intevation.de> flys/issue419 (Themen-Name "Q(null)" bei W bei ungl. A.) * src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java: Use correct variable to create Facet names. 2011-12-19 Ingo Weinzierl <ingo@intevation.de> flys/issue380 (W-INFO / Überschwemmungskarte, falsches DGM) * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a convinience method that returns a parameter of FLYSArtifact as Integer. * src/main/java/de/intevation/flys/artifacts/states/DGMSelect.java: Override validate() to determine, if the DGM selected by the user is valid for the current calculation range and river. 2011-12-19 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Roll-back accidentally committed changes. 2011-12-19 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java (doOut): Hide 'invisible' (deleted) themes from Outgenerators. 2011-12-19 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added area.name data item and access to areaartifact. * src/main/java/de/intevation/flys/artifacts/model/AreaFacet.java: Rephrased debug output, do survive case where only one curve is given for area calculation (this is the "above" or "under" case). * src/main/java/de/intevation/flys/artifacts/AreaArtifact.java (getAreaName): Access "area.name" data item. * src/main/java/de/intevation/flys/artifacts/states/AreaCreationState.java: Respect area.name data of artifact when reproducing facets. 2011-12-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/conf.xml: Fix, accidentally added wrong factory in last commit. 2011-12-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/conf.xml: Register area artifact factory. 2011-12-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/artifacts/winfo.xml: Added area artifacts to cross-section compatibility matrix. 2011-12-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> Add area dataseries when facet delivering one. * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java (doOut): Handle area facets. (doArea): Register areas for area facets. 2011-12-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> Add simple area registerig functions. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: (AxisDataset.addAreaDataset): New, add an area dataset. (AxisDataset.isArea): New. (addAreaSeries): New. Add Area Dataset. (applyThemes): Pass info if we have an area, to set different renderer. 2011-12-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/StaticState.java: Added convenience function and easy sybclassing. 2011-12-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Register AREA ("area") facet type. 2011-12-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/CrossSectionFacet.java, src/main/java/de/intevation/flys/artifacts/model/CrossSectionWaterLineFacet.java: Register blackboard key uuid+index and respond with data to it, as assumed by the areaartifact and facet. 2011-12-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added partial area-infrastructure. * src/main/java/de/intevation/flys/artifacts/model/AreaFacet.java, src/main/java/de/intevation/flys/artifacts/AreaArtifact.java, src/main/java/de/intevation/flys/artifacts/states/AreaCreationState.java: New artifact, facet and state for area rendering. 2011-12-16 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Defined an interface YAxisWalker that allows to walk over each Y axis definition in subclasses. This walker can be retrieved using the new getYAxisWalker() method. The AxisSections are built in this class now. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Implemented the YAxisWalker interface and the getYAxisWalker() method. Removed the code to build AxisSections. * src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java: Implemented getYAxisLabel(int pos) and getYAxisWalker(). * src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java, src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: Implemented the getYAxisWalker() method. 2011-12-16 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Some optimizations during out() operation - the CollectionAttribute is parsed a single time now (*i guess*). This code really needs some refactoring! 2011-12-16 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Added an INFO message that displays the duration time for the out() operation. 2011-12-16 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Calls super.buildAxisSections(). * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Implemented the method buildAxisSections(). The result list will contain an AxisSection for the X axis. 2011-12-16 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/AttributeWriter.java: Bugfix: Add new Outputs to the current CollectionAttribute if no old one is existing. 2011-12-16 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/collections/AttributeWriter.java: Directly fetch key/value pairs when writing a collection attribute. 2011-12-16 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/ChartSettings.java: Added new functions that allow parsing a ChartSettings object from DOM Node. * src/main/java/de/intevation/flys/collections/AttributeParser.java: Parse the Settings of each Output. 2011-12-16 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/CollectionAttribute.java: Added a method to set a new Settings object for a specific Output and a method to clear the list of Facets of a specific Output. * src/main/java/de/intevation/flys/collections/AttributeWriter.java: The AttributeWriter no longer creates new CollectionAttributes - it only modifies the old CollectionAttribute. At first, it clears the Facets of all Outputs. Finally, the merged Facets are added to the Outputs. * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Added the CollectionAttribute to the AttributeWriters constructor. 2011-12-16 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/DoubleAttribute.java: New. An Attribute that stores double values. * src/main/java/de/intevation/flys/exports/AxisSection.java: Added methods to set values for 'fixation', 'font-size', 'lower' and 'upper'. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Set new attributes mentioned above for each axis' AxisSection. 2011-12-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/AxisSection.java: Added methods to set the axis label and id. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Improved the ChartSettings that will now contain a set of AxisSections. The new buildAxisSections() method in this class is not implemented and needs to be implemented by subclasses. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Override buildAxisSections() of XYChartGenerator to create an AxisSection for each axis that is able to be displayed in this sort of chart. In addition, there is a new method getYAxisLabel(int) that returns the label for a specific Y axis. 2011-12-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/IntegerAttribute.java: New. Concrete subclass of a DefaultAttribute for storing integer values. * src/main/java/de/intevation/flys/exports/LegendSection.java: New. A concrete Section subclass to store legend specific attributes. * src/main/java/de/intevation/flys/exports/BooleanAttribute.java, src/main/java/de/intevation/flys/exports/StringAttribute.java: Removed needless import of org.w3c.dom.Attr. * src/main/java/de/intevation/flys/exports/ChartSettings.java: ChartSettings is able to store a Section for legends now. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Added methods to retrieve the font size of legends and if the legend should be visible or not. In addition, the ChartSettings returned by this instance will now contain a LegendSection as well. 2011-12-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Introduced methods getChartSubtitle() and isGridVisible(). getChartSubtitle() returns in this implementation null. Concrete subclasses should override this mehtod if they require subtitles in charts. isGridVisible() determines if the grid in the chart should be visible or not. This method return always true in this implementation. In addition, the Settings object returned by getSettings() will now have a ChartSection set properly. * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Override getChartSubtitle(). 2011-12-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Prepare the OutGenerator (process each of the Output's Facets) during the describe() operation to be able to return an initial Settings object. 2011-12-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/BooleanAttribute.java, src/main/java/de/intevation/flys/exports/VisibleAttribute.java, src/main/java/de/intevation/flys/exports/StringAttribute.java: Fixed wrong usage of DOM operations. 2011-12-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/BooleanAttribute.java, src/main/java/de/intevation/flys/exports/VisibleAttribute.java, src/main/java/de/intevation/flys/exports/StringAttribute.java: New. Concrete subclasses of a DefaultAttribute. * src/main/java/de/intevation/flys/exports/ChartSettings.java, src/main/java/de/intevation/flys/exports/AxisSection.java, src/main/java/de/intevation/flys/exports/ChartSection.java: Implementations for chart settings. WORK IN PROGRESS! * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Override the getSettings() method. The implementation here returns a ChartSettings instance. * src/main/java/de/intevation/flys/exports/EmptySettings.java: Modified the node name of the settings ("art:settings" -> "settings"). 2011-12-14 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/CrossSectionArtifact.java: Cosmetics, doc. 2011-12-14 Felix Wolfsteller <felix.wolfsteller@intevation.de> Cosmetics. * src/main/java/de/intevation/flys/collections/AttributeWriter.java: Remove needless imports. 2011-12-14 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix/Guard certain misconditions. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Do not crash when given null-range. * src/main/java/de/intevation/flys/exports/StyledSeriesBuilder.java: Do not crash when given malformed array. 2011-12-14 Felix Wolfsteller <felix.wolfsteller@intevation.de> Cosmetics. * src/main/java/de/intevation/flys/artifacts/math/DifferenceCurveFacet.java, ChangeLog: Whitespace cosmetic. * src/main/java/de/intevation/flys/artifacts/CrossSectionArtifact.java: Annotation cosmetic. * src/main/java/de/intevation/flys/artifacts/ExternalWMSArtifact.java: Convenience cosmetic. * src/main/java/de/intevation/flys/utils/DataUtil.java: vim-magicosmetic. 2011-12-14 Felix Wolfsteller <felix.wolfsteller@intevation.de> Implement new WaterLineArtifact where needed so far. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Declare that we implement WaterLineArtifact. * src/main/java/de/intevation/flys/artifacts/StaticWKmsArtifact.java: (getWaterLines): Implement to fulfil new WaterLineArtifact- interface-impl. Also generate new Facet. * src/main/java/de/intevation/flys/artifacts/model/CrossSectionWaterLineFacet.java: Do not depend on WINFOArtifacts, but on WaterLineArtifacts instead. 2011-12-14 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added interface WaterLineArtifact to be implemented by artifacts that know how to create a water line "against" a cross section. * src/main/java/de/intevation/flys/artifacts/WaterLineArtifact.java: New, straight-forward interface. 2011-12-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/EmptySettings.java: An implementation of the Settings interface defined in the artifact-database module. This implementation accepts no Section objects at all and creates an empty "settings" Node in its toXML() operation. * src/main/java/de/intevation/flys/exports/OutGenerator.java: Defined a new method getSettings() that returns a Settings instance. * src/main/java/de/intevation/flys/exports/ChartGenerator.java, src/main/java/de/intevation/flys/exports/ReportGenerator.java, src/main/java/de/intevation/flys/exports/MapGenerator.java, src/main/java/de/intevation/flys/exports/AbstractExporter.java, src/main/java/de/intevation/flys/exports/ATExporter.java, src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java: Implemented the getSettings() operation. All OutGenerators will currently return an instance of EmptySettings. * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Before the DESCRIBE document is created, we gonna evaluate each Output defined in the Collection's attribute document, if it has a Settings object set. If this is not the case, the relevant OutGenerator is called to retrieve a new instance of Settings. * src/main/java/de/intevation/flys/collections/CollectionAttribute.java: Append the Settings of Outputs to the Output nodes in the XML representation. 2011-12-13 Felix Wolfsteller <felix.wolfsteller@intevation.de> Recommend cross-sections. * doc/conf/meta-data.xml: When having a cross-section out, recommend respective artifacts. 2011-12-13 Felix Wolfsteller <felix.wolfsteller@intevation.de> Register factory for CrossSectionArtifacts. * doc/conf/conf.xml: Register CrossSectionArtifact-Factory. 2011-12-13 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/CollectionAttribute.java: New. This class will store the information provided in the Collection's attribute (which is a DOM document). * src/main/java/de/intevation/flys/collections/CollectionDescriptionHelper.java: Store an instance of CollectionAttribute and append its XML representation to the DESCRIBE document. * src/main/java/de/intevation/flys/collections/AttributeWriter.java: Removed all DOM operations from this writer. Its new task is to create a new CollectionAttribute object which represents a merged version of the old CollectionAttribute and the information provided by the Collection's child Artifacts. * src/main/java/de/intevation/flys/collections/AttributeParser.java: The result of AttributeParser's parse() operation is a CollectionAttribute object now. The methods getOuts() and getFacets() are as of now proxy methods that call the relevant methods of CollectionAttribute. * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Some structural changes in the process to build the attribute Document of the Collection's DESCRIBE. We will no longer work with Document during this process but with instances of CollectionAttribute. 2011-12-13 Felix Wolfsteller <felix.wolfsteller@intevation.de> Server-side of newer Cross-Section diagram construction architecture. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java (searchCrossSectionKmLine, getCrossSectionSnapKm), (getCrossSectionData): Removed, most functionality contained in CrossSectionArtifact. (getWaterLines): Now get CrossSectionLines to calculate water line. * src/main/java/de/intevation/flys/artifacts/model/CrossSectionWaterLineFacet.java: Get a CrossSectionLine from blackboard. * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java: Hard TODO, commented out function needed for subtitle to allow compilation. * src/main/java/de/intevation/flys/exports/StyledSeriesBuilder.java: Added Empty-Dataset- guard. 2011-12-13 Felix Wolfsteller <felix.wolfsteller@intevation.de> Cosmetics. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Cosmetics. 2011-12-13 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/CrossSectionKMService.java, src/main/java/de/intevation/flys/artifacts/CrossSectionArtifact.java: Removed superfluous imports. 2011-12-13 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/CollectionDescriptionHelper.java: New. This class helps generating the DESCRIBE document of a collection. * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Moved some of the code to create the DESCRIBE document out to CollectionDescriptionHelper. 2011-12-12 Felix Wolfsteller <felix.wolfsteller@intevation.de> Resolve todo about wrongly named cross sections. Open StaticState to allow that facets survive a compute. * src/main/java/de/intevation/flys/artifacts/states/StaticState.java (computeAdvance, computeFeed, computeInit): Override to call staticCompute. (staticCompute): New. Do nothing but be able to be overridden. * src/main/java/de/intevation/flys/artifacts/CrossSectionArtifact.java (setup): Fetch facets name from db (resolves todo). (getCurrentState): override staticstates staticcompute to let facets survive a compute. 2011-12-12 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/wsplgen/JobExecutor.java, src/main/java/de/intevation/flys/wsplgen/WSPLGENCallable.java: Renamed JobExecutor to WSPLGENCallable (because it is a Callable now). In addition to the call() method which starts the WSPLGEN process, this Callable offers a cancelWSPLGEN() method to destroy a running WSPLGEN process. * src/main/java/de/intevation/flys/wsplgen/WSPLGENFuture.java: A FutureTask that overrides cancel(boolean). Before this instance call super.cancel(boolean), it executes WSPLGENCallable.cancelWSPLGEN() to kill a running WSPLGEN process. * src/main/java/de/intevation/flys/wsplgen/Scheduler.java: The Scheduler is no longer a Runnable. It makes now use of a ScheduledThreadPoolExecutor to schedule the incoming WSPLGENJobs. The ScheduledThreadPoolExecutor has a fixed number of worker threads that process the jobs. The number is 1 per default; it can be modified using a System property "wsplgen.max.threads". * src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java: Added a string constant SCHEDULER. * src/main/java/de/intevation/flys/wsplgen/SchedulerSetup.java: A LifetimeListener that currently implements the systemUp() method to create an instance of Scheduler. After its creation, the Scheduler is put into the GlobalContext using FLYSContext.SCHEDULER as key. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Fetch the Scheduler from GlobalContext. * doc/conf/conf.xml: Registered SchedulerSetup as LifetimeListener. 2011-12-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/StaticFLYSArtifact.java: (describe): Add data items to StaticFLYSArtifacts describe-doc. 2011-12-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/StaticState.java: (addDefaultChartOutput): Convenienve function to add a chart-output. 2011-12-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/CrossSectionFacet.java: Play nice with CrossSectionArtifact. Employ blackboard. * src/main/java/de/intevation/flys/artifacts/CrossSectionArtifact.java: Spawn a CrossSectionFacet, handle various data. * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: Do not produce CrossSectionFacets anymore, these now "belong" to CrossSectionArtifacts. 2011-12-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/cache.xml: Added cross_sections cache. 2011-12-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/CrossSectionFactory.java: (getCrossSection, getCrossSectionUncached): New, access specific CrossSection, employ caching. 2011-12-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/CrossSectionArtifact.java: New artifact to handle cross-section access. 2011-12-09 Raimund Renkert <raimund.renkert@intevation.de> Issue 413. * src/main/java/de/intevation/flys/exports/StyledXYSeries.java: Apply point size from theme attribute linewidth. 2011-12-08 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/CrossSectionFactory.java, src/main/java/de/intevation/flys/artifacts/model/AnnotationFacet.java, src/main/java/de/intevation/flys/exports/OutGenerator.java, src/main/java/de/intevation/flys/jfree/StickyAxisAnnotation.java: Cosmetics. 2011-12-08 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/CrossSectionKMService.java: Documentation added, let a value be its own neighbour (distance 0). 2011-12-08 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: Added "Bezugslinie" to list of calculation alternatives. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_de.properties: Added I18N. 2011-12-06 Felix Wolfsteller <felix.wolfsteller@intevation.de> Further flys/issue420 fix (No Discharge Curves for Mosel). * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: (includeYRange, mergeRanges): Moved NaN-guard to lowest level. (combineXRanges): Also NaN guard the X Axis extent. 2011-12-06 Felix Wolfsteller <felix.wolfsteller@intevation.de> Partial fix for flys/issue420 (Berechnete Abflusskurve: Kein Diagramm für Mosel). Protect axis extent calculation from empty or invalid datasets. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: (includeRange, includeYRange): Renamed, updated callers. (includeYRange): Protect from merging extent with NaNs. (debugDatasets): Be more verbose on the datasets. (zoom): Doc. 2011-12-06 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix flys/issue423 (Diagramm: Hauptwerte bei Abflusskurve am Pegel werden an Y-Achse nicht angezeigt) - show not "raw" (vs interpolated) values at Gauge. * src/main/java/de/intevation/flys/artifacts/model/MainValuesQFacet.java, src/main/java/de/intevation/flys/artifacts/model/MainValuesWFacet.java: Add parameterization to let facet know whether to fetch data at Gauges or at Artifacts position. * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: Let the MainValueFacets know whether to ask for interpolated MainValues; (do not interpolate for Gauges Main Values). (getMainValuesQ, getMainValuesW): Added parameter to control interpolation. 2011-12-05 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/utils/MapfileGenerator.java: Modified prefix constants for Mapserver layers and renamed constants (which have been postfixes before). * src/main/java/de/intevation/flys/wsplgen/FacetCreator.java: Adjusted usage of Mapserver constants to the changes described above. 2011-12-05 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Bugfix: Evaluate the correct parameter whether to set the floodplain or not. In addition, the scenario parameter used by WSPLGEN is now set correctly. >>>>>>> .r3356 2011-12-05 Felix Wolfsteller <felix.wolfsteller@intevation.de> Allow longitudinal_section.q facets in wdiff states output. * doc/conf/artifacts/winfo.xml: Added longitudinal_section.q facets to w-diff states out compatibility- matrix. 2011-12-05 Felix Wolfsteller <felix.wolfsteller@intevation.de> Refactored Longitudinal*/WDiff-*Generator hierarchy and change axis ordering, resolved label-i18n TODO. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Merge, avoid duplicate code, fix axis ordering in w-diff diagram, label in ls-diagramm. 2011-12-05 Ingo Weinzierl <ingo@intevation.de> * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added missing state titles. 2011-12-05 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java: Do not include zero on first axis. 2011-12-02 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: (buildArtifactNode): Include artifacts state data in description document of collection. 2011-11-30 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/ChartGenerator.java, src/main/java/de/intevation/flys/exports/ReportGenerator.java, src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/XYChartGenerator.java, src/main/java/de/intevation/flys/exports/AbstractExporter.java, src/main/java/de/intevation/flys/exports/ATExporter.java, src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, src/main/java/de/intevation/flys/exports/OutGenerator.java, src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java, src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java, src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Removed superfluous imports. 2011-11-30 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Removed import to make it compileable again. 2011-11-30 Felix Wolfsteller <felix.wolfsteller@intevation.de> Introduce pre-rendering inter-facet communication phase ('blackboard pass'). * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java (doBlackboardPass): New. Before actually calling doOut, bundle ArtifactAndFacets and let them register themselfes as DataProvider in CallContext if they want ("announce on blackboard"). 2011-11-30 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java (doOut): Adjusted signature. 2011-11-30 Felix Wolfsteller <felix.wolfsteller@intevation.de> Changed doOut signature to use ArtifactAndFacet, which will be side effect of upcoming "blackboard" feature. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java (getRangesForDataset, getRangesForAxis): Renamed, removed TODO. * src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java (createAxis): Update call to XYChartGenerator.getRangesForAxis, cosmetics. * src/main/java/de/intevation/flys/exports/OutGenerator.java (doOut): Changed Signature to accet ArifactAndFacet instead of Artifact and Facet. * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/ChartGenerator.java, src/main/java/de/intevation/flys/exports/ReportGenerator.java, src/main/java/de/intevation/flys/exports/MapGenerator.java, src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/AbstractExporter.java, src/main/java/de/intevation/flys/exports/ATExporter.java, src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java, src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java (doOut): Adjusted to new signature. * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java: (adjustAxes): Removed, we do not need a (manual) second axis. 2011-11-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Fix compilation, use features of XYChartGenerator. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Set default behaviour such that 0 is not included in ranges. * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: Set behaviour of axis such that 0 is not (automagically) included. 2011-11-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/StyledSeriesBuilder.java: Fix wrong documentation. 2011-11-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix LongitudinalSections multi-axes plotting behavior. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Removed obsolete functions, use better working multi-axis magic by XYChartGenerator. 2011-11-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> Overhaul dataset/axis/renderer housekeeping in Mother of all ChartGenerators. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Refactored, keep axis/rendering relevant information in objects of new class AxisDataset. Removed some obsolete code while adding documentation. 2011-11-25 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java(relateWs): Added the implementation of the 'Bezugslinienverfahren'. Should be complete but needs testing! TODO: Setup a Calculation and integrate it into WINFO. 2011-11-25 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Refactored the code for the "berechnete Abflusskurve" to enable the "Bezugslinienverfahren" to use the same code paths. It also removes a good deal of already existing code duplication. 2011-11-25 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java(findQsForW): Added method findQsForW(w, km) to retrieve the Qs that correspond for the given w and km. This is to be called when doing a "W auf freier Strecke" calculation to find out the Qs belonging to the user given W. * src/main/java/de/intevation/flys/artifacts/WQKmsInterpolArtifact.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Removed superfluous imports. 2011-11-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix bug when adding Q data in LongitudinalSectionGenerator. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Add data from Q -Facet as Q over Km points. 2011-11-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added handling of empty plots. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: (createAxes, removeEmptyRangeAxes): Survive empty datasets map, create primary axis. (recoverEmptyPlot): New. 2011-11-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> Let first visible axis be always on the left. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: (createAxes): When creating axes, keep track of which is the first one. Set its location to "left". 2011-11-24 Felix Wolfsteller <felix.wolfsteller@intevation.de> Use multiple axis in relevant generators. * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: (createYAxis): Implemented. Define and use YAXIS enum for axes. 2011-11-24 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix theming and legend items for plot with multiaxis feature. Decouple renderer index from dataset index. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: (applyThemes): Do not get renderer based on dataset/axis-index but count. 2011-11-24 Felix Wolfsteller <felix.wolfsteller@intevation.de> In XYChartGenerators allow more than two datasets. Assign axis to indices of datasets, do not show axis if corresponding dataset is set to be not visible. Do proper axis-setting in LongitudinalSectionGenerator only (other will follow). Based on a patch by Sascha Teichmann. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Keep relation between index and dataset, once its added. Compute ranges per index. Allow subclasses to override createAxes to specify internationalized labels etc. * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java, src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java, src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java: Add datasets to first index. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Implement createYAxis to create correct first, second and third axis. Added enum to easy identification of axis. Stripped down adjustAxis which was used to create second axis. Add datasets at correct indices. 2011-11-23 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/templating/StackFrames.java, src/main/java/de/intevation/flys/artifacts/datacage/templating/FunctionResolver.java, src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Cosmetics, docs. 2011-11-23 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Cosmetics, docs. 2011-11-23 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTableCacheKey.java: Cosmetics, docs. 2011-11-23 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java: Resolved TODO about caching certain WstValueTables. 2011-11-22 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/ExternalWMSArtifact.java: New. This Artifact is used to allow users adding external WMS layers to their floodmaps. An ExternalWMSArtifact stores an URL of a WMS, the name and the title of the WMS layer. The internal State extends WMSBackgroundState. * doc/conf/conf.xml: Registered the ExternalWMSArtifact. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added a new type "floodmap.externalwms" which is used by the ExternalWMSArtifact. * doc/conf/artifacts/winfo.xml: Allowed the "floodmap.externalwms" facet for floodmaps. * src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java: Some refactoring to allow easier subclassing. 2011-11-22 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fixed flys/411. * src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java: Use different queries to avoid costy joins. 2011-11-22 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java: Use different queries to avoid costy joins. Patch by Sascha Teichmann, minor typo-fix. 2011-11-17 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/artifacts/winfo.xml: Added other.wkms.interpol facet to compatibility matrix for computed discharge curves. 2011-11-17 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: Resolve cosmetic todo, use importData-convenience method. 2011-11-17 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Handle STATIC_WKMS_INTERPOL and WQ/Points as Annotations. 2011-11-17 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/WQKmsInterpolArtifact.java: Give Facet different name when its a flood*, so that it can be understood to be e.g. a flood-protection further down the processing line. 2011-11-17 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Prevent ArrayIndexOutOfBounds, log method entry. 2011-11-17 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added new Facet Type: Interpolated W/Km values. 2011-11-16 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/wsplgen/FacetCreator.java, src/main/java/de/intevation/flys/artifacts/WMSDBArtifact.java, src/main/java/de/intevation/flys/utils/MapfileGenerator.java: Avoid WMS layer names that begin with digits. This would lead to invalid WMSGetFeatureInfo responses, where the name of a layer is the name of a XML node. 2011-11-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/meta-data.xml: Added and use *_wq macros for interpolated w/q data (currently used in computed discharge curve only). 2011-11-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Handle STATIC_WQ_ANNOTATION type facets, build and add annotations for these. 2011-11-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/WQKmsInterpolArtifact.java: Set Facet type (name) based on static datas name (special case everything starting with "height"). 2011-11-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/artifacts/winfo.xml: Extended compatibility matrices. 2011-11-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added new STATIC_WQ_ANNOTATIONS Facet Type. 2011-11-16 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WMSLayerFacet.java: Added a method isQueryable() that determines if a layer is queryable via WMS GetFeatureInfo request. This method returns false as default. * src/main/java/de/intevation/flys/artifacts/model/WMSDBLayerFacet.java: Override isQueryable(). All WMSDBLayerFacets are queryable via WMS GetFeatureInfo request. 2011-11-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/WQKmsInterpolArtifact.java: Added functionality to artifact to use single column wst interpolators. 2011-11-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java: Added methods to create WstValueTables (interpolators) for specific columns of wsts. 2011-11-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/themes.xml: Added Point Style for other.wq data. 2011-11-16 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Do not re-evaluate constant size() in for-loops. 2011-11-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/WQKmsInterpolArtifact.java: Get ld_locations not locations data item to determine km. (getDataAsDouble): New helper function to get data item as double. 2011-11-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/meta-data.xml: Recommend fixations for computed discharge curve outs, minor refactoring of dc conf. 2011-11-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/conf.xml: Added wqinterpol factory to produce WQKmsInterpolArtifacts. 2011-11-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Use StyledSeriesBuilder to add WQ data from WQKms to Series. 2011-11-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Handle interpolated WQ data. 2011-11-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/StaticWQKmsArtifact.java: Adjusted to similar implementations. Added TODO about merging with these similar implementations. 2011-11-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Removed logging noise, find better suited rows for interpolation. 2011-11-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java: Cache WstValueTables that were fetched by wst_id. 2011-11-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WKmsFactory.java: (getWstName): Fix and use SQL statement. 2011-11-15 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WQFacet.java, src/main/java/de/intevation/flys/artifacts/WQKmsInterpolArtifact.java: Added new Facet and Artifact to access W over Q data. 2011-11-15 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: (importData): New function to copy data from one artifact to another. 2011-11-15 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java (getTable): New methods to get WstValueTable for given wst_id. Prepolate Arrays with NaNs. 2011-11-15 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WKmsFactory.java: (getWKmsName): Fix definition. 2011-11-15 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WKmsFactory.java: (getWKmsName): New function. Get name (description) of a WST. 2011-11-15 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added new "other.wq"/STATIC_WQ Facet-Type, e.g. for fixations in discharge curves. 2011-11-15 Felix Wolfsteller <felix.wolfsteller@intevation.de> Picky cosmetics. * src/main/java/de/intevation/flys/artifacts/model/QRangeTree.java, src/main/java/de/intevation/flys/artifacts/model/ManagedFacetAdapter.java, src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java, src/main/java/de/intevation/flys/artifacts/states/ComputationRangeState.java: Cosmetics, docs. 2011-11-15 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added translations for Mosel, Elbe and Saar. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added translations for Mosel, Elbe, Saar. 2011-11-15 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added new interpolation mechanism to WstValueTable to interpolate given columns only. * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java (linearW): New, interpolate a given columns w's between given rows. (interpolateWQColumnwise): New, interpolate between rows ws at a given column and km. 2011-11-14 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Minor doc added. 2011-11-13 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/math/DifferenceCurveFacet.java, src/main/java/de/intevation/flys/artifacts/model/WQKmsFactory.java, src/main/java/de/intevation/flys/artifacts/states/WDifferencesState.java, src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/StyledSeriesBuilder.java, src/main/java/de/intevation/flys/themes/ThemeFactory.java: Removed dead ';' from empty bodies. 2011-11-13 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/jfree/StableXYDifferenceRenderer.java: s/reset/resetQuick/s in TDoubleArrayLists. 2011-11-13 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/charts/CrossSectionApp.java: Added system properties 'waterlevel' and 'km'. Useful to init the UI with a given waterlevel and drawing the cross-sections at the given km. * src/main/java/de/intevation/flys/jfree/StableXYDifferenceRenderer.java: Spliting by NaNs definition holes _should_ work now. Needs some more testing. TODOs: - Use log4j instead of println for logging. - Subclass XYDifferenceRenderer instead of replacing it totally. 2011-11-12 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/charts/CrossSectionApp.java: Draw water, too. * src/main/java/de/intevation/flys/jfree/StableXYDifferenceRenderer.java: First code to split datasets by NaNs. WIP. 2011-11-12 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/charts/CrossSectionApp.java: Draw ground with StableXYDifferenceRenderer. * src/main/java/de/intevation/flys/jfree/StableXYDifferenceRenderer.java: Removed XYDatasetToZeroMapper stuff. Not needed any longer because we use rendereres on dataset basis now. * src/main/java/de/intevation/flys/jfree/XYDatasetToZeroMapper.java: Removed.Not longer needed. 2011-11-11 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/meta-data.xml: Include computed discharge curves in dc conf. 2011-11-11 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/meta-data.xml: Somewhat unify user-part of dc config. 2011-11-11 Ingo Weinzierl <ingo@intevation.de> * doc/conf/themes.xml: Modified some floodmap styles and added a backgroundcolor attribute to polygon themes. * src/main/java/de/intevation/flys/artifacts/model/MapserverStyle.java: Added support for backgroundcolor. * src/main/java/de/intevation/flys/utils/ThemeUtil.java: Parse backgroundcolor from theme document. If a value is given, the backgroundcolor is set on the Mapserver style. 2011-11-11 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/MapserverStyle.java: Set correct Mapserver attribute name to adjust the width of a line. 2011-11-11 Ingo Weinzierl <ingo@intevation.de> * doc/conf/themes.xml: Added 'textcolor' and 'textsize' attributes to the existing 'Kms' theme. * doc/conf/mapserver/fontset.txt: Defined a 'DefaultFont' that is used as default font for Mapserver labels. * doc/conf/mapserver/db_layer.vm: Add a Mapserver LABELITEM if a value is provided by LayerInfo object. * src/main/java/de/intevation/flys/artifacts/WMSDBArtifact.java: Added a getLabelItem() method that returns null as default. * src/main/java/de/intevation/flys/artifacts/WMSKmArtifact.java: Override getLabelItem() to return "km" which is the database field that contains the kilometer information. * src/main/java/de/intevation/flys/artifacts/model/LayerInfo.java, src/main/java/de/intevation/flys/artifacts/model/WMSDBLayerFacet.java: Added an attribute labelItem with appropriate getter/setter methods. * src/main/java/de/intevation/flys/artifacts/model/MapserverStyle.java: Splitted up the internal class Clazz. Now, there are two new inner classes Style and Label that fulfill the appropriate Mapfile sections of Mapserver. * src/main/java/de/intevation/flys/utils/ThemeUtil.java: Also Read font attributes and add new Clazz Label for the Mapserver layer. * src/main/java/de/intevation/flys/utils/MapfileGenerator.java: Set the "labelItem" attribute on the LayerInfo object used to fill DB layer templates. 2011-11-11 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/meta-data.xml: Re-use macros to include more data to datacage in more situations. 2011-11-11 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WMSLayerFacet.java: Removed needless imports. 2011-11-10 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WMSFixpointsArtifact.java: New WMSDBArtifact that creates facets for "fixpoints" relation. * doc/conf/artifacts/winfo.xml: Registered "floodmap.fixpoints" as valid "floodmap" facet. * doc/conf/conf.xml: Registered the new WMSFixpointsArtifact. * doc/conf/themes.xml: Added a theme for "floodmap.fixpoints". * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added Facet type "floodmap.fixpoints". * doc/conf/meta-data.xml: Made "floodmap.fixpoints" available via datacage. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added titles for "floodmap.fixpoints" facets. 2011-11-10 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/meta-data.xml: Refactored and (re)use macros. 2011-11-10 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WMSBuildingsArtifact.java: New WMSDBArtifact that creates facets for "buildings" relation. * doc/conf/artifacts/winfo.xml: Registered "floodmap.buildings" as valid "floodmap" facet. * doc/conf/conf.xml: Registered the new WMSBuildingsArtifact. * doc/conf/themes.xml: Added a theme for "floodmap.buildings". * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added Facet type "floodmap.buildings". * doc/conf/meta-data.xml: Made "floodmap.buildings" available via datacage. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added titles for "floodmap.buildings" facets. 2011-11-10 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WMSLineArtifact.java: New WMSDBArtifact that creates facets for "lines" relation. * doc/conf/artifacts/winfo.xml: Registered "floodmap.lines" as valid "floodmap" facet. * doc/conf/conf.xml: Registered the new WMSLineArtifact. * doc/conf/themes.xml: Added a theme for "floodmap.lines". * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added Facet type "floodmap.lines". * doc/conf/meta-data.xml: Made "floodmap.lines" available via datacage. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added titles for facets. 2011-11-10 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/meta-data.xml: Adjusted DC configuration to also allow heightmarks and base data in discharge longitudinal sections. Minor refac. 2011-11-10 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/meta-data.xml: Adjusted DC configuration to let old calculations be available for discharge longitudinal sections. 2011-11-10 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java: Handle other WQKm and WKm Facets. 2011-11-10 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java (IS): New inner class with static method to allow queries whether a type belongs to a however-defined "group". 2011-11-10 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/conf.xml: Reverted accidental commit. * doc/conf/meta-data.xml: Extracted annotations-macro, add recommendation for discharge longitudinal sections. 2011-11-10 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/conf.xml: Reverted accidental commit. * doc/conf/meta-data.xml: Extracted annotations-macro, add recommendation for discharge longitudinal sections. 2011-11-10 Felix Wolfsteller <felix.wolfsteller@intevation.de> Made discharge longitudinal section out compatible with annotations. * doc/conf/artifacts/winfo.xml: Added facets to compatibility list for discharge longitudinal section outs. 2011-11-10 Felix Wolfsteller <felix.wolfsteller@intevation.de> Extracted Annotations-Macro in dc conf, recommend Annotations for discharge longitudinal sections. (Note correction two commits later). * doc/conf/conf.xml: Extracted annotations-macro, add recommendation for discharge longitudinal sections. 2011-11-10 Felix Wolfsteller <felix.wolfsteller@intevation.de> Handle Annotations in DischargeLongitudinalSection diagrams. * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java: Call doAnnotations for LONGITUDINAL_ANNOTATION facets. 2011-11-10 Felix Wolfsteller <felix.wolfsteller@intevation.de> Resolve code duplicate. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java (doAnnotationsOut): Removed duplicate code. Theoretically handle WQKMS data. * src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Adjusted call to doAnnotationOut. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java (doAnnotations): Doc from LongitudinalSectionGenerator. 2011-11-10 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Include exception when logging issue with spline creation. 2011-11-10 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java: When during XPath evaluation an exception is thrown, log the expression that caused the trouble. 2011-11-10 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/charts/CrossSectionApp.java: Use separate XYDataset for each curve. This is needed because "Raum/Flaeche" needs specialized renderers, which are not compatible with the standard renderers. * src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java: Removed superfluous import. 2011-11-09 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WMSFloodplainArtifact.java: New Artifact that is used to create WMS layers for floodplains in maps. * doc/conf/conf.xml: Registered the new WMSFloodplainArtifact. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added a new type 'floodmap.floodplain'. * doc/conf/artifacts/winfo.xml: Registered the 'floodmap.floodplain' facet for floodmaps. * doc/conf/themes.xml: Added a theme for 'floodmap.floodplain' facets. * doc/conf/meta-data.xml: Added configuration for 'floodplain'. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added facet titles for 'floodmap.floodplain' facets. 2011-11-09 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WMSCatchmentArtifact.java: New Artifact that is used to create WMS layers for catchments in maps. * doc/conf/conf.xml: Registered the new WMSCatchmentArtifact. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added a new type 'floodmap.catchment'. * doc/conf/artifacts/winfo.xml: Registered the 'floodmap.catchment' facet for floodmaps. * doc/conf/themes.xml: Added a theme for 'floodmap.catchment' facets. * doc/conf/meta-data.xml: Added configuration for 'catchments'. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added facet titles for 'floodmap.catchment' facets. 2011-11-09 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WMSHwsArtifact.java: New Artifact that is used to create WMS layers for flood protected works. * doc/conf/conf.xml: Registered the new WMSHwsArtifact. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added a new type 'floodmap.hws'. * doc/conf/artifacts/winfo.xml: Registered the 'floodmap.hws' facet for floodmaps. * doc/conf/themes.xml: Added a theme for 'floodmap.hws' facets. * doc/conf/meta-data.xml: Added configuration for 'hws'. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added facet titles for 'floodmap.hws' facets. 2011-11-09 Ingo Weinzierl <ingo@intevation.de> * doc/conf/mapserver/dbconnection.include: Removed. DB connections are supported by LayerInfo objects now. So, we do not need to configure it any more. * doc/conf/mapserver/db_layer.vm: The database connection is provided by LayerInfo objects. The "INCLUDE dbconnection.include" has been replaced. * src/main/java/de/intevation/flys/artifacts/WMSDBArtifact.java: The inner State class got two new methods that provide information about db connection string and connection type. * src/main/java/de/intevation/flys/artifacts/model/WMSDBLayerFacet.java, src/main/java/de/intevation/flys/artifacts/model/LayerInfo.java: Both classes support getter/setter for connection and connectionType. * src/main/java/de/intevation/flys/utils/MapfileGenerator.java: Fill LayerInfo objects used to create DB layers with the connection and connection type provided by WMSDBLayerFacet. 2011-11-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> Allow height marks with points style in w-differences diagrams. * src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Handle HEIGHTMARKS_POINTS facets. 2011-11-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> Made Q Duration curve initially inactive. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java (getInitialFacetActivity): Return 0 for DURATION_Q facets. Minor cosmetics. 2011-11-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> Recommend mainvalues for Duration Curve Diagrams. * doc/conf/meta-data.xml: Recommend mainvalues for duration curve diagrams. refactored into macro. 2011-11-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> Handle MainValue Facets in Duration Curve Diagrams. * src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java: Handle MainValues. * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Adjusted to call doAnnotations. 2011-11-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> Move do*Annotation* (like mainvalue) in XYChartGenerator. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java (doAnnotations): New, moved from DischargeCurveGenerator. * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java (doMainValueAnnotations): Moved to superclass. 2011-11-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: Removed duplicate code. 2011-11-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java (): Minor cosmetics, added stability. (getInitialFacetActivity): Let facets be inactive in duration curve diagrams. 2011-11-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/artifacts/winfo.xml: Allow other.wqkms facets in many outputs, mainvalues in duration curves. 2011-11-09 Ingo Weinzierl <ingo@intevation.de> * doc/conf/mapserver/dbconnection.include: Adapted connection params for using an oracle database. * src/main/java/de/intevation/flys/artifacts/WMSQPSArtifact.java, src/main/java/de/intevation/flys/artifacts/WMSKmArtifact.java, src/main/java/de/intevation/flys/artifacts/RiverAxisArtifact.java: Added Oracle support for Mapserver's DATA attribute. Oracle doesn't allow a "USING UNIQUE id" string in this attribute which is required by Postgis. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Modified the geometry type of "talaue.shp" from MultiPolygon to Polygon. * src/main/java/de/intevation/flys/utils/FLYSUtils.java: Added a function which returns true, if the backend uses an Oracle db instance. Otherwise, it returns false. 2011-11-08 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix flys/issue406 (Themestyle-editor: themes for "other.wkms" and "other.wqkms" missing) * doc/conf/themes.xml: Fixed typos in WKms and WQKms theme names. 2011-11-08 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix flys/issue405 (Datacage: Recommendations get loaded twice). * src/main/java/de/intevation/flys/artifacts/StaticWKmsArtifact.java (setup): Do not try/catch exception. (spawn_state): Generate just one "general" output. 2011-11-08 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/StaticWKmsArtifact.java: Added a log.warn() which prints out an exception - previously it was just skipped. 2011-11-08 Ingo Weinzierl <ingo@intevation.de> * doc/conf/meta-data.xml: Removed orphaned datacage configuration which is no longer loadable. 2011-11-07 Ingo Weinzierl <ingo@intevation.de> * doc/conf/conf.xml: Added an "post-describe" hook which is necessary to load recommendations for "floodmaps". 2011-11-07 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java (loadRows, loadColumns, loadQRanges): Refactored in preparation to ability to create WstValueTables for given wst_id and column_pos (interpolation for static data). 2011-11-07 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, src/main/java/de/intevation/flys/artifacts/states/LocationSelect.java: Minor, picky cosmetics. * src/main/java/de/intevation/flys/artifacts/model/WQKmsFactory.java: Removed junk. * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Added documentation. 2011-11-07 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Be more specific in what to catch. 2011-11-04 Ingo Weinzierl <ingo@intevation.de> * doc/conf/meta-data.xml: Added the CrossSectionTracks to the "floodmap" datacage configuration. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added a FacetType "floodmap.qps". * doc/conf/conf.xml: Defined an ArtifactFactory for the "wmspqsartifact" string. The factory will create new instances of WMSQPSArtifact. * src/main/java/de/intevation/flys/artifacts/WMSQPSArtifact.java: New. This Artifact is used to create "floodmap.qps" facets. It has an internal fixed State WMSQPSState. * doc/conf/artifacts/winfo.xml: Added the "floodmap.qps" layer to the "floodmap" output. * doc/conf/themes.xml: Added a theme for "floodmap.qps" facets. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added strings for the QPS WMS layer used in floodmaps. 2011-11-04 Felix Wolfsteller <felix.wolfsteller@intevation.de> Re-enable mainvalue-recommendations for computed discharge curves, as the NPE should be gone. * doc/conf/meta-data.xml: Uncomment mainvalue recommendations. 2011-11-04 Felix Wolfsteller <felix.wolfsteller@intevation.de> When querying metadata/datacage, use only output-names of outputs that actually exists (in the sense of having facets). * src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java: Get output names from artifact, not from state. 2011-11-04 Ingo Weinzierl <ingo@intevation.de> * doc/conf/meta-data.xml: Removed DEMs from floodmap configuration, because we are not able to draw DEMs into maps. 2011-11-04 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/RiverAxisArtifact.java: Subclasses WMSDBArtifact now and defines an inner class RiverAxisState which subclasses WMSDBState. * src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java: Removed. The RiverAxisState is an inner class of RiverAxisArtifact now which subclasses WMSDBState. * doc/conf/artifacts/riveraxis.xml: Removed, because the RiverAxisArtifact has a fixed static State only. * doc/conf/conf.xml: Removed riveraxis.xml definition. 2011-11-04 Felix Wolfsteller <felix.wolfsteller@intevation.de> For a Flys-Collection, add outputt to attributes-part of describe document only if they contain facets. -> Prevent empty output nodes in flys-collections outputs. * src/main/java/de/intevation/flys/collections/AttributeWriter.java: (writeFacets): Added return type to indicate whether any facet was written. Decide whether to add an output-node depending on this return value. 2011-11-04 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/utils/MapfileGenerator.java: Create line and polygon layers for barriers only if they are really existing. 2011-11-04 Felix Wolfsteller <felix.wolfsteller@intevation.de> Disable mainvalue-recommendations for discharge curves as they trigger a yet-to-be understood NPE. * doc/conf/meta-data.xml: Comment mainvalue-recommendations for discharge curves. 2011-11-04 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added new matching condition for theme-mappings: the name of the output. * src/main/java/de/intevation/flys/themes/ThemeMapping.java: Added output field and function to match it against a given output name. * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: Createing ThemeMapping with output attribute from configuration. * src/main/java/de/intevation/flys/themes/ThemeFactory.java: (getTheme(FLYSContext, string)): Removed, never called. (getTheme): Added outputName argument, match it. * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Pass outputs name until it can be matched against mapping. 2011-11-04 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/themes.xml: Added default themes for other.w(q)kms. 2011-11-04 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/StaticWKmsArtifact.java, src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: Cosmetics, reduce logging noise. 2011-11-03 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added access to static W_Q_Kms - data in much the same way then static WKms. * src/main/java/de/intevation/flys/artifacts/model/StaticWQKmsCacheKey.java: Cache Key for static wqkms data. * src/main/java/de/intevation/flys/artifacts/model/WQKmsFacet.java: Facet for WQKms. * src/main/java/de/intevation/flys/artifacts/model/WQKmsFactory.java: Factory to access WQKms. * src/main/java/de/intevation/flys/artifacts/StaticWQKmsArtifact.java: Artifact that provides 'static' WQKms. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added STATIC_WQKMS type. 2011-11-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/jfree/XYDatasetToZeroMapper.java: New. Maps series to zero to be compatible with XYDifferenceRenderer. It returns an iterator over XYDatasets to enable splitting by NaNs, which still needs to be implemented. * src/main/java/de/intevation/flys/jfree/StableXYDifferenceRenderer.java: Uses a XYDatasetToZeroMapper now. Fixed package name. 2011-11-03 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added new matching options for theme-mappings to allow more overspecification of defaults (e.g. now name,description-pattern and master-artifacts attributes are matched). The first full match from the configuration file is done. New matching option in the masterAttr- field of a mapping are super-basic until new use-cases come up. Concrete new themes are point-styles of Ws when locations where chosen to calculate. * doc/conf/themes.xml: Added newly defined Themes. * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Put master-artifact in flys-context. * src/main/java/de/intevation/flys/themes/ThemeMapping.java: Accept masterAttr in constructor. (masterAttrMatches): New, check masterAttr-condition against artifact. * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: When creating ThemeMappings, pass in masterAttr. * src/main/java/de/intevation/flys/themes/ThemeFactory.java: (getTheme): Evaluate masterAttr-condition, always return first full match. 2011-11-03 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java: Added ARTIFACT key, documentation. 2011-11-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/jfree/StableXYDifferenceRenderer.java: New. At the moment a pure copy of JFreeChart's XYDifferenceRenderer. Needs to be refactored to cope with its limitations: - Series numbers need to be zero based. We have more than two series in our diagrams. - Cannot handle definition holes indicated by NaNs. We have these cases e.g. more than one "Fliessbereich". 2011-11-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/charts/CrossSectionApp.java: Reenabled dumping data to disk. 2011-11-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Removed superfluous import. 2011-11-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java: Use new pair in stack of results and connections because they are always used in pairs. Maintaining two separate stacks is not needed any longer. 2011-11-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/utils/Pair.java: New. A generic pair. * src/main/java/de/intevation/flys/artifacts/charts/CrossSectionApp.java: Rewritten to useful as test bed for "Raum/Flaeche" operations. 2011-11-02 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/LayerInfo.java: Added setter methods for all parameters and removed the constructors. There is just an empty constructor - all parameters need to be set via setter methods. * src/main/java/de/intevation/flys/utils/MapfileGenerator.java: Modified the creation of LayerInfo objects. * src/main/java/de/intevation/flys/artifacts/model/DBLayerInfo.java: Removed, because the internal structure and constructors of LayerInfo have changed, so that we gonna use LayerInfo for all layers now. * doc/conf/themes.xml: Modified the color definitions of 'floodmap.riveraxis' and 'floodmap.kms' themes and added a 'symbol' field to 'floodmap.kms'. * doc/conf/mapserver/symbols.sym, doc/conf/mapserver/fontset.txt: New. Required by Mapserver. * doc/conf/mapserver/db_layer.vm: Added an 'EXTENT' field that is filled using LayerInfo.getExtent(). * doc/conf/mapserver/mapfile.vm: Modified FONTSET directory and added a SYMBOLSET. * src/main/java/de/intevation/flys/artifacts/WMSDBArtifact.java: Added an abstract method getGeometryType(). * src/main/java/de/intevation/flys/artifacts/WMSKmArtifact.java: Override getGeometryType() of WMSDBArtifact. This Artifact provides "POINT"s. * src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java: Create new WMSDBLayerFacets with geometry type "LINE". * src/main/java/de/intevation/flys/artifacts/model/WMSDBLayerFacet.java: Added a 'geometryType' attribute and getter/setter methods. This attribute determines the type of geometry provided by this database wms layer. Types could be "POLYGON", "POINT", "LINE" and so on. * src/main/java/de/intevation/flys/artifacts/model/MapserverStyle.java: Added a 'symbol' attribute to the inner class Clazz. * src/main/java/de/intevation/flys/utils/ThemeUtil.java: Added a function to parse the symbol field of a theme. This symbol is used for MapserverStyle.Clazz. 2011-11-02 Felix Wolfsteller <felix.wolfsteller@intevation.de> Apply point theme to heightmarks when imported in longitudinal section diagram. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added new FacetType HEIGHTMARK_POINTS. * src/main/java/de/intevation/flys/artifacts/model/WKmsFacet.java: Allow name to be given in constructor. * src/main/java/de/intevation/flys/artifacts/StaticWKmsArtifact.java: If heightmarks were loaded, give respective name in WKmsFacet generation. * doc/conf/themes.xml: Added virtual "Points" and concrete heightmark_points - theme. * doc/conf/artifacts/winfo.xml: Made longitudinal_section output compatible with heightmarks_points. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Render heightmarks like other wkms. * doc/conf/meta-data.xml: Changed heightmark ids such that it can be identified in StaticWKmsFacet . 2011-11-02 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/StyledXYSeries.java: Documentation added. 2011-11-02 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/ManagedDomFacet.java: Fix bug where (wrong) active-attribute was set, doc. 2011-11-02 Felix Wolfsteller <felix.wolfsteller@intevation.de> Refactoring to allow mainvalues in both discharge and computed discharge curve diagrams. * src/main/java/de/intevation/flys/exports/StyledSeriesBuilder.java (addPointsQW): New helper function. * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Moved doMainValueQAnnotations, doMainValueWAnnotations from child- to parent-class, extracetd doDischargeOut. Use StyledSeriesBuilder.addPointsQW . 2011-11-02 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: Removed logger/debugging noise. 2011-11-02 Felix Wolfsteller <felix.wolfsteller@intevation.de> 1) Pass outputs name to artifacts getInitialFacetActivity(). 2) Do not allow "gaps" in positions of facets in outputs in attributes of collection (prevent e.g. positions 1,3,5; will become 1,2,3 instead). * src/main/java/de/intevation/flys/collections/AttributeWriter.java: Pass outputname to artifacts getInitialFacetActivity(), prevent gaps in facets positions in outputs (1,3,10 become 1,2,3). 2011-11-02 Felix Wolfsteller <felix.wolfsteller@intevation.de> 1) Give Artifacts information about the out when they have to decide whether a given facet is initially in/active by adding parameter to getInitialFacetActivity(+outputName). 2) Generate separate Set of MainValueFacets for discharge curves. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/artifacts/StaticWKmsArtifact.java, src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java, src/main/java/de/intevation/flys/artifacts/WaterlevelArtifact.java, src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: (getInitialFacetActivity): Adjusted, new parameter outputName. Added MAINVALUES_{Q,W} definition. * src/main/java/de/intevation/flys/artifacts/model/MainValuesQFacet.java, src/main/java/de/intevation/flys/artifacts/model/MainValuesWFacet.java: Accept name in constructor. * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: Create second pair of MainValuesFacets, give distinguishable names. 2011-11-02 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added compatibility of (computed)discharge-curve diagrams with mainvalues. * doc/conf/artifacts/winfo.xml: Added mainvalues to compatibility list of (computed) discharge curve outputs. These facet-definitionss can differ in names because we can can have up to 4 mainvalue facets in one state. 2011-11-01 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WMSKmArtifact.java: Determine the extent of such WMS layer based on the list of RiverAxisKm objects returned by the backend. 2011-11-01 Ingo Weinzierl <ingo@intevation.de> * doc/conf/meta-data.xml: Added a datacage node that represents a kilometer WMS layer. * doc/conf/conf.xml: Added a new Artifact WMSKmArtifact. * doc/conf/themes.xml: Added a style for 'floodmap.kms' facets. * doc/conf/artifacts/winfo.xml: Defined 'floodmap.kms' as valid floodmap facet. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added a 'floodmap.kms' facet. * src/main/java/de/intevation/flys/utils/FLYSUtils.java: Added a method to determine the srid of a river based on its name. * src/main/java/de/intevation/flys/artifacts/WMSDBArtifact.java: New. This Artifact should act as base Artifact for WMS layers that represent data from database datastore. * src/main/java/de/intevation/flys/artifacts/WMSKmArtifact.java: New. This Artifact is used to generate facets for kilometer WMS layers. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added default descriptions for 'floodmap.kms' facets. 2011-11-01 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix incompilability. * src/main/java/de/intevation/flys/artifacts/states/WaterlevelInfoState.java: Adjust to changed CrossSectionFacet. 2011-11-01 Felix Wolfsteller <felix.wolfsteller@intevation.de> Minor preparations to handle multiple cross sections in one diagram/artifact, faking certain aspects (e.g. ability to display multiple cross sections, but let these fetch the exactly same data for now). * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Parameterize but fake access to cross-section (always take first one). (getCrossSectionName,getCrossSectionNames): Renamed, access names of all cross-sections, so that at least facets with different names are created (they will still deliver the same data). * src/main/java/de/intevation/flys/artifacts/model/CrossSectionFacet.java: Allow indexing. * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: Index created cross-sections. 2011-11-01 Felix Wolfsteller <felix.wolfsteller@intevation.de> Show multiple water lines and facets in cross-section diagram if multiple waterlevel values had been entered. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java (appendBackgroundActivity): Made static. (getWaterLines): Add 'idx' argument to specify index of queried waterlevel. * src/main/java/de/intevation/flys/artifacts/model/CrossSectionWaterLineFacet.java: Add index. * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: Add one Facet for each of the computed waterlevels. 2011-10-31 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/geom/VectorUtils.java: Added code to calculate intersection points. * src/main/java/de/intevation/flys/artifacts/geom/Polygon2D.java: Added polygons for trivial cases. WIP 2011-10-31 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/geom/Polygon2D.java: Made it compilable again. 2011-10-31 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/geom/VectorUtils.java: Made X() and Y() access macros public. * src/main/java/de/intevation/flys/artifacts/geom/Polygon2D.java: More code. WIP. 2011-10-31 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/geom/Polygon2D.java: Handle start points when building polygons. Work in progress. 2011-10-31 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/geom/VectorUtils.java: New. Vector operations on Point2D. * src/main/java/de/intevation/flys/artifacts/geom/Polygon2D.java: Moved vector operations to VectorUtils. 2011-10-31 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WKmsFactory.java: Do not call size() in for loop again and again. 2011-10-30 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/geom/Polygon2D.java: Interim check in. Work in progress. 2011-10-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/geom/Polygon2D.java: New. Polygon class to help creating "Raum/Flaeche" renderers with gaps in their definitions. WORK IN PROGRESS! 2011-10-28 Ingo Weinzierl <ingo@intevation.de> * doc/conf/themes.xml: Added a default theme for the riveraxis used in the floodmap. * src/main/java/de/intevation/flys/artifacts/model/MapserverStyle.java: New. This class is used by ThemeUtil to create a style which is compatible for Mapserver- * src/main/java/de/intevation/flys/utils/ThemeUtil.java: Added a method to retrieve a Mapserver compatible style (as string) based on a given Document (that comes from CollectionItem's attribute). * src/main/java/de/intevation/flys/artifacts/model/LayerInfo.java: Implemented the setStyle() and getStyle() methods. * src/main/java/de/intevation/flys/utils/MapfileGenerator.java: Added a new parameter 'style' to createDatabaseLayer(). This parameter is set on LayerInfo. * src/main/java/de/intevation/flys/exports/MapGenerator.java: Create Mapserver compatible styles and call createDatabaseLayer() with this style. 2011-10-28 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Defined "floodmap.riveraxis" and "floodmap.wmsbackground" as compatible layers for the floodmap output. * doc/conf/mapserver/db_layer.vm: New. This layer template is used for Mapserver layers with database datastore. * doc/conf/mapserver/dbconnection.include: New. The database configuration used in the db_layer template. * src/main/java/de/intevation/flys/utils/FLYSUtils.java: Added a method getUserWMSUrl() that returns the URL to the user specific WMS server. This method requires a UUID of an Artifact to identify the owner of the Artifact. * src/main/java/de/intevation/flys/wsplgen/FacetCreator.java: Use FLYSUtils.getUserWMSUrl() to create the URL to the user WMS for WMSLayerFacets creation. * src/main/java/de/intevation/flys/artifacts/model/WMSDBLayerFacet.java: New. Subclasses WMSLayerFacet to save data and filter parameters used for database storage in Mapfiles. * src/main/java/de/intevation/flys/artifacts/model/DBLayerInfo.java: New. Subclasses LayerInfo to save database relevant parameters. * src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java: Creates new WMSDBLayerFacets, so that the riveraxis layer data is fetched from database. * src/main/java/de/intevation/flys/utils/MapfileGenerator.java: Added a public method that allows creating layers (type LINE) based on WMSDBLayerFacets. * src/main/java/de/intevation/flys/exports/MapGenerator.java: Enabled support for Facets other than "floodmap.wsplgen" and "floodmap.barriers". Those other Facets are supposed to be WMSDBLayerFacets. 2011-10-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> Refactored, added StyledSeriesBuilder to unify adding points to XYSeries. * src/main/java/de/intevation/flys/exports/StyledSeriesBuilder.java: New class to help with adding points to XYSeries. * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Use StyledSeriesBuilder to add points to series. 2011-10-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added DC-conf, such that static data can be loaded from w-difference diagrams datacage. * doc/conf/meta-data.xml: Minor "refactoring" (definition of two macros, allow certain static data to be loaded via datacage to w-difference diagrams, too. 2011-10-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> Load and display annotations in w-differences, minor polishing. * src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Use FacetType 'instead' of string. Allow Annotations in WDifferences- diagram. * doc/conf/meta-data.xml: Recommend annotations in w-differences case. 2011-10-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/collections/AttributeWriter.java: Survive case where a given output doesnt exist in compatibility matrix. 2011-10-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/StaticState.java: Added simpler constructor. * src/main/java/de/intevation/flys/artifacts/StaticWKmsArtifact.java, src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: Adjusted construction of StaticStates. 2011-10-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/artifacts/winfo.xml: Allow Annotations in longitudinal and w-differences diagrams. 2011-10-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> Use artifacts configuration (e.g. winfo.xml) to define which facets can be used in which output. Hide no-matches. * src/main/java/de/intevation/flys/collections/AttributeWriter.java, src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Added use of "compatibility matrix". Only include facets in in collections description document that are marked compatible in the masterartifacts configuration (e.g. winfo.xml). 2011-10-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java (mergeAttributes, getMasterArtifact): Extraced, updated caller. Cosmetics to reduce indentation one step. 2011-10-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java (getStateHistoryIds): New, return list of current and all previous state ids. 2011-10-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Trigger the re-creation of FLYS mapfile if endOfLife() of this state is called. 2011-10-28 Ingo Weinzierl <ingo@intevation.de> * doc/conf/mapserver/mapfile.vm: The "layers" injected by VelocityEngine is now used to include layers. A single string in this list represents the path to a file which contains a LAYER section for Mapserver' Mapfile. * src/main/java/de/intevation/flys/wsplgen/JobExecutor.java: Removed the update() call of MapfileGenerator. Mapfiles are generated by MapGenerator only which requires a FLYSArtifactCollection.doOut()! * src/main/java/de/intevation/flys/exports/MapGenerator.java: Call update() of MapfileGenerator to trigger the re-creation of mapfile(s). * src/main/java/de/intevation/flys/utils/MapfileGenerator.java: Collect all LAYER snippets from filesystem and inject the filepath for each snippet into the Mapfile template. 2011-10-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/collections/AttributeWriter.java, src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java, src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Cosmetics, doc. 2011-10-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> Let OutputParser and AttributeParser collect all facets on the way. * src/main/java/de/intevation/flys/collections/OutputParser.java, src/main/java/de/intevation/flys/collections/AttributeParser.java: Collect all facets while iterating over Outputs and Attributes, documentation added. 2011-10-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> Extracted getFlysContext from FLYSArtifacts into FLYSUtils. * src/main/java/de/intevation/flys/utils/FLYSUtils.java (getFlysContext): Added, extracted from FLYSArtifact. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: (getFlysContext): Moved to FLYSUtils, updated callers. * src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java, src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Update callers to getFlysContext. 2011-10-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/MapGenerator.java: Bugfix: Catch IOException - flys-artifacts compiles again. 2011-10-28 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Defined "floodmap.barriers" as valid facet for floodmaps. * doc/conf/mapserver/shapefile_layer.vm: New. Currently a copy of layer.vm. This template will evolve to a special mapserver layer template with a shapefile data source. * src/main/java/de/intevation/flys/wsplgen/FacetCreator.java: Fixed broken facet name of barriers. * src/main/java/de/intevation/flys/utils/MapfileGenerator.java: Added public methods for creating wsplgen and barriers layer files for mapserver. * src/main/java/de/intevation/flys/exports/MapGenerator.java: Use MapfileGenerator to create new layer files for wsplgen and barriers. 2011-10-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/utils/GeometryUtils.java: Added new method gerRiverBoundary() which returns an Envelope object (which represents the bounding box of a Geometry) of a riveraxis specified by its rivername. * src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java: Use Geometry.getRiverBoundary() to determine the max extent of a river. * src/main/java/de/intevation/flys/wsplgen/FacetCreator.java, src/main/java/de/intevation/flys/artifacts/model/WMSLayerFacet.java: Use JTS Envelope to save the bounding boxes of WMS layers. * src/main/java/de/intevation/flys/artifacts/services/MapInfoService.java: Adapted the code to apply the changes in GeometryUtils (use Envelope to determine the max extent of the river axis). * src/main/java/de/intevation/flys/exports/MapGenerator.java: New (work in progress). This Generator will currently return a map configuration in XML which consists of parameters required by OpenLayers to create a map. * doc/conf/conf.xml: Registered the new MapGenerator. 2011-10-27 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/meta-data.xml: Do not recommend historical data to load when having computational discharge curves. 2011-10-27 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Reduce noise, given "error" message was more of "debug" nature. 2011-10-27 Felix Wolfsteller <felix.wolfsteller@intevation.de> Restore mapping of state id to facets (essentially revert, revision 3083 and 3088). * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: (getInitialFacetActivity): Be more explicit on which facets to introduce inactivated. * src/main/java/de/intevation/flys/artifacts/StaticWKmsArtifact.java, src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: Minor refactoring, declare a string final static. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/artifacts/StaticFLYSArtifact.java, src/main/java/de/intevation/flys/artifacts/StaticWKmsArtifact.java, src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java, src/main/java/de/intevation/flys/artifacts/WMSBackgroundArtifact.java, src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java, src/main/java/de/intevation/flys/artifacts/WaterlevelArtifact.java, src/main/java/de/intevation/flys/artifacts/RiverAxisArtifact.java, src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Restore association from state id to facets. 2011-10-26 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java, src/main/java/de/intevation/flys/collections/OutputParser.java: Cosmetics, documentation. 2011-10-26 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Prepare rendering of "other/static wkms" (functional) and w-differences (not yet fully functional). 2011-10-26 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java, src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/ChartGenerator.java, src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Cosmetics. 2011-10-26 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/RiverAxisArtifact.java: Do not store facets in a map from stateId to list of facets, but in a pure list instead. 2011-10-26 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/artifacts/winfo.xml: Adjusted to newer semantics, minor cleanups. 2011-10-26 Felix Wolfsteller <felix.wolfsteller@intevation.de> Resolve association of facets to states in artifacts. This eases merging of outputs and facets and inhibition of unwanted outputs substiantially (at the price of slightly more expensive merging). Also, the semantics of artifacts configuration files (e.g. winfo.xml) is changed (facet elements within an output elements are used for merging). * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/artifacts/StaticFLYSArtifact.java, src/main/java/de/intevation/flys/artifacts/StaticWKmsArtifact.java, src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java, src/main/java/de/intevation/flys/artifacts/WMSBackgroundArtifact.java, src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java, src/main/java/de/intevation/flys/artifacts/WaterlevelArtifact.java, src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Do not store facets in a map from stateId to list of facets, but in a pure list instead. 2011-10-26 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/meta-data.xml: Added dc configuration for some data that can be loaded from longitudinal section diagrams. 2011-10-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Cosmetics, docs. 2011-10-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> Let Qs in Longitudinal Diagram be inactive, initally. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: (getInitialFacetActivity): Do not let Facets ending with a 'q' enter in active state. 2011-10-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/meta-data.xml: Fix broken datacage config. 2011-10-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/meta-data.xml: Configured to include correct id to clone artifact that produces w-diff. 2011-10-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/jfree/StickyAxisAnnotation.java: Revert correct behaviour of Annotations (the small axis tick shall always be drawn). Minor refactoring. 2011-10-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/meta-data.xml: Added configuration to include differences in datacage when longitudinal sections are shown (yet not functional). 2011-10-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/meta-data.xml: Cosmetics. 2011-10-24 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/themes.xml: Added theme for w_differences facets. * src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java (createSecondAxisRange): Survive parameter-nullness for now. Added documentation. 2011-10-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/themes/ThemeAccess.java: New. Caching wrapper around an XML document theme. It uses ThemeUtil to access the values and stores them in instance variable. Background: ThemeUtil use XPath a lot which is expensive. * src/main/java/de/intevation/flys/jfree/StickyAxisAnnotation.java, src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Use ThemeAccess to style the annotations. * src/main/java/de/intevation/flys/exports/StyledXYSeries.java: Removed some XPath strings. They are in ThemeUtil. 2011-10-21 Raimund Renkert <raimund.renkert@intevation.de> * src/main/java/de/intevation/flys/utils/ThemeUtil.java: Added methods to parse further attributes. * src/main/java/de/intevation/flys/exports/StyledXYSeries.java: Apply the theme attributes and use ThemeUtils to get the attribute values. * src/main/java/de/intevation/flys/jfree/StickyAxisAnnotation.java: Removed the spamy debug output. 2011-10-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> To obtain the size of a diagram it is rendered twice. The second time the generated image is omitted so the concrete rendered image is not needed. To save CPU cycles in this pass the image is rendered to to /dev/null Graphics2D object. * src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java: Added boolean system property "info.rendering.nop.graphics" (default: false). With this property set the info rendering is done via a new NOPGraphics2D opbject which does not render the image. * src/main/java/de/intevation/flys/java2d/NOPGraphics2D.java: New. Implements java.awt.Graphics2D trivial empty methods. This prevents rendering. * src/main/java/de/intevation/flys/jfree/StickyAxisAnnotation.java: Commented out spamy debug output 2011-10-21 Raimund Renkert <raimund.renkert@intevation.de> * src/main/java/de/intevation/flys/jfree/StickyAxisAnnotation.java: Draw the text background and use orientation attribute. 2011-10-21 Raimund Renkert <raimund.renkert@intevation.de> * doc/conf/themes.xml: Renamed 'textbackground' to 'backgroundcolor' to have 'color' in the attribute name. * src/main/java/de/intevation/flys/utils/ThemeUtil.java: Process text attributes correctly. 2011-10-20 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/CrossSectionKMService.java: New. Service to lookup the Nth nearest neighbors for a set of given cross section ids and kms. * doc/conf/conf.xml: Registered service. * doc/conf/cache.xml: Cache config. * src/main/java/de/intevation/flys/artifacts/StaticWKmsArtifact.java, src/main/java/de/intevation/flys/artifacts/states/WaterlevelPairSelectState.java: Removed superfluous imports. 2011-10-20 Raimund Renkert <raimund.renkert@intevation.de> * src/main/java/de/intevation/flys/utils/ThemeUtil.java: Added methods to extract further attributes from theme. 2011-10-20 Ingo Weinzierl <ingo@intevation.de> * doc/conf/themes.xml: Added main value themes for longitudinal section charts. * src/main/java/de/intevation/flys/themes/ThemeMapping.java: New. This class stores the name of a facet, the related theme and a pattern string. * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: Read the pattern string and store a list of ThemeMapping objects in the FLYSContext. * src/main/java/de/intevation/flys/themes/ThemeFactory.java: Modified getTheme() which now takes the FLYSContext, the name of a facet and an optional pattern string. Now, we can have specialized Themes for each chart type. E.g. the facet "longitudinal_section.w" maps the default Theme for W lines in longitudinal section charts. If the optional pattern string matches the pattern ".*(HQ1000)(\D.*)*", the ThemeFactory will return the Theme "LongitudinalSectionW_HQ1000". * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Use the description of a facet as pattern string to get the relevant Theme from ThemeFactory. 2011-10-20 Raimund Renkert <raimund.renkert@intevation.de> * doc/conf/themes.xml: Added new theme attributes. 2011-10-19 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix WDifference plots where masterartifact has no range set. * src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: (addSubtitles): Overridden, the master artifact has no range. 2011-10-19 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix masterartifact in collections in cases where the original masterartifacts facets do not come first in certain list. Query 'backend'/db instead. * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Set 'real' master artifact, defined to be oldest belonging to this collection. 2011-10-19 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java, src/main/java/de/intevation/flys/artifacts/states/WaterlevelSelectState.java, src/main/java/de/intevation/flys/artifacts/states/DGMSelect.java, src/main/java/de/intevation/flys/artifacts/states/WaterlevelPairSelectState.java: Modified the method signature of createStaticData() which now also requires a FLYSArtifact. * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: Override createStaticData() to create titles for Qs manually - we want to display the named main values if existing for the selected Qs. 2011-10-19 Raimund Renkert <raimund.renkert@intevation.de> * doc/conf/themes.xml: ComputedDischargeCurveW and ComputedDischargeCurveQ inherit attributes from theme 'Text'. 2011-10-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> Fix for flys/issue316 * src/main/java/de/intevation/flys/exports/StyledXYSeries.java: Added constructor to not sort the data. * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java: Use the not sorting constructor of StyledXYSeries. 2011-10-19 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: moved the code to create WSP W and Q facet names to FLYSUtils. * src/main/java/de/intevation/flys/utils/FLYSUtils.java: New functions for creating WSP W and Q facet names and for querying a named main value based on a given gauge and value. The names of W and Q facets will now depend on the selected Q and Q mode: if the mode is "q at gauge" and a named value is found for the given value, the facet's name contains the named value instead of the value itself. 2011-10-19 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix datacage configuration to let client load ZUS and flood protections. * doc/conf/meta-data.xml: Use 'ids' instead of 'id' to help client. 2011-10-19 Raimund Renkert <raimund.renkert@intevation.de> * src/main/java/de/intevation/flys/utils/ThemeUtil.java: Added methods to parse text attributes from theme document. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java, src/main/java/de/intevation/flys/jfree/StickyAxisAnnotation.java: Apply a theme to axis annotations. 2011-10-19 Felix Wolfsteller <felix.wolfsteller@intevation.de> Create (data) Label from data string (client will be adjusted to send the name). * src/main/java/de/intevation/flys/artifacts/states/WaterlevelPairSelectState.java: Create label from input data string, documentation added, junk removed. 2011-10-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/exports/XYChartGenerator.java(zoom): Do not crash if no axis is given. 2011-10-19 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/ChartGenerator.java: Added getFormat() which extracts the format string from XML request document. * src/main/java/de/intevation/flys/exports/ChartExportHelper.java: Adapted method signatures of exportImage(), exportSVG() and exportPDF(). All methods now take a CallContext object which stores extra chart export parameters. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Enabled PDF and SVG chart exports based on the "format" string given in the XML request document. 2011-10-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> Simplify rendereing W(Q)Kms in WDifferencesCurveGenerator. * src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: (doWOut, doWOut): Simplified. 2011-10-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> Render zus and flood-protections in WDifferences-diagrams. * src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Added basic respect of "other.wkms"- facets. 2011-10-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> Adjusted Datacage-Configuration to fetch "extra longitudinal...." (.zus) - waterlevels in certain case (in system-part). * doc/conf/meta-data.xml: Adjusted to present extra-kms with staticwkms factory in certain case. 2011-10-17 Raimund Renkert <raimund.renkert@intevation.de> * doc/conf/themes.xml: Added new virtual theme for text with the attributes 'font', 'textcolor' and 'textsize'. 2011-10-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> Give StaticWKmsArtifacts proper names, and pre-deselect them. * src/main/java/de/intevation/flys/artifacts/StaticWKmsArtifact.java: (getInitialFacetActivity): Overridden to let facets enter plot inactively. (setup): Give Facets the name of the Wst. * src/main/java/de/intevation/flys/artifacts/model/WKmsFactory.java: Refactored to expose getWKmsName separately. 2011-10-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> Adjusted Datacage-Configuration to fetch flood-protections when waterlevels are requested (in system-part). * doc/conf/meta-data.xml: Adjusted to present flood-protections with staticwkms factory in certain case. 2011-10-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> Register staticwkms factory. * doc/conf/conf.xml: Register staticwkms factory to spawn StaticWKms- Artifacts. 2011-10-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fetch name of static WKms. * src/main/java/de/intevation/flys/artifacts/model/WKmsFactory.java: Removed dependence on "kind", but fetch name for created WKms. * src/main/java/de/intevation/flys/artifacts/StaticWKmsArtifact.java: Remove dependence on Kind. 2011-10-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> Store parameterization in data, not in Artifact. * src/main/java/de/intevation/flys/artifacts/StaticWKmsArtifact.java: Resolve col_pos and wst_id field, use data instead. 2011-10-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> Add convenience-method to add defaultdata (string). * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: (addStringData): Add Default (String) Data . 2011-10-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> Add a new Artifact and Facet (StaticWKmsArtifact, WKmsFacet) to access WKms obtainable with the WKmsFactory. * src/main/java/de/intevation/flys/artifacts/StaticWKmsArtifact.java: New, artifact with single state to get WKms from WKmsFactory. * src/main/java/de/intevation/flys/artifacts/model/WKmsFacet.java: New Facet to display W over km. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added new type name. 2011-10-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> Add WKMsFactory to access 'static' wst-data. * src/main/java/de/intevation/flys/artifacts/model/StaticWKmsCacheKey.java: Cache Key for the static WKms data. * src/main/java/de/intevation/flys/artifacts/model/WKmsFactory.java: New, creates WKms from wst-id and column. Does not yet fetch the name. * doc/conf/cache.xml: Added cache configuration for static wkms data. 2011-10-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> Cosmetics, docs. * src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java, src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java, src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, src/main/java/de/intevation/flys/jfree/FLYSAnnotation.java: Cosmetics, docs. 2011-10-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WKmsImpl.java: Added constructor that takes name, docs. 2011-10-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix issue that Annotations do not come with theme/style. * doc/conf/themes.xml: Added "Annotations" default style. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Set style of annotations, minor cosmetics. 2011-10-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Made inner class ThemeList static. s/new Integer(small)/Integer.valueOf(small)/ 2011-10-17 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: The inner class ThemeList makes now use of ManagedDomFacet to read the attributes of Facets saved in the Collection's attribute. 2011-10-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> flys/issue314: Variables in datacage are now case insensitive. (H2 returns meta data variables uppercase) * doc/conf/meta-data.xml: Made a statement more precise. Added some debug output. * src/main/java/de/intevation/flys/artifacts/datacage/templating/CompiledStatement.java: Use uppercase variable names. * src/main/java/de/intevation/flys/artifacts/datacage/templating/StackFrames.java, src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java, src/main/java/de/intevation/flys/artifacts/datacage/templating/FunctionResolver.java, src/main/java/de/intevation/flys/artifacts/datacage/templating/ResultData.java: Variables are now treated as uppercase. * src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java: Input variables are now treated uppercase. 2011-10-17 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/ManagedDomFacet.java, src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java, src/main/java/de/intevation/flys/artifacts/model/ManagedFacetAdapter.java: Prepared Facets to support a "visible" attribute. * src/main/java/de/intevation/flys/collections/OutputParser.java: Adapted the constructor call of ManagedFacetAdapter. * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: The inner class ThemeList now supports the "visible" attribute of ManagedFacets. 2011-10-17 Raimund Renkert <raimund.renkert@intevation.de> * src/main/java/de/intevation/flys/exports/StyledXYSeries.java: Added method to apply line type. * doc/conf/themes.xml: Changed initial default value for line type. 2011-10-17 Ingo Weinzierl <ingo@intevation.de> flys/issue226 (W-INFO: Dauerlinienberechung /Abbbildung x-Achse) * src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java: Set the upper bound of these charts to 364. 2011-10-17 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/GaugesFactory.java: Added a function that returns a Gauge based on its name. * src/main/java/de/intevation/flys/artifacts/states/ComputationRangeState.java: Create proper descriptions for facets. * src/main/java/de/intevation/flys/jfree/FLYSAnnotation.java: Added a setter for labels. * src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java, src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Use the string returned by Facet.getDescription() as series names. The ThemePanel and the Legend will always display the same titles for curves now. 2011-10-17 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix flys/issue363 (W-INFO/ Abflusskurve, Extremwert-Rendering). * src/main/java/de/intevation/flys/utils/ThemeUtil.java: (parseLineWidth): New. Get line width from Document. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: When adding annotations, parse line width from theme, set it. * src/main/java/de/intevation/flys/jfree/StickyAxisAnnotation.java: When painting, set Paint and stroke early enough. 2011-10-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/utils/MapfileGenerator.java: Put the config directory into the Velocity context. It is available as '$CONFIGDIR' in templates. * doc/conf/mapserver/mapfile.vm: Set the debug file to "$CONFIGDIR/flys-user-wms.log" and added a LEGEND section. * doc/conf/mapserver/wsplgen_class.vm: Adapted the class names. Those names are displayed in the image served by GetLegendGraphic. 2011-10-14 Felix Wolfsteller <felix.wolfsteller@intevation.de> Add possibility of programmatic configuration of initial "activity" state (active or inactive) of (Managed)Facets by introducing FLYSArtifact.getInitialFacetActivity. This method shall be overriden by subclasses where Facets are wanted to come to live inactive. Artifacts will be asked only once how the MangedFacet should come to live, namely when AttributeWriter finds a genuinely new Facet. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java, src/main/java/de/intevation/flys/artifacts/WaterlevelArtifact.java (getInitialFacetActivity): New function to let Artifact decide whether a ManagedFacet shall initially be set to active or inactive. * src/main/java/de/intevation/flys/collections/AttributeWriter.java: Accept database in constructor. For genuinely new Facets, spawn its mother artifact and ask whether the (Managed)Facet shall be active or inactive (initially). * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java (buildOutAttributes): Pass database to AttributeWrite (which needs it to spawn artifacts), rename items parameter to reflect content. 2011-10-13 Felix Wolfsteller <felix.wolfsteller@intevation.de> Cosmetics, removed obsolete imports. * src/main/java/de/intevation/flys/artifacts/WaterlevelArtifact.java, src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Removed obsolete imports. 2011-10-12 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Added a further attribute "mark.selected" to the barriers feature type. This attribute is used in the client, where we are not able to remove it properly. Reading the GeoJSON string without this attribute is no longer possible... strange! 2011-10-12 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added i18n for label of wdiff "pair select" states data. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added i18n for state.winfo.waterlevel_pair_select . 2011-10-12 Felix Wolfsteller <felix.wolfsteller@intevation.de> Addressed "Wrong labels" [6] part of flys/issue371 (W-INFO / Differenzen: Anmerkungen zur Umsetzung) . * src/main/java/de/intevation/flys/exports/WDifferencesExporter.java: Adjusted variable names to avoid conflict in subclasses, adjusted default value for i18n string. 2011-10-12 Felix Wolfsteller <felix.wolfsteller@intevation.de> Cosmetics, docs. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Cosmetics: Space after full stop in commments, slightly improved documentation, added one debug message. 2011-10-12 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix remainder of flys/issue304 (Erweiterte Funktionen W-Differenzen) . * doc/conf/artifacts/winfo.xml: Removed obsolete data of WDifferencesState. * src/main/java/de/intevation/flys/artifacts/WaterlevelArtifact.java: Re-enable facet-filtering, but adjust filters before that happens (former longitudinal_section output is now w_differences output). 2011-10-11 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added wdiff-chart translations. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added i18n for wdiff. 2011-10-11 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Expose translateable Strings as constants. 2011-10-11 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix most labels in w-differences charts. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Remove most static final i18n-variables in favor of direct String usage or usage of methods. By this, allow easier adoption of labels in subclasses. 2011-10-11 Ingo Weinzierl <ingo@intevation.de> flys/issue383 (Zweite Y-Achse wird beim Zoomen/Verschieben nicht angepasst.) * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Call adjustAxes() before applying zoom settings with autoZoom(). We need to add new y-axes first before we adjust their ranges. 2011-10-10 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: s/new Integer(small)/Integer.valueOf(small)/ 2011-10-10 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Do not fire change events for each and every data point added. 2011-10-10 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix WDifferences with more than one Pair (crashed due to incorrect index for facets.) * src/main/java/de/intevation/flys/artifacts/states/WDifferencesState.java: Fix wrong index for difference facets (allows for more than one difference facet per artifact without crashes). 2011-10-10 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Use slightly modified doWOut-implementation from LongitudinalSectionGenerator (here need to add Ws to different axis). 2011-10-10 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WaterlevelPairSelectState.java: Fix import/reference. 2011-10-10 Felix Wolfsteller <felix.wolfsteller@intevation.de> Let WaterlevelPairSelectState include diffids-data (if any) to enable future work on repopulation of Grid in GUI when jumping back (reparameterization). * src/main/java/de/intevation/flys/artifacts/states/WaterlevelPairSelectState.java: (createItems): Override to include old data. 2011-10-10 Ingo Weinzierl <ingo@intevation.de> flys/issue150 (Diagramm: Anzeige von W bergauf) flys/issue345 (W-INFO / Wasserspiegellagenberechnung, Diagrammausgabe) * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Corrected the determination to invert the x axis, so that waterlines will start with their highest value at the left and end with their lowest values at the right. 2011-10-10 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/math/DifferenceCurveFacet.java: Cosmetics, added an (@Override) annotation. * src/main/java/de/intevation/flys/artifacts/model/CalculationResult.java, src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Cosmetics, added documentation. * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: Cosmetics, whitespace after full stops in comments, added (@Override) annotation. 2011-10-10 Ingo Weinzierl <ingo@intevation.de> flys/issue220 (Diagramm: Achsenbeschriftungen an verschiedenen Achsen müssen gleich aussehen) * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Adjusted the label font of the 2nd y-axis - now, both axes labels look equal. 2011-10-10 Ingo Weinzierl <ingo@intevation.de> flys/issue189 (WINFO/Dauerlinie: Sortierung der Berechnungsausgabe nach Dauerzahlen aufsteigend) * src/main/java/de/intevation/flys/artifacts/model/WQDay.java: Added a method that determines if the items (days) in this object are increasing or not. * src/main/java/de/intevation/flys/exports/DurationCurveExporter.java: Changed the order of the CSV export - the highest day is at the top of the export; the lowest day is at the bottom. 2011-10-07 Sascha L. Teichmann <sascha.teichmann@intevation.de> Worked on flys/issue150 (Diagramm: Anzeige von W bergauf). Still does not work in all cases. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java (generateChart()): Reordered calls to ensure that the inversion of the x axis is not eliminated by other chart generation steps as a side effect. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Assuming that JFreeChart is inverting axis automatically if the KMs are reversed ordered only do invert only in some situations. Do not invert axis for Q (@Ingo: This is wrong! We must do this if we are only displaying the Qs and the Ws are deactived). 2011-10-07 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Take care on empty ranges while preparing ranges for single points. 2011-10-07 Ingo Weinzierl <ingo@intevation.de> flys/issue114 (W-INFO: Wasserspiegellagenberechnung / Ort (Spezialfall: Generierung eines Diagramms bei punkthafter Berechnung)) * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Expand ranges for x and y axes if there is just a single point in a series - JFreeChart requires a range where lower <> upper. 2011-10-07 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/ComputationRangeState.java, src/main/java/de/intevation/flys/artifacts/states/DistanceSelect.java, src/main/java/de/intevation/flys/artifacts/states/RangeState.java, src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Add whitespace after full stop in comments, minor doc improvements. 2011-10-07 Ingo Weinzierl <ingo@intevation.de> flys/issue353 (W-INFO / Wasserspiegellagenberechnung, Diagramm) * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Adapted the process of collecting outs for Artifacts/Facets. We will now call OutGenerator.doOut() for each Artifact and Facet - never mind if the facet is activated (visible) or not. The OutGenerator should decide on its own whtat to do with facets which are "marked" as _not_ visible. * src/main/java/de/intevation/flys/exports/OutGenerator.java, src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/ChartGenerator.java, src/main/java/de/intevation/flys/exports/ReportGenerator.java, src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/AbstractExporter.java, src/main/java/de/intevation/flys/exports/ATExporter.java, src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java, src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java: Adapted the signature of OutGenerator.doOut(). There will be a new boolean parameter "visible" that determines if the facet specified in this method is visible for this output or not. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Now, that we walk over every Artifact/Facet, we are able to collect min/max data for all axes. We store these information and use them to set the ranges of x and y axes. The result of this: a chart can have proper axes set without any data in it. * src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java: Use min/max ranges stored while calling doOut() for each Artifact/Facet instead of fetching those information from chart's Datasets (which could be null). 2011-10-07 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/utils/Formatter.java: Changed the max number of digits for AT exports from 0 to 2. 2011-10-06 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/exports/ATWriter.java: Get rid of buggy first line code. 2011-10-05 Sascha L. Teichmann <sascha.teichmann@intevation.de> fixed flys/issue201 * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Replace >= with > in km index lookup because last km was not found. 2011-10-05 Sascha L. Teichmann <sascha.teichmann@intevation.de> fixed flys/issue177 * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: Revert rev2245. Code works fine now! :-) 2011-10-05 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/jfree/FLYSAnnotation.java: Stores a list of XYTextAnnotations instead of FLYS specific Annotations. This makes this class suitable for other annotation types as well. * src/main/java/de/intevation/flys/artifacts/model/MainValuesQFacet.java, src/main/java/de/intevation/flys/artifacts/model/MainValuesWFacet.java: Both facets' getData() will now return an instance of FLYSAnnotation. * src/main/java/de/intevation/flys/artifacts/model/AnnotationFacet.java: Create XYTextAnnotations used to instantiate an object of FLYSAnnotation. * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Removed the code to add annotations to the plot. This task is general enough to move this code to parent class. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Instances of this class are now able to store - besides first and second axes datasets - a list of annotations. This annotations are added to the plot after the datasets have been added. To support LegendItems for those annotions, it was necessary to create a the LegendItemCollection by ourself. This work is done while applying the themes for each series in the chart. 2011-10-05 Sascha L. Teichmann <sascha.teichmann@intevation.de> Removed code duplication of guessWaterIncreasing() * src/main/java/de/intevation/flys/artifacts/model/WKms.java(allKms, allWs): Added methods to fetch all kms and all ws. * src/main/java/de/intevation/flys/utils/DataUtil.java: Generalized to get WKms as arguments. * src/main/java/de/intevation/flys/artifacts/model/WQKms.java, src/main/java/de/intevation/flys/artifacts/model/WKmsImpl.java, src/main/java/de/intevation/flys/artifacts/model/WQ.java: Implements the extended WKms interface. * src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Uses the generalized DataUtil.guessWaterIncreasing(). 2011-10-05 Ingo Weinzierl <ingo@intevation.de> flys/issue347 (W-INFO / Wasserspiegellagenberechnung, Längsschnittdiagramm) flys/issue303 (Keine Streckenfavoriten, wenn nur Q im Längsschnittdiagram ausgewählt) flys/issue353 (W-INFO / Wasserspiegellagenberechnung, Diagramm) * src/main/java/de/intevation/flys/jfree/FLYSAnnotation.java: New. A wrapper for Annotations which allows us to provide a description for a set of annotations. * src/main/java/de/intevation/flys/artifacts/model/AnnotationFacet.java: The getData() will now return an instance of FLYSAnnotation that wraps the Annotations returned by the AnnotationArtifact. The lebel of FLYSAnnotation is the description of this Facet. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Modified the way to add Annotations. We will no longer create an empty series to support a LegendItem for a set of Annotations, but we will add a LegendItem manually to the LegendItemCollection of the plot. In addition, we are now able to display annotations if one of the two y-axes are missing. If there are no y-axes existing, we are not able to display annotations yet. 2011-10-05 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java: Lifted the wrong point. Now all backjump corrections look fine. :-) 2011-10-05 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java: Fixed bugs and make use of a cache for annotations now. 2011-10-04 Sascha L. Teichmann <sascha.teichmann@intevation.de> Worked on flys/issue31 * src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java: Simplified the code a lot. Needs testing. Maybe flys/issue31 is gone 2011-10-04 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Fetch the WstUnit value from river - the Wst itself no longer supports a Unit iself. 2011-10-04 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java, src/main/java/de/intevation/flys/utils/DoubleUtil.java: Moved some generic double array code to DoubleUtil. 2011-10-04 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/utils/DoubleUtil.java (interpolateSorted): Added code to linear interpolate double values in a sorted array. Keys and values are given as double arrays. Keys need to be sorted. 2011-10-04 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WDifferencesState.java, src/main/java/de/intevation/flys/artifacts/states/WaterlevelPairSelectState.java: Removed superfluous imports. 2011-10-04 Ingo Weinzierl <ingo@intevation.de> flys/issue330 (Dauerlinie kann nicht berechnet werden) * src/main/java/de/intevation/flys/artifacts/model/Calculation3.java: Add a problem if no data was found for duration curves. 2011-10-04 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/themes/Theme.java, src/main/java/de/intevation/flys/themes/DefaultTheme.java: Added getter/setter methods to provide a facet (string) and index (int). Both values are written as attribute to the Theme's XML representation. * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Set the "facet" and "index" values of themes. 2011-10-04 Ingo Weinzierl <ingo@intevation.de> flys/issue346 (W-INFO / Anzeige der Höheninformation) * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Modified x and y axis title. The x axis title is now "RIVERNAME-km"; the y axis title is now "W[WST_UNIT]" where WST_UNIT depends on the unit of the WST. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Modified i18n expressions for x and y axis of longitudinal section charts. 2011-09-30 Ingo Weinzierl <ingo@intevation.de> flys/issue351 (W-INFO / Wasserspiegellagenberechnungen) * src/main/java/de/intevation/flys/utils/DoubleUtil.java: Modified the explode() function that returns a list of values specified by min, max and an interval. If the last value, determined by the interval, is bigger than the max value, it is not included in the result list. 2011-09-30 Felix Wolfsteller <felix.wolfsteller@intevation.de> flys/issue334 (Querprofil-Diagramm: Ausgabe dieses Diagrammtyps möglich, obwohl WSP Berechnung keine Ergebnisse liefert) * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: (compute): Add Facets regarding CrossSections only if data available. 2011-09-29 Ingo Weinzierl <ingo@intevation.de> flys/issue176 (Diagramm: Benennung eines Abflusses bei gewählter Höhe am Pegel) flys/issue349 (W-INFO / Wasserspiegellagenberechnung, Längsschnittdiagramm) * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: Create titles for W and Q waterlevel facets with proper fractions. 2011-09-30 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WaterlevelPairSelectState.java: (createStaticData, getLabels): Create proper labels for differences. 2011-09-29 Sascha L. Teichmann <sascha.teichmann@intevation.de> flys/issue244 (WINFO: Export von AT-Dateien im ersten Teil unterschiedlich) flys/issue332 (W-INFO / Berechnung Abflusskurve, Export, FLYS 2.5) * src/main/java/de/intevation/flys/exports/ATWriter.java: Due to a rounding issue the w's of the first line underun the minimal w of the curve at times. An extra test was introduced to suppress the output of the q's of the wrong w's. 2011-09-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WDifferencesState.java: Use StringUtil.wWrap , fix wrong loop, minor refac and cosmetics. 2011-09-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WaterlevelSelectState.java: Extracted/use StringUtil.wWrap . 2011-09-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/MainValuesService.java: Log the gauge which has been determined. 2011-09-28 Ingo Weinzierl <ingo@intevation.de> flys/issue332 (W-INFO / Berechnung Abflusskurve, Export, FLYS 2.5) * src/main/java/de/intevation/flys/exports/ATExporter.java: Store the master Artifact which is set via setMasterArtifact(). This is required for meta information used while preparing the header row of AT exports. * src/main/java/de/intevation/flys/exports/ATWriter.java: Print a header row into the AT export for being compatible with desktop FLYS. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added header row for AT export files. 2011-09-28 Ingo Weinzierl <ingo@intevation.de> flys/issue328 (W-INFO / ÃœSK: Auswahl der Wasserspiegellage / Auswahlunterstützung) * doc/conf/meta-data.xml: Added an out 'waterlevels' that might be used to fetch user specific waterlevels (same as longitudinal sections, but without Q facet). In addition, the system specific datacage stuff is now fetched, when: a) no user-id is given b) a user-id is given and there is a parameter 'load-system' * src/main/java/de/intevation/flys/artifacts/states/WaterlevelSelectState.java: If the label of the WQKms object specified by the waterlevel selection begins with a "Q", the label is wrapped into a "W()", e.g. "W(Q=1200)". 2011-09-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Made feed() able to remove existing data items from Artifact's data pool. Therefore, the value for the item which should be removed needs to an empty string. 2011-09-28 Felix Wolfsteller <felix.wolfsteller@intevation.de> Extracted StringUtil.unbracket from WaterlevelSelectState.strip. * src/main/java/de/intevation/flys/artifacts/states/WDifferencesState.java, src/main/java/de/intevation/flys/artifacts/states/WaterlevelSelectState.java: Extract and use StringUtil.unbracket, minor doc. 2011-09-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java, src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: Changed access of getCurrentState() from protected to public. * src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java: We use the configured Outputs instead of the actuel Outputs of an Artifact to make recommendations, now. This has the bad side effect of giving recommendations for Outputs that we might _NOT_ be able to produce. But otherwise, we would not be able to give recommendations for states with long calculation times that start background threads for calculation (as WSPLGEN caluclations does). 2011-09-27 Felix Wolfsteller <felix.wolfsteller@intevation.de> Enable "auto-scaling" axis for waterlevels in WDifference-plots. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: (createSecondaryAxis, zoomY): Refactored to allow modification in siblings. * src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: (createSecondaryAxisRange): Override to achieve expected behavior. Also adjusted label. 2011-09-27 Felix Wolfsteller <felix.wolfsteller@intevation.de> In W-Difference Calculation, respect indices of selected facets. * src/main/java/de/intevation/flys/artifacts/states/WDifferencesState.java: (computeAdvance): Respect index of selected facets. 2011-09-27 Sascha L. Teichmann <sascha.teichmann@intevation.de> flys/issue317: (Querprofil-Diagramm: Referenzen auf CrossSectionApp entfernen) * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Removed dependency to demo app. * src/main/java/de/intevation/flys/artifacts/charts/CrossSectionApp.java: Refactored to use logic from the models. * src/main/java/de/intevation/flys/artifacts/geom/Lines.java: Moved some logic from the demo app to this model. 2011-09-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/wsplgen/FacetCreator.java: New. Code from FloodMapState moved to its own class with the intent, to use it in classes different from FloodMapState. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Removed the inner class FacetCreator. * src/main/java/de/intevation/flys/artifacts/model/WSPLGENJob.java: Stores an instance of FacetCreator. NOTE: Maybe we should move the WSPLGEN parameters into an own class which might be serializable. * src/main/java/de/intevation/flys/wsplgen/JobExecutor.java: Use the FacetCreator instance stored in the WSPLGENJob to create a new WSPLGEN facet if the calculation was successfully (without errors). Finally, the facets of FacetCreator are added to the Facet list of the FLYSArtifacts. 2011-09-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Put Artifact in background mode first before starting WSPLGEN, otherwise a very fast errors (call CallContext.afterBackground() before Artifact is in Background mode) might lead to an inconsistent state. * src/main/java/de/intevation/flys/wsplgen/ProblemObserver.java: Repaired broken error num parsing. 2011-09-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/wsplgen/ProblemObserver.java: Track critical errors as well (improved regular expression for errors). 2011-09-27 Sascha L. Teichmann <sascha.teichmann@intevation.de> * ChangeLog: Fixed whitespace usage. 2011-09-27 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/RiverService.java, src/main/java/de/intevation/flys/artifacts/math/DifferenceCurveFacet.java src/main/java/de/intevation/flys/artifacts/model/ManagedDomFacet.java, src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Removed superfluous imports. 2011-09-27 Ingo Weinzierl <ingo@intevation.de> flys/issue68 (Diagramm: Werte an der Y-Achse benötigen i18n) * src/main/java/de/intevation/flys/exports/ChartGenerator.java: Added a method to retrieve the current/preferred locale specified by CallMeta. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Introduced two methods localizeDomainAxis() and localizeRangeAxis(). Both methods of this class override the NumberFormat used to format axes numbers. Those methods are called by localizeAxes() - which has private access - for each domain and range axis of the current XYPlot. 2011-09-27 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/cache.xml: Number of cached annotations was much to low. 2011-09-27 Felix Wolfsteller <felix.wolfsteller@intevation.de> Improved w-differences diagram generation where multiple differences can be shown. * src/main/java/de/intevation/flys/artifacts/math/DifferenceCurveFacet.java: New facet type. * src/main/java/de/intevation/flys/artifacts/states/WDifferencesState.java: Employ new DifferenceCurveFacet, return CalculationResult that can store more than one WKms. 2011-09-27 Ingo Weinzierl <ingo@intevation.de> flys/issue320 (ÃœSK:Mapserver hat Probleme beim Shapefilepath mit "../" im Pfad) * src/main/java/de/intevation/flys/utils/MapfileGenerator.java: Use File.getCanonicalPath() to substitute "../" in shapefile directories. 2011-09-26 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: The extent of the WSPLGEN result layer is now specified by the extent of the CrossSectionTracks that matches the start and end kilometer of the WSPLGEN calculation. * src/main/java/de/intevation/flys/utils/GeometryUtils.java: New function that creates the OpenLayers bounding box based on two Geometries. 2011-09-26 Felix Wolfsteller <felix.wolfsteller@intevation.de> Improved w-differences diagram generation with included "absolute" values. * src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Fixed one (of two) incorrect labels. (doWaterlevelOut): Survive non-found gauge, fetch kilometer and w instead of values for w and q. 2011-09-26 Felix Wolfsteller <felix.wolfsteller@intevation.de> Add positional-conflict-awareness when merging Facets for a FLYSArtifactCollection. First come first serve. * src/main/java/de/intevation/flys/collections/AttributeWriter.java: (writeFacets): First, sort incoming facets into 2 groups: "genuinely new" and "already there", then for each new check whether the position is already taken. If so, push "up" (position++) until no conflict exists anymore. 2011-09-26 Ingo Weinzierl <ingo@intevation.de> flys/issue296 (Karte: Bezeichnungen verbessern) * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: I18N of the WSPLGEN and barriers facets (WMS layers). * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added strings for the wsplgen and barriers WMS layers. 2011-09-26 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix (revert) access to position in ManagedDomFacet. * src/main/java/de/intevation/flys/artifacts/model/ManagedDomFacet.java: (getPosition): Do not add prefix when querying position ("pos") attribute, add a logger for faster future debugging. 2011-09-23 Felix Wolfsteller <felix.wolfsteller@intevation.de> Squash positional conflict-bug. * src/main/java/de/intevation/flys/collections/AttributeWriter.java: (mergeFacets): Removed, replaced in parts by pickFacet. (pickFacet): New, return facet to be added to document. Documentation added. 2011-09-23 Felix Wolfsteller <felix.wolfsteller@intevation.de> Squash a bug about wrongly named "art:pos" attribute in ManagedDomFacet (was "pos"). Added documentation from commit message. * src/main/java/de/intevation/flys/artifacts/model/ManagedDomFacet.java: Added documentation (commit message with minor adjustments). (getPosition, setPosition): Include PREFIX in attribute name. 2011-09-23 Felix Wolfsteller <felix.wolfsteller@intevation.de> Refactoring, doc. * src/main/java/de/intevation/flys/collections/AttributeWriter.java: (mergeFacets): Removed, replaced in parts by pickFacet. (pickFacet): New, return facet to be added to document. Documentation added. 2011-09-23 Felix Wolfsteller <felix.wolfsteller@intevation.de> Cosmetics, docs. * src/main/java/de/intevation/flys/collections/AttributeWriter.java: Documentation added. 2011-09-22 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: Subclasses the FLYSService now - this should improve the database connection handling. 2011-09-22 Bjoern Schilberg <bjoern.schilberg@intevation.de> * doc/mapserver/mosel-mapfile.map: Full blown mosel wms mapfile. 2011-09-22 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/FLYSService.java: New. A subclass of DefaultService which is used in FLYS to init and shutdown database connections. * src/main/java/de/intevation/flys/artifacts/services/MainValuesService.java, src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java, src/main/java/de/intevation/flys/artifacts/services/RiverService.java: Centralized the initialization and shutdown of database connections. These services now subclass FLYSService which handles the database stuff. * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java: The current database connection is not closed here - this is done in a Service or in the CallContext. * src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java: It's not necessary to create new database connections here. We already have an existing connection which is initialized by CallContext. 2011-09-22 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DistanceOnlySelect.java: Override validate() of parent classes to suppress "step" validation which is not present in this state. * src/main/java/de/intevation/flys/artifacts/states/RangeState.java: Added new method validateBounds() which really just validates a boundary without "step" parameter. 2011-09-21 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added WaterlevelArtifact to accompany WINFOArtifacts in WDifferencesPlots. * src/main/java/de/intevation/flys/artifacts/WaterlevelArtifact.java: New WaterlevelArtifact. * doc/conf/conf.xml: Added configuration for WaterlevelArtifact configuration (path to state-xml) waterlevel-factory. * doc/conf/artifacts/waterlevel.xml: New, trivial state description for Waterlevelartifact. * src/main/java/de/intevation/flys/artifacts/states/WaterlevelInfoState.java: New, only state for WaterlevelArtifact. 2011-09-21 Felix Wolfsteller <felix.wolfsteller@intevation.de> Cosmetics, docs. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java, src/main/java/de/intevation/flys/collections/AttributeWriter.java, src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Cosmetics, documentation. 2011-09-21 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added WaterlevelOut-processing ability to WDifferencesCurveGenerator. * src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Process LONGITUDINAL_W facets. 2011-09-21 Felix Wolfsteller <felix.wolfsteller@intevation.de> Improved WDifferenceState in preparation to be able to deal with multiple pairs for differences. * src/main/java/de/intevation/flys/artifacts/states/WDifferencesState.java: Prepare multiple-pairs-case. 2011-09-21 Ingo Weinzierl <ingo@intevation.de> flys/issue315 (Ãœberschwemmungsfläche: String bei Streckenauswahl) * doc/conf/artifacts/winfo.xml: Added a new state for floodmap's range input. This state will accept a km range only, there is no step width. * src/main/java/de/intevation/flys/artifacts/states/DistanceOnlySelect.java: New. The state which is used to enter a km range with step width. 2011-09-21 Felix Wolfsteller <felix.wolfsteller@intevation.de> Cosmetics, improved debug output, doc. * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: Improved debug output. * src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java: Added documentation. * src/main/java/de/intevation/flys/artifacts/states/WaterlevelPairSelectState.java, src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java: Removed commented code. * src/main/java/de/intevation/flys/collections/AttributeParser.java: Whitespace cosmetics. 2011-09-21 Felix Wolfsteller <felix.wolfsteller@intevation.de> Avoid NullPointerException when drawing XYChart without data. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Guard calls to dataset to avoid NullPointerException. 2011-09-21 Ingo Weinzierl <ingo@intevation.de> flys/issue325 (FLYS Client: Auswahl des DGM zeigt numerischen Wert an) * src/main/java/de/intevation/flys/artifacts/states/DGMSelect.java: Write a better label for the selected DEM into the static DESCRIBE. Use the name of the DEM file as label instead of the database id. 2011-09-16 Bjoern Schilberg <bjoern.schilberg@intevation.de> * doc/mapserver/fontset.txt: Added initial font set for km_annotation layer. * doc/mapserver/symbols/symbols.sym: Added square symbol for km and fixpoint layer. * doc/mapserver/saar-mapfile.map: Adjust styling in the flys karte-archiv way. 2011-09-19 Ingo Weinzierl <ingo@intevation.de> Tagged RELEASE 2.5 * Changes: Prepared changes for release. 2011-09-19 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WDifferencesState.java, src/main/java/de/intevation/flys/artifacts/states/WaterlevelSelectState.java, src/main/java/de/intevation/flys/artifacts/states/WaterlevelPairSelectState.java, src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java, src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Removed needless imports. 2011-09-16 Ingo Weinzierl <ingo@intevation.de> * doc/conf/meta-data.xml: Improved datacage configuration for DEMs. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Query DGMs by the given ID in the FLYS data pool - not by given range values. 2011-09-16 Ingo Weinzierl <ingo@intevation.de> * doc/conf/meta-data.xml: Added a section for DEMs to the floodmap section. 2011-09-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix build. * src/main/java/de/intevation/flys/artifacts/state/WDifferencesState.java: Fix build. 2011-09-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> Take a given WaterlevelPair-String, load artifact and plot the diff. * src/main/java/de/intevation/flys/artifacts/state/WDifferencesState.java: Load correct artifacts. 2011-09-16 Bjoern Schilberg <bjoern.schilberg@intevation.de> * doc/mapserver/*: Added inital mapserver configuration files. 2011-09-16 Ingo Weinzierl <ingo@intevation.de> * doc/conf/meta-data.xml: Moved the system specific configuration into a macro to the top of the configuration document. Call this macro at the end of the user specific part and in the part that should contain the system specific stuff only! 2011-09-16 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Defined createItem() here and adapted some method signatures, because I need the CallContext deeper in code than expected. * src/main/java/de/intevation/flys/artifacts/states/WaterlevelSelectState.java: Write the name of the selected waterlevel into the static DESCRIBE. * src/main/java/de/intevation/flys/artifacts/states/ScenarioSelect.java: Adapted method signatures that have been changed in DefaultState. * src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: Removed method createItem() which is now defined in the upper class DefaultState. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added string for selected waterlevel that is displayed in static UI. 2011-09-16 Ingo Weinzierl <ingo@intevation.de> * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added state label for waterlevel selection. 2011-09-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WaterlevelSelectState.java: Validate incoming data string and strip brackets. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Fetch waterlevel data from external Artifact if existing. If no external Artifact is specified that provides waterlevel data, we gonna try to fetch it from the current Artifact. 2011-09-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WaterlevelPairSelectState.java: Removed needless import which caused compile errors. 2011-09-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Added a transform() method. This method should be used to transform input data in form of a string into a better data structure. This state provides a simple implementation which just returns a StateData object that contains exactly the input string. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Transform input strings using DefaultState.transform() before they are added to its data pool. 2011-09-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Made collection solid for the case if it has no Artifacts. 2011-09-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/utils/FLYSUtils.java: Fetch Artifact from ArtifactDatabase properly. Write better error logs if that process fails. 2011-09-14 Felix Wolfsteller <felix.wolfsteller@intevation.de> Extend WDifferences branch to have calculations in dedicated, new state. * doc/conf/artifacts/winfo.xml: Added new State and Transition in WDifferences-branch. * src/main/java/de/intevation/flys/artifacts/states/WaterlevelPairSelectState.java: New state. * src/main/java/de/intevation/flys/artifacts/states/WDifferencesState.java: Specify to not take input, prepare getting other facets. 2011-09-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DGMSelect.java: This state now desires the UIProvider 'dem_datacage_panel'. * src/main/java/de/intevation/flys/artifacts/states/WaterlevelSelectState.java: New. This state is used to define the desired UIProvider 'wsp_datacage_panel'. * doc/conf/artifacts/winfo.xml: Added a new way to start a WSPLGEN calculation when choosing the calculation type 'floodmap'. 2011-09-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/AttributeWriter.java: Merge facets only if their name AND their owner artifact are equal. 2011-09-14 Felix Wolfsteller <felix.wolfsteller@intevation.de> Partial Fix flys/issue304 (3) (Baseline). * src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Show Baseline in WDifferencesPlot. 2011-09-14 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix flys/issue310 (cross-section theme). * doc/conf/themes.xml: CrossSection-Themes: profile thin, water blue. 2011-09-14 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix flys/issue310 (cross-section theme). * doc/conf/themes.xml: CrossSection-Themes: profile thin, water blue. 2011-09-13 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Add an quick and simple error to the report if an error occured while WSPLGENJob creation. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added error messages for WSPLGEN job creation errors. 2011-09-13 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix crash when drawing StickyAxisAnnotation when no range was given. User-directed issues remain ( flys/issue303 ). * src/main/java/de/intevation/flys/jfree/StickyAxisAnnotation.java (draw): Guard access to domainAxis, rangeAxis and the corresponding ranges. Warn and exit if any was null. 2011-09-13 Ingo Weinzierl <ingo@intevation.de> flys/issue290 (Karte: Eingabe von Differenzen zw. WSP und Gelände findet keine Ausprägung in der Karte) * doc/conf/mapserver/wsplgen_class.vm: Added styles for DIFF attribute. * doc/conf/mapserver/mapfile.vm: Set debug default to '5'. 2011-09-12 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Add a first WSPLGEN status message (notifies the user about a queued job) after the job has been added to the Scheduler. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added english and german status message text. 2011-09-12 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/utils/GeometryUtils.java: Write shapefiles only if there are features for it existing. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: A WSPLGEN facet is only created, if the calculation was successfully added to the Scheduler. A barrier facet is only created if the WSPLGEN calculation has been added to the scheduler AND if there are digitized geometries existing. 2011-09-12 Felix Wolfsteller <felix.wolfsteller@intevation.de> Copied and slightly modified implementation of guessWaterIncreasing from WQKms to (new) DataUtils. Accidentally commited usage in last commit, to correct orientation of diagram (invert x axis). * src/main/java/de/intevation/flys/utils/DataUtils.java: New file with guessWaterIncreasing implementation from WQKms, slightly adjusted. 2011-09-12 Felix Wolfsteller <felix.wolfsteller@intevation.de> Cosmetics. * src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java, src/main/java/de/intevation/flys/artifacts/model/WKmsImpl.java: Cosmetics. 2011-09-12 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added CSV Export for W-Differences. * doc/conf/conf.xml: Added Exporter. * doc/conf/artifacts/winfo.xml: Removed transition over distances state, added export outputmode and facet. * src/main/java/de/intevation/flys/exports/WDifferencesExporter.java: New, CSV-Exporter for WDifferences. * src/main/java/de/intevation/flys/artifacts/states/WDifferencesState.java: Add export facet. 2011-09-12 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DataFacet.java: Cosmetics, docs. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java, src/main/java/de/intevation/flys/exports/AbstractExporter.java, src/main/java/de/intevation/flys/exports/DurationCurveExporter.java: Cosmetics. 2011-09-12 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Sourced the code to append a concrete data item to the static DESCRIBE part out to an own method (appendStaticData()). * src/main/java/de/intevation/flys/artifacts/states/ScenarioSelect.java: Override appendStaticData() to suppress the GeoJSON string to be included in the static DESCRIBE. 2011-09-12 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/CrossSectionFactory.java, src/main/java/de/intevation/flys/artifacts/model/CrossSectionWaterLineFacet.java, src/main/java/de/intevation/flys/artifacts/states/WDifferencesState.java, src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java, src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java, src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java, src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java: Removed needless imports. 2011-09-09 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/CalculationMessage.java: New. A subclass of Message (in the Artifacts system). It stores a string message and a progress (in form of step x/y). * src/main/java/de/intevation/flys/wsplgen/JobObserver.java: The observer now writes background messages into the artifact system using the CallContext.addBackgroundMessage(). We use instances of CalculationMessage here, that makes the WINFOArtifact able to put progress information into the Artifact's DESCRIBE as well. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Write status message and progress information into the DESCRIBE if the Artifact has started a background process. 2011-09-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix flys/issue280 . * src/main/java/de/intevation/flys/jfree/StickyAxisAnnotation.java: Do not draw boxes around annotations. 2011-09-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix flys/issue279 . * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Fix behaviour in various thinkable malconditions. 2011-09-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Made one case of cross section fetching more robust. 2011-09-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix Facet name and Legend of W-Differences, also insert state to specify distance. * doc/conf/artifacts/winfo.xml: Add additional transitions to walk over distances state. * src/main/java/de/intevation/flys/artifacts/states/WDifferencesState.java: Set facets description. * src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: Take facets description as legend. 2011-09-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added configuration to kick-in w-differences branch of winfo. * doc/conf/conf.xml: Register new (w-differences) OutputGenerators. * doc/conf/artifacts/winfo.xml: Register new state and transitions. * src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: Added new (w-differences) calculation mode. * src/main/java/de/intevation/flys/exports/WDifferencesCurveInfoGenerator.java: New file, implementing naive approach to display w-differences (accidentially omitted in last commit). 2011-09-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added very stubby WDifferences State/OutGenerator for WINFOArtifact. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added w_differences facet type. * src/main/java/de/intevation/flys/artifacts/states/WDifferencesState.java: New file, implements naive approach to calculate w-differences (of calculations identified by hardcoded uuids!) and register respective facet. * src/main/java/de/intevation/flys/exports/WDifferencesCurveGenerator.java: New file, implementing naive approach to display w-differences. 2011-09-09 Felix Wolfsteller <felix.wolfsteller@intevation.de> Implement getArtifact(uuid,context) in FLYSUtils. * src/main/java/de/intevation/flys/utils/FLYSUtils.java (getArtifact): Added implementation, partially resolving a TODO. Added logger instance. 2011-09-08 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WSPLGENCalculation.java: New. This sublcass of Calculation saves warnings and errors that occur while WSPLGEN is running. Note, that the interface of this class doesn't exactly apply the interface of Calculation. Maybe, we should generalize this interface! * src/main/java/de/intevation/flys/artifacts/model/WSPLGENJob.java: Stores an instance of WSPLGENCalculation now. We use this instance to save warnings and errors. * src/main/java/de/intevation/flys/wsplgen/ProblemObserver.java: Use the WSPLGENCalculation to save errors and warnings. * src/main/java/de/intevation/flys/artifacts/model/WSPLGENReportFacet.java: New. This facet is used for WSPLGEN reports. It stores an instance of WSPLGENCalculation which saves ERRORS and WARNINGS that occur while WSPLGEN execution. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Create a WSPLGENReportFacet for WSPLGEN reports. * doc/conf/conf.xml: Added an OutputGenerator 'report' for WSPLGEN reports. * doc/conf/artifacts/winfo.xml: Added an output 'report' for WSPLGEN reports. 2011-09-08 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/artifacts/math/WKmsOperation.java, src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: Cosmetics, docs. 2011-09-08 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/wsplgen/JobObserver.java: Small adjustments that makes it easier to subclass this observer. * src/main/java/de/intevation/flys/wsplgen/ProblemObserver.java: New. A sublcass of JobObserver which analyses the WSPLGEN output for errors and warnings. * src/main/java/de/intevation/flys/wsplgen/JobExecutor.java: Use JobObserver and ProblemObserver to track the whole WSPLGEN output and print number of errors/warnings to log output. 2011-09-08 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added translation of w_differences. * src/main/resources/messages_de_DE.properties, src/main/resources/messages_de.properties, src/main/resources/messages_en.properties, src/main/resources/messages.properties: Added "w_differnces" translation. 2011-09-07 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Appended a new attribute 'background-processing' to the DESCRIBE of this Artifact. Its value is 'true' if this Artifact has started a background thread which has not finished yet - otherwise it is 'false. 2011-09-07 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java, src/main/java/de/intevation/flys/utils/GeometryUtils.java: Moved the code to determine the extent of a river based on its axis to GeometryUtils. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Determine the extent of the selected river and set the WMSLayerFacet's extent attribute. 2011-09-07 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added Themeing support for CrossSection Diagrams. * doc/conf/themes.xml: Added new themes and mappings, slightly modified longitudinalsection theme. 2011-09-07 Felix Wolfsteller <felix.wolfsteller@intevation.de> In CrossSection Diagram fix subtitle to display the km of which the data is actually displayed (maybe contrasting users wish). * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: (getCrossSectionSnapKm): New method to fetch the actual km of crosssection. * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java: Add correct km to charts subtitle. 2011-09-07 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix various display-issues like i18n in cross-section diagram. * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: Set description of facets to expected values. * src/main/java/de/intevation/flys/artifacts/exports/CrossSectionGenerator.java: Fix i18n of chart title. Set subtitle to expected value, pass facets description to StyledSeries to see expected legend. 2011-09-07 Felix Wolfsteller <felix.wolfsteller@intevation.de> Cosmetics, resolved refactoring todo. * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java (compute, computeAdvance, computeFeed): Refactored, extracted method, resolving duplicate code and TODO. 2011-09-07 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix waterline "calculation" at given km. Chosen approach is "head-through-wall". * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Some refactoring to do the same calculation twice easier and be able to "cross" waterline against correct profile data. 2011-09-07 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix setting of kilometer for profile (not yet waterlevel) of cross section diagram. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: (getCrossSectionData): Respect corss_section.km data; do naive linear search for profile data for this km. * src/main/java/de/intevation/flys/artifacts/model/CrossSectionFacet.java: Declare a ComputeType. * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: Implement computeFeed. 2011-09-07 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java, src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Minor cosmetics. 2011-09-07 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/CrossSectionWaterLineFacet.java, src/main/java/de/intevation/flys/artifacts/model/DataFacet.java, src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java, src/main/java/de/intevation/flys/artifacts/state/DefaultState.java: Cosmetics, docs. 2011-09-06 Ingo Weinzierl <ingo@intevation.de> * doc/conf/mapserver/barrier_polygons_class.vm, doc/conf/mapserver/barrier_lines_class.vm, doc/conf/mapserver/wsplgen_class.vm: Default Mapserver styles for barriers and WSPLGEN results. Those styles are only used as long as we don't have map specific themes (as already used in charts). * doc/conf/mapserver/layer.vm: Implements a fallback mechanism for styling barrier lines/polygons and WSPLGEN results. * src/main/java/de/intevation/flys/artifacts/model/LayerInfo.java: Added a getStyle() method that currently returns "null". This method needs to be implemented when map themes are introduced. 2011-09-06 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/LayerInfo.java: Renamed some attributes to make their job in the mapfile more obvious. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added new facet type for barriers. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Add a facet for the barriers layer. * src/main/java/de/intevation/flys/utils/MapfileGenerator.java: Parse barriers (lines and polygons) and create two new layers for each type - those layers are grouped. * doc/conf/mapserver/layer.vm: Renamed attribute based on changes in LayerInfo and added support for Group-Layers. 2011-09-06 Raimund Renkert <raimund.renkert@intevation.de> * doc/conf/conf.xml: Added driver to database configuration for use with postgresql. 2011-09-06 Ingo Weinzierl <ingo@intevation.de> * doc/conf/mapserver/mapfile.vm: Removed FONTSET attribute and set quotes for SHAPEPATH. 2011-09-05 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WSPLGENFacet.java: Removed. We gonna use the WMSLayerFacet until now. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Add a WMSLayerFacet after we triggered the Scheduler to start a WSPLGEN calculation. 2011-09-05 Ingo Weinzierl <ingo@intevation.de> * doc/conf/mapserver/layer.vm, doc/conf/mapserver/mapfile.vm: Small bugfixes and style improvements. * src/main/java/de/intevation/flys/wsplgen/JobExecutor.java: Trigger the MapfileGenerator after a WSPLGEN job has finished regardless if it has been finished successfully or not. 2011-09-05 Ingo Weinzierl <ingo@intevation.de> * pom.xml: Added Apache Velocity 1.7 for templating support. * doc/conf/conf.xml: Added config options for mapserver/template relevant stuff. * doc/conf/mapserver/mapfile.vm, doc/conf/mapserver/layer.vm: New. A default mapfile template and a template used for layers. * src/main/java/de/intevation/flys/artifacts/model/LayerInfo.java: New. This class is used while reading WMS layer relevant information from filesystem. * src/main/java/de/intevation/flys/utils/MapfileGenerator.java: New. This thread is used for creating mapfiles for Mapserver. The MapfileGenerator runs in daemon mode (own thread) and creates mapfiles based on WMS layer relevant information read from filesystem. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java, src/main/java/de/intevation/flys/utils/FLYSUtils.java: Moved shapefile specific XPath expressions from FloodMapState to FLYSUtils which is a better place to use it in other classes (as MapfileGenerator). 2011-09-05 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WSPLGENJob.java: Bugfixed broken attribute assignment. * src/main/java/de/intevation/flys/wsplgen/JobExecutor.java: Call CallContext.afterBackground() after a WSPLGEN job has finished to remove the background lock from Artifact. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Call CallContext.afterCall(BACKGROUND) to lock the Artifact for background processing. 2011-09-02 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/wsplgen/JobExecutor.java: New. This class is used to start WSPLGEN for a specific WSPLGENJob. The System property "wsplgen.bin.path" tells the JobExecutor where the WSPLGEN binary is placed (which means in general, the property points to the 'wsplgen.exe'). * src/main/java/de/intevation/flys/wsplgen/Scheduler.java: New. This scheduler currently allows to start just a single WSPLGEN Thread. All WSPLGEN calculations should be started using Scheduler.addJob(). * src/main/java/de/intevation/flys/wsplgen/JobObserver.java: New. This thread reads log messages from WSPLGEN and listens for specific messages. It should be used to update status messages of the WSPLGEN calculation that is currently running. There is a System property that tells the JobObserver to log all WSPLGEN output to log4j: enable WSPLGEN output with "-Dwsplgen.log.output=true". * src/main/java/de/intevation/flys/artifacts/model/WSPLGENJob.java: Added the FLYSArtifact, the current working directory and the CallContext. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Use the Scheduler to start new WSPLGEN calculations. 2011-09-02 Felix Wolfsteller <felix.wolfsteller@intevation.de> Add CrossSectionInfoGenerator. * src/main/java/de/intevation/flys/exports/CrossSectionInfoGenerator.java: New, trivial implementation of CrossSectionInfoGenerator. * doc/conf/conf.xml: Register CrossSectionInfoGenerator. 2011-09-01 Felix Wolfsteller <felix.wolfsteller@intevation.de> Cleanups of CrossSection*. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: New methods to retrieve name of utilized CrossSection. * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java: Cleanup, get rid of copied unused method, documentation and more sensible translations. * src/main/resources/messages_de_DE.properties, src/main/resources/messages_de.properties, src/main/resources/messages_en.properties, src/main/resources/messages.properties: Added cross_section* translations, also cleanups. 2011-09-01 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Set the "typ" attribute of lines and polygons in barrier shapefiles. 2011-09-01 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Set the Z values of line and polygon barrier geometries. Both barrier shapefiles will contain 3D geometries now. 2011-09-01 Felix Wolfsteller <felix.wolfsteller@intevation.de> Get real data to display in CrossSection (although ignorant of parameterization), making use of the showcase code of the CrossSectionApp- Standalone application. * doc/conf/artifacts/winfo.xml: Add new facet (~waterline) to state/out. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: New methods to get relevant data. So far just takes the first value of everything and assuming a waterlevel at 130m. * src/main/java/de/intevation/flys/artifacts/model/CrossSectionWaterLineFacet.java: New Facet responsible of water level in cross section. * src/main/java/de/intevation/flys/artifacts/charts/CrossSectionApp.java: Made some functionality publicly and statically available. * src/main/java/de/intevation/flys/artifacts/model/CrossSectionFacet.java: Update call. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added new Facet type. * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: Added new Facet to out. * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java: Respect new facet and facets data. 2011-09-01 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/utils/GeometryUtils.java: Close an open shapefile transaction and catch exceptions which are thrown while shapefile creation here. If there occured an error, this functions returns FALSE, otherwise TRUE. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Removed exception handling while shapefile creation - this is done in GeometryUtils now. 2011-09-01 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Renamed the file for WSPLGEN required waterlevels to "waterlevels.wst". WSPLGEN did not work with the former "waterlevels.txt" file. 2011-09-01 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/utils/GeometryUtils.java: New static function that builds new SimpleFeatureTypes with additional attributes. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Write attributes "ELEVATION" and "KILOMETER" into the crosssection tracks shapefiles. 2011-08-31 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/utils/FLYSUtils.java: Added a method stub that should return a FLYSArtifact based on a given UUID. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Write the selected WST file for WSPLGEN. Note, that this is the WST file of the current WINFO artifact. Furthermore, there is currently no way for the user to select a column from WST file, so we currently use the column that is written to WST file at first. 2011-08-31 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Changed the parameter order of a compute(...) method. This makes me able to call this without a hash value. * src/main/java/de/intevation/flys/artifacts/model/DataFacet.java, src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java, src/main/java/de/intevation/flys/artifacts/model/ReportFacet.java: Adapted the parameter order of the compute() call (see above). 2011-08-31 Felix Wolfsteller <felix.wolfsteller@intevation.de> More bones to CrossSection sceleton. * src/main/java/de/intevation/flys/artifacts/model/CrossSectionFactory.java, src/main/java/de/intevation/flys/artifacts/model/CrossSectionFacet.java: New, yet trivial implementations of Factory and Facet for CrossSections. * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: Add new CrossSection- (instead of Default-)Facet. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java: Adjusted to use (touch) new Factory and Facet. 2011-08-31 Felix Wolfsteller <felix.wolfsteller@intevation.de> Cosmetics. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Cosmetics. 2011-08-31 Felix Wolfsteller <felix.wolfsteller@intevation.de> Cosmetics. * src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java, src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java, src/main/java/de/intevation/flys/artifacts/model/MainValuesQFacet.java, src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java: Removed obselete imports. * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: Removed obselete imports, whitespaces. * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Whitespaces, docs. 2011-08-31 Felix Wolfsteller <felix.wolfsteller@intevation.de> Fix translations of Main Values Facets. * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: Do acrobatics to keep state transient but get translated title. * src/main/java/de/intevation/flys/artifacts/MainValuesQFacet.java, src/main/java/de/intevation/flys/artifacts/MainValuesWFacet.java: Changed constructor to get description (which is then already be translated) dynamically, adjust deepCopy. * src/main/java/de/intevation/flys/states/StaticState.java: Adjust constructor accordingly. 2011-08-31 Felix Wolfsteller <felix.wolfsteller@intevation.de> Add sceleton for CrossSection outs. * doc/conf/artifacts/winfo.xml: Added new output mode to respective state of winfo artifact configuration. * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: Add new Dummy-Facet in state. * doc/conf/conf.xml: Registered new OutputGenerator. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added new CROSS_SECTION type. * src/main/java/de/intevation/flys/exports/CrossSectionGenerator.java: New, stubby skeleton for an CrossSectionGenerator. * src/main/resources/messages_de_DE.properties, src/main/resources/messages_de.properties, src/main/resources/messages_en.properties, src/main/resources/messages.properties: Added cross_section translation, also cleanups (e.g. main values). 2011-08-31 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WSPLGENJob.java: Marked required parameters with a comment. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Export floodplains (german 'Talaue') to shapefile and write its file path into the WSPLGEN job. 2011-08-31 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Search for a DGM that fits to the current river and km range and write its file path into the WSPLGEN job. 2011-08-30 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/utils/GeometryUtils.java: Improved exception handling: exceptions are catched in GeometryUtils now. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Write river axis and crosssections to shapefiles and save shapefile pathes in WSPLGENJob. 2011-08-30 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Use the coorect SRID for reading GeoJSON and writing line/polygon shapefiles. * src/main/java/de/intevation/flys/utils/GeometryUtils.java: Use a concrete coordinate system while feature type creation. 2011-08-30 Ingo Weinzierl <ingo@intevation.de> * pom.xml: Added GeoTools 2.7.2 dependencies for Shapefile, GeoJSON and EPSG support. * src/main/java/de/intevation/flys/artifacts/model/WSPLGENJob.java: Store 'LIN' parameter in a list now. A WSPLGEN parameter might contain many LINs. * src/main/java/de/intevation/flys/utils/GeometryUtils.java: New functions to create FeatureTypes and to write shapefiles. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Write user specified barriers into a shapefile placed in the artifact directory. 2011-08-30 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/utils/FLYSUtils.java: Added a function that extracts the SRID defined in the global configuration file for a given river. * src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java: Removed the code that extracts the river SRID - use FLYSUtils instead. 2011-08-29 Felix Wolfsteller <felix.wolfsteller@intevation.de> Use FLYSUtils.getRiver instead of WINFOArtifact.getRiver. * src/main/java/de/intevation/flys/exports/ChartGenerator.java: Use FLYSUtils.getRiver instead of WINFOArtifact.getRiver. 2011-08-29 Felix Wolfsteller <felix.wolfsteller@intevation.de> Use FLYSUtils.getRiver instead of WINFOArtifact.getRiver. * src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java, src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java, src/main/java/de/intevation/flys/artifacts/states/WQSelect.java, src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java, src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: Use FLYSUtils.getRiver instead of WINFOArtifact.getRiver. 2011-08-29 Felix Wolfsteller <felix.wolfsteller@intevation.de> Commit accidentally omitted result of refactoring (WINFO/FLYSUtils/getRiver). * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Removed implementations of getRiver, update calls to use FLYSUtils. 2011-08-29 Felix Wolfsteller <felix.wolfsteller@intevation.de> Interpolate Q main values, generate interpolated W main values on the fly from Q main values. * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: (getGaugeDatum): removed, obsolete (getLocation): new, gets location Use WstValueTable to look up interpolated Qs of MainValues. In absence of the same functionality for Ws, generate W Main Values from Q Main Values. 2011-08-29 Felix Wolfsteller <felix.wolfsteller@intevation.de> Use new helper class FLYSUtils, minor refactorization. * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: Use new functionality of helper class, convenience of FLYSArtifact. 2011-08-29 Felix Wolfsteller <felix.wolfsteller@intevation.de> Refactored to use new Helper class FLYSUtils, moved getRiver-functionality in there. * src/main/java/de/intevation/flys/utils/FLYSUtils.java (getRiver): New function to retrieve river of an artifact, slightly modified from WINFOArtifact. * src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java: Removed implementations of getRiver, update calls to use FLYSUtils. 2011-08-29 Felix Wolfsteller <felix.wolfsteller@intevation.de> Minor cosmetics. * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Resolved a TODO. * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Added some documentation. * src/main/java/de/intevation/flys/artifacts/model/WMSLayerFacet.java: Minor cosmetic. 2011-08-26 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/meta-data.xml: Made it Oracle compatible. * src/main/java/de/intevation/flys/artifacts/datacage/templating/CompiledStatement.java: If running in debug mode log executed statements. Helps debugging Oracle connections. 2011-08-26 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Set some WSPLGENJob parameters which are stored at FLYSArtifact. 2011-08-26 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/utils/FLYSUtils.java: New. This helper class should provide some basic FLYS stuff. Currently, there are functions that return the km range/location. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Removed the methods that return the km range/locations. This is implemented in FLYSUtils now. * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java, src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java, src/main/java/de/intevation/flys/exports/ChartGenerator.java: Adapted the WINFO method calls to retrieve the km range/locations - call FLYSUtils now. 2011-08-26 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: New method to destroy a single state. 2011-08-26 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: Cosmetic, remove debug output and comments, minor style adjustments. 2011-08-26 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added limited themeing-support for MainValues. * doc/conf/themes.xml: Added Q/W-MainValues themes. * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Added limited theming support, add legend entry for main values. 2011-08-26 Ingo Weinzierl <ingo@intevation.de> * doc/conf/conf.xml: Added a configuration node that points to the directory where shapefiles should be stored in. * src/main/java/de/intevation/flys/artifacts/model/WSPLGENJob.java: New. This class is used to save/write the parameter for a WSPLGEN calculation. WSPLGEN's *.par files are written using the toFile() method. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: A directory for all WSPLGEN stuff is created in computeAdvance() - those directory and all its contained files are removed in endOfLife(). 2011-08-26 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/utils/ThemeUtil.java: New Util to work with theme-related stuff. 2011-08-26 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: Use NamedDoubles instead of MainValues, try to adjust scale of Ws. * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Use NamedDoubles instead of MainValues, generalize annotation handling, to allow easier reusability and themeing. * src/main/java/de/intevation/flys/jfree/StickyAxisAnnotation.java: Added convenience constructor, exemplary switch on bordered text. 2011-08-26 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/meta-data.xml: Recommend MainValues for Computed discharge curves. 2011-08-26 Felix Wolfsteller <felix.wolfsteller@intevation.de> New NamedDouble class which implements a <String,double>-pair. * src/main/java/de/intevation/flys/artifacts/model/NamedDouble.java: New, implementation of a double with a string or vice versa. 2011-08-26 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Call State.endOfLife() for all States when endOfLife() of the Artifact is called. 2011-08-26 Felix Wolfsteller <felix.wolfsteller@intevation.de> Also plot "W"-MainValues (on vertical axis), take correct parameters, but do not convert to correct scale (cm vs NN+m). * src/main/java/de/intevation/flys/jfree/StickyAxisAnnotation.java: Naive attempt at allowing the vertical axis to be sticked at. * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Store Q and W MainValues separately, add them to plot as annotations. * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: Serve the MainValues, parameterized on river and location, Q and W. Removed Facet-implementation. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Updated Facet Types. * src/main/java/de/intevation/flys/artifacts/model/MainValuesQFacet.java: src/main/java/de/intevation/flys/artifacts/model/MainValuesWFacet.java: New, trivial facets, extracted from MainValuesArtifact. 2011-08-26 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Call State.endOfLife() of each State that is no longer in the queue of the artifact when this artifact steps back to a previous state. 2011-08-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Plot MainValues delivered by MainValuesFacet in much the same ways than Annotations in LongitudinalSection plots. 2011-08-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/jfree/StickyAxisAnnotation.java: Prepare further differentiation between Annotations that stick to X or Y- Axis, copied some positioning logic into StickyAxisAnnotation implementation. 2011-08-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Minor cosmetics. 2011-08-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added MainValue-Fetching-Capabilities to MainValuesArtifact. * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java (initialize, getMinValues): Let MainValuesArtifact return "real" MainValues, although ignorant of all parameterization. 2011-08-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java (MainValueFacet): Improved and straightened implementation, added code-Annotations and Todos. 2011-08-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java (MainValueFacet): Improved and straightened implementation, added code-Annotations and Todos. 2011-08-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java (getState): Resolved multiple creation of state (yet not very clean). 2011-08-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/AnnotationFacet.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Cosmetics, docs. * src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java: Cosmetics. 2011-08-25 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added new (MainValues) Facet-Type. 2011-08-24 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java: Added a method that returns a River object based on its database id. * src/main/java/de/intevation/flys/artifacts/RiverAxisArtifact.java: The data that is required for this artifact is fetched from database instead from a Master-Artifact. The creation of static artifacts should use database ids instead of cloning a Master-Artifact. 2011-08-24 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: Removed needless imports. 2011-08-24 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added configuration for factory and rule for MainValueArtifacts. * doc/conf.xml: Add a mainvalue factory to serve MainValueArtifacts. * doc/conf/meta-data.xml: Recomment mainvalue artifact when computed_discharge_curve can be put out. 2011-08-24 Felix Wolfsteller <felix.wolfsteller@intevation.de> Let MainValuesArtifact have a state, outputmode and facet. * src/main/java/de/intevation/flys/artifacts/states/StaticState.java: New, a non-abstract DefaultState. * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: Progressed with implementation, use StaticState to hook output modes and facet in; use (Static)FLYSArtifact implementation. 2011-08-24 Felix Wolfsteller <felix.wolfsteller@intevation.de> Smaller cosmetics. * src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java, src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: Cosmetics in comments. * src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java: Added @Override annotations. * src/main/java/de/intevation/flys/artifacts/model/DataFacet.java: Use brackets to improve readability of ternary operator. 2011-08-24 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/meta-data.xml: Use "ids" in user specific part, too. 2011-08-24 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/meta-data.xml: s/db-ids/ids/g to unify system and user specific loading. 2011-08-24 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Extracted access to state and states in order to have fewer places to modify when going for single/trivial state- artifacts. 2011-08-24 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java: Append the river's srid to the WMSLayerFacet. 2011-08-24 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: Minor fixes, ressurect Facet implementation as inner class. 2011-08-24 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Moved the input of barriers one state earlier where the scenario is selected as well. * src/main/java/de/intevation/flys/artifacts/states/ScenarioSelect.java: This state now desires the "map_digitize" UI provider and returns both items "scenario" and "uesk.barriers" in the dynamic describe part. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Removed the UI provider and the computeFeed() which is no longer needed, because there is no more user input in this state. 2011-08-24 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java, src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java: Repaired broken xpath expressions (the config changed in one of the last commits) and make use of the variable support in xpath expressions to replace the rivername. * src/main/java/de/intevation/flys/artifacts/WMSBackgroundArtifact.java: Save the rivername while initializing this artifact. This is now necessary, because each river can have its own background wms configured. 2011-08-23 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: Repaired broken river-wms initialization. 2011-08-23 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WMSLayerFacet.java, src/main/java/de/intevation/flys/artifacts/model/DataFacet.java, src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java, src/main/java/de/intevation/flys/artifacts/model/ReportFacet.java, src/main/java/de/intevation/flys/artifacts/model/DurationCurveFacet.java, src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java, src/main/java/de/intevation/flys/artifacts/model/ManagedFacetAdapter.java, src/main/java/de/intevation/flys/artifacts/model/AnnotationFacet.java, src/main/java/de/intevation/flys/artifacts/model/WSPLGENFacet.java: Made facets cloneable with the right type. * src/main/java/de/intevation/flys/artifacts/services/MapInfoService.java, src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: Removed superfluous imports. 2011-08-23 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Declare the first artifact of an output as master artifact (artifacts are ordered by their creation time). 2011-08-23 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: Removed facet interface. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Make artifacts cloneable. TODO: Override deepCopy() in subclassed states and facets. 2011-08-23 Ingo Weinzierl <ingo@intevation.de> * doc/conf/conf.xml: Added the MapInfoService and adapted the floodmap configuration. Now, each river can have its own background wms layer defined. * src/main/java/de/intevation/flys/artifacts/services/MapInfoService.java: New. This service returns some basic information used to create maps for a specific river. The name of the desired river needs to be defined at "/mapinfo/river/text()". * src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java: Adapted an xpath expression that points to the srid of a river in the floodmap configuration (which changed). 2011-08-22 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Build out/facet filter from XML document passed at creation time. 2011-08-22 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added some code to filter outs/facets by an optional positive list. This is needed to only expose parts of the facets. This is needed for artifacts which are loaded into a collection. TODO: create the filter from the XML document passed at creation time. 2011-08-22 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Moved all WINFO specific code to WINFOArtifact. FLYSArtifact is now only revolving about state affairs. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Re-inserted the specific stuff here. * src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java, src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, src/main/java/de/intevation/flys/artifacts/states/WQSelect.java, src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java, src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/ChartGenerator.java: Adjusted the casts. 2011-08-22 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/meta-data.xml: Filter by outs in user template part. 2011-08-22 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Defined an input value for the GeoJSON string to save user defined barriers in the map. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: Added a computeFeed() method. In addition, this state now prefers the "noinput" UI provider. 2011-08-19 Ingo Weinzierl <ingo@intevation.de> * doc/conf/conf.xml: Each river requires a SRID definition. This definition is used to transform the river's geometries into the desired projection. * src/main/java/de/intevation/flys/artifacts/model/WMSLayerFacet.java: This facets are able to save a SRID. * src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java: The extent that is written into the WMSLayerFacet is determined by the boundary of the geometry. * src/main/java/de/intevation/flys/utils/GeometryUtils.java: New. A utility class that provides helper functions for geometries. Currently, one function is defined, that creates a boundary string for OpenLayers. 2011-08-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java, src/main/java/de/intevation/flys/artifacts/states/DGMSelect.java, src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java, src/main/java/de/intevation/flys/artifacts/states/ProfileDistanceSelect.java, src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, src/main/java/de/intevation/flys/artifacts/states/RangeState.java: Removed superfluous imports. 2011-08-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Removed CallContext from state validation. It is not needed and hindered the extraction of all out of an artifact if you don't have a call context (like initial scan of datacage database). * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: Extract all outs now. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java, src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java, src/main/java/de/intevation/flys/artifacts/states/FloodplainChoice.java, src/main/java/de/intevation/flys/artifacts/states/ScenarioSelect.java, src/main/java/de/intevation/flys/artifacts/states/DGMSelect.java, src/main/java/de/intevation/flys/artifacts/states/LocationSelect.java, src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java, src/main/java/de/intevation/flys/artifacts/states/ProfileDistanceSelect.java, src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java, src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, src/main/java/de/intevation/flys/artifacts/states/DefaultState.java, src/main/java/de/intevation/flys/artifacts/states/WQSelect.java, src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java, src/main/java/de/intevation/flys/artifacts/states/RangeState.java, src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java, src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java, src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Adjusted calls. 2011-08-19 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added lacalization of "Streckenfavoriten". 2011-08-19 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Picky white-space cosmetics. 2011-08-19 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added stub implementation of new MainValuesArtifact. * src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java: New. Stub implementation for new MainValuesArtifact. 2011-08-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> Fixed flys/issue262 * src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java: Unified user and system tempate. Looks for "/artifact-database/metadata/template/text()" in conf.xml. Defaults to "${artifacts.config.dir}/meta-data.xml". If user id is given its the default connection for contexts. * doc/conf/conf.xml: Adjusted * doc/conf/meta-data-system.xml, doc/conf/meta-data-user.xml: Deleted. * doc/conf/meta-data.xml: Unified version of user and system template. * src/main/java/de/intevation/flys/artifacts/datacage/templating/App.java: Adjusted the test program. 2011-08-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> Fixed flys/issue260 * doc/conf/meta-data-user.xml: Uses master_artifacts view now. 2011-08-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/datacage.sql: Added view master_artifacts to select the master artifacts of the collections more easily. To upgrade existing database: CREATE VIEW master_artifacts AS SELECT a2.id AS id, a2.gid AS gid, a2.state AS state, a2.creation AS creation, ci2.collection_id AS collection_id FROM collection_items ci2 JOIN artifacts a2 ON ci2.artifact_id = a2.id JOIN (SELECT ci.collection_id AS c_id, MIN(a.creation) AS oldest_a FROM collection_items ci JOIN artifacts a ON ci.artifact_id = a.id GROUP BY ci.collection_id) o ON o.c_id = ci2.collection_id WHERE a2.creation = o.oldest_a; TODO: Use the view in the templates. 2011-08-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/meta-data-user.xml: Removed state filter because it was broken. Simplified by joining two contexts. 2011-08-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/jfree/StickyAxisAnnotation.java: Fix issues with lines of annotation when zoomed (wrong scale used). 2011-08-18 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added legend for annotations to LongitudinalSectionDiagram. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Added a pseudo-dataseries/collection to employ existing infrastructure for displaying localized label for Annotations (yet unthemed). * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Made label-string available for localization. 2011-08-17 Felix Wolfsteller <felix.wolfsteller@intevation.de> Moved StickyAxisAnnotation into new package de.intevation.flys.jfree . * src/main/java/de/intevation/flys/exports/StickyAxisAnnotation.java: Deleted/moved to src/main/java/de/intevation/flys/jfree/ . * src/main/java/de/intevation/flys/jfree/StickyAxisAnnotation.java: New/moved from src/main/java/de/intevation/flys/export/ , adjusted package statement, made class public. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Added import statement for de.intevation.flys.jfree.StickyAxisAnnotation . 2011-08-17 Felix Wolfsteller <felix.wolfsteller@intevation.de> Extracted and renamed CustomAnnotation to StickyAxisAnnotation. Also removed needless imports. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/StickyAxisAnnotation.java: Extracted class implementation CustomAnnotation and renamed to StickyAxisAnnotation. 2011-08-17 Felix Wolfsteller <felix.wolfsteller@intevation.de> Improved CustomAnnotations and rendering thereof, now including an "axis mark" (little line at axis), also prepared possibility to put annotations on Y-axis. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Improved CustomAnnotation to include marks on the axis and better spacing from it. 2011-08-17 Felix Wolfsteller <felix.wolfsteller@intevation.de> Implemented proof-of-concept collision-detection when drawing CustomAnnotations (text only). * src/main/java/de/intevation/flys/exports/ChartExportHelper.java: Pass a fresh ChartRenderingInfo-Object to createBufferedImage, such that information can be collected while rendering. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Exploit the fact that XYTextAnnotation already registers drawn shape in the ChartRenderingInfo if it exists and either an URL or tooltip is set. Before drawing, calculate own shape and compare against already registered shapes. 2011-08-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> Implemented (yet dummy) custom Annotation class. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Added implementation of yet dummy CustomAnnotation class. 2011-08-16 Felix Wolfsteller <felix.wolfsteller@intevation.de> Slightly improved rendering of annotations. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Slightly improved rendering of annotations. Still no valid collision detection. Annotations are drawn every 2 km; first come first serve. 2011-08-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> Fix for flys/issue191 * src/main/java/de/intevation/flys/artifacts/model/WQ.java(longestIncreasingWRangeIndices): Added a method to find the longest index range with increasing w values. * src/main/java/de/intevation/flys/exports/ATWriter.java: Export the longest range of monotone increasing w values instead of the first one. TODO: The first line of the export is still broken. * src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java: Removed superfluous import. 2011-08-12 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java: Resolved two TODOs: get Annotations of selected River, get "point" Annotations only. 2011-08-12 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added functionality to query range and point-annotations only to AnnotationFactory. * src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java (getPointAnnotations, getAnnotationsBreadth): New functions to query breadth and point-only annotations. 2011-08-11 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java: Added a development mode for recommendations. Enabled with stetting system property 'flys.datacage.recommendations.development' to true. When set the XML template are re-read if the timestamps of the files have changed so you do not have to restart the server again and again. * doc/conf/meta-data-user.xml: Sort collections by creation time in descending order. 2011-08-11 Felix Wolfsteller <felix.wolfsteller@intevation.de> Rather picky cosmetics only. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java, src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java, src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java, src/main/java/de/intevation/flys/artifacts/model/WQKms.java, src/main/java/de/intevation/flys/artifacts/states/DefaultState.java, src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java, src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: End comments on a full stop, separate from closing '*/' by whitespace, adjusted javadoc comments. 2011-08-11 Felix Wolfsteller <felix.wolfsteller@intevation.de> Made Annotations visible in LongitudinalSection diagrams. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Register new Facet Type, let LongitudinalSectionGenerator include Annotations in diagram (yet unfiltered and independent of river). 2011-08-11 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/conf.xml, doc/conf/artifacts/annotation.xml, doc/conf/meta-data-system.xml: Added configuration for AnnotationArtifacts. 2011-08-11 Felix Wolfsteller <felix.wolfsteller@intevation.de> Added demo- implementation of a AnnotationArtifact and its Facet. * src/main/java/de/intevation/flys/artifacts/AnnotationArtifact.java, src/main/java/de/intevation/flys/artifacts/model/AnnotationFacet.java, src/main/java/de/intevation/flys/artifacts/states/AnnotationRiverState.java: New. Initial version of an AnnotationArtifact and its State and Facet. 2011-08-10 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/datacage.sql: Extended schema for artifacts and collections to have creation times, too. To update existing databases: ALTER TABLE artifacts ADD COLUMN creation TIMESTAMP NOT NULL DEFAULT current_timestamp; ALTER TABLE collections ADD COLUMN creation TIMESTAMP NOT NULL DEFAULT current_timestamp; * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: Store creation times for artifacts and collections, too. * src/main/resources/datacage-sql/org-h2-driver.properties, src/main/resources/datacage-sql/org-postgresql-driver.properties: Adjusted SQL statements. 2011-08-10 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: Make it compilable again (BackendListener interface changed). 2011-08-10 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/meta-data-user.xml: Added grouping element around w/q of each longitudinal section artifact. * src/main/java/de/intevation/flys/artifacts/datacage/templating/CompiledStatement.java, src/main/java/de/intevation/flys/artifacts/datacage/templating/StackFrames.java: Added some debugging capabilities. * src/main/java/de/intevation/flys/artifacts/datacage/templating/ResultData.java: Added isEmpty() method. * src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java: Now it is possible to nest <dc:elements> into other elements in the <dc:context> body. This is useful and needed for grouping and repeating results. 2011-08-10 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java: User connection was cached, system was not. Lead to incorrect results. 2011-08-09 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/meta-data-user.xml: Added <old_calculations> element around old calculations. 2011-08-09 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/QRangeTree.java: Cosmetic: Replaced usage of legacy java.util.Stack with java.util.Deque. 2011-08-04 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/meta-data-user.xml: Use 'CAST(x AS uuid)' instead of 'x::uuid' to be more compatible. 2011-08-04 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java: If given an artifact place its identifier into parameters passed to template. Fixed swapped user/system connections if using the user template. * doc/conf/meta-data-user.xml: Recommend w/q facet from old calculations if an artifact was given that represents a longitudinal section "Laengsschnitt". TODO I: The template uses PostgreSQL specific UUID casts. TODO II: We need to find a way only to recommend the master artifacts. 2011-08-04 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java: Added a <dc:comment> tag to place comments in the meta data templates. <!-- ... --> comments are copied through. * doc/conf/meta-data-user.xml: Added a simple test. 2011-08-04 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: Be a bit more tolerant about empty strings for UUIDs of artifact and user. 2011-08-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> Bring user specific meta data service to life. * doc/conf/conf.xml: There are now two templates to configure: The system template (only the data from the backend) and the user template (the datcage db and the backend db), * doc/conf/meta-data-template.xml: Deleted. * doc/conf/meta-data-user.xml: New. The user specific template. TODO: Write it! * doc/conf/meta-data-system.xml: New. The system template. * src/main/java/de/intevation/flys/artifacts/datacage/templating/NoneUserSpecific.java: Deleted. * src/main/java/de/intevation/flys/artifacts/datacage/Recommendations.java: New. The logic to fill the templates. * src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java: Adjusted to follow the new call signatures. * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: Refactored. Removed the old code and only leave the new service. Following XPaths are evaluated on the incomming document: "/art:meta/art:artifact-id/@value" The UUID of the artifact. Optional. Used to fill the template enviroment. "/art:meta/art:user-id/@value" The UUID of the user. Optional. If given the user specific template is filled. "/art:meta/art:outs/@value" The list of outs used to recommend for the various outputs. "/art:meta/art:parameters/@value" A list of key/value pairs to inject more filters to the templating. * src/main/java/de/intevation/flys/artifacts/datacage/templating/App.java: Change to follow the new recommendations semantics. * src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java: Added symbolic constants to distinguish "user" and "system" db connections. 2011-08-03 Felix Wolfsteller <felix.wolfsteller@intevation.de> * doc/conf/conf.xml: Cosmetics, let comments start with a capital and end on a full stop, removed incorrect comment. 2011-08-03 Felix Wolfsteller <felix.wolfsteller@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Cosmetics, let comments start with a capital and end on a full stop. 2011-08-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java(extractOutputNames): Fixed potential NPE. 2011-08-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> Added support for more than one db connection in datacage templating. * src/main/java/de/intevation/flys/artifacts/datacage/templating/Builder.java: Now you can pass a list of named db connections to the build process. The purpose is to mix more then one database (e.g. the backend db and the user specific one). To use this feature you can add an "connection" attribute to <dc:context> with the name of the connection to use. If no connection name is given the last used is used again. Initially the first connection in the given list is used. If the context is left the connection that was active before will be active again in a stacking manner. When creating NamedConnection objects you can set a boolean flag if the results coming from the connection should be cached. This is useful e.g. for the user specific database which runs in-memory so caching would introduce some superfluous overhead. * src/main/java/de/intevation/flys/artifacts/datacage/templating/CompiledStatement.java: When executing the queries explicitly pass if caching should be used. 2011-08-02 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: Forgot to fetch dialect dependent SQL statement for deleting artifacts by uuid. 2011-08-02 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: Set the name of the collections at initial scan, too. 2011-08-02 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: Fixed wrong SQL references. 2011-08-02 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: Fixed two NPEs. 2011-08-02 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/DatacageBackendListener.java, src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: Forwarded kill collections and artifacts events to datacage. * src/main/resources/datacage-sql/org-h2-driver.properties, src/main/resources/datacage-sql/org-postgresql-driver.properties: Added statement to delete artifact by uuid. 2011-08-02 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/DatacageBackendListener.java: Made it compilable again. The signature of BackendListener has changed. 2011-08-01 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: Completed the backend listener stuff. TODO I: Added some cleanup for orphaned artifacts. TODO II: Figure out a way to delete collections/artifacts which are delete from backend without the backend API. * src/main/resources/datacage-sql/org-h2-driver.properties, src/main/resources/datacage-sql/org-postgresql-driver.properties: Added needed statements. 2011-08-01 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: Update collection names on change. Remove artifacts from collections. * src/main/resources/datacage-sql/org-h2-driver.properties, src/main/resources/datacage-sql/org-postgresql-driver.properties: Added needed statements. 2011-08-01 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/DatacageBackendListener.java: Call datacage with the global context. This is needed to access the state engine. * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: Changed signatures to take the global context, too. Create artifacts via backend listener interface. 2011-08-01 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/DatacageBackendListener.java: Fixed recursion bug. 2011-08-01 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/DatacageBackendListener.java: Added debug output. 2011-08-01 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/conf.xml: Added backend listener for datacage. * src/main/java/de/intevation/flys/artifacts/datacage/DatacageBackendListener.java: New. Proxies backend listener calls to datacage. * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: Implements backend listener. TODO: Update the datacage database according the change calls. 2011-08-01 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/meta, src/main/java/de/intevation/flys/artifacts/datacage/templating: Moved/renamed package to better fit the common semantics. DataCage.java is now call NoneUserSpecific.java to reflect the fact that it is the template for the user independent db analysis. * src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java, src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: Ajusted imports and calls. 2011-08-01 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/conf.xml: For documentation purposes added a out-commented section with the default configuration of the datacage. 2011-07-31 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: Delete the artifacts at before initial scan, too. They are independent from users. Fixed problem when writing state data content. * src/main/resources/datacage-sql/org-h2-driver.properties: Added statement to delete the artifacts at initial scan, too. * src/main/resources/datacage-sql/org-postgresql-driver.properties: New. PostgreSQL version of the statements. The database scheme is the same as H2. Very useful for debugging. 2011-07-31 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: Added kludge for the types of artifact data. They seem to be null in some circumstances. Needs to be debugged! 2011-07-31 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/DBConfig.java: Fixed default connection URL to use a namend in-mermory database. 2011-07-31 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/datacage.sql: Fixed constraint. * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: Added some debug output. 2011-07-29 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/datacage.sql: Removed artifact_id from facet because there is a link via out_id -> outs.id: artifact_id -> artifacts to find the corresponding artifact. * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java, src/main/resources/datacage-sql/org-h2-driver.properties: Store facets of outs into datacage db at initial scan. 2011-07-29 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java, src/main/resources/datacage-sql/org-h2-driver.properties: Store outs of artifacts into datacage db at initial scan. TODO: store facets. 2011-07-29 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/datacage.sql: Added 'type' column in artifacts data. Maybe useful for filtering. * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java, src/main/resources/datacage-sql/org-h2-driver.properties: Store artifact data into db at initial scan. TODO: store outs and facets. 2011-07-29 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java, src/main/resources/datacage-sql/org-h2-driver.properties: Add artifacts into datacage db at initial scan. TODO: Store data, outs and facets. 2011-07-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/datacage.sql: Fixed spelling in sequence name. * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java, src/main/resources/datacage-sql/org-h2-driver.properties: Simply add collection item at initial scan if artifact was stored before. TODO: Store new artifacts. 2011-07-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java, src/main/resources/datacage-sql/org-h2-driver.properties: Add collections at initial scan. 2011-07-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java, src/main/resources/datacage-sql/org-h2-driver.properties: Add users at initial scan. 2011-07-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/datacage.sql: Using sequences for id generation now to make schema more compatible. 2011-07-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java, src/main/resources/datacage-sql/org-h2-driver.properties: Clear database before initial scan. 2011-07-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/DBConnection.java: Deleted. This stuff comes from the artifact database now. * src/main/java/de/intevation/flys/artifacts/datacage/DBConfig.java: New. The db config of the datacage database. * src/main/resources/datacage-sql/org-h2-driver.properties: New. The SQL statements needed for the datacage. * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: Make use of the db config. 2011-07-27 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java: New. A artifact database lifetime listener to build the initial index of the artifacts in database. * doc/conf/conf.xml: Added the datacage to the list of lifetime listeners. 2011-07-27 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/datacage.sql: Added an explicit table for the outs of an artifact. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Make the current outs of an artifact accessible only with the global context. 2011-07-27 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/datacage.sql: Added ON DELETE CASCADE constraints. Added state in facet. 2011-07-26 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/datacage.sql: New. H2 Schema for the datacage database. Uses special features like IDENTITY (autoincrement) typed columns. * src/main/java/de/intevation/flys/artifacts/datacage/DBConnection.java: Pooled connection. * pom.xml: Added dependencies to H2 and Apache DBCP. 2011-07-26 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/test/java/de/intevation/flys/artifacts/AppTest.java, src/main/java/de/intevation/flys/artifacts/App.java: Removed. This the stupid "Hello, World!" app initially created by the maven archetype. It was never used. 2011-07-25 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: Argh! Usage the DOM was not thread safe (discovered with ab). 2011-07-25 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/meta-data-template.xml: '$recommended' lead to XPath errors. Using "dc:contains($parameters, 'recommended')" helps. * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java, src/main/java/de/intevation/flys/artifacts/services/meta/FunctionResolver.java: Added some debugging. * src/main/java/de/intevation/flys/artifacts/services/meta/DataCage.java: Added parameters as 'parameters' to parameters. Usefull to check for containment of variables. 2011-07-25 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: Added 'if log.isDebugEnabled() {}'. 2011-07-25 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: Made Artifact UUID optional and accept extra parameters, too. This enables the service to be used without an arttifact and test all filters. <art:meta xmlns:art="http://www.intevation.de/2009/artifacts"> <art:outs value="computed_discharge_curve,floodmap"/> <art:parameters value="river:Elbe"/> <art:filters value="recommended"/> </art:meta> * src/main/java/de/intevation/flys/artifacts/services/meta/FunctionResolver.java: 'contain' accept Maps and collection, too. * src/main/java/de/intevation/flys/artifacts/services/meta/DataCage.java: Made artifact option (= null) in recommendations. 2011-07-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/meta/CompiledStatement.java: Moved connection specific into inner class. The enables the reuse of the compiled statement. * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: The SQL statements are now only compiled once at creation time of the builder. Each connection now reuses them. 2011-07-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/cache.xml: Added configuration for static datacage db access. * src/main/java/de/intevation/flys/artifacts/services/meta/App.java: Using caches seems to need an explicit System.exit(). * src/main/java/de/intevation/flys/artifacts/services/meta/CompiledStatement.java: Added support for caching the SQL statements and there results. * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: Some clean up. Reordered code for performance. Strip SQL statements more aggressively. * src/main/java/de/intevation/flys/artifacts/services/meta/ResultData.java: Made it Serializable. * src/main/java/de/intevation/flys/artifacts/cache/CacheFactory.java: Introduced system property 'flys.artifacts.cache.config.file' to make the caching configurable without pulling up the whole stack. 2011-07-22 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Prepared the FLYSArtifactCollection to support the storage of already loaded recommendations in its attribute document. 2011-07-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: Adjusted to use the DataCage recommendations. The incomming document can pass the artifacts UUID by '/art:outs/@value' the outs as a comma separated list in '/art:outs/@value' and optional a set of filters comma separated in '/art:filters/@value'. If UUID and OUTS are not given the old service is used. This should be removed as soon as the client uses the new service. 2011-07-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/meta/CompiledStatement.java: Allow '-' in variable names. 2011-07-21 Ingo Weinzierl <ingo@intevation.de> * doc/conf/meta-data-template.xml: Now, the river-id is really added to the factory node of the wmsbackground layer. 2011-07-21 Ingo Weinzierl <ingo@intevation.de> * doc/conf/meta-data-template.xml: Added the river-id to the factory node of the riveraxis and wmsbackground layer. 2011-07-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java, src/main/java/de/intevation/flys/artifacts/services/MainValuesService.java, src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java, src/main/java/de/intevation/flys/artifacts/services/RiverService.java: Adjusted to implement changed Service interface. 2011-07-21 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Refactored the method that retrieves the Outputs for the Artifact. Now, we are able to query the Outputs for the current state, and all outputs separately. * src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java: The recommendations provided by this monitor will take the Outputs of the current state only into account. 2011-07-21 Ingo Weinzierl <ingo@intevation.de> * doc/conf/meta-data-template.xml: Added conditions for each output type. Splitted the "floodmap" output into two parts: a recommended one and a complete one. The recommended part will only build the document tree for the recommended artifacts; the complete part will build the whole document tree that is available for a floodmap. * src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java: This Hook now uses the DataCage to generate the recommended artifacts. The output-defaults configurtion is needless now. * doc/conf/output-defaults.xml: Removed. The configuration of recommended artifacts takes place in meta-data-template.xml. * src/main/java/de/intevation/flys/artifacts/services/meta/DataCage.java: Bugfix: the DataCage didn't start working if its builder was NOT null, but it shouldn't start if the builder IS null. 2011-07-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: Now it is possible to directly pass a Node as a root to the builder. The owning document if fetch by Node.getOwnerDocument(). This is useful if you want to generate the recommendation directly into an already existing document under a given node. * src/main/java/de/intevation/flys/artifacts/services/meta/DataCage.java: Changed the signature of recommend() to accept a node where to append the recommendations. 2011-07-20 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: Added a macro mechanism: <dc:macro name="keine-fuenf"> <dc:text>'5' ist nicht in der Liste der Outs.</dc:text> </dc:macro> <dc:call-macro name="keine-fuenf"/> <dc:call-macro name="keine-fuenf"/> <dc:call-macro name="keine-fuenf"/> Macros can be defined everywhere in the template with 'macro'. There bodies can contain all valid elements including other 'macro's and 'call-macro's. They are called with their 'name' with 'call-macro'. The control flow is continued inside the body of the called macro and will continue right after the calling 'call-macro' when the macro body is finished. 2011-07-20 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: Added a new 'if' construct similiar to XSLT: <dc:if test="not(dc:contains($outs, '5'))"> <dc:text>'5' ist nicht in der Liste der Outs.</dc:text> </dc:if> The control flow is continued inside the 'if' if the 'test' attribute as an XPath expression on an empty document evalutes to true. Else the inside is skipped. There is no 'else'. Use 'choose'/'otherwise' if you need this. 2011-07-20 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/meta/DataCage.java: Added a recommend() method to generate recommendations for a given artifact, outs and extra parameters. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added method to extract all data at once. 2011-07-20 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/meta/FunctionResolver.java: New. Custom XPath function provider. Provides 'dc:contains(Object [] haystack, Object needle)' by now. Should be useful to check containments in 'out' lists later. * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: Register the FunctionResolver to the evaluated XPaths. * src/main/java/de/intevation/flys/artifacts/services/meta/App.java: Added code to parse "param:a,b,c" to "param" -> new String [] { "a", "b", "c" } to help testing the 'dc:contains' XPath function. 2011-07-20 Ingo Weinzierl <ingo@intevation.de> * doc/conf/conf.xml: Added wms configurations for Saar, Mosel and Elbe. Each river supported by FLYS requires such a WMS configuration. A WMS should contain layers for the river axis, buildings, kilometer labels and maybe a background layer as well. * src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java: Added key that is used to store a map of WMS URLs - for each river a WMS URL. * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: Parse the river WMS from global configuration. * src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java: Create WMSLayerFacets with URLs based on the river and the river wms configuration stored in the FLYSContext. * src/main/java/de/intevation/flys/artifacts/WMSBackgroundArtifact.java, src/main/java/de/intevation/flys/artifacts/RiverAxisArtifact.java: Adapted the initialize() signature and the method call of computeInit() which requires a FLYSContext to retrieve the river WMS configurations. * src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java, src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Added the context object parameter to the computeInit() method. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Call initialize() with the context object - which is a FLYSContext or a CallContext. 2011-07-20 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/meta/App.java: Check if builder was created properly before using it. * src/main/java/de/intevation/flys/artifacts/services/meta/StackFrames.java: Implements now variable provider for XPath expressions. * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: Added new choose/when/otherwise construct similiar to XSLT <dc:choose> <dc:when test="$river = 'Mosel'"> <dc:text>Es ist die Mosel.</dc:text> </dc:when> <dc:when test="$river = 'Saar'"> <dc:text>Es ist die Saar.</dc:text> </dc:when> <dc:otherwise> <dc:text>Es ist weder Mosel noch Saar.</dc:text> </dc:otherwise> </dc:choose> A 'choose' block can contain a list of 'when's and an optional 'otherwise'. For each 'when' the test attribute is evaluated as an XPath expression on an empty document. The result of the evaluation is taken as a boolean value. If its value is true the control flow is continued inside the corresponding 'when' and the other choose elements are not tested. If the value is values the testing continues with the next 'when'. If no 'test' expression is evaluated to true, the control flow continues inside the 'otherwise'. If no 'otherwise' is given nothing happens at all. 2011-07-20 Ingo Weinzierl <ingo@intevation.de> * doc/conf/conf.xml: Added a config section for floodmaps. Currently, the background layer's url and layername is defined here. * src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java: Read the background layer configuration from conf.xml. Those values are used to create the WMSLayerFacet. 2011-07-20 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java: The background layer facet will no longer have an extent set. 2011-07-20 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java, src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java: Set the extent of the created WMSLayerFacets and i18n its descriptions. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added I18N strings for the background an river axis layer. 2011-07-20 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WMSLayerFacet.java: This facet type has a method to set the extent of a WMS layer. The extent is written to the facets XML node in toXML() as well. 2011-07-20 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Adapted the signature of setup() which requires a CallMeta parameter now. * src/main/java/de/intevation/flys/artifacts/WMSBackgroundArtifact.java, src/main/java/de/intevation/flys/artifacts/RiverAxisArtifact.java: Use the CallMeta object retrieved in setup() to call initialize(). It is now able to i18n things. 2011-07-20 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/meta/App.java: New. Standalone app to debug the datacage template. To use in a maven environment: -Dmeta.data.template=PATH_TO_META_DATA-TEMPLATE.XML \ -Dmeta.data.parameters=river:Mosel \ -Dmeta.data.output=OUTPUT.XML \ -Dflys.backend.user=DB_USER \ -Dflys.backend.password=DB_PASSWORD \ -Dflys.backend.url=DB_CONNECTION_URL \ -Dexec.mainClass=de.intevation.flys.artifacts.services.meta.App 2011-07-20 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/meta/DataCage.java: New. First step to factor out the "Datenkorb" logic into a service independent singleton. * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: Uses the "Datenkorb" singleton now. 2011-07-20 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java: Removed "index" property, because it is already existing in parent class. 2011-07-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: Improved error handling. 2011-07-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/resources/metadata/template.xml: Deleted. * doc/conf/meta-data-template.xml: New. Was template.xml * doc/conf/conf.xml: Made meta data template configurable. * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: Load template from configuration not from resources. 2011-07-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/resources/metadata/template.xml: s/[a-z]+-id/db-id/ Make database ids identifiable with unique name "db-id". 2011-07-19 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java: Override the toXML() method. Subclasses can now write their own XML representation. * src/main/java/de/intevation/flys/artifacts/model/ManagedDomFacet.java: New. This ManagedFacet uses an Element (DOM) to store the information about a facet. The intent of this facet type is to represent a facet stored in an Collection attribute. Different facets can have different attributes that we need to parse, but the only thing ManagedFacets need to do, is to adjust the attributes "active" and "position". So, those values are set directly on the Element, the other attributes aren't touched. * src/main/java/de/intevation/flys/artifacts/model/ManagedFacetAdapter.java: New. This facet is a wrapper for another facet. This subclass of a ManagedFacet overrides the toXML() method. The XML representation is defined by the inner facet that is stored as member variable. The ManagedFacet specific attributes "artifact", "facet", "pos" and "active" are added manually. * src/main/java/de/intevation/flys/collections/AttributeWriter.java: Uses the toXML() method to write a facet node into the attribute document. * src/main/java/de/intevation/flys/collections/AttributeParser.java: Uses the ManagedDomFacet to save the information of a facet which is contained in the attribute part of a Collection's DESCRIBE document. * src/main/java/de/intevation/flys/collections/OutputParser.java: Uses the ManagedFacetAdapter to save a facet, because we want to keep the specific facet to be able to write its specific XML representation into the Collection's DESCRIBE document. * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Adapted the XPath of facets stored in the attribute part of the DESCRIBE. 2011-07-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a method that returns the Outputs for the Artifact. * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Adapeted the call of OutputParser. * src/main/java/de/intevation/flys/collections/OutputParser.java: Simplified the code to read the Outputs of Artifacts. This parser will now longer parse the DESCRIBE documents of the Artifacts, but query the Outputs via FLYSArtifact.getOutputs() directly. 2011-07-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/artifacts/StaticFLYSArtifact.java: Adapted the function call of ProtocolUtils.appendOutputModes(). * src/main/java/de/intevation/flys/artifacts/model/WMSLayerFacet.java: Override toXML() to add the URL and layernames to the XML representation of this facet. 2011-07-18 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/wmsbackground.xml, doc/conf/artifacts/riveraxis.xml: New configurations for an Artifact that is used as background layer in floodmaps, and an artifact that is used as layer showing the river axis in a floodmap. * doc/conf/output-defaults.xml: New file to configure default artifacts for specific output states. E.g. the floodmap state recommends a background layer and a layer displaying the river axis. In suche case, the floodmap state recommends two artifacts for the two layers. * doc/conf/conf.xml: Added new artifacts/artifact-factories and a Hook to monitor artifacts (-> CollectionMonitor.java). * src/main/java/de/intevation/flys/artifacts/model/WMSLayerFacet.java: New. This facet is used to represent a layer in a map. So, this facet stores information about a WMS URL and the layer names provided by this WMS. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added facet types for the wmsbackground and riveraxis. * src/main/java/de/intevation/flys/artifacts/states/WMSBackgroundState.java, src/main/java/de/intevation/flys/artifacts/WMSBackgroundArtifact.java: New. An artifact and its default state. The intent of these classes is to generate WMSLayerFacets which represent background layers in maps. * src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java, src/main/java/de/intevation/flys/artifacts/RiverAxisArtifact.java: New. An artifact and its default state. The intent of these classes is to generate WMSLayerFacets which represent layers that display a river axis. * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Added the INIT ComputeType. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a case for the INIT ComputeType while computing data. 2011-07-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Added a method computeInit() which is called to initialize data/facets after an artifact has been created. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Repaired broken XPath. 2011-07-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java: Removed the code to generate new artifacts. Instead of creating new artifacts automatically, we decided to suggest creating new artifacts from specific types. Therefore, the DESCRIBE document of the artifacts is extended with a node that contains recommended artifact types. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: FLYSArtifacts might be setup with the identifier of an other FLYSArtifact. Subclasses are able to override a method called initialize(Artifact, GlobalContext). This might be helpful to extract required values or clone artifacts. 2011-07-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: Adapted the signature of createArtifactContext() - it returns an instance of GlobalContext now. 2011-07-14 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/geom/Lines.java: Debugged the water fill algorithm. Added a lot of logging. * src/main/java/de/intevation/flys/artifacts/charts/CrossSectionApp.java: Added a text field to give a water level to fill in. 2011-07-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Moved code to create the output modes based on the given facets to FLYSArtifact. In addition, FLYSArtifact got a new method that returns a specific input value as string. * src/main/java/de/intevation/flys/artifacts/CollectionMonitor.java: New. This hook monitors the "post-feed" and "post-advance". If the monitored Artifact's state has configured recommended artifacts, this hook will create new Artifacts. TODO: We have to add the UUIDs of the new Artifacts to the DESCRIBE document of the artifact to let the client know, that there are new recommended Artifacts. * src/main/java/de/intevation/flys/artifacts/StaticFLYSArtifact.java: New. This Artifact is the base class for Artifacts, that represent static data. E.g. this could be a decoration theme in a chart or a background layer in the map. * src/main/java/de/intevation/flys/artifacts/states/OutputState.java: New. This state might be used as base class for states, that doesn't require any user input, but only provide static Facets added by a computeFeed() operation. So, subclasses need to implement computeFeed() only. 2011-07-13 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/charts/CrossSectionApp.java: New. Standalone Swing-App to test cross sections from database without the hassles of our complete software stack. Runnable from a maven environment: $ mvn -e \ -Dflys.backend.user=DB_USER \ -Dflys.backend.password=DB_PASSWD \ -Dflys.backend.url=DB_CONNECTION_URL \ -Dexec.mainClass=de.intevation.flys.artifacts.charts.CrossSectionApp \ exec:java You can set the river to be used with the system property 'river'. Defaults to 'Mosel'. * src/main/java/de/intevation/flys/artifacts/model/WSPLGENFacet.java: Removed superfluous imports. 2011-07-13 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: The FloodMapState has a new Outputmode called "floodmap" now. * src/main/java/de/intevation/flys/artifacts/model/WSPLGENFacet.java: New. This facet is used to generate WSPLGEN results. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added the WSPLGENFacet. * src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java: This state will now generate WSPLGENFacets. 2011-07-12 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/geom/Lines.java: Fixed corner case. 2011-07-11 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/geom/Lines.java: New. fillWater() generates a list of wet lines for a given profile and a given water level. 2011-07-08 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The Outputs created while generating the DESCRIBE document will now have the 'type' member set. * src/main/java/de/intevation/flys/collections/OutputParser.java: Read the 'type' member from DESCRIBE document. 2011-07-06 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Removed a typo. 2011-07-06 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DataFacet.java: DataFacet are now able to store the ID of the state which has created this Facet. * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: Initialize DataFacets with the ID of this state. This is necessary to renew the waterlevel data if it is no longer existing in the cache. 2011-07-06 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/ReportFacet.java: A report facet can now store the state's id and the artifact's hash value when it has been created. * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: Initialize the ReportFacet and WaterlevelFacet with state id and hash information. This has been necessary to retrieve reports and waterlevels in states after this one - in states that we need to enter for floodmap parameterization. 2011-07-05 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WaterlevelGroundDifferences.java: Changed the desired UI provider. 2011-07-05 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Added the option to continue the waterlevel parameterization with the intent to create flood maps. * src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: This state is no longer a final state. The user has the option to continue with the parameterization for flood maps based on the current waterlevel. Therefore, this states desires the "continue" UI provider. Clients should recognice this to just step to the next state or display a button that lets the user step to the next state manually. * src/main/java/de/intevation/flys/artifacts/states/FloodplainChoice.java, src/main/java/de/intevation/flys/artifacts/states/FloodMapState.java, src/main/java/de/intevation/flys/artifacts/states/ScenarioSelect.java, src/main/java/de/intevation/flys/artifacts/states/DGMSelect.java, src/main/java/de/intevation/flys/artifacts/states/ProfileDistanceSelect.java, src/main/java/de/intevation/flys/artifacts/states/WaterlevelGroundDifferences.java: New. These states are used to parameterize a further calculation type: flood map. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Required strings for the flood maps states. 2011-07-04 Sascha L. Teichmann <sascha.teichmann@intevation.de> Fix(?) for flys/issue114 * src/main/java/de/intevation/flys/artifacts/model/WQ.java: Make guessing a bit more robust. 2011-07-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> Added the math needed to calculate "W-Differenzen" in "Laengsschnitten". Needs testing! * src/main/java/de/intevation/flys/artifacts/model/NamedObject.java: Made it an interface to be usable in more than one inheritance chain. * src/main/java/de/intevation/flys/artifacts/model/NamedObjectImpl.java: Implements the NamedObject interface and is the new base class of WQ and WKmsImpl. * src/main/java/de/intevation/flys/artifacts/model/WKms.java: New. Interface to associate kms with ws. * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Changed the base class to NamedObjectImpl. Renamed getKms(int) to getKm(int) to make clear it return a single scalar value and fullfil the WKms interface. * src/main/java/de/intevation/flys/artifacts/model/WKmsImpl.java: New. Implements the WKms interface. Intended to be a lightweight datastore for "zusaetzliche Laengsschnitte" and as results of the WKmsOperations. * src/main/java/de/intevation/flys/artifacts/model/WQ.java: Changed base class to NamedObjectImpl. * src/main/java/de/intevation/flys/artifacts/math/WKmsOperation.java: New. Operations on WKms data. Currently only the SUBTRACTION operation is implemented. This one is needed to calculate the "W-Differenzen". The operation is insensitive about the km directions of the datasets. Missing values are interpolated linear. * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Adjusted to satisfy the signature change of WQKMs. 2011-07-01 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/StyledXYSeries.java: New. This XYSeries stores the style information that should be used to render this series. These information are stored as raw XML documents. A public method can be used to apply those style information to a XYLineAndShapeRenderer. Note: The only two attributes currently supported by StyledXYSeries items are "linesize" and "linecolor". * doc/conf/themes.xml: Added some more basic themes for the four calculation methods. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: This generator now tries to apply themes for all series contained in the chart. If a series is no instance of StyledXYSeries, the default renderer is used. * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Removed the code that had been introduced to adapt renderers statically. Now, each of these concrete ChartGenerators instantiates StyledXYSeries items to put the curves into the chart. Those items contain style information now! 2011-07-01 Ingo Weinzierl <ingo@intevation.de> flys/issue135 (Diagramm: Trotz abgeschalteter Themen bleiben Beschriftungen bestehen) * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: The way to store datasets has changed. Until this revision, the concrete generators managed their own datasets. E.g. the DischargeLongitudinalSectionGenerator had three datasets: w, q and corrected w. Now, there are just two datasets, managed by this base generator - one dataset for the first Y axis and one dataset for the second Y axis. This makes it easier to remove axes, that have no data to be displayed. All concrete chart generators have to add their XYSeries using two methods: addFirstAxisSeries() and addSecondAxisSeries(). * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Those concrete chart generators no longer manage datasets themself but they use the two methods described above, to plot the data to the first or second Y axis. 2011-07-01 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java: Added the option to use a filter to reduce the number of items returned by this service. 2011-06-30 Ingo Weinzierl <ingo@intevation.de> flys/issue159 (WINFO: Radiobutton - Ortsauswahl bei "W für ungleichwertigen Abflusslängsschnitt" entfernen) * doc/conf/artifacts/winfo.xml: Changed the kilometer range input for calculation 4. This calculation type requires a kilometer range. So, after choosing the calculation 4, the transition model leads to a state that just allows the input of a kilometer range with no option to enter locations. * src/main/java/de/intevation/flys/artifacts/states/ComputationRangeState.java: New. A base state for the kilometer selection for calculations. The target of this state is to provide facets for the duration curves. * src/main/java/de/intevation/flys/artifacts/states/DistanceSelect.java: New. This state is used to enter a kilometer range. The difference to the LocationDistanceSelect state is, that there is no option to enter locations. * src/main/java/de/intevation/flys/artifacts/states/RangeState.java: Improved this state to be the base state for calculation ranges. * src/main/java/de/intevation/flys/artifacts/states/LocationSelect.java src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: This state no longer inherits from RangeState which now is used as base state for kilometer ranges. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added new i18n strings for the DistanceSelect state. 2011-06-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * pom.xml: Downgraded Trove to 1.1-beta-5, because the new later ones are removed from the maven repos. The functionality we need is in 1.1 so this downgrade should cause no problems. Would be nice if we would support the maintainers of trove to bring there new versions back into the main maven repos. 2011-06-28 Ingo Weinzierl <ingo@intevation.de> * pom.xml: Repaired the JBoss repository which place has changed. 2011-06-28 Ingo Weinzierl <ingo@intevation.de> Tagged RELEASE 2.4 2011-06-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java, src/main/java/de/intevation/flys/exports/WstWriter.java: Append the corrected W column (if existing) to the WST export. 2011-06-27 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WQ.java: Guessing increaing w is not based on direct neighbors any more. The second to be compared with is choosen by random of the values before the first one. This makes the guessing more robust against 'plateaus' of equal w values. 2011-06-27 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/exports/ATWriter.java: Array for constructing the spline was too large leading to non-increasing values. 2011-06-27 Sascha L. Teichmann <sascha.teichmann@intevation.de> Fix for flys/issue150 * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Invert the x axis if its guessed that water is increasing. 2011-06-27 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WQ.java(guessWaterIncreasing): Added a method to guess based on a given factor of the size (default 0.05) if the water levels are increasing. Needed to determine in which direction the water level curve should be orientated. Based on random to avoid running over large dataset each time a diagram is generated. 2011-06-27 Ingo Weinzierl <ingo@intevation.de> flys/issue177 (WINFO: Abflusskurven am Pegel verursachen ein Hängen des Servers) * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: Commented out code to generate time ranges for series names. There seems to be a problem while loading the discharge tables of a gauge or while determining the start and/or end time of such discharge tables. 2011-06-26 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/**/*.java: Removed trailing whitespace. 2011-06-26 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Removed dead code. 2011-06-26 Sascha L. Teichmann <sascha.teichmann@intevation.de> Fix for flys/issue173 * src/main/java/de/intevation/flys/artifacts/model/Calculation4.java: Fixed the way the gauge was found for a given interval. The old way does not work because it was just tested if the station point was inside the segments which is not necessarily true. The obvious solution to simply check the overlapping intervals does not work either because the gauge ranges touch each other and so more than one gauge are returned in these cases. The River.maxOverlap() is now used to find the gauge with the max overlapping range. 2011-06-26 Sascha L. Teichmann <sascha.teichmann@intevation.de> Fix for flys/issue147 * src/main/java/de/intevation/flys/artifacts/model/Calculation1.java: Removed the 'kmUp' flag. It was an left over from former WSP calculations (w/o ref km) leading to wrong results now. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Don't pass the kmUp flag to the calculation. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added debug output to see the value of 'wq_free'. 2011-06-26 Sascha L. Teichmann <sascha.teichmann@intevation.de> Fix for flys/issue86 * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The reference gauge for calculations "am Pegel" was determined wrong. 2011-06-25 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Conversion w->q was broken. This should fix a number of issues around "W am Pegel" calculations. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Issue an error report if a w->q conversion fails. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: The gauge to convert w->q with its discharge table was determined wrong. 2011-06-24 Ingo Weinzierl <ingo@intevation.de> flys/issue174 (Diagramm: Q-Linie wird bei initialem Laden des Diagramms anders dargestellt als bei Ansicht auf gesamten Wertebereich) * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: The chart will now have upper margins again. 2011-06-24 Ingo Weinzierl <ingo@intevation.de> flys/issue172 (Diagramm: Ursprung der Diagramme bei Dauerzahlen) * src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java: Charts of this type will have the lower X value set to "0". 2011-06-23 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/exports/ATWriter.java: Results are now in cm. Made it more robust against corner cases. * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Removed superfluous import. 2011-06-23 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/artifacts/winfo.xml, doc/conf/conf.xml: Added facet config for AT exports. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added 'at' facet type. * src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java: Generate AT facets. 2011-06-23 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/exports/ATExporter.java: New. Exporter for AT facets. Needs testing. 2011-06-23 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/exports/ATWriter.java: New. Writer for AT files. New code because our data model differs from Desktop-FLYS. Needs testing. 2011-06-23 Ingo Weinzierl <ingo@intevation.de> flys/issue157 (Diagramm: Ursprung berechnete Abflusskurve) * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Moved the method that adjusts the X-axis to include the "0" value from ComputedDischargeCurveGenerator to DischargeCurveGenerator. Now, both charts will include the "0" on the X-axis. 2011-06-23 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WQDay.java: Based on WQ now to make it exportable as AT. 2011-06-23 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WQ.java: New. Base class for WQKms. TODO 1: make it a base class for WQDay, too, TODO 2: Generate instances of WQ instead of WQKms in "Abflusskurven" calculations. This will save memory. AT exporter will get instances of this class as data model * src/main/java/de/intevation/flys/artifacts/model/NamedObject.java: Add default constructor to ease inheritance. * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Based on WQ now. Removed code allready defined in base class. 2011-06-23 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/artifacts/winfo.xml: Add TODOs for error reports of "Abflusskurven am Pegel". Maybe we don't need them? * doc/conf/conf.xml: Configure report for each calculated output type. 2011-06-22 Ingo Weinzierl <ingo@intevation.de> flys/issue164 (Berechnung 4: Umgekehrtes Berechnungsintervall führt zur) * src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java: Create the items with range information for W and Q which allows the client to validate the user inserted values. 2011-06-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Arguments in filling datastructure were flip. Now the "Abflusskurve am Pegel" looks correct again. * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: Removed superfluous imports. 2011-06-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> Improved situtation on rendering "Abflusskurve am Pegel". Not fully working, yet. * doc/conf/artifacts/winfo.xml: Generate facets for the location path, too. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Misspelled the facet which prevented the facets from being to the outputs. * src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java: Extended to store the hash and the state id of the producing artifact/state else it results in NPEs because the data is calculated on later (wrong) states. * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java: Store the state id and the hash in the facet, too. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Add two method to do calculations for a state the artifact is currently not in and fetching the current state id. 2011-06-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/artifacts/winfo.xml: Generate facets for "Abflusskurven am Pegel" Not working by now. :-/ * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: New facet type for "Abflusskurven am Pegel" * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Do calculation in the artifact not in the output generator. * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java: Generate the new facets. * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: Fetch data from facet. 2011-06-22 Ingo Weinzierl <ingo@intevation.de> flys/issue161 (Diagramm: Q-Achse in W-Längsschnitten immer bei Q=0) * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: The Q axis (which is the second y axis) initially contains the 0 value. After a zoom action has taken place, this behaviour is no longer supported. 2011-06-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> Draw correction curve again. * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java: Use correction curve to map plot to axes. Not doing so prevented the correction curve from being drawn! Smaller code cleanups and simplifications. * src/main/java/de/intevation/flys/artifacts/model/WQKms.java, src/main/java/de/intevation/flys/artifacts/model/WQCKms.java: Added methods to directly access the components w, q and c at a given index. * src/main/java/de/intevation/flys/exports/ChartGenerator.java: Attribute access via DOM instead of XPath. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Code simplification. 2011-06-21 Ingo Weinzierl <ingo@intevation.de> flys/issue157 (Diagramm: Ursprung berechnete Abflusskurve) * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Splitted up zooming for x and y axes to be able to override specific axis zoom behaviour. * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: The lower bound of the x axis (which is the Q axis in such chart) is always 0. 2011-06-21 Ingo Weinzierl <ingo@intevation.de> flys/issue90 (Diagramm: Trennung derDiagrammfläche und Achsenaufheben) * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Added a margin between chart data and chart axes. 2011-06-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> Fix for flys/issue158 * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java: Checks for right class now. 2011-06-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> Fix for flys/issue154 * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java: Checks for right class now. 2011-06-21 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Only generate 'outs' if they have facets. * src/main/java/de/intevation/flys/exports/ChartExportHelper.java: 'boolean ? true : false' <=> 'boolean' 2011-06-21 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Added the time-to-live to the DESCRIBE document. 2011-06-20 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/artifacts/winfo.xml: Configured states to generate report facets. 2011-06-20 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/ReportFacet.java: Return the report. * src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java, src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java, src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java, src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: Generate report facets if there are problems with the calculations. TODO: Adjust winfo.xml to configure the facets. 2011-06-20 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/exports/ReportGenerator.java: New. Generator for calculation reports. * doc/conf/conf.xml: Added ReportGenerator. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: Added type 'report'. * src/main/java/de/intevation/flys/artifacts/model/ReportFacet.java: Specialized facet for serving reports. TODO: Added them to the calculation states. * src/main/java/de/intevation/flys/artifacts/model/Calculation.java: Looped through CallMeta for i18n purposes. TODO: do i18n * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Removed superfluous import. * src/main/java/de/intevation/flys/exports/AbstractExporter.java: Added some override annotations. 2011-06-20 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/CalculationResult.java: New. Used to transport the data and the error report. * src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java, src/main/java/de/intevation/flys/artifacts/model/Calculation1.java, src/main/java/de/intevation/flys/artifacts/model/Calculation2.java, src/main/java/de/intevation/flys/artifacts/model/Calculation3.java, src/main/java/de/intevation/flys/artifacts/model/Calculation4.java, src/main/java/de/intevation/flys/artifacts/model/DurationCurveFacet.java, src/main/java/de/intevation/flys/artifacts/model/Calculation.java, src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java, src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java, src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java, src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java, src/main/java/de/intevation/flys/exports/WaterlevelExporter.java, src/main/java/de/intevation/flys/exports/DurationCurveExporter.java: Use the CalculationResult now. 2011-06-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/Calculation1.java: Allow an explicit reference km to enable calculation "am Pegel". * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: If a calculation "am Pegel" is done, take start km of the calculation range and find the gauge in which range it is located. Take the station of the gauge as the reference km. If no gauge is found the calcualtion falls back to calculation "auf freier Strecke". * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Replaced another inefficient attribute extraction via XPath with direct DOM access. 2011-06-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java, src/main/java/de/intevation/flys/exports/WaterlevelExporter.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Removed dead code. 2011-06-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DataFacet.java src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java, src/main/java/de/intevation/flys/artifacts/model/DurationCurveFacet.java, src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java, src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java, src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java, src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java, src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Only generate facets when needed. * src/main/java/de/intevation/flys/collections/OutputParser.java: Removed more XPath for simply accessing attributes of an element. * doc/conf/cache.xml: 200 elements in memory for "computed.values" are enough, LRU as eviction strategy is sufficent. * src/main/java/de/intevation/flys/collections/AttributeWriter.java, src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Use more 'standard' Java naming conventions. 2011-06-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> Merged in the facet-slt branch to bring in the 'facet' feature. * doc/conf/artifacts/winfo.xml: Fixed some facets. * doc/conf/cache.xml: Added a "computed.values" cache to store the results of the WINFO calculations. * src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java: Add support for index per facet to make them unique and identifiable. * src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java: New. Inteface to be used to access the facet names of the configuration. * src/main/java/de/intevation/flys/artifacts/model/DataFacet.java: New. A facet to be used to have raw access to the computed data of an artifact. Useful to export things like CSV and WST. * src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java: New. Specialized facet to access the water level data stored in WQKms arrays. * src/main/java/de/intevation/flys/artifacts/model/DurationCurveFacet.java: New. Specialized facet to access the duration data stored in WQDay data structures. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Facets are now generated dynamically from the current available ones stored with the artifact. * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Added methods computeAdvance() and computeFeed() called if artifact is fed or adance. This overwritten in subclasses to do the state depending calculations. * src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java, src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java, src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java, src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java: These states overwrites the computeAdvance() and computeFeed() methods to do the corresponding WINFO calculations. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Calls computeAdvance() and computeFeed() if artifact is fed or advanced. Centralized the caching mechanism. * src/main/java/de/intevation/flys/exports/AbstractExporter.java, src/main/java/de/intevation/flys/collections/AttributeParser.java, src/main/java/de/intevation/flys/collections/OutputParser.java, src/main/java/de/intevation/flys/collections/AttributeWriter.java, src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Adjusted the code to cope with the indices of the facets. Used DOM to access the attributes instead of XPath. Removed smaller bugs concerning position generation. * src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java, src/main/java/de/intevation/flys/exports/ChartGenerator.java, src/main/java/de/intevation/flys/exports/OutGenerator.java: Forwarded facet references. * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/DurationCurveExporter.java, src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: Uses facets to fetch data and generate output now. 2011-06-17 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Added a new parameter "wq_free" that determines the mode of calculation 1. If it is "false" (default), the calculation should be bound to a gauge. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a method to retrieve the information about the "wq_free" parameter. 2011-06-17 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Added a facet for corrected W in computation 4. 2011-06-14 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java: Got rid of namespace in result document. 2011-06-14 Ingo Weinzierl <ingo@intevation.de> flys/issue77 (Diagramm: Beschriftung der Kurven bei Dauerlinien) * src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java: Give the curves in the chart names. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added titles for duration chart curves. 2011-06-14 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java: Write top 'Oberkante' and bottom 'Unterkante' to out going XML if they exist. 2011-06-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java: Write the min/max W/Q ranges as art:range elements into the DESCRIBE. 2011-06-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/LocationSelect.java: This state that is used to retrieve locations will now write the kilometer range of the selected river into the DESCRIBE document. 2011-06-10 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/Calculation1.java: New. Factored out version of "Wasserspiegellage" calculation. * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Removed some dead code. * src/main/java/de/intevation/flys/artifacts/model/WQCKms.java: Added Override annotation and used quick access method. * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Looped through error reporting use by interpolate. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Used factored out version of calculation 1. Removed dead code. 2011-06-10 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/Calculation2.java: New. Factored out version of "Abflusskurve". * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Loop errors through w/q at km interpolation. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Use factored out version of calculation 2. 2011-06-10 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/Calculation3.java: New. Factored out version of "Dauerzahlen". * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Loop errors through for q->w interpolations. * src/main/java/de/intevation/flys/artifacts/model/WQDay.java: Added constructor to directly create with calculated results. * src/main/java/de/intevation/flys/artifacts/model/Calculation.java: Added method to return the number of problems. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Use factored out version of calculation 3. 2011-06-10 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WQKms.java, src/main/java/de/intevation/flys/artifacts/model/WQCKms.java, src/main/java/de/intevation/flys/artifacts/model/WQDay.java: Added methods to remove NaN values. 2011-06-10 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/Calculation.java: New. Base class for calculations. Used to collect problems occuring during calculation. * src/main/java/de/intevation/flys/artifacts/model/Calculation4.java: Extends Calculation now. Looped through the problem reports to base class. * src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java: Looped through the problem reports. 2011-06-09 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java: Append the min/max range and a transformation matrix for each axis. * src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java: Instantiate the InfoGeneratorHelper with a XYChartGenerator instance. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Changed the zoom operation. The zoom values defined in the chart request document are no longer absolute values for a specific axis. Those values represent percental values for the start and end point of x and y axes. E.g. a chart has three axes with the following ranges: - x axis : 0 - 10 - y axis 1: 20 - 40 - y axis 2: 40 - 90 - zoom values for x: 0.1 - 0.9 (10% - 90%) - zoom values for y: 0.2 - 0.8 (20% - 80%) The produced chart will have the following ranges: - x axis : 1 - 9 - y axis 1: 24 - 36 y axis 2: 50 - 80 2011-06-09 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java: Map datasets to axes correctly. 2011-06-08 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/Calculation4.java: Determine the gauges by their station positions. This hopfully fixes the problem with wrong assigned gauges and invalid segments. 2011-06-08 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/Segment.java, src/main/java/de/intevation/flys/artifacts/model/Calculation4.java: Added more debug output. 2011-06-08 Ingo Weinzierl <ingo@intevation.de> flys/issue103 PART 1 (WINFO: Wasserspiegellagenberechnung / Layout-Inkonsistenz) * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Selected values are formatted with the current locale. The static part of the DESCRIBE document will now contain i18n formatted numbers. 2011-06-08 Ingo Weinzierl <ingo@intevation.de> flys/issue93 (WINFO: Benennung der Berechnungsart korrigieren) * src/main/resources/messages_de_DE.properties, src/main/resources/messages_de.properties: Changed the name of calculation 4. 2011-06-08 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Made the range determination more robust against NaN values. 2011-06-08 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: The second y axis is set to position "1". It was set to "2" before, but in that case, there was no position "1". 2011-06-08 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java, src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java, src/main/java/de/intevation/flys/exports/DurationCurveExporter.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java, src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java: s@m³/s@m\\u00b3/s@ 2011-06-08 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java: Only generate an axis element if a axis really exists. 2011-06-07 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java: Simpified array swapping. 2011-06-07 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Use java.util.List instead of java.util.Vector * src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java, src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java, src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java, src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Removed superfluous imports. 2011-06-07 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: createItem() is not abstract any longer to avoid code repetitionin sub classes. * src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java, src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java, src/main/java/de/intevation/flys/artifacts/states/WQSelect.java, src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java, src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java, src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java, src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: Removed duplicated code, inserted default constructors and Override annotations. 2011-06-07 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java: Append axes range information to the info document. 2011-06-07 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: If feed() fails do not store invalid values in database. 2011-06-06 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java: Removed asymmetrical "- 1" from width calculation. 2011-06-05 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/Calculation4.java: Fixed problem when more than one value per segment are given. 2011-06-05 Sascha L. Teichmann <sascha.teichmann@intevation.de> Refactored version of "Berechnung 4" * src/main/java/de/intevation/flys/artifacts/model/Segment.java: Added instance fields for a reference point (= location of gauge) and backup of values (needed for naming). * src/main/java/de/intevation/flys/artifacts/model/WQCKms.java: Added a constructor to be created from a WQKms. This is helpful if a WQKms is replaced by a back jump correction. * src/main/java/de/intevation/flys/artifacts/model/Calculation4.java: New. Outfactored version of "W bei ungleichmaessigen Abflusslaengsschnitt". Much cleaner now and it should have a better handling of the corner cases. * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Removed the linear interpolation stuff. It is now in Linear. Removed the LinearRemap interpolation method because it is not needed any longer. Added a method to interpolate a given km with a given function. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Removed the old calc 4 and used the new one. * src/main/java/de/intevation/flys/artifacts/math/LinearRemap.java: Deleted. Not needed any longer. * src/main/java/de/intevation/flys/artifacts/math/Function.java: New. Interface for a uni-variate real function. * src/main/java/de/intevation/flys/artifacts/math/Identity.java: New. Implements Function with f(x) = x * src/main/java/de/intevation/flys/artifacts/math/Linear.java: New. Implements Function with f(x) = m*x + b * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Factored some stuff out to DoubleUtil. Removed some dead code. Does some rounding correct. * src/main/java/de/intevation/flys/utils/DoubleUtil.java: New. Centralized utils surrounding common double operations. * src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java: Removed superfluous imports. 2011-06-03 Ingo Weinzierl <ingo@intevation.de> flys/issue90(Diagramm: Trennung der Diagrammfläche und Achsen aufheben) * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Determine the ranges of x and y axes. If no zoom ranges are given, we will determine the min and max xy values in the dataset manually, because JFreeCharts adds a margin to the left and right of the data area automatically.. 2011-06-03 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Moved the chart creation into an own public method. This lets the ChartInfoGenerator create charts without duplicating code. * src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java: Limited the possible class for generators to XYChartGenerator. This enables the ChartInfoGenerator class to do the whole chart creation stuff itself without outsourcing the code to concrete subclasses. * src/main/java/de/intevation/flys/exports/LongitudinalSectionInfoGenerator.java, src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionInfoGenerator.java, src/main/java/de/intevation/flys/exports/DurationCurveInfoGenerator.java, src/main/java/de/intevation/flys/exports/DischargeCurveInfoGenerator.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveInfoGenerator.java: Removed the code to generate charts - this is done in ChartInfoGenerator now. 2011-06-03 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/ChartGenerator.java: Added new methods to extract the x and y ranges from request document. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Added a method that zooms the chart to the specified x and y ranges. 2011-06-02 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/conf.xml: Set collection ttl to 6 hours. 2011-06-01 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/Segment.java: New. Parse segments only once. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Expose new parser to artifacts. TODO: Use it. 2011-06-01 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Changed interpolation methods to interpolate to an arbitrary position in a given double result array as a preparation for segment independent calculation. * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Removed superfluous import. * src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java: Fixed cause for crashing: Run back too far in some siutations. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Refactored range code a bit. Needs more work. 2011-06-01 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java: Interchange the lower and upper x value of the chart if the x-axis is inverted before the matrix values are computed. Now, the matrix is able to work with charts that have an inverted x-axis. 2011-06-01 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/ChartInfoGenerator.java: New. A chart info generator generates a document that contains meta information for a specific chart. Concrete instances of this abstract class need to instantiate concrete ChartGenerators and dispatch nearly all methods of an OutGenerator (init(), doOut(), setMaster()) to this instance. The generate() method is implemented in the ChartInfoGenerator itself. It creates a chart with help of the ChartGenerator instance and builds a document that contains meta information of this chart. * src/main/java/de/intevation/flys/exports/InfoGeneratorHelper.java: New. This helper is used to create the chart info document. At the moment, the only information that is included in this document is a transformation matrix to transform image coordinates into chart coordinates. NOTE: The transformation matrix creation needs some work to support charts with inverted X axis. * src/main/java/de/intevation/flys/exports/LongitudinalSectionInfoGenerator.java, src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionInfoGenerator.java, src/main/java/de/intevation/flys/exports/DurationCurveInfoGenerator.java, src/main/java/de/intevation/flys/exports/DischargeCurveInfoGenerator.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveInfoGenerator.java: Concrete instances of ChartInfoGenerator that create the chart info for the currently supported chart types. * doc/conf/conf.xml: Registered new OutGenerators. 2011-05-31 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Added support for the 'type' paramter of the collection's out() operation. 2011-05-31 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Use an explicit reference km for interpolation now. 2011-05-30 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/cache.xml: Introduced cache to store the distance info per river. This boosts performance in following ab setup from 3.61 to 39.91 requests/secs. $ ab -c 20 -n 1000 -p distances.xml http://127.0.0.1:8181/service/distanceinfo $ cat distances.xml <?xml version="1.0" encoding="UTF-8"?> <art:river xmlns:art="http://www.intevation.de/2009/artifacts">Elbe</art:river> * src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java: Added an iterator result to avoid construction expensive interim lists. * src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java: Use the cache if configured. 2011-05-30 Sascha L. Teichmann <sascha.teichmann@intevation.de> flys/issue82 * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Only successful interpolations are named. 2011-05-27 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java: Make it work independent of river flow direction. * src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java: Fixed bug in ordering segments * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Re-enabled calculation of the back jump correction. Fixed more flow direction issues. 2011-05-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Removed call of XMLDebug class which is not in the version control. 2011-05-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Moved the code part that skips themes right after the part that sets the master artifact for the OutGenerator. We need this master artifact to display empty charts - master artifact is used to create titles and axes. 2011-05-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Deactivated themes are not put into the chart. 2011-05-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/AttributeParser.java: Repaired broken XPath expressions to find the output modes in an attribute document of a collection. * src/main/java/de/intevation/flys/collections/AttributeWriter.java: This writer will now create a document that has a root node art:attribute. Before these changes, the document's root node was art:outputs which is part of the attribute document but not the right root node. * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Adapted some XPath expressions and corrected the the process to create attribute documents. 2011-05-26 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/math/LinearRemap.java: Made it work independent of from/to order. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added method to extract the ranges correctly from data. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Use the correct ranges. Comment out backjump detection temporarily. 2011-05-26 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java: Generate fields for w/q input depend on flow direction. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Moved km up question out of loop. 2011-05-26 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Take the flow direction into account. * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Prevent NPE. * src/main/java/de/intevation/flys/artifacts/states/RangeState.java: Allow to be 'from' greater than 'to' in ranges. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Negate step if 'from' is greater than 'to'. 2011-05-26 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Round exploded values to a precision of 1e-6. 2011-05-25 Sascha L. Teichmann <sascha.teichmann@intevation.de> Qs are now stored in ranges for each column. * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory2.java: Deleted. * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java: Was WstValueTableFactory2. * src/main/java/de/intevation/flys/artifacts/model/QRangeTree.java: Fixed node linking bug. Removed dead code. * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Q values are now stored in range trees by each column. The qs of the rows are removed and the calculations are adjusted. Removed dead code. 2011-05-24 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java: Moved cache name to WstValueTableCacheKey. Do not cache null references. * src/main/java/de/intevation/flys/artifacts/model/WstValueTableCacheKey.java: Moved cache name into this class. * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Store QRangeTree for each column of value table. TODO: Use them! * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory2.java: Intended as a replacement for WstValueTableFactory, but is work in progress. * src/main/java/de/intevation/flys/artifacts/model/QRangeTree.java: Fixed index errors and added methods to dump as graphviz graph. 2011-05-24 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: Improved the validation of WQ values. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Use the correct input data object to determine the selected WQ mode (range or single input). 2011-05-24 Ingo Weinzierl <ingo@intevation.de> ISSUE-40 (part I/II) * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Write default values (values already selected by the user before) of the input data items into DESCRIBE. 2011-05-24 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java: Removed needless imports. 2011-05-24 Ingo Weinzierl <ingo@intevation.de> ISSUE-85 (part III/III) * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java: Added a static function that returns the kilometer values (double[]) from locations input (whitespace separated double values). * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Adapted the getKms() method. It will now return a computed array of kilometers if we had inserted a range, or it will return the inserted kilometers if we had inserted locations. 2011-05-24 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java: Moved cache key to separate class. * src/main/java/de/intevation/flys/artifacts/model/WstValueTableCacheKey.java: New. The new cache key class. 2011-05-24 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/QRangeTree.java: Model to store the q values of a WST column efficiently. First building block not to store the q values directly aside the w values. 2011-05-24 Ingo Weinzierl <ingo@intevation.de> ISSUE-85 (part I/III) * doc/conf/artifacts/winfo.xml: Added two further field 'ld_mode' and 'ld_locations' to the range/locations state to track the selected mode and locations. * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java: Added methods to validate the user inserted locations. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a method to determine of a range or locations have been inserted. 2011-05-23 Ingo Weinzierl <ingo@intevation.de> ISSUE-62 (part II/II) * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Dump the artifacts state/data in DEBUG mode in describe(). * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, src/main/java/de/intevation/flys/artifacts/states/DefaultState.java, src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java, src/main/java/de/intevation/flys/artifacts/states/WQSelect.java, src/main/java/de/intevation/flys/artifacts/states/LocationSelect.java, src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java, src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: States will no longer store data. The only reason for states storing StateData is to know about the necessary data for this state. If a State needs to access the user input for a specific StateData object, it needs to query the FLYSArtifact which stores the data. 2011-05-23 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a method to dump the artifacts state(s)/data. 2011-05-23 Sascha L. Teichmann <sascha.teichmann@intevation.de> flys/issue84 * src/main/java/de/intevation/flys/artifacts/model/WstFactory.java: Forget to select wst kind. 2011-05-20 Sascha L. Teichmann <sascha.teichmann@intevation.de> flys/issue81 * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: weights for kms were swapped. 2011-05-20 Ingo Weinzierl <ingo@intevation.de> Tagged RELEASE 2.3.1 2011-05-20 Ingo Weinzierl <ingo@intevation.de> * Changes: Prepared changes for the upcoming release. 2011-05-20 Hans Plum <hans@intevation.de> * NEWS: Hint to Release 2.3.1. For further information look into module flys-client/NEWS 2011-05-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java (getExplodedValues): Increment kms array size by one to take the end of range, too. 2011-05-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java: Sort by rows (should not be necessary). * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Use unsharp km lookup (epsilon = 0.0001). This fixes the problem that some kms were not found. 2011-05-19 Ingo Weinzierl <ingo@intevation.de> flys/issue66 * src/main/resources/messages_en.properties: Fixed broken template. 2011-05-19 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Set the name of the computed discharge curve objects. * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: The curves of this chart will now have names that consist of the word 'Discharge Curve', the river name and the kilometer that has been used for the computation. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added i18n strings for the computed discharge curves. 2011-05-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added convenience method isQ() to determine if we are doing Q calculations. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Reintroduced titles for the "W for unausgeglichene Abfluesse". 2011-05-19 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: The curves will now have names that consist of the gauge name and its valid time range. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added i18n strings for the discharge curves. 2011-05-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Removed dead code. 2011-05-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Use the correct method to generate kms. * src/main/java/de/intevation/flys/artifacts/math/LinearRemap.java: Added some logging to test the map in debug mode. 2011-05-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Made getExplodedValues static. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Use new logic to calculate "W für ungleichwertige Abfluesse". Not working, yet. * ChangeLog: Fixed former entry. 2011-05-18 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Registered the WST export for discharge longitudinal sections. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Set the names of the discharge longitudinal section computation results. * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java: The W/Q curves in the chart will now have names. * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: The WstWriter is filled with column names in an own method. So, we are able to override this process in subclasses. * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java: Adapted the column names for the WST export. 2011-05-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> Work on flys/issue69 * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Use new logic to calculate "Wasserstand/Wasserspiegellage". Compared to desktop FLYS are the results are structurally right but a bit off in the positions after the decimal points. Maybe a result of the interpolation? Need to debug this. 2011-05-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: W and Q curves will now have names based on the defined W or Q values for the waterlevel computation. 2011-05-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/NamedObject.java: New. This object is used to give objects a name. * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Inherit from NamedObject now. Because we need to display names for those objects in different places. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The WQKms objects returned by a waterlevel computation will now have names. * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: Insert the column names for the WSTs into the WstWriter. * src/main/java/de/intevation/flys/exports/WstWriter.java: The column names are written into the head of the WSTs now. 2011-05-17 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstLine.java: New. This class is used to store the W/Q values of a specific kilometer of a WST. * src/main/java/de/intevation/flys/exports/WstWriter.java: New. A writer that creates WSTs. TODO: The header of the WSTs is not finished. The Q descriptions are missing. * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: Enabled WST exports. * doc/conf/artifacts/winfo.xml: Registered the WST export for waterlevels. 2011-05-17 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/utils/Formatter.java: New. This class supports functions to retrieve formatters for specific types of data used in FLYS. * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java, src/main/java/de/intevation/flys/exports/DurationCurveExporter.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java, src/main/java/de/intevation/flys/exports/AbstractExporter.java: Removed the formatter declaration - the whole formatter stuff is done in Formatter now. 2011-05-17 Ingo Weinzierl <ingo@intevation.de> ISSUE-72 * src/main/java/de/intevation/flys/artifacts/services/MainValuesService.java: Repaired broken XPath expressions to extract start and end kilometer. 2011-05-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Removed the Hibernate loading stuff. * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java: New. The Hibernate loading. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Use the WstValueTableFactory for loading now. 2011-05-17 Ingo Weinzierl <ingo@intevation.de> Tagged RELEASE 0.1 aka Version 2.3.0 2011-05-16 Hans Plum <hans@intevation.de> * NEWS: New. Giving some user specific perspective to new functionality and changes. This file references releases dates only; details can be find in the client module at flys-client. 2011-05-10 Sascha L. Teichmann <sascha.teichmann@intevation.de> First step to calculate "W fuer ungleichwertige Abfluesse" correctly. flys/issue55 * src/main/java/de/intevation/flys/artifacts/math/LinearRemap.java: New. Remaps "gleichwertige" Q values to the corresponding "ungleichwertige" Q values depending on km. * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Remap the Q values "ungleichwertig" depending on the "gleichwertige" ones. 2011-05-10 Sascha L. Teichmann <sascha.teichmann@intevation.de> First step to fix flys/issue69 * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: New code path to implement the calculation of "Wasserstand/Wasspiegellage" correctly. TODO 1: Use new path in UI. TODO 2: Remove unused old code. 2011-05-13 Ingo Weinzierl <ingo@intevation.de> * Changes: Prepared Changes for the upcoming release 2.3 - see Changes file to get to know about the changes of the version numbers. 2011-05-13 Ingo Weinzierl <ingo@intevation.de> ISSUE-37 * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: This state would be happy if there is a UI provider called "river_panel". 2011-05-11 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/ChartGenerator.java: Added new methods that return the requested chart size as integer array [width, height]. The requested size is read from the incomding request document. * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: The size of a chart is no longer static. The requested size is fetched using ChartGenerator.getSize(). 2011-05-11 Ingo Weinzierl <ingo@intevation.de> ISSUE-52 * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: The X-Axis of such a chart is inverted, if the head of the river is not at kilometer 0. This type of charts always have the head of the river at the left side. 2011-05-10 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: Make incoming XML symmetric to DistanceInfoService. 2011-05-10 Ingo Weinzierl <ingo@intevation.de> ISSUE-47 * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Adjusted temporarily the color of the W, Q and corrected W curves to distinguish each other. 2011-05-10 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Adjusted the plot of xy charts - the gridlines are displayed now. 2011-05-10 Ingo Weinzierl <ingo@intevation.de> ISSUE-53 * src/main/java/de/intevation/flys/artifacts/resources/Resources.java: Added a method that returns the preferred locale based on the available locales of the server and the desired locales of the request (CallMeta). * src/main/java/de/intevation/flys/exports/AbstractExporter.java: Added a method that creates a number formatter with minimum and maximum digits. * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java, src/main/java/de/intevation/flys/exports/WaterlevelExporter.java, src/main/java/de/intevation/flys/exports/DurationCurveExporter.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java: Formatted the number values of the CSV exports. 2011-05-10 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/RangeWithValues.java: New. A data structure that enables us to save a data triple: a range that consist of lower and upper double value and a set of values that belong to this range. * src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java: Implemented the validation of W/Q values. 2011-05-10 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/AbstractExporter.java: New method to retrieve i18n messages based on keys. * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java, src/main/java/de/intevation/flys/exports/WaterlevelExporter.java, src/main/java/de/intevation/flys/exports/DurationCurveExporter.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java: Added headers for CSV exports. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added new i18n strings for CSV headers. 2011-05-10 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: Fetches river name from incoming XML document. If no river is given all infos about all rivers are listed. * src/main/resources/metadata/template.xml: Templates honors the 'river' parameter. * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: Extended to pass parameters to the templating. Added support for type conversion. * src/main/java/de/intevation/flys/artifacts/services/meta/StackFrames.java: Take parameters as an initial stack frame. * src/main/java/de/intevation/flys/artifacts/services/meta/TypeConverter.java: New. Converts types off stacked variables. 2011-05-10 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Added a method to add subtitles to charts. The implementation in this class does not add any subtitle. Concrete subclasses may override this method to add some. * src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Add subtitles to charts. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added i18n templates for compound messages (chart subtitles). 2011-05-10 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/resources/Resources.java: Added new methods to retrieve translated compound messages. 2011-05-10 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/OutGenerator.java: Added a method to set the master artifact that should be used for some special operations. * src/main/java/de/intevation/flys/exports/ChartGenerator.java, src/main/java/de/intevation/flys/exports/AbstractExporter.java: Implement the setMasterArtifact() method of the interface. * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Call OutGenerator.setMasterArtifact(). NOTE: The determination of the master artifact needs to be implemented! 2011-05-10 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Removed hard coded dev code that defined a WQ mode. 2011-05-09 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: Stripped ugly extra whitespace from output introduced by templating. 2011-05-09 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/resources/metadata/template.xml: Added forgotten columns of fixation WSTs. 2011-05-09 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/ChartGenerator.java: Added a method to retrieve i18n strings. * src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java, src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Enabled i18n support for chart title and axes labels. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added i18n strings for the chart types above. 2011-05-09 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java: New. This OutGenerator exports the data of a discharge longitudinal section computation. * doc/conf/conf.xml: Added the DischargeLongitudinalSectionExporter. * doc/conf/artifacts/winfo.xml: Added the exporter with CSV facet to the discharge_longitudinal_section state. 2011-05-07 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java: Added code to make back jump correction work with both potential flow directions. 2011-05-06 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/resources/metadata/template.xml: Added data cage configuration for 'Längsschnitt'. 2011-05-06 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Added the missing Q facet for discharge longitudinal sections. * src/main/java/de/intevation/flys/artifacts/model/WQCKms.java: New. A derived dataset to store W/Q values with corrected Ws for a kilometer range. * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Some new methods and a new constructor to initialize this data object with a predefined set of values. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: New methods to retrieve the W/Q values for the 'discharge longitudinal section' computation. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: New methods to retrieve and compute data used for the 'discharge longitudinal section' computation. 2011-05-05 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java: Bugfix: just write the ranges of gauges into the DESCRIBE if the 'wq_values' data item is required. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added i18n messages used in the DESCRIBE of the WQAdapted state. 2011-05-05 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Changed the title of the y-axis (now 'W [NN+m]'). 2011-05-05 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Improved the transition model to reach the output state for creating 'discharge longitudinal section' charts. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added a method that returns all gauges of the selected river based on a the given kilometer range. * src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java: New. This state creates a set of elements for the DESCRIBE that consist of a tuple of kilometer values. The number of elements depend on the number of gauges intersected by the given kilometer range. * src/main/java/de/intevation/flys/artifacts/states/DischargeLongitudinalSection.java: New. This state is the output state that is reached after the 'discharge longitudinal section' computation has been chosen. 2011-05-05 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Default step width between two kilometers added - if no step width is given, this default width is used. 2011-05-05 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Fixed a potential NullPointerException if there is just a single kilometer given to create a longitudinal section. 2011-05-04 Sascha L. Teichmann <sascha.teichmann@intevation.de> * pom.xml: Added http://repository.jboss.org/maven2 repo to fix flys/issue30 2011-05-04 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: To make diagram generation possible ws are now generated from qs because they are many ws having different qs. 2011-05-04 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java: Fetch the WQ data from WINFO artifact and write those values into the CSV export. 2011-05-04 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Added methods to compute and retrieve the data for discharge curves (computed). * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: Fetch the computed discharge curve data from WINFOArtifact and add the values into the JFreeChart dataset. 2011-05-04 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Added new transitions and states to enable the WINFO artifact for computing discharge curves. * doc/conf/conf.xml: Added OutGenerators that generate computed discharge curves and exports for its data. * src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java: New. This state is reached if the user chose the computed discharge curve. * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java: New. This is only a stub implementation at the moment. This OutGenerator should create computed discharge curves later. It extends the DischargeCurveGenerator which should do the same stuff for discharge curves for gauges. * src/main/java/de/intevation/flys/exports/ComputedDischargeCurveExporter.java: New. This is only a stub implementation at the moment. This OutGenerator should create the exports of the discharge curve computation. 2011-05-03 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Added a new output mode for the duration curve state (CSV export). * doc/conf/conf.xml: Added a new OutGenerator to export duration curve computations. * src/main/java/de/intevation/flys/exports/AbstractExporter.java: New. This abstract OutGenerator represents the base class for exporting computed data. Currently, the CSV export is supported. * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: Moved the most code to export to CSV into the AbstractExporter. * src/main/java/de/intevation/flys/exports/DurationCurveExporter.java: New. This exporter exports the computed data of a duration computation. 2011-05-03 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Modified a wrong debug statement which would confuse the user. 2011-05-03 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Added a new output mode for the waterlevel state (CSV export). * doc/conf/conf.xml: Added a new OutGenerator to export waterlevels. * src/main/java/de/intevation/flys/exports/WaterlevelExporter.java: New. This OutGenerator exports the data of a waterlevel computation. Note: It is necessary to specify the desired facet (e.g. 'waterlevel_export.csv'). * pom.xml: Added a dependency to OpenCSV. 2011-05-03 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Introduced an "export" output target. If the target is "export", a facet (read from the incoming xml document) is a necessary parameter that determines which facets are written to the output. 2011-05-03 Ingo Weinzierl <ingo@intevation.de> * src/main/resources/messages_en.properties: Bugfix: replaced german string (copy & paste mistake). 2011-05-03 Ingo Weinzierl <ingo@intevation.de> * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added new i18n strings for for the location selection. 2011-05-03 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java: New. An OutGenerator for creating duration curves. * src/main/java/de/intevation/flys/artifacts/model/WQDay.java: New. A model class to store necessary data for creating W and Q facets of a duration curve. This model stores W, Q and Days. * src/main/java/de/intevation/flys/artifacts/model/MainValuesFactory.java: Added a function to retrieve tuples of (day, q) based on a given gauge - these tuples are necessary for creating duration curves. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Added methods to compute and retrieve the data necessary for creating duration curves. * src/main/java/de/intevation/flys/artifacts/states/LocationSelect.java: Bugfix: improved the access to the location array (avoid NullPointerException). * doc/conf/conf.xml: Registered the new OutGenerator for duration curves. 2011-05-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * contrib/visualize-transitions.xsl: State quoting was done wrong. 2011-05-02 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Enhanced the transition model to reach the final state for creating duration curves. * src/main/java/de/intevation/flys/artifacts/states/LocationSelect.java: New. This state should be reached to just insert an array of locations. * src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.java: New. This state is reached if the duration curve calculation is selected. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Adjusted getDistance() so that it takes care on inserted locations - not just inserted ranges. 2011-05-02 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/cache/CacheFactory.java: Flush/persist caches at program exists. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Commented out too eloquent debug output. 2011-05-02 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: Uses the methods of FLYSArtifact to retrieve the necessary information rivername and selected distance. 2011-05-02 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Added interpolateW method to take reference to result ws array as an argument to avoid expensive array allocations in km iterating loops. * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Added a constructor to create backing trove datastructure with the right capacity. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Move allocation of result ws out of km loop. 2011-05-02 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Added two further data items in the WQ selection state. Those items are necessary to store the information about the selected mode (range/single selection) and the values of the single selection. * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: If there is no value for a data item, this item is not written into the static DESCRIBE part. * src/main/java/de/intevation/flys/artifacts/states/RangeState.java, src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java: Renamed the method to validate upper and lower values. * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: This state can now handle values inserted in the single selection. Therefore, new validate methods has been added. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: The methods getWs() and getWs() take care on the values inserted in the single insert mode of the client which enables the user to insert single W and Q. 2011-05-02 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Repaired getQForW() by calculating indices on right dimension. 2011-05-02 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: New methods for retrieving selected W values (getWs()). * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The method for retrieving waterlevel data takes care on selected Ws, now. The selected Ws are transformed using the DischargeTables.getQForW() into Q values. 2011-05-02 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Removed an unused parameter 'result' of getQForW(). 2011-05-02 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Removed the getDataset() method and replaced it with a addDataset() method. On this way, concrete subclasses of this OutGenerator can have multiple datasets (e.g. different datasets for W and Q). This abstract method is called after the chart generation is finished. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: Both classes implement the addDataset() method. The LongitudinalSectionGenerator has already multiple datasets for W and Q. Both are added to the chart - both have an own range axis. 2011-05-01 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Use the cache for the wst value table if configured. * doc/conf/cache.xml: Choose a more precise name for the wst value table cache. 2011-04-29 Sascha L. Teichmann <sascha.teichmann@intevation.de> * pom.xml: Added dependency to Ehcache. Apache 2.0 license. * doc/conf/conf.xml: Added configuration of ehcache. * doc/conf/cache.xml: New. Cache configurations. * src/main/java/de/intevation/flys/artifacts/cache/CacheFactory.java: New. Factory to access caches. 2011-04-29 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: Forgot to add. * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: New. Given a database connection and a XML template it generates an output with meta data about the database. * src/main/java/de/intevation/flys/artifacts/services/meta/CompiledStatement.java: New. Holds prepared statements optimized to be run in the stack of contextes. * src/main/java/de/intevation/flys/artifacts/services/meta/StackFrames.java: New. Model to hold a hierarchical scope of variables. * src/main/java/de/intevation/flys/artifacts/services/meta/ResultData.java: New. Stores data set fetched from a sql select to be iterated in a context. * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java, src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Removed superfluous imports. 2011-04-29 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/conf.xml: Added meta data service. * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: Stub for the meta data service. * src/main/resources/metadata/template.xml: Initial template for the meta data service. 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Bugfix: Now, curves for Q values are drawn into a longitudinal section chart as well. Therefore, it was necessary to change the datastructure of the inner class ThemeList that stores all themes included in a chart in an ordered list (stored in a java.util.Vector now). 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: New. An abstract base class for ChartGenerators that create XY charts. * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: Sourced the generate() method out to the XYChartGenerator. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Implemented the methods to add W and Q facets to the chart. 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Improved the calculation of the step with for ranges. 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Added a method that returns the number of elements stored in the data pool. 2011-04-29 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Added a get() method which takes destination array as an argument. 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Changed the data structure to store w, q and kms values from List<Double> to TDoubleArrayList which stores native double values instead of big Double values. * pom.xml: Added the GNU Trove dependency. 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/OutGenerator.java: Added the name a the requested facet to doOut(). Concrete generators should just create output for this facet now. * src/main/java/de/intevation/flys/exports/ChartGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: Adapted the method signature of doOut(). * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Adapted the method call of OutGenerator.doOut(). 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * doc/conf/themes.xml: Added mappings for the facets longitudinal.section.w and longitudinal.section.q. 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added some methods to retrieve necessary information for computing the data of a waterlevel. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Added methods to compute and retrieve the data of a waterlevel computation. 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: New. This model class represents a pool of data triples that consist of W, Q and Kms information. This class might be used to compute data for creating longitudinal section curves (which are based on those W, Q and Kms values). 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Bugfix: Removed endless loop and a bug while iterating over Hibernate results. 2011-04-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: New. An OutGenerator that creates longitudinal section curves. NOTE: This is just the stub - the out creation needs to be implemented! * doc/conf/conf.xml: Added the LongitudinalSectionGenerator. 2011-04-28 Ingo Weinzierl <ingo@intevation.de> * doc/conf/conf.xml: Bugfix: Added missing <output-generators> section. 2011-04-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WaterlevelState.java: New. This state should be reached if the 'calc.surface.curve' calculation method has been chosen. * doc/conf/artifacts/winfo.xml: Modified a transition and added the WaterlevelState. This state is reached if the 'calc.surface.curve' calculation method has been chosen. It currently has 1 output - a longitudinal section that is not implemented yet! 2011-04-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/transitions/ValueCompareTransition.java: New. This transition is valid if the a data object of the current artifact equals/notequals a configured value in the transition model. 2011-04-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Bugfixes: - Adapted the parameters of the isStateReachable() call - added the artifact and the current state. - Append the outputs of a current state if the state is filled with valid data. 2011-04-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/transitions/DefaultTransition.java: Added the missing init() method that has been introduced in the interface some commits ealier. * src/main/java/de/intevation/flys/artifacts/transitions/TransitionFactory.java: Call init() after a Transition has been created. 2011-04-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/AttributeWriter.java: Bugfix: Introduced a <art:outputs> node in the attribute document of a Collection that contains further <art:output> nodes - instead of having multiple <art:output> nodes at toplevel of the document. * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Adapted the XPath to retrieve the outputs in the attribute document of a Collection. 2011-04-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * contrib/visualize-transitions.xsl: Added to create a Graphviz digraph out of the config.xml. Usage: $ xsltproc --stringparam base-dir ../doc/conf/ \ contrib/visualize-transitions.xsl \ doc/conf/conf.xml > transitions.dot $ dot -Tsvg -o transitions.svg transitions.dot 2011-04-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: If no data has been inserted so far, an IllegalArgumentException is thrown. 2011-04-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:: A lot of new methods to retrieve the theme of a facet - used while creating the output of a facet/artifact. If a facet has no theme yet, it is initialized. 2011-04-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/AttributeParser.java, src/main/java/de/intevation/flys/collections/OutputParser.java: Removed useless imports. 2011-04-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/ChartGenerator.java: New. An abstract OutGenerator that might be used to create chart output. Some basic things that are equal in all charts should be done here! * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: This OutGenerator no longer implements the OutGenerator directly, but it extends the ChartGenerator now. 2011-04-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Restructured the out() operation of a collection: Now, we collect a list of artifacts/facets and use this for the OutGenerator. Its doOut() method gets the attribute of an artifact - the position and the active state is managed by the Collection itself. 2011-04-26 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java: New. a specialized facet that stores information about its position and its state (active/inactive) in an output of a collection. * src/main/java/de/intevation/flys/collections/AttributeParser.java: New. This parser takes the attributes (XML) of a collection and extracts the contained outputs with its facets. The result is a Map<String, Output>. * src/main/java/de/intevation/flys/collections/OutputParser.java: New. This parser is used to query the artifact's DESCRIBE and to extract the supported outputs. The result is a Map<String, Output>. * src/main/java/de/intevation/flys/collections/AttributeWriter.java: New. This writer merges the outputs contained in an attribute of a collection with the outputs of a collection's artifacts. * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: The attributes of a collection are written into its DESCRIBE document now. The OutputParser and AttributeParser are used to read the supported attributes by the collection and its artifacts - the AttributeWriter is used to merge both attributes and create a final attribute document. 2011-04-26 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java, src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: The facet-2-theme mappings are initialized at startup and stored in the FLYSContext. * src/main/java/de/intevation/flys/themes/ThemeFactory.java: Added a function that retrieves a theme from FLYSContext based on its name. 2011-04-22 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Corrected a silly c&p mistake. 2011-04-22 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java: Implementation of the "Ruecksprungkorrektur" to be done in "W fuer angepassten Abflusslaengschnitt". All tests show the expected results. In some corner cases the algorithm described in the "Anwenderhandbuch" chapter 3.3.4.3 "Korrektur" has some definition shortcomings: a - What should happend when you cannot find point 2 because you cannot step back one quarter from point 3 because there is no data there any more (river too short in this direction)? The implemented algorithm raises point 3' only to an according factor. E.g. If you can step back the whole quarter distance the elevation is the full quarter. If you can step back only the half of the quarter the elevation is only an eighth. b - If the water heights between point 2 and 3 are constant then the algorithm will produce a spline interpolation that lowers those values. Is this intended? For real data the back jumps are expected to be more in the middle of the distance ranges so the corner cases are maybe not so important. * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: Removed superfluous import. 2011-04-21 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/themes/ThemeFactory.java: Removed debug code that has been commited by accident. 2011-04-21 Ingo Weinzierl <ingo@intevation.de> * doc/conf/themes.xml: New. A first small theme configuration. * doc/conf/conf.xml: Added a link to the theme configuration. * src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java: Defined a key that is used to store a themes map in the FLYSContext. * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: The theme configuration is read at startup and the themes are stores in the FLYSContext. 2011-04-21 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/themes/Theme.java, src/main/java/de/intevation/flys/themes/DefaultTheme.java: New. The interface and its default implementation that represents themes used to style charts and maps. * src/main/java/de/intevation/flys/themes/ThemeField.java, src/main/java/de/intevation/flys/themes/DefaultThemeField.java: New. The interface and its default implementation that represents fields in themes. A theme might be "Lines" and one of its field might be "Color" or "Size". * src/main/java/de/intevation/flys/themes/ThemeFactory.java: A factory that creates new themes based on a theme configuration. 2011-04-20 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Implementation of "Abflusskurve/Abflusstafel" calculation. Added method interpolateWQ() which takes an km and results in a tuple of two double arrays containing the w/q values interpolated between the surrounding w/q values of the table. w values are interpolated linear, q values with a cubic spline. Drawing w over q gives you the discharge table at the given km. !!! This code needs testing !!! 2011-04-20 Sascha L. Teichmann <sascha.teichmann@intevation.de> * pom.xml: Added dependency to Apache Commons Math 2.2 (Apache License 2.0) 2011-04-20 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Fix problem when sorting by q (copied w instead of q). 2011-04-20 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Fixed broken HQL statement. 2011-04-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: add a method interpolateW() which takes an array of q values and returns an equal sized array of w values. This is essentially the "Wasserstand/Wasserspiegellagen" calculation of desktop FLYS. If you want to do a calculation with given w values you have to convert the w values with DischargeTables.getQForW() first. !!! This code needs heavy testing !!! 2011-04-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: We need a getQForW() method and not getWForQ() because when doing a "Wasserstand/Wasserspiegellagen" calculation with given w values these values need to be translated to q values with the master discharge table. 2011-04-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Sorting of q values was done wrong. 2011-04-19 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java: Ordered the list of annotations returned by this factory based on its range. 2011-04-19 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/MainValuesService.java: New. This service returns an XML document that includes the main values of a gauge based on a river name, a start and an end point. * doc/conf/conf.xml: Registered the MainValuesService. 2011-04-19 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/MainValuesFactory.java: A factory that provides methods to return MainValues. 2011-04-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Added static method getWForQ() to interpolate a w value for a given q value based on a given discharge table. 2011-04-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Added convenience constructors/methods to ease the access to the master discharge table of a gauge. 2011-04-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Moved the query complexity into view 'wst_value_table' and used this instead. 2011-04-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Fetches w/q value tables from the backend. TODO: Move this to the backend and use a view. 2011-04-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Changed the error key that is thrown if no input data was found so that the key is usable for GWT's i18n mechanism. 2011-04-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: The inserted river is validated now (overrides validate() of DefaultState). 2011-04-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: The inserted calculation method is validated now (overrides validate() of DefaultState). 2011-04-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: The input data of feed() are validated using the DefaultStates validate() method. * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: New method validate() that needs to be overidden by concrete subclasses. It should return true, if the data of the State is fine, otherwise it should raise an exception. NOTE: The exceptions are not translated in the server but in the client! * src/main/java/de/intevation/flys/artifacts/states/RangeState.java: New. This abstract class exists to provide some methods for handling ranges. Currently, there is a method that validates a given range based on min/max values. * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: Implemented input data validation for ranges. NOTE: The input validation of concrete values has not been implemented yet! 2011-04-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Removed debug code that has been commited by accident :-/ 2011-04-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: The getGauge() method returns the first gauge based on the given start and end point of the river. * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: Fixed potential bugs: if no gauge could be determined, the default values for W and Q are the minimum and maximum double values. 2011-04-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: Fills the DESCRIBE with default values for W and Q. 2011-04-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstFactory.java: New. Returns Wst object - based on a river. 2011-04-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Now provides some methods that return some basic objects inserted while parameterization: River, Gauge and so on. 2011-04-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java, src/main/java/de/intevation/flys/artifacts/services/RiverService.java: Bugfix: Repaired broken imports of the SessionHolder. 2011-04-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/SessionHolder.java: Moved this class to flys-backend. * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java, src/main/java/de/intevation/flys/artifacts/model/GaugesFactory.java, src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java, src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java, src/main/java/de/intevation/flys/artifacts/context/SessionCallContextListener.java: Adapted imports of the SessionHolder. 2011-04-14 Sascha L. Teichmann <sascha.teichmann@intevation.de> * trunk/src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java, trunk/src/main/java/de/intevation/flys/artifacts/services/RiverService.java: Acquire/release sessions in services to avoid db connection leaks. 2011-04-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Changed some method signatures - added a reference to the owner Artifact. * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java, src/main/java/de/intevation/flys/artifacts/states/WQSelect.java, src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: Modified method signatures based on the changes in DefaultState. * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java: Added default values to the dynamic part of DESCRIBE. 2011-04-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java: Added a function that returns a River object based on a given river name. 2011-04-14 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java, src/main/java/de/intevation/flys/artifacts/model/GaugesFactory.java, src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java, src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java: Static methods are using the SessionHolder, too. 2011-04-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/context/SessionCallContextListener.java: Added the setup() method that has been added to the interface description in the last commits. * doc/conf/conf.xml: Registered the SessionCallContextListener as CallContext.Listener. 2011-04-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/SessionHolder.java: Bugfix: Call correct method to retrieve an instance of SessionFactoryProvider. 2011-04-14 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/SessionHolder.java: New. Contains thread local session holder for hibernate sessions. * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java: Uses session from SessionHolder. * src/main/java/de/intevation/flys/artifacts/context/SessionCallContextListener.java: Interacts with SessionHolder now. * src/main/java/de/intevation/flys/exports/ChartExportHelper.java: Removed superfluous import. 2011-04-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/context/SessionCallContextListener.java: Implementation of a CallContext.Listener to open/close Hibernate Sessions for each request. 2011-04-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Some modifications related to the last commit - modification of the describe() signature of a State. 2011-04-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/GaugeSelect.java: Removed. We do not need a state to select a gauge - the selection takes place by choosing a start and an end point. 2011-04-13 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: Bugfix: added missing label node to root node and a namespace to the data node. 2011-04-12 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The name of the artifact 'winfo' is written into the DESCRIBE document now. We need this to have a proper way to distinguish between different artifacts in the UI. 2011-04-12 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Bugfix: States are filled with data before they describe themself. 2011-04-11 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java: New. A factory that returns the annotations of a specific river. * src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java: New. This service provides a document that contains information about distances of a river. * doc/conf/conf.xml: Registered the DistanceInfoService. 2011-04-06 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: This collection overrides the out() operation now. The incoming request document is read and the related OutGenerator is used to create the output. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Removed the code to create discharge curves. It has moved to the DischargeCurveGenerator which now does this work. 2011-04-06 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/OutGenerator.java: The generate() method throws an IOException now. * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: New. This OutGenerator creates discharge curves. 2011-04-06 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Changed the visibility of the getData() method. It's now public, because the OutGenerator needs an artifact's data. 2011-04-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/**/*.java: Removed trailing whitespace. 2011-04-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Make project compilable again by commenting out a not existing XMLDebug reference. 2011-03-31 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: Added code to parse the configured OutGenerators and to save them (in a map) in the FLYSContext. * src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java: Added a key that is used to save the OutGenerators Map in the context. 2011-03-31 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/OutGenerator.java: New. This interface is used to generator different types of output. ArtifactCollections will make use of this interface to create a collected output of all its artifacts. 2011-03-30 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Removed the Backend from FLYSArtifactCollection - used ArtifactDatabase operations instead. * TODO: Removed 'remove Backend reference' TODO. 2011-03-30 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Enhanced the configuration of the discharge curve output mode. This output now provides three facets - W, Q and the curve itself. 2011-03-30 Ingo Weinzierl <ingo@intevation.de> Tagged RELEASE 0.1 2011-03-30 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Renamed an output mode in the WINFO artifact configuration. 2011-03-29 Ingo Weinzierl <ingo@intevation.de> * src/main/resources/messages_de_DE.properties, src/main/resources/messages_de.properties: Changed a german string. 2011-03-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: Modified the available calculation modes and its order in the DESCRIBE document. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Adapted the names of calculation modes. 2011-03-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Added the hash code of an artifact to the artifact part of the collection's DESCRIBE document. 2011-03-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Changed the background color of discharge curves to white. 2011-03-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Cache the scale, too. Otherwise two calls to getValues() with different arguments will result in the same output. 2011-03-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Introduced a 'scale' parameter in the getValues() method. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Filled the out() operation with code that draws a discharge table of one or more gauges specified by the given range in entered in a previous state. 2011-03-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/ChartExportHelper.java: New. A helper class to exports charts. * pom.xml: Added dependencies to iText, Batik and JFreeChart. 2011-03-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/PegelGltParser.java: Fixed swap of operands. 2011-03-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/GaugesFactory.java: New. Load gauges for a river and filter them for given ranges. 2011-03-25 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Store data in a double [][] instead of interleaved double [] to be compatible with org.jfree.data.xy.DefaultXYDataset. 2011-03-25 Ingo Weinzierl <ingo@intevation.de> * TODO: Removed 'i18n' and 'step-back' TODOs and added an issue to remove the Backend reference from FLYSArtifactCollection. 2011-03-25 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Added missing artifact namespace of an attribute in the DESCRIBE document. 2011-03-24 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: New. This ArtifactCollection overrides the DefaultArtifactCollection to implement FLYS specific describe() and out() operations. * doc/conf/conf.xml: Use the FLYSArtifactCollection instead of the DefaultArtifactCollection for this application. 2011-03-24 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: New. Fetches values of discharge tables in form of packed w/q double arrays for given gauges. * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java: Removed needless import. 2011-03-24 Ingo Weinzierl <ingo@intevation.de> * src/main/resources/messages_de_DE.properties: Added a german resource bundle to avoid exceptions in the flys artifacts. Sometimes, the Resources class is not able to find a 'de_DE' bundle and throws an exception. This is really strange, because it should use the 'de' bundle in that case, but it doesn't. 2011-03-23 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Added some code to append the output modes of previous states to the DESCRIBE document. TODO: Determine if the current state is already filled with data and append its output modes as well! 2011-03-22 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Enhanced the location_distance state with an output mode 'discharge_table'. 2011-03-21 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Write human readable strings as label attribute into the DESCRIBE output. Those labels are used to be displayed in the GUI. 2011-03-21 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: Added some further calculation types. * src/main/resources/messages.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added i18n strings for the calculation types 2011-03-21 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Implemented the step-back part of the advance() operation. 2011-03-21 Ingo Weinzierl <ingo@intevation.de> * src/main/resources/messages_de.properties: Fixed a german umlaut. 2011-03-18 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Added new states for entering a location/distance and w/q. * src/main/resources/messages.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: New string for the location/distance and w/q input states. 2011-03-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: New. A state for the W/Q input of the WINFO parameterization. 2011-03-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Append an attribute 'uiprovider' to the dynamic UI node. * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java: New. A state for the location/distance selection of the WINFO parameterization. 2011-03-17 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Added a new method getUIProvider() that might be overriden by concreted subclasses that should be rendered with a specific UIProvider. 2011-03-17 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The static UI part is created by the previous states now. This makes it possible to group the data objects (which is necessary to group the objects in the ui). * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Added a describeStatic() method that creates a node that contains the data of that state. 2011-03-17 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/RiverService.java: Removed TODO: the document contains the rivers provided by the backend now. 2011-03-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> * pom.xml: Added dependency to flys backend. * src/main/java/de/intevation/flys/artifacts/model/River.java: Removed. We are using the backend model now. * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java: Fetches the rivers from the backend. * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: Import fixes. 2011-03-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/conf.xml: Added section for database backend configuration. 2011-03-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: Fixed build error coming from different import of XMLUtils. 2011-03-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Appended the missing label node that contains the human readable name of the data item. 2011-03-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: I18N of strings for the DESCRIBE document. * src/main/resources/messages.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: I18N strings for the calculcation mode state. 2011-03-14 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Modified the winfo states. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Adapted the artifact regarding the changes of the last commit. The states describe() method creates the dynamic UI node - the artifact needs to apply this node. * src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: New. The state for choosing the calculation mode. * src/main/resources/messages.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added i18n strings for the calculation mode state. 2011-03-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: New. This is the base state for the FLYS application. It provides a method that creates the dynamic ui node for the DESCRIBE. * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java, src/main/java/de/intevation/flys/artifacts/states/GaugeSelect.java: Both classes extend the abstract base class DefaultState. 2011-03-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/resources/Resources.java: New. This class retrieves the i18n strings from a ResourceBundle. * src/main/resources/messages.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Resource files for german and english translation. 2011-03-10 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Appended the data that have been inserted in former states into the static node of the DESCRIBE. 2011-03-10 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: The operations feed() and advance() return the description of the artifact using the describe() operation. This avoids additional server round trips in the client - the clients gets to know about the new state of the artifact immediately. 2011-03-10 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Implemented a part (step forward) of the advance operation. * TODO: Implement Step-Back in advance operation. 2011-03-09 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Implemented the abstract method getName(). It returns the constant 'winfo' string. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Implemented the feed action. The data of an incoming feed() operation is stored in StateData objects that are saved in a map in the artifact. NOTE: There is no input validation and no i18n of error messages (see TODO). 2011-03-09 Ingo Weinzierl <ingo@intevation.de> * TODO: This file contains some open points that need to be done. 2011-03-09 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: New. This artifact serves as the default artifact for the FLYS application. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: This artifact now inherits from FLYSArtifact. Furthermore, there is one big change: we don't store the State objects itself in the artifact, but just the identifier of those. This makes the artifact smaller and more compatible agains previous versions of the software. 2011-03-08 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/RiverService.java: New. This service will retrieve a list of provided rivers. * doc/conf/conf.xml: Added a configuration for the RiverService. 2011-03-07 Ingo Weinzierl <ingo@intevation.de> * doc/conf/conf.xml: Added a section user-factory and collection-factory in the factories part of the configuration. 2011-03-01 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: Replaced the 'special' attribute from DESCRIBE with a 'uiprovider' attribute. 2011-02-08 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The RiverSelect state is called to create the UI part of the describe document. * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: Implemented the dynamic UI part of describe(). The static part is not inserted into the describe document at the moment. We need a reference to the previous states for this. 2011-02-08 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java, src/main/java/de/intevation/flys/artifacts/model/River.java: New. A model class that represents a river and its factory to create concrete river instances. NOTE: Currently, this is just a mockup. The factory just returns two static rivers "Mosel" and "Saar" without a connection to a backend. 2011-02-07 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/StateFactory.java: The input data of a state is initialized with empty StateData objects after the State has been created. * doc/conf/artifacts/winfo.xml: Renamed the input data nodes of the states which now fits better to the class name of the implementation. 2011-02-07 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The describe document returned by this artifact now contains the current state and the reachable states. 2011-02-07 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: The transitions are put into the TransitionEngine with the ID of the state - not longer with the artifact name. On this way, we are able to fetch just the transitions for a specific state, instead of all the transitions of an artifact. 2011-02-04 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Describe() returns the artifact's uuid and hash value. The whole implementation of describe() is still outstanding. 2011-02-04 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Removed useless config stuff. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Removed useless methods, and improved the init process - the first state is set as the current state for this artifact. * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java, src/main/java/de/intevation/flys/artifacts/states/GaugeSelect.java: New. The states are used in the first two steps of the WINFOArtifact. Currently, they just implement stubs of the necessary methods setup() and describe(). 2011-02-04 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/State.java, src/main/java/de/intevation/flys/artifacts/transitions/TransitionEngine.java, src/main/java/de/intevation/flys/artifacts/transitions/Transition.java: Removed. These classes are placed in the artifact-database now. * src/main/java/de/intevation/flys/artifacts/transitions/DefaultTransition.java, src/main/java/de/intevation/flys/artifacts/transitions/TransitionFactory.java: Adapted imports of Transition. * src/main/java/de/intevation/flys/artifacts/states/StateFactory.java: New. This factory should be used to create concrete State objects. * src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java: Added a constant key to store the StateEngine in the context. * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: New method that initializes the states at application start. 2011-02-03 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/State.java: New. The interface description of a state. * src/main/java/de/intevation/flys/artifacts/transitions/Transition.java, src/main/java/de/intevation/flys/artifacts/transitions/DefaultTransition.java: New. The interface description and a default implementation of a transition. * src/main/java/de/intevation/flys/artifacts/transitions/TransitionEngine.java: New. The TransitionEngine stores all transitions for each artifact and should be used to determine, if an artifact can advance from one state to another. * src/main/java/de/intevation/flys/artifacts/transitions/TransitionFactory.java: New. Transitions should be created by using this class. * src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java: New. The Flys context. It currently defines keys to store important components in the context. * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: New. The context factory initializes the basic components of the application. Currently, the TransitionEngine is created and all artifacts with its transitions are read from the global configuration and stored in the FLYSContext. * pom.xml: Added a dependency to the 'artifacts-common' package. * doc/conf/artifacts/winfo.xml: Corrected the classname of the DefaultTransition. * doc/conf/conf.xml: Added FLYSContextFactory as context-factory. 2011-02-02 Ingo Weinzierl <ingo@intevation.de> * doc/conf/conf.xml: An initial configuration file for the FLYS artifact server. * doc/conf/artifacts/winfo.xml: An initial transition configuration of an WINFO artifact. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: A stub of an artifact for a WINFO parameterization. * pom.xml: Set the source code version to 1.5. 2011-02-01 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/**, pom.xml: Added initial maven project. * ChangeLog: new.