in boot-fx/src/main/java/org/netbeans/html/boot/fx/FXBrwsr.java [265:371]
private static void attachHandlers(final WebView view, final Stage owner) {
view.getEngine().setOnAlert(new EventHandler<WebEvent<String>>() {
@Override
public void handle(WebEvent<String> t) {
final Stage dialogStage = new Stage();
dialogStage.initModality(Modality.WINDOW_MODAL);
dialogStage.initOwner(owner);
ResourceBundle r = ResourceBundle.getBundle("org/netbeans/html/boot/fx/Bundle"); // NOI18N
dialogStage.setTitle(r.getString("AlertTitle")); // NOI18N
final Button button = new Button(r.getString("AlertCloseButton")); // NOI18N
final Text text = new Text(t.getData());
VBox box = new VBox();
box.setAlignment(Pos.CENTER);
box.setSpacing(10);
box.setPadding(new Insets(10));
box.getChildren().addAll(text, button);
dialogStage.setScene(new Scene(box));
button.setCancelButton(true);
button.setOnAction(new CloseDialogHandler(dialogStage, null));
dialogStage.centerOnScreen();
dialogStage.showAndWait();
}
});
view.getEngine().setConfirmHandler(new Callback<String, Boolean>() {
@Override
public Boolean call(String question) {
final Stage dialogStage = new Stage();
dialogStage.initModality(Modality.WINDOW_MODAL);
dialogStage.initOwner(owner);
ResourceBundle r = ResourceBundle.getBundle("org/netbeans/html/boot/fx/Bundle"); // NOI18N
dialogStage.setTitle(r.getString("ConfirmTitle")); // NOI18N
final Button ok = new Button(r.getString("ConfirmOKButton")); // NOI18N
final Button cancel = new Button(r.getString("ConfirmCancelButton")); // NOI18N
final Text text = new Text(question);
final Insets ins = new Insets(10);
final VBox box = new VBox();
box.setAlignment(Pos.CENTER);
box.setSpacing(10);
box.setPadding(ins);
final HBox buttons = new HBox(10);
buttons.getChildren().addAll(ok, cancel);
buttons.setAlignment(Pos.CENTER);
buttons.setPadding(ins);
box.getChildren().addAll(text, buttons);
dialogStage.setScene(new Scene(box));
ok.setCancelButton(false);
final boolean[] res = new boolean[1];
ok.setOnAction(new CloseDialogHandler(dialogStage, res));
cancel.setCancelButton(true);
cancel.setOnAction(new CloseDialogHandler(dialogStage, null));
dialogStage.centerOnScreen();
dialogStage.showAndWait();
return res[0];
}
});
view.getEngine().setPromptHandler(new Callback<PromptData, String>() {
@Override
public String call(PromptData prompt) {
final Stage dialogStage = new Stage();
dialogStage.initModality(Modality.WINDOW_MODAL);
dialogStage.initOwner(owner);
ResourceBundle r = ResourceBundle.getBundle("org/netbeans/html/boot/fx/Bundle"); // NOI18N
dialogStage.setTitle(r.getString("PromptTitle")); // NOI18N
final Button ok = new Button(r.getString("PromptOKButton")); // NOI18N
final Button cancel = new Button(r.getString("PromptCancelButton")); // NOI18N
final Text text = new Text(prompt.getMessage());
final TextField line = new TextField();
if (prompt.getDefaultValue() != null) {
line.setText(prompt.getDefaultValue());
}
final Insets ins = new Insets(10);
final VBox box = new VBox();
box.setAlignment(Pos.CENTER);
box.setSpacing(10);
box.setPadding(ins);
final HBox buttons = new HBox(10);
buttons.getChildren().addAll(ok, cancel);
buttons.setAlignment(Pos.CENTER);
buttons.setPadding(ins);
box.getChildren().addAll(text, line, buttons);
dialogStage.setScene(new Scene(box));
ok.setCancelButton(false);
final boolean[] res = new boolean[1];
ok.setOnAction(new CloseDialogHandler(dialogStage, res));
cancel.setCancelButton(true);
cancel.setOnAction(new CloseDialogHandler(dialogStage, null));
dialogStage.centerOnScreen();
dialogStage.showAndWait();
return res[0] ? line.getText() : null;
}
});
view.getEngine().setCreatePopupHandler(new Callback<PopupFeatures, WebEngine>() {
@Override
public WebEngine call(PopupFeatures param) {
final Stage stage = new Stage(StageStyle.UTILITY);
stage.initOwner(owner);
final WebView popUpView = new WebView();
stage.setScene(new Scene(popUpView));
FXConsole fxConsole = new FXConsole(popUpView, stage);
fxConsole.observeWebViewTitle();
stage.show();
return popUpView.getEngine();
}
});
}