package addin1;
import javafx.collections.FXCollections;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import com.wilutions.joa.fx.MessageBox;
import com.wilutions.joa.fx.ModalDialogFX;
public class Dialog1 extends ModalDialogFX<String> {
TextField textField;
public Dialog1() {
setTitle("Tutorial Dialog");
}
@Override
public Scene createScene() {
VBox root = new VBox();
MenuBar menuBar = new MenuBar();
Menu menuFile = new Menu("File");
MenuItem newFile = new MenuItem("New");
MenuItem openFile = new MenuItem("Open");
menuFile.getItems().addAll(newFile, openFile);
Menu menuEdit = new Menu("Edit");
Menu menuView = new Menu("View");
menuBar.getMenus().addAll(menuFile, menuEdit, menuView);
root.getChildren().add(menuBar);
GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER);
grid.setHgap(10);
grid.setVgap(10);
grid.setPadding(new Insets(10));
root.getChildren().add(grid);
Text text = new Text("Enter some text and click a button.");
grid.add(text, 0, 0, 2, 1);
textField = new TextField();
grid.add(textField, 0, 1, 2, 1);
ChoiceBox<String> cb = new ChoiceBox<String>(FXCollections.observableArrayList(
"First", "Second", "Third")
);
grid.add(cb, 0, 2, 2, 1);
Button bnOK = new Button("OK");
grid.add(bnOK, 0, 3);
bnOK.setDefaultButton(true);
Button bnCancel = new Button("Cancel");
grid.add(bnCancel, 1, 3);
bnCancel.setCancelButton(true);
bnOK.setOnAction((e) -> {
Dialog1.this.finish(textField.getText());
});
bnCancel.setOnAction((e) -> {
Dialog1.this.finish("");
});
Scene dialog = new Scene(root);
return dialog;
}
@Override
public void onSystemMenuClose() {
boolean hasText = textField.getText().length() != 0;
if (hasText) {
MessageBox.create(this).title("Confirm").text("Are you sure to close the dialog?")
.button(1, "YES")
.button(0, "NO").focus().cancel().bdefault()
.show((result, ex) -> {
if (result == OK) {
Dialog1.this.finish("");
}
});
} else {
super.onSystemMenuClose();
}
}
}