Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,12 @@ class BarData : BarLineScatterCandleBubbleData<IBarDataSet> {
*/
fun groupBars(fromX: Float, groupSpace: Float, barSpace: Float) {
var fromX = fromX
val setCount = mDataSets.size
val setCount = dataSets?.size ?: 0
if (setCount <= 1) {
throw RuntimeException("BarData needs to hold at least 2 BarDataSets to allow grouping.")
}

val max = getMaxEntryCountSet()
val maxEntryCount = max.entryCount
val maxEntryCount = maxEntryCountSet?.entryCount ?: 0

val groupSpaceWidthHalf = groupSpace / 2f
val barSpaceHalf = barSpace / 2f
Expand All @@ -51,22 +50,23 @@ class BarData : BarLineScatterCandleBubbleData<IBarDataSet> {
val start = fromX
fromX += groupSpaceWidthHalf

for (set in mDataSets) {
fromX += barSpaceHalf
fromX += barWidthHalf
dataSets?.let {
for (set in dataSets) {
fromX += barSpaceHalf
fromX += barWidthHalf

if (i < set.entryCount) {
val entry = set.getEntryForIndex(i)
if (i < set.entryCount) {
val entry = set.getEntryForIndex(i)

if (entry != null) {
entry.x = fromX
if (entry != null) {
entry.x = fromX
}
}
}

fromX += barWidthHalf
fromX += barSpaceHalf
fromX += barWidthHalf
fromX += barSpaceHalf
}
}

fromX += groupSpaceWidthHalf
val end = fromX
val innerInterval = end - start
Expand All @@ -85,6 +85,9 @@ class BarData : BarLineScatterCandleBubbleData<IBarDataSet> {
* In case of grouped bars, this method returns the space an individual group of bar needs on the x-axis.
*/
fun getGroupWidth(groupSpace: Float, barSpace: Float): Float {
return mDataSets.size * (this.barWidth + barSpace) + groupSpace
return if (dataSets == null)
0f
else
dataSets!!.size * (this.barWidth + barSpace) + groupSpace
}
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
package com.github.mikephil.charting.data

import com.github.mikephil.charting.interfaces.datasets.IBarLineScatterCandleBubbleDataSet
import com.github.mikephil.charting.interfaces.datasets.IDataSet

/**
* Baseclass for all Line, Bar, Scatter, Candle and Bubble data.
*/
abstract class BarLineScatterCandleBubbleData<T : IBarLineScatterCandleBubbleDataSet<out Entry>> : ChartData<T> {
abstract class BarLineScatterCandleBubbleData<out T> : ChartData<@UnsafeVariance T>
where T : IDataSet<out Entry>,
T : IBarLineScatterCandleBubbleDataSet<out Entry> {

constructor() : super()

constructor(vararg sets: T) : super(*sets)
@Suppress("UNCHECKED_CAST")
constructor(vararg sets: @UnsafeVariance T) : super(*sets)

constructor(sets: MutableList<T>) : super(sets)
@Suppress("UNCHECKED_CAST")
constructor(sets: MutableList<@UnsafeVariance T>) : super(sets)
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,10 @@ class BubbleData : BarLineScatterCandleBubbleData<IBubbleDataSet> {
* for all DataSet objects this data object contains, in dp.
*/
fun setHighlightCircleWidth(width: Float) {
for (set in mDataSets) {
set.highlightCircleWidth = width
if (dataSets != null) {
for (set in dataSets) {
set.highlightCircleWidth = width
}
}
}
}
Loading
Loading