Skip to content

Commit ae556c5

Browse files
authored
Merge pull request #687 from AppDevNext/FixHighlightInCombinedChart
Fix highlight in CombinedChart
2 parents db72d76 + c2fd419 commit ae556c5

11 files changed

+14
-11
lines changed

chartLib/src/main/kotlin/info/appdev/charting/charts/BarChart.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ open class BarChart : BarLineChartBase<BarData>, BarDataProvider {
5959

6060
dataRenderer = BarChartRenderer(this, mAnimator, viewPortHandler, mDrawRoundedBars, mRoundedBarRadius)
6161

62-
setHighlighter(BarHighlighter(this))
62+
highlighter = BarHighlighter(this)
6363

6464
xAxis.spaceMin = 0.5f
6565
xAxis.spaceMax = 0.5f

chartLib/src/main/kotlin/info/appdev/charting/charts/BarLineChartBase.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,8 @@ abstract class BarLineChartBase<T : BarLineScatterCandleBubbleData<IBarLineScatt
187187

188188
xAxisRenderer = XAxisRenderer(viewPortHandler, mXAxis, mLeftAxisTransformer)
189189

190-
setHighlighter(ChartHighlighter(this))
190+
if (highlighter == null) // otherwise it overwrites highlighter from successors
191+
highlighter = ChartHighlighter(this)
191192

192193
chartTouchListener = BarLineChartTouchListener(this, viewPortHandler.matrixTouch, 3f)
193194

chartLib/src/main/kotlin/info/appdev/charting/charts/Chart.kt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import info.appdev.charting.data.ChartData
2626
import info.appdev.charting.data.Entry
2727
import info.appdev.charting.formatter.DefaultValueFormatter
2828
import info.appdev.charting.formatter.IValueFormatter
29-
import info.appdev.charting.highlight.ChartHighlighter
3029
import info.appdev.charting.highlight.Highlight
3130
import info.appdev.charting.highlight.IHighlighter
3231
import info.appdev.charting.interfaces.dataprovider.base.IBaseProvider
@@ -152,7 +151,6 @@ abstract class Chart<T : ChartData<out IDataSet<out Entry>>> : ViewGroup, IBaseP
152151
protected var dataRenderer: DataRenderer? = null
153152

154153
var highlighter: IHighlighter? = null
155-
protected set
156154

157155
/**
158156
* Returns the ViewPortHandler of the chart that is responsible for the
@@ -1046,10 +1044,6 @@ abstract class Chart<T : ChartData<out IDataSet<out Entry>>> : ViewGroup, IBaseP
10461044
/**
10471045
* Returns a recyclable PointF instance.
10481046
*/
1049-
fun setHighlighter(highlighter: ChartHighlighter<*>?) {
1050-
this.highlighter = highlighter
1051-
}
1052-
10531047
override val centerOfView: PointF
10541048
get() = this.center
10551049

chartLib/src/main/kotlin/info/appdev/charting/charts/CombinedChart.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ open class CombinedChart : BarLineChartBase<CombinedData>, CombinedDataProvider
372372
get() = this@CombinedChart.candleData
373373
}
374374

375-
setHighlighter(CombinedHighlighter(this, barDataProvider))
375+
highlighter = CombinedHighlighter(this, barDataProvider)
376376

377377
// Old default behaviour
378378
this@CombinedChart.isHighlightFullBar = true

chartLib/src/main/kotlin/info/appdev/charting/charts/HorizontalBarChart.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ open class HorizontalBarChart : BarChart {
4444
mRightAxisTransformer = TransformerHorizontalBarChart(viewPortHandler)
4545

4646
dataRenderer = HorizontalBarChartRenderer(this, mAnimator, viewPortHandler)
47-
setHighlighter(HorizontalBarHighlighter(this))
47+
highlighter = HorizontalBarHighlighter(this)
4848

4949
axisRendererLeft = YAxisRendererHorizontalBarChart(viewPortHandler, mAxisLeft, mLeftAxisTransformer)
5050
axisRendererRight = YAxisRendererHorizontalBarChart(viewPortHandler, mAxisRight, mRightAxisTransformer)

chartLib/src/main/kotlin/info/appdev/charting/highlight/ChartHighlighter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ open class ChartHighlighter<T : BarLineScatterCandleBubbleDataProvider<*>>(prote
8686
* @param x touch position
8787
* @param y touch position
8888
*/
89-
protected open fun getHighlightsAtXValue(xVal: Float, x: Float, y: Float): MutableList<Highlight>? {
89+
override fun getHighlightsAtXValue(xVal: Float, x: Float, y: Float): MutableList<Highlight>? {
9090
highlightBuffer.clear()
9191

9292
data?.let { myData ->

chartLib/src/main/kotlin/info/appdev/charting/highlight/IHighlighter.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,6 @@ interface IHighlighter {
55
* Returns a Highlight object corresponding to the given x- and y- touch positions in pixels.
66
*/
77
fun getHighlight(x: Float, y: Float): Highlight?
8+
9+
fun getHighlightsAtXValue(xVal: Float, x: Float, y: Float): MutableList<Highlight>?
810
}

chartLib/src/main/kotlin/info/appdev/charting/highlight/PieRadarHighlighter.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,10 @@ abstract class PieRadarHighlighter<T : PieRadarChartBase<*>>(protected var chart
3737
* Returns the closest Highlight object of the given objects based on the touch position inside the chart.
3838
*/
3939
protected abstract fun getClosestHighlight(index: Int, x: Float, y: Float): Highlight?
40+
41+
override fun getHighlightsAtXValue(
42+
xVal: Float,
43+
x: Float,
44+
y: Float
45+
): MutableList<Highlight>? = null
4046
}
387 Bytes
Loading
405 Bytes
Loading

0 commit comments

Comments
 (0)