The value properties entry display can be configured to enter and edit a free amount of properties with different keys and types.
The properties will be read from and written to a time series which is determined by a configurable time series set and a selected location from either the explorer or IFD.
It also supports tables with locations that are connected to the main location via an attribute.
The connections between the main location and the other locations are configured in <subLocationsStructures>.
This is done to keep the data structure information separate from the user interface which keeps the code and configuration cleaner and this way the <subLocationStructure> configuration can be reused in the report export valuePropertiesTags without needing the user interface configuration.
<valuePropertiesVariableId>MFDO_MainReport</valuePropertiesVariableId> <subLocationsStructure id="Locations_Level"> <variableId>Level_MFDO_Peak</variableId> <matchingSubLocationAttributeId>MFDOArea</matchingSubLocationAttributeId> <templateFile>Forecast_Summary_Report_Level_Location_Template.html</templateFile> </subLocationsStructure> <subLocationsStructure id="Locations_Flow"> <variableId>Flow_MFDO_Peak</variableId> <matchingSubLocationAttributeId>MFDOArea</matchingSubLocationAttributeId> <templateFile>Forecast_Summary_Report_Flow_Location_Template.html</templateFile> </subLocationsStructure>
In the config above the <valuePropertiesVariableId> determines the main time series for which the properties can be entered.
The sub locations have their own time series set and are matched to the main time series via the <matchingSubLocationAttributeId> which has to refere to the location id present in the main variable.
The variables refer to to time seires sets which are defined at the top of the configuration file.
<variable> <variableId>MFDO_MainReport</variableId> <timeSeriesSet> <moduleInstanceId>Process_MFDO_Report</moduleInstanceId> <valueType>scalar</valueType> <parameterId>H.obs</parameterId> <locationSetId>MFDO_Areas_Reports</locationSetId> <timeSeriesType>external forecasting</timeSeriesType> <timeStep unit="nonequidistant"/> <externalForecastMaxAge unit="day" multiplier="10"/> <readWriteMode>read complete forecast</readWriteMode> </timeSeriesSet> </variable> <variable> <variableId>Level_MFDO_Peak</variableId> <timeSeriesSet> <moduleInstanceId>Process_MFDO_Report</moduleInstanceId> <valueType>scalar</valueType> <parameterId>H.fcast.merged</parameterId> <qualifierId>Peak</qualifierId> <locationSetId>UK_Forecast_Summary_Level</locationSetId> <timeSeriesType>external forecasting</timeSeriesType> <timeStep unit="nonequidistant"/> <externalForecastMaxAge unit="day" multiplier="10"/> <readWriteMode>read complete forecast</readWriteMode> </timeSeriesSet> </variable> <variable> <variableId>Flow_MFDO_Peak</variableId> <timeSeriesSet> <moduleInstanceId>Process_MFDO_Report</moduleInstanceId> <valueType>scalar</valueType> <parameterId>Q.fcast.merged</parameterId> <qualifierId>Peak</qualifierId> <locationSetId>UK_Forecast_Summary_Flow</locationSetId> <timeSeriesType>external forecasting</timeSeriesType> <timeStep unit="nonequidistant"/> <externalForecastMaxAge unit="day" multiplier="10"/> <readWriteMode>read complete forecast</readWriteMode> </timeSeriesSet> </variable>
An example of some freely configurable input elements can be found below. With different property types like String, int, date/time and a dropwdown with enueration values.
By default the input elements are placed on the same row in the display but with <newLine/> elements they can be placed below each other.
String elements also have the option to have the numberOfLines specified. When this is more than 1 the element will show on screen with a larger height and it will automatically increse in height when more lines of text are entered.
The width attribute determines how wide the element will show on the display.
Via the enabled attribute the element can also be made not editable.
<valueProperty id="fw_state" name="State" propertyType="string" enabled="false" forceUpperCase="false" width="60"> <defaultValueAttributeFunction>@REGION@</defaultValueAttributeFunction> </valueProperty> <newLine/> <valueProperty id="fw_subtitle" name="Sub-title" propertyType="string" enabled="true" numberOfLines="1" width="805"/> <newLine/> <valueProperty id="fw_headline" name="Headline" propertyType="string" enabled="true" forceUpperCase="true" numberOfLines="2" width="800"/>> </variable> <valueProperty id="fw_nextissuetime" name="Next Issue Time" propertyType="dateTime" enabled="true" width="200"/> <valueProperty id="fw_nexthours" name="Hours from now" propertyType="int" enabled="true" width="50"/> <valueProperty id="fw_sews" name="Sews" propertyType="string" enabled="true" width="60"> <enumerationValue label="Yes" code="Yes"/> <enumerationValue label="No" code="No"/> </valueProperty>
Below is an example shown on how to configure a table with sub locations.
It has to refer to an sub locations structure via <subLocationsStructureId>
Separate columns can be defined like an attributeColumn which shows the value of that attribute for the location of the row
Time series columns which show either a value of a time of a time series for that locations. Multiple options can be chosen for what to show, like lastValue or lastTime. A variableId must be configured to refer to time series.
There are also specialValuePropertyColumn's which have more dedicated functionality for instance a special with type="defaultText" can have text in which value properties (with their id between %%) for that location can be automatically replaced
<subLocationsTable id="Locations_Level"> <subLocationsStructureId>Locations_Level</subLocationsStructureId> <attributeColumn id="fwloc_order" width="40" name="Order" attributeFunction="@FWL_DISP_ORDER@"/> <attributeColumn id="fwloc_name" width="200" name="Location Name" attributeFunction="@station:SHORT_NAME@"/> <timeSeriesColumn id="fwloc_obstime" valuePropertyId="Observation_Time" variableId="Observations" width="140" columnContent="lastTime" name="Observed_Time"/> <timeSeriesColumn id="fwloc_obsvalue" valuePropertyId="Observation_Value" variableId="Observations" width="80" columnContent="lastValue" name="Observation_Value [m]"/> <specialValuePropertyColumn id="fwloc_defaultText" name="Default_text" width="200" type="defaultText" valuePropertyId="default_text"> <defaultText>This location has observed serverity '%obs_severity%' and forecast severity '%forc_severity%'</defaultText> </specialValuePropertyColumn> </subLocationsTable>