functional/SceneGraphTests/src/test/scenegraph/fullscreen/FSTestApp.java
Print this page
*** 42,53 ****
import javafx.scene.input.KeyCombination;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
! import javafx.scene.shape.CircleBuilder;
! import javafx.scene.shape.LineBuilder;
import javafx.scene.text.Text;
import javafx.stage.Modality;
import javafx.stage.Screen;
import javafx.stage.Stage;
import javafx.util.Duration;
--- 42,52 ----
import javafx.scene.input.KeyCombination;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
! import javafx.scene.shape.Line;
import javafx.scene.text.Text;
import javafx.stage.Modality;
import javafx.stage.Screen;
import javafx.stage.Stage;
import javafx.util.Duration;
*** 78,188 ****
@Override
public void start(final Stage primaryStage) {
primaryStage.setTitle("FSTestApp");
primaryStage.setResizable(resizable);
! GridPane buttonsPane = GridPaneBuilder.create()
! .padding(new Insets(10))
! .alignment(Pos.CENTER)
! .columnConstraints(new ColumnConstraints(200), new ColumnConstraints(200))
! .rowConstraints(new RowConstraints(30), new RowConstraints(30),
! new RowConstraints(30), new RowConstraints(30),
! new RowConstraints(30))
! .build();
!
! final TextArea logTextArea = TextAreaBuilder.create()
! .editable(false)
! .build();
! //Timer for update logTextArea
! Timeline updateLogTimeline = TimelineBuilder.create()
! .keyFrames(new KeyFrame(Duration.seconds(0.1), new EventHandler<ActionEvent>() {
public void handle(ActionEvent t) {
logTextArea.insertText(logTextArea.getLength(), log.toString());
log.delete(0, log.length());
}
! }, ( KeyValue[])null)) // cast null to suppress compiler warning
! .cycleCount(-1)
! .build();
//<editor-fold defaultstate="collapsed" desc="Menu">
! MenuBar menu = MenuBarBuilder.create()
! .menus(
! MenuBuilder.create()
! .text("_Menu1")
! .onShown(new EventHandler<Event>() {
!
public void handle(Event t) {
log.append("Menu 1 Shown\n");
}
! })
! .onHidden(new EventHandler<Event>() {
!
public void handle(Event t) {
log.append("Menu 1 Hidden\n");
}
! })
! .mnemonicParsing(true)
! .items(
! MenuItemBuilder.create()
! .mnemonicParsing(true)
! .onAction(new EventHandler<ActionEvent>() {
!
public void handle(ActionEvent t) {
log.append("Menu Item 1 Action\n");
}
! })
! .accelerator(KeyCombination.keyCombination("ctrl+m"))
! .text("Menu _Item 1")
! .build(),
! MenuItemBuilder.create()
! .mnemonicParsing(true)
! .text("Menu I_tem 2")
! .build())
! .build(),
! MenuBuilder.create()
! .mnemonicParsing(true)
! .text("M_enu2")
! .onShown(new EventHandler<Event>() {
!
public void handle(Event t) {
log.append("Menu 2 Shown\n");
}
! })
! .onHidden(new EventHandler<Event>() {
!
public void handle(Event t) {
log.append("Menu 2 Hidden\n");
}
! })
! .items(
! MenuItemBuilder.create()
! .mnemonicParsing(true)
! .text("Menu _Item 1")
! .build(),
! MenuItemBuilder.create()
! .mnemonicParsing(true)
! .text("Menu I_tem 2")
! .build(),
! MenuItemBuilder.create()
! .mnemonicParsing(true)
! .text("Menu Ite_m 3")
! .build())
! .build())
! .useSystemMenuBar(true)
! .build();
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Fullscreen indicator">
! final Circle fullscreenIndicator =
! CircleBuilder.create()
! .radius(6)
! .fill(Color.RED)
! .effect(new InnerShadow())
! .build();
primaryStage.fullScreenProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
--- 77,163 ----
@Override
public void start(final Stage primaryStage) {
primaryStage.setTitle("FSTestApp");
primaryStage.setResizable(resizable);
! GridPane buttonsPane = new GridPane();
! buttonsPane.setPadding(new Insets(10));
! buttonsPane.setAlignment(Pos.CENTER);
! buttonsPane.getColumnConstraints().add(new ColumnConstraints(200));
! buttonsPane.getColumnConstraints().add(new ColumnConstraints(200));
! buttonsPane.getRowConstraints().add(new RowConstraints(30));
! buttonsPane.getRowConstraints().add(new RowConstraints(30));
! buttonsPane.getRowConstraints().add(new RowConstraints(30));
! buttonsPane.getRowConstraints().add(new RowConstraints(30));
! buttonsPane.getRowConstraints().add(new RowConstraints(30));
! final TextArea logTextArea = new TextArea();
! logTextArea.setEditable(false);
+ //Timer for update logTextArea
+ Timeline updateLogTimeline = new Timeline(new KeyFrame(Duration.seconds(0.1), new EventHandler<ActionEvent>() {
public void handle(ActionEvent t) {
logTextArea.insertText(logTextArea.getLength(), log.toString());
log.delete(0, log.length());
}
! }, ( KeyValue[])null)); // cast null to suppress compiler warning
! updateLogTimeline.setCycleCount(-1);
//<editor-fold defaultstate="collapsed" desc="Menu">
! Menu menu1 = new Menu("_Menu1");
! menu1.setOnShown(new EventHandler<Event>() {
public void handle(Event t) {
log.append("Menu 1 Shown\n");
}
! });
! menu1.setOnHidden(new EventHandler<Event>() {
public void handle(Event t) {
log.append("Menu 1 Hidden\n");
}
! });
! menu1.setMnemonicParsing(true);
! MenuItem mi11 = new MenuItem("Menu _Item 1");
! mi11.setAccelerator(KeyCombination.keyCombination("ctrl+m"));
! mi11.setMnemonicParsing(true);
! mi11.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent t) {
log.append("Menu Item 1 Action\n");
}
! });
! MenuItem mi12 = new MenuItem("Menu I_tem 2");
! mi12.setMnemonicParsing(true);
! menu1.getItems().addAll(mi11, mi12);
!
! Menu menu2 = new Menu("M_enu2");
! menu2.setMnemonicParsing(true);
! menu2.setOnShown(new EventHandler<Event>() {
public void handle(Event t) {
log.append("Menu 2 Shown\n");
}
! });
! menu2.setOnHidden(new EventHandler<Event>() {
public void handle(Event t) {
log.append("Menu 2 Hidden\n");
}
! });
! MenuItem mi21 = new MenuItem("Menu _Item 1");
! mi21.setMnemonicParsing(true);
! MenuItem mi22 = new MenuItem("Menu I_tem 2");
! mi22.setMnemonicParsing(true);
! MenuItem mi23 = new MenuItem("Menu Ite_m 3");
! mi23.setMnemonicParsing(true);
! menu1.getItems().addAll(mi21, mi22, mi23);
!
! MenuBar menu = new MenuBar(menu1, menu2);
! menu.setUseSystemMenuBar(true);
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Fullscreen indicator">
! final Circle fullscreenIndicator = new Circle(6);
! fullscreenIndicator.setFill(Color.RED);
! fullscreenIndicator.setEffect(new InnerShadow());
primaryStage.fullScreenProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
*** 190,361 ****
}
});
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Fullscreen false Button">
! Button setFSFalseButton = ButtonBuilder.create()
! .text("Set fullscreen false")
! .alignment(Pos.CENTER)
! .prefWidth(180)
! .onMouseClicked(new EventHandler<MouseEvent>() {
!
@Override
public void handle(MouseEvent arg0) {
primaryStage.setFullScreen(false);
}
! })
! .build();
!
buttonsPane.add(setFSFalseButton, 0, 0);
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Fullscreen true Button">
! Button setFSTrueButton = ButtonBuilder.create()
! .text("Set fullscreen true")
! .alignment(Pos.CENTER)
! .prefWidth(180)
! .onMouseClicked(new EventHandler<MouseEvent>() {
!
@Override
public void handle(MouseEvent arg0) {
primaryStage.setFullScreen(true);
}
! })
! .build();
!
buttonsPane.add(setFSTrueButton, 1, 0);
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Center Button">
! Button centerButton = ButtonBuilder.create()
! .text("Center")
! .alignment(Pos.CENTER)
! .prefWidth(180)
! .onMouseClicked(new EventHandler<MouseEvent>() {
!
@Override
public void handle(MouseEvent arg0) {
primaryStage.centerOnScreen();
}
! })
! .build();
!
buttonsPane.add(centerButton, 0, 1);
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Close Button">
! Button closeButton = ButtonBuilder.create()
! .text("Close")
! .alignment(Pos.CENTER)
! .prefWidth(180)
! .onMouseClicked(new EventHandler<MouseEvent>() {
!
@Override
public void handle(MouseEvent arg0) {
primaryStage.close();
}
! })
! .build();
!
buttonsPane.add(closeButton, 1, 1);
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Size to scene Button">
! Button sizeToSceneButton = ButtonBuilder.create()
! .text("Size to scene")
! .alignment(Pos.CENTER)
! .prefWidth(180)
! .onMouseClicked(new EventHandler<MouseEvent>() {
!
@Override
public void handle(MouseEvent arg0) {
primaryStage.sizeToScene();
}
! })
! .build();
!
buttonsPane.add(sizeToSceneButton, 0, 2);
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Show modality window Button">
! Button showModalityWindowButton = ButtonBuilder.create()
! .text("Show modality window")
! .alignment(Pos.CENTER)
! .prefWidth(180)
! .onMouseClicked(new EventHandler<MouseEvent>() {
!
@Override
public void handle(MouseEvent arg0) {
Stage modalityStage = new Stage();
modalityStage.initModality(Modality.APPLICATION_MODAL);
modalityStage.setScene(createTestGridScene());
modalityStage.setResizable(resizable);
modalityStage.show();
}
! })
! .build();
!
buttonsPane.add(showModalityWindowButton, 1, 2);
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Resizable Button">
! Button resizableButton = ButtonBuilder.create()
! .text(resizable ? "Not resizable" : "Resizable")
! .alignment(Pos.CENTER)
! .prefWidth(180)
! .onMouseClicked(new EventHandler<MouseEvent>() {
!
@Override
public void handle(MouseEvent arg0) {
runJVMProcess(FSTestApp.this.getClass().getName(), String.valueOf(!resizable));
primaryStage.close();
}
! }).build();
!
buttonsPane.add(resizableButton, 0, 3);
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Opacity Slider">
! Slider opacitySlider = SliderBuilder.create()
! .maxWidth(180)
! .value(1)
! .min(0)
! .max(1)
! .build();
primaryStage.opacityProperty().bindBidirectional(opacitySlider.valueProperty());
-
-
buttonsPane.add(opacitySlider, 1, 3);
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="System menu ToggleButton">
! ToggleButton useSystemMenuToggleButton = ToggleButtonBuilder.create()
! .text("Use system menu")
! .alignment(Pos.CENTER)
! .prefWidth(180)
! .build();
!
menu.useSystemMenuBarProperty().bindBidirectional(useSystemMenuToggleButton.selectedProperty());
buttonsPane.add(useSystemMenuToggleButton, 0, 4);
//</editor-fold>
! VBox root = VBoxBuilder.create()
! .children(
! menu,
! HBoxBuilder.create()
! .alignment(Pos.CENTER)
! .padding(new Insets(5))
! .children(
! fullscreenIndicator,
! new Text("Fullscreen"))
! .build(),
! buttonsPane,
! logTextArea)
! .build();
!
!
primaryStage.setScene(new Scene(root, 400, 400));
primaryStage.setMinHeight(400);
primaryStage.setMinWidth(400);
primaryStage.show();
--- 165,290 ----
}
});
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Fullscreen false Button">
! Button setFSFalseButton = new Button("Set fullscreen false");
! setFSFalseButton.setAlignment(Pos.CENTER);
! setFSFalseButton.setPrefWidth(180);
! setFSFalseButton.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent arg0) {
primaryStage.setFullScreen(false);
}
! });
buttonsPane.add(setFSFalseButton, 0, 0);
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Fullscreen true Button">
! Button setFSTrueButton = new Button("Set fullscreen true");
! setFSTrueButton.setAlignment(Pos.CENTER);
! setFSTrueButton.setPrefWidth(180);
! setFSTrueButton.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent arg0) {
primaryStage.setFullScreen(true);
}
! });
buttonsPane.add(setFSTrueButton, 1, 0);
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Center Button">
! Button centerButton = new Button("Center");
! centerButton.setAlignment(Pos.CENTER);
! centerButton.setPrefWidth(180);
! centerButton.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent arg0) {
primaryStage.centerOnScreen();
}
! });
buttonsPane.add(centerButton, 0, 1);
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Close Button">
! Button closeButton = new Button("Close");
! closeButton.setAlignment(Pos.CENTER);
! closeButton.setPrefWidth(180);
! closeButton.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent arg0) {
primaryStage.close();
}
! });
buttonsPane.add(closeButton, 1, 1);
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Size to scene Button">
! Button sizeToSceneButton = new Button("Size to scene");
! sizeToSceneButton.setAlignment(Pos.CENTER);
! sizeToSceneButton.setPrefWidth(180);
! sizeToSceneButton.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent arg0) {
primaryStage.sizeToScene();
}
! });
buttonsPane.add(sizeToSceneButton, 0, 2);
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Show modality window Button">
! Button showModalityWindowButton = new Button("Show modality window");
! showModalityWindowButton.setAlignment(Pos.CENTER);
! showModalityWindowButton.setPrefWidth(180);
! showModalityWindowButton.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent arg0) {
Stage modalityStage = new Stage();
modalityStage.initModality(Modality.APPLICATION_MODAL);
modalityStage.setScene(createTestGridScene());
modalityStage.setResizable(resizable);
modalityStage.show();
}
! });
buttonsPane.add(showModalityWindowButton, 1, 2);
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Resizable Button">
! Button resizableButton = new Button();
! resizableButton.setText(resizable ? "Not resizable" : "Resizable");
! resizableButton.setAlignment(Pos.CENTER);
! resizableButton.setPrefWidth(180);
! resizableButton.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent arg0) {
runJVMProcess(FSTestApp.this.getClass().getName(), String.valueOf(!resizable));
primaryStage.close();
}
! });
buttonsPane.add(resizableButton, 0, 3);
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Opacity Slider">
! Slider opacitySlider = new Slider(0, 1, 1);
! opacitySlider.setMaxWidth(180);
primaryStage.opacityProperty().bindBidirectional(opacitySlider.valueProperty());
buttonsPane.add(opacitySlider, 1, 3);
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="System menu ToggleButton">
! ToggleButton useSystemMenuToggleButton = new ToggleButton("Use system menu");
! useSystemMenuToggleButton.setAlignment(Pos.CENTER);
! useSystemMenuToggleButton.setPrefWidth(180);
menu.useSystemMenuBarProperty().bindBidirectional(useSystemMenuToggleButton.selectedProperty());
buttonsPane.add(useSystemMenuToggleButton, 0, 4);
//</editor-fold>
! HBox temp = new HBox(fullscreenIndicator, new Text("Fullscreen"));
! temp.setAlignment(Pos.CENTER);
! temp.setPadding(new Insets(5));
! VBox root = new VBox(menu, temp, buttonsPane, logTextArea);
primaryStage.setScene(new Scene(root, 400, 400));
primaryStage.setMinHeight(400);
primaryStage.setMinWidth(400);
primaryStage.show();
*** 386,418 ****
private Scene createTestGridScene(){
double height = getMaxScreenHeight();
double width = getMaxScreenWidth();
! Pane root = PaneBuilder.create()
! .minHeight(height)
! .minWidth(width)
! .build();
for (int x = 0; x < width; x+=10) {
! root.getChildren().add(
! LineBuilder.create()
! .startX(x)
! .endX(x)
! .startY(0)
! .endY(height)
! .build());
}
for (int y = 0; y < height; y+=10) {
! root.getChildren().add(
! LineBuilder.create()
! .startX(0)
! .endX(width)
! .startY(y)
! .endY(y)
! .build());
}
return new Scene(root, 200, 200);
}
--- 315,334 ----
private Scene createTestGridScene(){
double height = getMaxScreenHeight();
double width = getMaxScreenWidth();
! Pane root = new Pane();
! root.setMinHeight(height);
! root.setMinWidth(width);
for (int x = 0; x < width; x+=10) {
! root.getChildren().add(new Line(x, x, 0, height));
}
for (int y = 0; y < height; y+=10) {
! root.getChildren().add(new Line(0, width, y, y));
}
return new Scene(root, 200, 200);
}