package testing;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Line;
import javafx.stage.Stage;
import layout.panes.PhysicalVBox;
/**
* An abstract template for example applications. This class creates the basic
* prerequisites (layout and simulation) along with a GUI to start, stop and
* reset the simulation.
*
* @author Christoph Burschka <christoph@burschka.de>
*/
public class VBoxTest extends Application {
public static final int WIDTH = 1024;
public static final int HEIGHT = 768;
public static final int NODE_COUNT = 2;
public static final int NODE_SIZE = 20;
PhysicalVBox canvas;
Pane root;
Stage primaryStage;
private final Circle[] circles;
/**
* Super-constructor for all examples.
*/
public VBoxTest() {
circles = new Circle[NODE_COUNT];
for (int i = 0; i < NODE_COUNT; i++) {
circles[i] = new Circle();
circles[i].setFill(Color.hsb(360.0 * i / NODE_COUNT, 1.0, 0.5));
circles[i].setRadius(NODE_SIZE);
}
//MouseControlUtil.makeDraggable(circles[1]);
canvas = new PhysicalVBox(10, circles);
for (int i = 0; i < NODE_COUNT - 1; i++) {
Line line = new Line();
line.setFill(Color.BLACK);
line.setStroke(Color.BLACK);
line.startXProperty().bind(circles[i].layoutXProperty().add(circles[i].translateXProperty()));
line.startYProperty().bind(circles[i].layoutYProperty().add(circles[i].translateYProperty()));
line.endXProperty().bind(circles[(i + 1) % NODE_COUNT].layoutXProperty().add(circles[(i + 1) % NODE_COUNT].translateXProperty()));
line.endYProperty().bind(circles[(i + 1) % NODE_COUNT].layoutYProperty().add(circles[(i + 1) % NODE_COUNT].translateYProperty()));
canvas.getChildren().add(line);
line.setManaged(false);
}
for (Circle circle : circles) {
circle.setTranslateX((Math.random() - 0.5) * WIDTH);
circle.setTranslateY((Math.random() - 0.5) * HEIGHT);
}
root = canvas;
canvas.setLayoutX((WIDTH / 2));
canvas.setLayoutY((HEIGHT / 2));
}
/**
* Sets up the application. This is called internally; the proper method to
* start the application is launch().
*
* @param primaryStage
*/
@Override
public void start(Stage primaryStage) {
this.primaryStage = primaryStage;
Scene scene = new Scene(root, WIDTH, HEIGHT);
primaryStage.setScene(scene);
primaryStage.setTitle("VBox Test");
primaryStage.show();
}
public static void main(String[] args) {
System.err.println("TEST");
launch(args);
}
}