Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8096737

Charts force zero in range doesn't affect immidiately.

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • P4
    • 8u20
    • 7u6, 8
    • javafx
    • 2.2.0b15

    Description

      You may see it on the attached movie.

      I added some data to chart - one line.

      After that I set lower bound to value > 0, so zero is not in shown range. I set autoranging to true, and force zero in range to true sequently. It doesn't affect. After that I add additional data, which has the minX value (minimal X argument) more then 0 again (not to affect on appearing of zero in range). After that option on zero in range forcing affected.

      Code to reproduce:

      import java.util.Arrays;
      import java.util.Comparator;
      import java.util.Random;
      import javafx.application.Application;
      import javafx.collections.FXCollections;
      import javafx.collections.ObservableList;
      import javafx.scene.Scene;
      import javafx.scene.chart.LineChart;
      import javafx.scene.chart.NumberAxis;
      import javafx.scene.chart.XYChart;
      import javafx.scene.control.ToggleButton;
      import javafx.scene.layout.Pane;
      import javafx.scene.layout.VBox;
      import javafx.stage.Stage;

      public class JavaCharts extends Application {

          public static void main(String[] args) {
              launch(args);
          }
          NumberAxis axis1 = new NumberAxis(0, 100, 10);
          NumberAxis axis2 = new NumberAxis(0, 100, 10);
          LineChart testedLineChart = new LineChart(axis1, axis2);
          VBox vb = new VBox();

          @Override
          public void start(Stage stage) throws Exception {
              testedLineChart.setTitle("LineChart");
              testedLineChart.setStyle("-fx-border-color: darkgray;");

              ObservableList list = FXCollections.observableArrayList();
              int max = 100;
              int min = 30;

              for (int i = 0; i < 30; i++) {
                  XYChart.Data newData = new XYChart.Data();
                  newData.setXValue(new Random().nextDouble() * (max - min) + min);
                  newData.setYValue(new Random().nextDouble() * (max - min) + min);
                  list.add(newData);
              }
              Object[] array = list.toArray();
              Arrays.sort(array, new Comparator() {

                  @Override
                  public int compare(Object t, Object t1) {
                      return (int) Math.round(((Double) ((XYChart.Data) t).getXValue()) - ((Double) ((XYChart.Data) t1).getXValue()));
                  }
              });

              XYChart.Series serie = new XYChart.Series("serie", FXCollections.observableArrayList(array));

              testedLineChart.getData().add(serie);

              Pane pane = new Pane();
              pane.setPrefSize(600, 600);

              axis1.setLowerBound(min);

              ToggleButton tb1 = new ToggleButton("Autoranging");
              tb1.selectedProperty().bindBidirectional(axis1.autoRangingProperty());

              ToggleButton tb2 = new ToggleButton("Force zero in range");
              tb2.selectedProperty().bindBidirectional(axis1.forceZeroInRangeProperty());

              pane.setPrefSize(600, 600);
              pane.getChildren().add(testedLineChart);

              vb.getChildren().addAll(pane, tb1, tb2);

              Scene scene = new Scene(vb, 700, 700);
              stage.setScene(scene);
              stage.show();
          }
      }


      Just switch toggle buttons, to change autoRanging and forceZeroInRange properties' values.

      Attachments

        Issue Links

          Activity

            People

              jgiles Jonathan Giles
              akirov Alexander Kirov (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                Imported: