/*******************************************************************************
* Copyright (c) 2004, 2010 BREDEX GmbH.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* BREDEX GmbH - initial API and implementation and/or initial documentation
*******************************************************************************/
package org.eclipse.jubula.examples.extension.javafx.aut;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.chart.PieChart;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class PieChartExampleAUT extends Application {
/** current amount of data */
int dataAmount = 0;
/** default amount of data */
int defaultAmount = 5;
/** data list */
ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList();
@Override
public void start(Stage stage) {
Pane root = new VBox();
Scene scene = new Scene(root);
stage.setTitle("Pie Chart Example"); //$NON-NLS-1$
stage.setWidth(500);
stage.setHeight(500);
while (dataAmount < defaultAmount) {
addData();
}
final PieChart chart = new PieChart(pieChartData);
chart.setTitle("Random Data"); //$NON-NLS-1$
chart.setId("pieChart"); //$NON-NLS-1$
Pane buttonArea = new HBox();
root.getChildren().addAll(chart, buttonArea);
Button plus = new Button("+"); //$NON-NLS-1$
plus.setId("plusButton"); //$NON-NLS-1$
plus.setPrefWidth(50);
plus.setOnMouseClicked(e -> {
addData();
});
Button minus = new Button("-"); //$NON-NLS-1$
minus.setId("minusButton"); //$NON-NLS-1$
minus.setPrefWidth(50);
minus.setOnMouseClicked(e -> {
removeData();
});
buttonArea.getChildren().addAll(plus, minus);
stage.setScene(scene);
stage.show();
}
/** adds a data set */
private void addData() {
pieChartData.add(new PieChart.Data("Data" + dataAmount, Math.random())); //$NON-NLS-1$
dataAmount++;
}
/** removes one data set */
private void removeData() {
if (dataAmount > 0) {
pieChartData.remove(dataAmount - 1);
dataAmount--;
}
}
}