Skip to content

Commit

Permalink
CategoryAxis: update category axis from dataset labels
Browse files Browse the repository at this point in the history
  • Loading branch information
wirew0rm committed Sep 27, 2023
1 parent ee5fb7d commit c44c7b5
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 0 deletions.
11 changes: 11 additions & 0 deletions chartfx-chart/src/main/java/io/fair_acc/chartfx/Chart.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import io.fair_acc.bench.MeasurementRecorder;
import io.fair_acc.chartfx.axes.Axis;
import io.fair_acc.chartfx.axes.spi.AbstractAxis;
import io.fair_acc.chartfx.axes.spi.CategoryAxis;
import io.fair_acc.chartfx.axes.spi.DefaultNumericAxis;
import io.fair_acc.chartfx.legend.Legend;
import io.fair_acc.chartfx.legend.spi.DefaultLegend;
Expand Down Expand Up @@ -515,6 +516,16 @@ protected void runPreLayout() {
}
}

if (getBitState().isDirty(ChartBits.DataSetData)) {
for (Axis axis : getAxes()) {
if (axis instanceof CategoryAxis categoryAxis) { // update category axes
getRenderers().stream().filter(renderer -> renderer.usedAxes().contains(categoryAxis)).findFirst() //
.flatMap(renderer -> renderer.getDatasets().stream().findFirst()) //
.ifPresent(categoryAxis::updateCategories);

Check warning on line 524 in chartfx-chart/src/main/java/io/fair_acc/chartfx/Chart.java

View check run for this annotation

Codecov / codecov/patch

chartfx-chart/src/main/java/io/fair_acc/chartfx/Chart.java#L522-L524

Added lines #L522 - L524 were not covered by tests
}
}
}

for (ChartPlugin plugin : plugins) {
plugin.runPreLayout();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package io.fair_acc.chartfx.renderer;

import java.util.List;

import javafx.beans.property.BooleanProperty;
import javafx.collections.ObservableList;
import javafx.scene.Node;
import javafx.scene.canvas.Canvas;

import io.fair_acc.bench.Measurable;
import io.fair_acc.bench.MeasurementRecorder;
import io.fair_acc.chartfx.Chart;
import io.fair_acc.chartfx.axes.Axis;
import io.fair_acc.chartfx.axes.spi.AxisRange;
Expand Down Expand Up @@ -142,4 +145,6 @@ default Node getNode() {
// add nothing if not needed
return null;
}

List<Axis> usedAxes();
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package io.fair_acc.chartfx.renderer.spi;

import java.security.InvalidParameterException;
import java.util.List;

import javafx.geometry.Orientation;
import javafx.scene.canvas.GraphicsContext;
Expand Down Expand Up @@ -40,6 +41,11 @@ private XYChart requireChartXY(Chart chart) {
+ this.getClass().getSimpleName());
}

@Override
public List<Axis> usedAxes() {
return List.of(xAxis, yAxis);

Check warning on line 46 in chartfx-chart/src/main/java/io/fair_acc/chartfx/renderer/spi/AbstractRendererXY.java

View check run for this annotation

Codecov / codecov/patch

chartfx-chart/src/main/java/io/fair_acc/chartfx/renderer/spi/AbstractRendererXY.java#L46

Added line #L46 was not covered by tests
}

@Override
public XYChart getChart() {
return (XYChart) super.getChart();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,11 @@ public static DefaultNumericAxis createZAxis() {
return zAxis;
}

@Override
public List<Axis> usedAxes() {
return List.of(xAxis, yAxis, zAxis);

Check warning on line 76 in chartfx-chart/src/main/java/io/fair_acc/chartfx/renderer/spi/AbstractRendererXYZ.java

View check run for this annotation

Codecov / codecov/patch

chartfx-chart/src/main/java/io/fair_acc/chartfx/renderer/spi/AbstractRendererXYZ.java#L76

Added line #L76 was not covered by tests
}

public void shiftZAxisToLeft() {
zAxis.setSide(Side.LEFT);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,11 @@ public int getGlobalIndexOffset() {
return 0;
}

@Override
public List<Axis> usedAxes() {
return List.of(chart.getXAxis(), chart.getYAxis());

Check warning on line 376 in chartfx-chart/src/main/java/io/fair_acc/chartfx/renderer/spi/GridRenderer.java

View check run for this annotation

Codecov / codecov/patch

chartfx-chart/src/main/java/io/fair_acc/chartfx/renderer/spi/GridRenderer.java#L376

Added line #L376 was not covered by tests
}

@Override
public List<CssMetaData<? extends Styleable, ?>> getCssMetaData() {
return getClassCssMetaData();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import java.security.InvalidParameterException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

import javafx.beans.property.BooleanProperty;
Expand Down Expand Up @@ -328,6 +330,11 @@ public BooleanProperty showInLegendProperty() {
return null;
}

@Override
public List<Axis> usedAxes() {
return Collections.emptyList();

Check warning on line 335 in chartfx-chart/src/main/java/io/fair_acc/chartfx/renderer/spi/MetaDataRenderer.java

View check run for this annotation

Codecov / codecov/patch

chartfx-chart/src/main/java/io/fair_acc/chartfx/renderer/spi/MetaDataRenderer.java#L335

Added line #L335 was not covered by tests
}

protected void updateInfoBoxLocation() {
final Side side = getInfoBoxSide();

Expand Down

0 comments on commit c44c7b5

Please sign in to comment.