Class AggregatingLineGraphModel
java.lang.Object
org.teamapps.ux.component.timegraph.model.AbstractLineGraphModel
org.teamapps.ux.component.timegraph.model.AggregatingLineGraphModel
- All Implemented Interfaces:
GraphModel<LineGraphData>,LineGraphModel
public class AggregatingLineGraphModel extends AbstractLineGraphModel
-
Field Summary
Fields Modifier and Type Field Description Event<java.lang.Void>onDataChanged -
Constructor Summary
Constructors Constructor Description AggregatingLineGraphModel()AggregatingLineGraphModel(LineGraphData graphData, AggregationType aggregationType) -
Method Summary
Modifier and Type Method Description static LineGraphDatagetAggregateDataPoints(LineGraphData dataPoints, TimePartitioning zoomLevel, Interval alignedInterval, AggregationType aggregationType, java.time.ZoneId timeZone, boolean addDataPointBeforeAndAfterQueryResult)LineGraphDatagetData(TimePartitioning zoomLevel, java.time.ZoneId zoneId, Interval neededIntervalX, Interval displayedInterval)Retrieves graph data (GraphData) for the specifiedzoomLeveland {cod@ neededInterval}.IntervalgetDomainX()booleanisAddDataPointBeforeAndAfterQueryResult()Event<java.lang.Void>onDataChanged()voidsetAddDataPointBeforeAndAfterQueryResult(boolean addDataPointBeforeAndAfterQueryResult)voidsetAggregationPolicy(AggregationType aggregationType)voidsetGraphData(LineGraphData graphData)
-
Field Details
-
Constructor Details
-
AggregatingLineGraphModel
public AggregatingLineGraphModel() -
AggregatingLineGraphModel
-
-
Method Details
-
setGraphData
-
setAggregationPolicy
-
getData
public LineGraphData getData(TimePartitioning zoomLevel, java.time.ZoneId zoneId, Interval neededIntervalX, Interval displayedInterval)Description copied from interface:GraphModelRetrieves graph data (GraphData) for the specifiedzoomLeveland {cod@ neededInterval}.The model MAY choose return more data than needed, covering a larger interval than requested.
However, the result MUST at least coverneededInterval!
If the model delegates to multiple sub-models for different graphs, its aggregatedGraphDataobject should use the intersection of the sub-model'sGraphData.getInterval()as its ownGraphData.getInterval().- Parameters:
zoomLevel- the requested zoom levelzoneId- the zoneId to apply when partitioning over timeneededIntervalX- the time interval requested by the clientdisplayedInterval- the time interval displayed by the client- Returns:
- graph data
-
getAggregateDataPoints
public static LineGraphData getAggregateDataPoints(LineGraphData dataPoints, TimePartitioning zoomLevel, Interval alignedInterval, AggregationType aggregationType, java.time.ZoneId timeZone, boolean addDataPointBeforeAndAfterQueryResult) -
getDomainX
-
isAddDataPointBeforeAndAfterQueryResult
public boolean isAddDataPointBeforeAndAfterQueryResult() -
setAddDataPointBeforeAndAfterQueryResult
public void setAddDataPointBeforeAndAfterQueryResult(boolean addDataPointBeforeAndAfterQueryResult) -
onDataChanged
- Specified by:
onDataChangedin interfaceGraphModel<D extends GraphData>
-