1 /* 2 * Copyright 2013-2023 Medical Information Systems Research Group (https://medical.zcu.cz), 3 * Department of Computer Science and Engineering, University of West Bohemia. 4 * Address: Univerzitni 8, 306 14 Plzen, Czech Republic. 5 * 6 * This file is part of Sparkle project. 7 * 8 * Sparkle is free software: you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation, either version 3 of the License. 11 * 12 * Sparkle is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with Sparkle. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 package cz.zcu.mre.sparkle.gui.tools; 21 22 import javafx.stage.Modality; 23 import javafx.stage.Stage; 24 import javafx.stage.StageStyle; 25 26 /** 27 * Základ pro kontrolery dialogových oken. Ve výchozím stavu je dialogové okno s 28 * tímto kontrolerem modální, umístěné uprostřed obrazovky a nelze jej 29 * zvětšovat. 30 * 31 * @author Jan Smucr 32 * @author Petr Vcelak (vcelak@kiv.zcu.cz) 33 */ 34 public abstract class AbstractDialogController 35 extends AbstractFormController { 36 37 @Override 38 protected final void onInitialized() { 39 final Stage stage = getStage(); 40 setModal(true); 41 stage.initStyle(StageStyle.DECORATED); 42 stage.setResizable(false); 43 stage.sizeToScene(); // Fixes the setResizable() additional window padding 44 stage.centerOnScreen(); 45 onDialogInitialized(); 46 } 47 48 @Override 49 public void showAndWait() { 50 super.showAndWait(); 51 } 52 53 protected void onDialogInitialized() { 54 55 } 56 57 protected final void setModal(final boolean modal) { 58 getStage().initModality(modal ? Modality.WINDOW_MODAL : Modality.NONE); 59 } 60 }