Skip to content

Commit 3609f4c

Browse files
authored
Merge pull request #36 from xdev-software/add-bardataset-stack
Add bardataset stack
2 parents 6d3537d + 0508cf5 commit 3609f4c

File tree

4 files changed

+65
-8
lines changed

4 files changed

+65
-8
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## 1.0.1
2+
* Added support for [stacked bar chart with groups](https://www.chartjs.org/docs/latest/samples/bar/stacked-groups.html)
3+
14
## 1.0.0
25
Initial release
36

chartjs-java-model/src/main/java/software/xdev/chartjs/model/dataset/BarDataset.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class BarDataset extends BackgroundBorderHoverDataset<BarDataset, BigDeci
2929
private String xAxisID;
3030
private String yAxisID;
3131
private final List<BorderSkipped> borderSkipped = new OptionalArray<>();
32-
32+
private String stack;
3333

3434
public String getLabel()
3535
{
@@ -84,4 +84,15 @@ public BarDataset setBorderSkipped(final List<BorderSkipped> borderSkipped)
8484
}
8585
return this;
8686
}
87+
88+
public String getStack()
89+
{
90+
return this.stack;
91+
}
92+
93+
public BarDataset setStack(final String stack)
94+
{
95+
this.stack = stack;
96+
return this;
97+
}
8798
}

chartjs-java-model/src/test/java/software/xdev/chartjs/model/BarChartTest.java

Lines changed: 50 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@ void testStacked()
9090
.addDataset(dataset1)
9191
.addDataset(dataset2);
9292

93-
final BarOptions options = new BarOptions();
94-
options.setAnimation(false);
93+
final BarOptions options = new BarOptions()
94+
.setAnimation(false);
9595
options
9696
.getScales()
9797
.addScale(Scales.ScaleAxis.X, new BarScale<>().setStacked(true))
@@ -120,8 +120,8 @@ void testTicked()
120120
.setMax(100)
121121
.setStepSize(5);
122122

123-
final BarOptions options = new BarOptions();
124-
options.setAnimation(false);
123+
final BarOptions options = new BarOptions()
124+
.setAnimation(false);
125125
options
126126
.getScales()
127127
.addScale(Scales.ScaleAxis.Y, new BarScale<LinearTicks>().setTicks(ticks));
@@ -150,9 +150,9 @@ void testStackedHorizontal()
150150
.addDataset(dataset1)
151151
.addDataset(dataset2);
152152

153-
final BarOptions options = new BarOptions();
154-
options.setAnimation(false);
155-
options.setIndexAxis(BarOptions.IndexAxis.Y);
153+
final BarOptions options = new BarOptions()
154+
.setAnimation(false)
155+
.setIndexAxis(BarOptions.IndexAxis.Y);
156156
options
157157
.getScales()
158158
.addScale(Scales.ScaleAxis.X, new BarScale<>().setStacked(true))
@@ -164,4 +164,47 @@ void testStackedHorizontal()
164164
"StackedHorizontal"
165165
);
166166
}
167+
168+
@Test
169+
void testStackedWithGroups()
170+
{
171+
// This test orients itself on https://www.chartjs.org/docs/4.4.0/samples/bar/stacked-groups.html
172+
final BarDataset dataset1 = new BarDataset()
173+
.setLabel("First stack")
174+
.setData(65, 59, 80)
175+
.addBackgroundColors(Color.RED, Color.RED, Color.RED)
176+
.setStack("Stack 1");
177+
178+
final BarDataset dataset2 = new BarDataset()
179+
.setLabel("Second stack")
180+
.setData(28, 45, 10)
181+
.addBackgroundColors(Color.GREEN, Color.GREEN, Color.GREEN)
182+
.setStack("Stack 1");
183+
184+
final BarDataset dataset3 = new BarDataset()
185+
.setLabel("Third stack")
186+
.setData(10, 23, 45)
187+
.addBackgroundColors(Color.BLUE, Color.BLUE, Color.BLUE)
188+
.setStack("Stack 2");
189+
190+
final BarData data = new BarData()
191+
.addLabels("First", "Second", "Third")
192+
.addDataset(dataset1)
193+
.addDataset(dataset2)
194+
.addDataset(dataset3);
195+
196+
final BarOptions options = new BarOptions()
197+
.setAnimation(false)
198+
.setIndexAxis(BarOptions.IndexAxis.Y);
199+
options
200+
.getScales()
201+
.addScale(Scales.ScaleAxis.X, new BarScale<>().setStacked(true))
202+
.addScale(Scales.ScaleAxis.Y, new BarScale<>().setStacked(true));
203+
204+
this.createScreenshotAndCompare(
205+
new BarChart(data, options),
206+
this.getWebContainer(),
207+
"StackedWithGroups"
208+
);
209+
}
167210
}
Loading

0 commit comments

Comments
 (0)