package org.jabref.gui; import java.util.Optional; import javafx.scene.Parent; import javafx.stage.Stage; import org.jabref.logic.l10n.Localization; import com.airhacks.afterburner.views.FXMLView; public class AbstractView extends FXMLView { public AbstractView() { super(); // Set resource bundle to internal localizations bundle = Localization.getMessages(); } @Override public Parent getView() { Parent view = super.getView(); // Add our base css file view.getStylesheets().add(0, AbstractDialogView.class.getResource("Main.css").toExternalForm()); // Notify controller about the stage, where it is displayed view.sceneProperty().addListener((observable, oldValue, newValue) -> { Stage stage = (Stage) newValue.getWindow(); if (stage != null) { getController().ifPresent(controller -> controller.setStage(stage)); } }); return view; } private Optional<AbstractController> getController() { return Optional.ofNullable(presenterProperty.get()).map( presenter -> (AbstractController)presenter); } }