Skip to content

Commit f20d50d

Browse files
committed
Bar Renderer in Kotlin
1 parent 43ed954 commit f20d50d

17 files changed

+579
-565
lines changed

MPChartLib/src/main/java/com/github/mikephil/charting/renderer/BarChartRenderer.kt

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,11 @@ open class BarChartRenderer(
8888
private val barShadowRectBuffer = RectF()
8989

9090
init {
91-
highlightPaint = Paint(Paint.ANTI_ALIAS_FLAG)
92-
highlightPaint.style = Paint.Style.FILL
93-
highlightPaint.color = Color.rgb(0, 0, 0)
91+
paintHighlight = Paint(Paint.ANTI_ALIAS_FLAG)
92+
paintHighlight.style = Paint.Style.FILL
93+
paintHighlight.color = Color.rgb(0, 0, 0)
9494
// set alpha after color
95-
highlightPaint.alpha = 120
95+
paintHighlight.alpha = 120
9696

9797
shadowPaint = Paint(Paint.ANTI_ALIAS_FLAG)
9898
shadowPaint.style = Paint.Style.FILL
@@ -170,7 +170,7 @@ open class BarChartRenderer(
170170
val isInverted = chart.isInverted(dataSet.axisDependency)
171171

172172
if (isSingleColor) {
173-
renderPaint.color = dataSet.color
173+
paintRender.color = dataSet.color
174174
}
175175

176176
var j = 0
@@ -189,13 +189,13 @@ open class BarChartRenderer(
189189
if (!isSingleColor) {
190190
// Set the color for the currently drawn value. If the index
191191
// is out of bounds, reuse colors.
192-
renderPaint.color = dataSet.getColor(pos)
192+
paintRender.color = dataSet.getColor(pos)
193193
}
194194

195195
if (isCustomFill) {
196196
dataSet.getFill(pos)
197197
.fillRect(
198-
c, renderPaint,
198+
c, paintRender,
199199
buffer.buffer[j],
200200
buffer.buffer[j + 1],
201201
buffer.buffer[j + 2],
@@ -209,12 +209,12 @@ open class BarChartRenderer(
209209
RectF(
210210
buffer.buffer[j], buffer.buffer[j + 1], buffer.buffer[j + 2],
211211
buffer.buffer[j + 3]
212-
), roundedBarRadius, roundedBarRadius, renderPaint
212+
), roundedBarRadius, roundedBarRadius, paintRender
213213
)
214214
} else {
215215
c.drawRect(
216216
buffer.buffer[j], buffer.buffer[j + 1], buffer.buffer[j + 2],
217-
buffer.buffer[j + 3], renderPaint
217+
buffer.buffer[j + 3], paintRender
218218
)
219219
}
220220
}
@@ -277,7 +277,7 @@ open class BarChartRenderer(
277277

278278
// calculate the correct offset depending on the draw position of
279279
// the value
280-
val valueTextHeight = Utils.calcTextHeight(mValuePaint, "8").toFloat()
280+
val valueTextHeight = Utils.calcTextHeight(paintValues, "8").toFloat()
281281
posOffset = (if (drawValueAboveBar) -valueOffsetPlus else valueTextHeight + valueOffsetPlus)
282282
negOffset = (if (drawValueAboveBar) valueTextHeight + valueOffsetPlus else -valueOffsetPlus)
283283

@@ -512,8 +512,8 @@ open class BarChartRenderer(
512512

513513
val trans = chart.getTransformer(set.axisDependency)
514514

515-
highlightPaint.color = set.highLightColor
516-
highlightPaint.alpha = set.highLightAlpha
515+
paintHighlight.color = set.highLightColor
516+
paintHighlight.alpha = set.highLightAlpha
517517

518518
val isStack = if (high.stackIndex >= 0 && e.isStacked) true else false
519519

@@ -540,9 +540,9 @@ open class BarChartRenderer(
540540
setHighlightDrawPos(high, barRect)
541541

542542
if (drawRoundedBars) {
543-
c.drawRoundRect(RectF(barRect), roundedBarRadius, roundedBarRadius, highlightPaint)
543+
c.drawRoundRect(RectF(barRect), roundedBarRadius, roundedBarRadius, paintHighlight)
544544
} else {
545-
c.drawRect(barRect, highlightPaint)
545+
c.drawRect(barRect, paintHighlight)
546546
}
547547
}
548548
}

MPChartLib/src/main/java/com/github/mikephil/charting/renderer/BarLineScatterCandleBubbleRenderer.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@
88
import com.github.mikephil.charting.interfaces.datasets.IDataSet;
99
import com.github.mikephil.charting.utils.ViewPortHandler;
1010

11-
/**
12-
* Created by Philipp Jahoda on 09/06/16.
13-
*/
1411
public abstract class BarLineScatterCandleBubbleRenderer extends DataRenderer {
1512

1613
/**

MPChartLib/src/main/java/com/github/mikephil/charting/renderer/BubbleChartRenderer.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ open class BubbleChartRenderer(
8181

8282
val color = dataSet.getColor(j)
8383

84-
renderPaint.color = color
85-
c.drawCircle(pointBuffer[0], pointBuffer[1], shapeHalf, renderPaint)
84+
paintRender.color = color
85+
c.drawCircle(pointBuffer[0], pointBuffer[1], shapeHalf, paintRender)
8686
}
8787
}
8888

@@ -93,7 +93,7 @@ open class BubbleChartRenderer(
9393
if (isDrawingValuesAllowed(chart)) {
9494
val dataSets = bubbleData.dataSets
9595

96-
val lineHeight = Utils.calcTextHeight(mValuePaint, "1").toFloat()
96+
val lineHeight = Utils.calcTextHeight(paintValues, "1").toFloat()
9797

9898
for (i in dataSets.indices) {
9999
val dataSet = dataSets[i]
@@ -178,10 +178,10 @@ open class BubbleChartRenderer(
178178
private val _hsvBuffer = FloatArray(3)
179179

180180
init {
181-
renderPaint.style = Paint.Style.FILL
181+
paintRender.style = Paint.Style.FILL
182182

183-
highlightPaint.style = Paint.Style.STROKE
184-
highlightPaint.strokeWidth = Utils.convertDpToPixel(1.5f)
183+
paintHighlight.style = Paint.Style.STROKE
184+
paintHighlight.strokeWidth = Utils.convertDpToPixel(1.5f)
185185
}
186186

187187
override fun drawHighlighted(c: Canvas, indices: Array<Highlight>) {
@@ -246,9 +246,9 @@ open class BubbleChartRenderer(
246246
_hsvBuffer[2] *= 0.5f
247247
val color = Color.HSVToColor(Color.alpha(originalColor), _hsvBuffer)
248248

249-
highlightPaint.color = color
250-
highlightPaint.strokeWidth = set.highlightCircleWidth
251-
c.drawCircle(pointBuffer[0], pointBuffer[1], shapeHalf, highlightPaint)
249+
paintHighlight.color = color
250+
paintHighlight.strokeWidth = set.highlightCircleWidth
251+
c.drawCircle(pointBuffer[0], pointBuffer[1], shapeHalf, paintHighlight)
252252
}
253253
}
254254
}

MPChartLib/src/main/java/com/github/mikephil/charting/renderer/CandleStickChartRenderer.kt

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ open class CandleStickChartRenderer(
4141

4242
xBounds[chart] = dataSet
4343

44-
renderPaint.strokeWidth = dataSet.shadowWidth
44+
paintRender.strokeWidth = dataSet.shadowWidth
4545

4646
// draw the body
4747
for (j in xBounds.min..xBounds.range + xBounds.min) {
@@ -84,18 +84,18 @@ open class CandleStickChartRenderer(
8484

8585
// draw the shadows
8686
if (dataSet.shadowColorSameAsCandle) {
87-
if (open > close) renderPaint.color =
87+
if (open > close) paintRender.color =
8888
if (dataSet.decreasingColor == ColorTemplate.COLOR_NONE) dataSet.getColor(j) else dataSet.decreasingColor
89-
else if (open < close) renderPaint.color =
89+
else if (open < close) paintRender.color =
9090
if (dataSet.increasingColor == ColorTemplate.COLOR_NONE) dataSet.getColor(j) else dataSet.increasingColor
91-
else renderPaint.color = if (dataSet.neutralColor == ColorTemplate.COLOR_NONE) dataSet.getColor(j) else dataSet.neutralColor
91+
else paintRender.color = if (dataSet.neutralColor == ColorTemplate.COLOR_NONE) dataSet.getColor(j) else dataSet.neutralColor
9292
} else {
93-
renderPaint.color = if (dataSet.shadowColor == ColorTemplate.COLOR_NONE) dataSet.getColor(j) else dataSet.shadowColor
93+
paintRender.color = if (dataSet.shadowColor == ColorTemplate.COLOR_NONE) dataSet.getColor(j) else dataSet.shadowColor
9494
}
9595

96-
renderPaint.style = Paint.Style.STROKE
96+
paintRender.style = Paint.Style.STROKE
9797

98-
c.drawLines(shadowBuffers, renderPaint)
98+
c.drawLines(shadowBuffers, paintRender)
9999

100100
// calculate the body
101101
bodyBuffers[0] = xPos - 0.5f + barSpace
@@ -109,44 +109,44 @@ open class CandleStickChartRenderer(
109109
if (open > close) { // decreasing
110110

111111
if (dataSet.decreasingColor == ColorTemplate.COLOR_NONE) {
112-
renderPaint.color = dataSet.getColor(j)
112+
paintRender.color = dataSet.getColor(j)
113113
} else {
114-
renderPaint.color = dataSet.decreasingColor
114+
paintRender.color = dataSet.decreasingColor
115115
}
116116

117-
renderPaint.style = dataSet.decreasingPaintStyle
117+
paintRender.style = dataSet.decreasingPaintStyle
118118

119119
c.drawRect(
120120
bodyBuffers[0], bodyBuffers[3],
121121
bodyBuffers[2], bodyBuffers[1],
122-
renderPaint
122+
paintRender
123123
)
124124
} else if (open < close) {
125125
if (dataSet.increasingColor == ColorTemplate.COLOR_NONE) {
126-
renderPaint.color = dataSet.getColor(j)
126+
paintRender.color = dataSet.getColor(j)
127127
} else {
128-
renderPaint.color = dataSet.increasingColor
128+
paintRender.color = dataSet.increasingColor
129129
}
130130

131-
renderPaint.style = dataSet.increasingPaintStyle
131+
paintRender.style = dataSet.increasingPaintStyle
132132

133133
c.drawRect(
134134
bodyBuffers[0], bodyBuffers[1],
135135
bodyBuffers[2], bodyBuffers[3],
136-
renderPaint
136+
paintRender
137137
)
138138
} else { // equal values
139139

140140
if (dataSet.neutralColor == ColorTemplate.COLOR_NONE) {
141-
renderPaint.color = dataSet.getColor(j)
141+
paintRender.color = dataSet.getColor(j)
142142
} else {
143-
renderPaint.color = dataSet.neutralColor
143+
paintRender.color = dataSet.neutralColor
144144
}
145145

146146
c.drawLine(
147147
bodyBuffers[0], bodyBuffers[1],
148148
bodyBuffers[2], bodyBuffers[3],
149-
renderPaint
149+
paintRender
150150
)
151151
}
152152
} else {
@@ -183,21 +183,21 @@ open class CandleStickChartRenderer(
183183
else
184184
dataSet.neutralColor
185185

186-
renderPaint.color = barColor
186+
paintRender.color = barColor
187187
c.drawLine(
188188
rangeBuffers[0], rangeBuffers[1],
189189
rangeBuffers[2], rangeBuffers[3],
190-
renderPaint
190+
paintRender
191191
)
192192
c.drawLine(
193193
openBuffers[0], openBuffers[1],
194194
openBuffers[2], openBuffers[3],
195-
renderPaint
195+
paintRender
196196
)
197197
c.drawLine(
198198
closeBuffers[0], closeBuffers[1],
199199
closeBuffers[2], closeBuffers[3],
200-
renderPaint
200+
paintRender
201201
)
202202
}
203203
}

MPChartLib/src/main/java/com/github/mikephil/charting/renderer/CombinedChartRenderer.kt

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,50 +14,51 @@ import java.lang.ref.WeakReference
1414
/**
1515
* Renderer class that is responsible for rendering multiple different data-types.
1616
*/
17-
class CombinedChartRenderer(chart: CombinedChart, animator: ChartAnimator?, viewPortHandler: ViewPortHandler?) : DataRenderer(animator, viewPortHandler) {
17+
@Suppress("MemberVisibilityCanBePrivate")
18+
open class CombinedChartRenderer(chart: CombinedChart, animator: ChartAnimator, viewPortHandler: ViewPortHandler) : DataRenderer(animator, viewPortHandler) {
1819
/**
1920
* all rederers for the different kinds of data this combined-renderer can draw
2021
*/
21-
protected var mRenderers: MutableList<DataRenderer> = ArrayList(5)
22+
protected var dataRenderers: MutableList<DataRenderer> = ArrayList(5)
2223

23-
protected var mChart: WeakReference<Chart<*>> = WeakReference(chart)
24+
protected var weakChart: WeakReference<Chart<*>> = WeakReference(chart)
2425

2526
/**
2627
* Creates the renderers needed for this combined-renderer in the required order. Also takes the DrawOrder into
2728
* consideration.
2829
*/
2930
fun createRenderers() {
30-
mRenderers.clear()
31+
dataRenderers.clear()
3132

32-
val chart = mChart.get() as CombinedChart? ?: return
33+
val chart = weakChart.get() as CombinedChart? ?: return
3334

3435
val orders = chart.drawOrder
3536

3637
for (order in orders) {
3738
when (order) {
38-
DrawOrder.BAR -> if (chart.barData != null) mRenderers.add(BarChartRenderer(chart, animator, viewPortHandler))
39-
DrawOrder.BUBBLE -> if (chart.bubbleData != null) mRenderers.add(BubbleChartRenderer(chart, animator, viewPortHandler))
40-
DrawOrder.LINE -> mRenderers.add(LineChartRenderer(chart, animator, viewPortHandler))
41-
DrawOrder.CANDLE -> if (chart.candleData != null) mRenderers.add(CandleStickChartRenderer(chart, animator, viewPortHandler))
42-
DrawOrder.SCATTER -> if (chart.scatterData != null) mRenderers.add(ScatterChartRenderer(chart, animator, viewPortHandler))
39+
DrawOrder.BAR -> if (chart.barData != null) dataRenderers.add(BarChartRenderer(chart, animator, viewPortHandler))
40+
DrawOrder.BUBBLE -> if (chart.bubbleData != null) dataRenderers.add(BubbleChartRenderer(chart, animator, viewPortHandler))
41+
DrawOrder.LINE -> dataRenderers.add(LineChartRenderer(chart, animator, viewPortHandler))
42+
DrawOrder.CANDLE -> if (chart.candleData != null) dataRenderers.add(CandleStickChartRenderer(chart, animator, viewPortHandler))
43+
DrawOrder.SCATTER -> if (chart.scatterData != null) dataRenderers.add(ScatterChartRenderer(chart, animator, viewPortHandler))
4344
}
4445
}
4546
}
4647

4748
override fun initBuffers() {
48-
for (renderer in mRenderers) renderer.initBuffers()
49+
for (renderer in dataRenderers) renderer.initBuffers()
4950
}
5051

5152
override fun drawData(c: Canvas) {
52-
for (renderer in mRenderers) renderer.drawData(c)
53+
for (renderer in dataRenderers) renderer.drawData(c)
5354
}
5455

5556
override fun drawValues(c: Canvas) {
56-
for (renderer in mRenderers) renderer.drawValues(c)
57+
for (renderer in dataRenderers) renderer.drawValues(c)
5758
}
5859

5960
override fun drawExtras(c: Canvas) {
60-
for (renderer in mRenderers) renderer.drawExtras(c)
61+
for (renderer in dataRenderers) renderer.drawExtras(c)
6162
}
6263

6364
protected var mHighlightBuffer: MutableList<Highlight> = ArrayList()
@@ -67,9 +68,9 @@ class CombinedChartRenderer(chart: CombinedChart, animator: ChartAnimator?, view
6768
}
6869

6970
override fun drawHighlighted(c: Canvas, indices: Array<Highlight>) {
70-
val chart = mChart.get() ?: return
71+
val chart = weakChart.get() ?: return
7172

72-
for (renderer in mRenderers) {
73+
for (renderer in dataRenderers) {
7374
var data: ChartData<*>? = null
7475

7576
if (renderer is BarChartRenderer) data = renderer.chart.barData
@@ -100,8 +101,8 @@ class CombinedChartRenderer(chart: CombinedChart, animator: ChartAnimator?, view
100101
* @return
101102
*/
102103
fun getSubRenderer(index: Int): DataRenderer? {
103-
return if (index >= mRenderers.size || index < 0) null
104-
else mRenderers[index]
104+
return if (index >= dataRenderers.size || index < 0) null
105+
else dataRenderers[index]
105106
}
106107

107108
val subRenderers: List<DataRenderer>
@@ -110,9 +111,9 @@ class CombinedChartRenderer(chart: CombinedChart, animator: ChartAnimator?, view
110111
*
111112
* @return
112113
*/
113-
get() = mRenderers
114+
get() = dataRenderers
114115

115116
fun setSubRenderers(renderers: MutableList<DataRenderer>) {
116-
this.mRenderers = renderers
117+
this.dataRenderers = renderers
117118
}
118119
}

0 commit comments

Comments
 (0)