@@ -12,7 +12,9 @@ import info.appdev.charting.data.LineData
1212import info.appdev.charting.data.ScatterData
1313import info.appdev.charting.highlight.CombinedHighlighter
1414import info.appdev.charting.highlight.Highlight
15+ import info.appdev.charting.interfaces.dataprovider.BarDataProvider
1516import info.appdev.charting.interfaces.dataprovider.CombinedDataProvider
17+ import info.appdev.charting.interfaces.dataprovider.LineDataProvider
1618import info.appdev.charting.interfaces.datasets.IDataSet
1719import info.appdev.charting.renderer.CombinedChartRenderer
1820import timber.log.Timber
@@ -25,22 +27,25 @@ open class CombinedChart : BarLineChartBase<CombinedData>, CombinedDataProvider
2527 /* *
2628 * if set to true, all values are drawn above their bars, instead of below their top
2729 */
28- override var isDrawValueAboveBarEnabled: Boolean = true
30+ var isDrawValueAboveBarEnabled: Boolean = true
2931
3032
3133 /* *
3234 * Set this to true to make the highlight operation full-bar oriented,
3335 * false to make it highlight single values (relevant only for stacked).
3436 */
35- override var isHighlightFullBarEnabled: Boolean = false
37+ var isHighlightFullBarEnabled: Boolean = false
3638
3739 /* *
3840 * if set to true, a grey area is drawn behind each bar that indicates the maximum value
3941 */
40- override var isDrawBarShadowEnabled: Boolean = false
42+ var isDrawBarShadowEnabled: Boolean = false
4143
4244 protected var mDrawOrder: MutableList <DrawOrder >? = null
4345
46+ lateinit var barDataProvider : BarDataProvider
47+ lateinit var lineDataProvider : LineDataProvider
48+
4449 /* *
4550 * enum that allows to specify the order in which the different data objects for the combined-chart are drawn
4651 */
@@ -62,7 +67,132 @@ open class CombinedChart : BarLineChartBase<CombinedData>, CombinedDataProvider
6267 DrawOrder .BAR , DrawOrder .BUBBLE , DrawOrder .LINE , DrawOrder .CANDLE , DrawOrder .SCATTER
6368 )
6469
65- setHighlighter(CombinedHighlighter (this , this ))
70+ // Create BarDataProvider adapter for CombinedHighlighter
71+ barDataProvider = object : BarDataProvider {
72+ override val barData: BarData ?
73+ get() = this @CombinedChart.barData
74+
75+ override var isDrawBarShadowEnabled: Boolean
76+ get() = this @CombinedChart.isDrawBarShadowEnabled
77+ set(value) { this @CombinedChart.isDrawBarShadowEnabled = value }
78+
79+ override var isDrawValueAboveBarEnabled: Boolean
80+ get() = this @CombinedChart.isDrawValueAboveBarEnabled
81+ set(value) { this @CombinedChart.isDrawValueAboveBarEnabled = value }
82+
83+ override var isHighlightFullBarEnabled: Boolean
84+ get() = this @CombinedChart.isHighlightFullBarEnabled
85+ set(value) { this @CombinedChart.isHighlightFullBarEnabled = value }
86+
87+ override var data: BarData ?
88+ get() = this @CombinedChart.barData
89+ set(_) {}
90+
91+ override fun getTransformer (axis : info.appdev.charting.components.YAxis .AxisDependency ? ) =
92+ this @CombinedChart.getTransformer(axis)
93+
94+ override fun isInverted (axis : info.appdev.charting.components.YAxis .AxisDependency ? ) =
95+ this @CombinedChart.isInverted(axis)
96+
97+ override val lowestVisibleX: Float
98+ get() = this @CombinedChart.lowestVisibleX
99+
100+ override val highestVisibleX: Float
101+ get() = this @CombinedChart.highestVisibleX
102+
103+ override val xChartMin: Float
104+ get() = this @CombinedChart.xChartMin
105+
106+ override val xChartMax: Float
107+ get() = this @CombinedChart.xChartMax
108+
109+ override val xRange: Float
110+ get() = this @CombinedChart.xRange
111+
112+ override val yChartMin: Float
113+ get() = this @CombinedChart.yChartMin
114+
115+ override val yChartMax: Float
116+ get() = this @CombinedChart.yChartMax
117+
118+ override var maxHighlightDistance: Float
119+ get() = this @CombinedChart.maxHighlightDistance
120+ set(value) { this @CombinedChart.maxHighlightDistance = value }
121+
122+ override val centerOfView: info.appdev.charting.utils.PointF
123+ get() = this @CombinedChart.centerOfView
124+
125+ override val centerOffsets: info.appdev.charting.utils.PointF
126+ get() = this @CombinedChart.centerOffsets
127+
128+ override val contentRect: android.graphics.RectF
129+ get() = this @CombinedChart.contentRect
130+
131+ override val defaultValueFormatter: info.appdev.charting.formatter.IValueFormatter
132+ get() = this @CombinedChart.defaultValueFormatter
133+
134+ override val maxVisibleCount: Int
135+ get() = this @CombinedChart.maxVisibleCount
136+ }
137+
138+ lineDataProvider = object : LineDataProvider {
139+
140+
141+ override fun getTransformer (axis : info.appdev.charting.components.YAxis .AxisDependency ? ) =
142+ this @CombinedChart.getTransformer(axis)
143+
144+ override fun isInverted (axis : info.appdev.charting.components.YAxis .AxisDependency ? ) =
145+ this @CombinedChart.isInverted(axis)
146+
147+ override val lowestVisibleX: Float
148+ get() = this @CombinedChart.lowestVisibleX
149+
150+ override val highestVisibleX: Float
151+ get() = this @CombinedChart.highestVisibleX
152+
153+ override val xChartMin: Float
154+ get() = this @CombinedChart.xChartMin
155+
156+ override val xChartMax: Float
157+ get() = this @CombinedChart.xChartMax
158+
159+ override val xRange: Float
160+ get() = this @CombinedChart.xRange
161+
162+ override val yChartMin: Float
163+ get() = this @CombinedChart.yChartMin
164+
165+ override val yChartMax: Float
166+ get() = this @CombinedChart.yChartMax
167+
168+ override var maxHighlightDistance: Float
169+ get() = this @CombinedChart.maxHighlightDistance
170+ set(value) { this @CombinedChart.maxHighlightDistance = value }
171+
172+ override val centerOfView: info.appdev.charting.utils.PointF
173+ get() = this @CombinedChart.centerOfView
174+
175+ override val centerOffsets: info.appdev.charting.utils.PointF
176+ get() = this @CombinedChart.centerOffsets
177+
178+ override val contentRect: android.graphics.RectF
179+ get() = this @CombinedChart.contentRect
180+
181+ override val defaultValueFormatter: info.appdev.charting.formatter.IValueFormatter
182+ get() = this @CombinedChart.defaultValueFormatter
183+
184+ override var data: LineData ?
185+ get() = this @CombinedChart.lineData
186+ set(value) {}
187+
188+ override val maxVisibleCount: Int
189+ get() = this @CombinedChart.maxVisibleCount
190+ override val lineData: LineData ?
191+ get() = this @CombinedChart.lineData
192+
193+ }
194+
195+ setHighlighter(CombinedHighlighter (this , barDataProvider))
66196
67197 // Old default behaviour
68198 isHighlightFullBarEnabled = true
@@ -73,12 +203,6 @@ open class CombinedChart : BarLineChartBase<CombinedData>, CombinedDataProvider
73203 override val combinedData: CombinedData ?
74204 get() = mData
75205
76- override fun setData (data : CombinedData ? ) {
77- super .setData(data)
78- setHighlighter(CombinedHighlighter (this , this ))
79- (mRenderer as CombinedChartRenderer ).createRenderers()
80- mRenderer?.initBuffers()
81- }
82206
83207 /* *
84208 * Returns the Highlight object (contains x-index and DataSet index) of the selected value at the given touch
0 commit comments