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