package com.github.mikephil.charting.data; import java.util.ArrayList; import java.util.List; /** * Data object that allows the combination of Line-, Bar-, Scatter-, Bubble- and * CandleData. Used in the CombinedChart class. * * @author Philipp Jahoda */ public class CombinedData extends BarLineScatterCandleBubbleData<BarLineScatterCandleBubbleDataSet<?>> { private LineData mLineData; private BarData mBarData; private ScatterData mScatterData; private CandleData mCandleData; private BubbleData mBubbleData; public CombinedData() { super(); } public CombinedData(List<String> xVals) { super(xVals); } public CombinedData(String[] xVals) { super(xVals); } public void setData(LineData data) { mLineData = data; mDataSets.addAll(data.getDataSets()); init(); } public void setData(BarData data) { mBarData = data; mDataSets.addAll(data.getDataSets()); init(); } public void setData(ScatterData data) { mScatterData = data; mDataSets.addAll(data.getDataSets()); init(); } public void setData(CandleData data) { mCandleData = data; mDataSets.addAll(data.getDataSets()); init(); } public void setData(BubbleData data) { mBubbleData = data; mDataSets.addAll(data.getDataSets()); init(); } public BubbleData getBubbleData() { return mBubbleData; } public LineData getLineData() { return mLineData; } public BarData getBarData() { return mBarData; } public ScatterData getScatterData() { return mScatterData; } public CandleData getCandleData() { return mCandleData; } /** * Returns all data objects in row: line-bar-scatter-candle-bubble if not null. * @return */ public List<ChartData> getAllData() { List<ChartData> data = new ArrayList<ChartData>(); if(mLineData != null) data.add(mLineData); if(mBarData != null) data.add(mBarData); if(mScatterData != null) data.add(mScatterData); if(mCandleData != null) data.add(mCandleData); if(mBubbleData != null) data.add(mBubbleData); return data; } @Override public void notifyDataChanged() { if (mLineData != null) mLineData.notifyDataChanged(); if (mBarData != null) mBarData.notifyDataChanged(); if (mCandleData != null) mCandleData.notifyDataChanged(); if (mScatterData != null) mScatterData.notifyDataChanged(); if (mBubbleData != null) mBubbleData.notifyDataChanged(); init(); // recalculate everything } }